13 #ifndef __GU_TPSurf_h__
14 #define __GU_TPSurf_h__
78 static int intersectRay(
const GEO_TPSurf &surf,
80 float tmax = 1E17F,
float tol = 1E-12F,
83 float *u = 0,
float *
v = 0,
87 float worldtol = 1e-4F,
88 float domaintol = 1e-2F,
90 bool docompact =
true);
92 float worldtol = 1e-4F,
int nontrivial = 0);
112 int sdivs = 20,
float tol = 0.001F,
113 int sharp = 1,
int order = 4,
114 int only_first_visible_part = 0);
144 static int findProjects(
const GEO_TPSurf &surf,
152 static int create(
GEO_TPSurf *surf,
int rows,
int cols,
154 bool appendPoints =
true);
158 static void evaluationInterval(
const GEO_TPSurf &surf,
159 float lodu,
float lodv,
160 float &ustart,
float &ustop,
int &nu,
161 float &vstart,
float &vstop,
int &nv);
165 static int evaluateSurface(
const GEO_TPSurf &surf,
185 float &pdot,
int &pclose,
int &projcount,
190 static int projectOnSide(
const GEO_TPSurf &surf,
193 int myfar,
float rtol,
float uvgap,
int cls,
195 int algebraic,
int ignoretrim,
197 static int projectOnAllSides(
const GEO_TPSurf &surf,
200 float rtol,
float uvgap,
int cls,
202 int algebraic,
int ignoretrim,
204 static int projectAlongMinimum(
const GEO_TPSurf &surf,
206 int closed,
float uvgap,
208 static void processSideHit(
const GEO_TPSurf &surf,
214 int &nstartidx,
int cridx);
215 static void processEndHit(
const GEO_TPSurf &surf,
222 static int connectToEdge(
const GEO_TPSurf &surf,
224 float uvgap,
int isfirst);
226 static int projectAddBisectPoints(
const GEO_TPSurf &surf,
229 int lod,
int index,
int isfirst,
231 float uvgap,
float pdot,
int numdiv,
239 static int minimumFunction(
const GEO_TPSurf &surf,
242 static int projectFunction(
const GEO_TPSurf &surf,
249 static int findMinsOrProj(
const GEO_TPSurf &surf,
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
GLdouble GLdouble GLdouble z
Tto convert(const Tfrom &source)
OIIO_FORCEINLINE bool extract(const vbool4 &a)
UT_Vector2T< T > project(const UT_Vector2T< T > &u, const UT_Vector2T< T > &v)
The orthogonal projection of a vector u onto a vector v.
GLdouble GLdouble GLint GLint order
virtual bool smooth(GA_AttributeOperand &d, GA_AttributeOperand &min, GA_AttributeOperand &max, GA_AttributeOperand &t) const
d = SYSsmooth(min, max, t);
IMATH_CONSTEXPR14 bool intersect(const Line3< T > &line, const Vec3< T > &v0, const Vec3< T > &v1, const Vec3< T > &v2, Vec3< T > &pt, Vec3< T > &barycentric, bool &front) IMATH_NOEXCEPT
SIM_API const UT_StringHolder distance