ReactOS 0.4.16-dev-258-g81860b4
patch.h
Go to the documentation of this file.
1/*
2 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
3 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice including the dates of first publication and
13 * either this permission notice or a reference to
14 * http://oss.sgi.com/projects/FreeB/
15 * shall be included in all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
22 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 * Except as contained in this notice, the name of Silicon Graphics, Inc.
26 * shall not be used in advertising or otherwise to promote the sale, use or
27 * other dealings in this Software without prior written authorization from
28 * Silicon Graphics, Inc.
29 */
30
31/*
32 * patch.h
33 *
34 */
35
36#ifndef __glupatch_h_
37#define __glupatch_h_
38
39#include "types.h"
40#include "defines.h"
41
42class Quilt;
43class Mapdesc;
44
45
46struct Pspec {
52};
53
54struct Patchspec : public Pspec {
55 int order;
56 int stride;
57 void clamp( REAL );
58 void getstepsize( REAL );
59 void singleStep( void );
60};
61
62class Patch {
63public:
64friend class Subdivider;
65friend class Quilt;
66friend class Patchlist;
67 Patch( Quilt *, REAL*, REAL *, Patch * );
68 Patch( Patch &, int, REAL, Patch * );
69 void bbox( void );
70 void clamp( void );
71 void getstepsize( void );
72 int cullCheck( void );
73 int needsSubdivision( int );
74 int needsSamplingSubdivision( void );
76
77 int get_uorder() {return pspec[0].order;}
78 int get_vorder() {return pspec[1].order;}
79
80private:
81
91 void checkBboxConstraint( void );
93};
94#endif /* __glupatch_h_ */
Definition: patch.h:62
Patchspec pspec[2]
Definition: patch.h:90
Patch(Quilt *, REAL *, REAL *, Patch *)
int needsNonSamplingSubdivision(void)
Definition: patch.cc:485
int cullCheck(void)
Definition: patch.cc:497
REAL cpts[MAXORDER *MAXORDER *MAXCOORDS]
Definition: patch.h:87
Mapdesc * mapdesc
Definition: patch.h:82
int notInBbox
Definition: patch.h:85
REAL bpts[MAXORDER *MAXORDER *MAXCOORDS]
Definition: patch.h:89
int get_uorder()
Definition: patch.h:77
REAL spts[MAXORDER *MAXORDER *MAXCOORDS]
Definition: patch.h:88
void clamp(void)
Definition: patch.cc:215
int needsSampling
Definition: patch.h:86
int needsSamplingSubdivision(void)
Definition: patch.cc:479
int needsSubdivision(int)
Definition: patch.cc:491
void checkBboxConstraint(void)
Definition: patch.cc:235
void bbox(void)
Definition: patch.cc:245
REAL bb[2][MAXCOORDS]
Definition: patch.h:92
int get_vorder()
Definition: patch.h:78
Patch * next
Definition: patch.h:83
void getstepsize(void)
Definition: patch.cc:258
int cullval
Definition: patch.h:84
Definition: quilt.h:64
#define MAXCOORDS
Definition: defines.h:48
#define MAXORDER
Definition: defines.h:45
float REAL
Definition: types.h:41
GLenum clamp
Definition: glext.h:6216
GLenum GLint * range
Definition: glext.h:7539
void getstepsize(REAL)
Definition: patch.cc:469
int stride
Definition: patch.h:56
void singleStep(void)
Definition: patch.cc:463
int order
Definition: patch.h:55
Definition: patch.h:46
REAL sidestep[2]
Definition: patch.h:48
int needsSubdivision
Definition: patch.h:51
REAL stepsize
Definition: patch.h:49
REAL minstepsize
Definition: patch.h:50