19 #ifndef _TS_Expression_h_
20 #define _TS_Expression_h_
89 virtual float density(
const UT_Vector3 &
p)
const = 0;
100 virtual void raySweepInit(
const TS_Ray &ray,
float clip,
101 float &
t0,
float &
t1) = 0;
102 virtual void raySweepComplete();
104 virtual float rayDensity(
float t)
const = 0;
107 virtual int rayIntersect(
const TS_Ray &ray,
111 virtual int rayIntersect(
const TS_Ray &ray,
124 virtual int setRay(
const TS_Ray &ray) = 0;
154 { myThreadNum = threadNum; }
159 static void setupThreads(
int numThreads);
162 virtual int64 getMemoryUsage(
bool inclusive)
const;
182 virtual void buildOctree();
204 float clip,
float &
t0,
float &
t1)
override;
230 bool inclusive)
const override;
233 void initSweepList(
const TS_Ray &ray);
240 void freeList(ts_PrimNode *listStart);
241 void clearAndDestroy();
334 #define TS_MetaPotentialThreshold 1.0F
336 #endif // _TS_Expression_h_
UT_IntrusivePtr< TS_MetaExpression > TS_MetaExpressionPtr
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
A reference counter base class for use with UT_IntrusivePtr.
UT_Array< TS_MetaExpressionPtr > TS_ExpressionList
UT_Array< TS_SweepNode * > TS_SweepList
detail::named_arg< Char, T > arg(const Char *name, const T &arg)
IMATH_INTERNAL_NAMESPACE_HEADER_ENTER T clip(const T &p, const Box< T > &box)
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t0
UT_IntervalT< float > UT_Interval