72 geo->select( pta, ptb );
73 ps += geo->qspec[0].offset;
74 ps += geo->qspec[1].offset;
75 ps += geo->qspec[0].index * geo->qspec[0].order * geo->qspec[0].stride;
76 ps += geo->qspec[1].index * geo->qspec[1].order * geo->qspec[1].stride;
80 geo->qspec[1].order, geo->qspec[1].stride,
86 geo->qspec[1].order, geo->qspec[1].stride,
92 geo->qspec[1].order, geo->qspec[1].stride,
97 pspec[0].
range[0] = geo->qspec[0].breakpoints[geo->qspec[0].index];
98 pspec[0].
range[1] = geo->qspec[0].breakpoints[geo->qspec[0].index+1];
101 pspec[1].
range[0] = geo->qspec[1].breakpoints[geo->qspec[1].index];
102 pspec[1].
range[1] = geo->qspec[1].breakpoints[geo->qspec[1].index+1];
108 Patch lower( *
this, 0, pta[0], 0 );
114 Patch upper( *
this, 0, ptb[0], 0 );
119 Patch lower( *
this, 1, pta[1], 0 );
125 Patch upper( *
this, 1, ptb[1], 0 );
138 Patch& lower = *
this;
282 const int trstride =
sizeof(tmp[0]) /
sizeof(
REAL);
283 const int tcstride =
sizeof(tmp[0][0]) /
sizeof(
REAL);
290 &tmp[0][0][0], trstride, tcstride,
311 REAL ss =
mapdesc->
calcPartialVelocity( ssv, &tmp[0][0][0], trstride, tcstride,
pspec[0].
order,
pspec[1].
order, 2, 0,
pspec[0].
range[2],
pspec[1].
range[2], 0 );
312 REAL st =
mapdesc->
calcPartialVelocity( 0, &tmp[0][0][0], trstride, tcstride,
pspec[0].
order,
pspec[1].
order, 1, 1,
pspec[0].
range[2],
pspec[1].
range[2], -1 );
313 REAL tt =
mapdesc->
calcPartialVelocity( ttv, &tmp[0][0][0], trstride, tcstride,
pspec[0].
order,
pspec[1].
order, 0, 2,
pspec[0].
range[2],
pspec[1].
range[2], 1 );
319 if(
ss != 0.0 && tt != 0.0 ) {
325 REAL dt =
sqrtf( 4 * t2 * ssq / ( tt * ssq + st * ttq ) );
335 }
else if(
ss != 0.0 ) {
343 }
else if( tt != 0.0 ) {
372 REAL ms =
mapdesc->
calcPartialVelocity( msv, &tmp[0][0][0], trstride, tcstride,
pspec[0].
order,
pspec[1].
order, 1, 0,
pspec[0].
range[2],
pspec[1].
range[2], 0 );
373 REAL mt =
mapdesc->
calcPartialVelocity( mtv, &tmp[0][0][0], trstride, tcstride,
pspec[0].
order,
pspec[1].
order, 0, 1,
pspec[0].
range[2],
pspec[1].
range[2], 1 );
374 REAL side_scale = 1.0;
382 REAL dt = t1 / (2.0*mt);
440 _glu_dprintf(
"sidesteps %g %g %g %g, stepsize %g %g\n",
REAL calcPartialVelocity(REAL *, int, int, int, REAL)
int isObjectSpaceParaSampling(void)
void xformCulling(REAL *, int, int, REAL *, int)
int isConstantSampling(void)
int isObjectSpacePathSampling(void)
int isBboxSubdividing(void)
void subdivide(REAL *, REAL *, REAL, int, int)
int isDomainSampling(void)
int isParametricDistanceSampling(void)
int cullCheck(REAL *, int, int)
void xformBounding(REAL *, int, int, REAL *, int)
int isRangeSampling(void)
int project(REAL *, int, REAL *, int, int)
int isPathLengthSampling(void)
void xformSampling(REAL *, int, int, REAL *, int)
int isSurfaceAreaSampling(void)
void surfbbox(REAL bb[2][MAXCOORDS])
int bboxTooBig(REAL *, int, int, int, int, REAL[2][MAXCOORDS])
Patch(Quilt *, REAL *, REAL *, Patch *)
int needsNonSamplingSubdivision(void)
REAL cpts[MAXORDER *MAXORDER *MAXCOORDS]
REAL bpts[MAXORDER *MAXORDER *MAXCOORDS]
REAL spts[MAXORDER *MAXORDER *MAXCOORDS]
int needsSamplingSubdivision(void)
int needsSubdivision(int)
void checkBboxConstraint(void)
#define CULL_TRIVIAL_ACCEPT
GLint GLint GLint GLint GLint x
GLuint GLdouble GLdouble GLint GLint order
#define memcpy(s1, s2, n)
#define N_NOSAVINGSSUBDIVISION
#define N_PIXEL_TOLERANCE
#define N_ERROR_TOLERANCE
static Real area(Real A[2], Real B[2], Real C[2])