14 #ifndef __GEO_AttribFind__
15 #define __GEO_AttribFind__
54 float tolerance = 1e-7
f,
55 bool wrapunitsquare =
false);
64 updatePoints(enable_multithreading);
71 const float *
getP(
int idx)
const override
73 return myPoints(idx).data();
77 float delta = myPoints(idx0)(dim) - myPoints(idx1)(dim);
104 int findAllInsideTet(
112 float tolerance = 1e-7
f,
113 bool wrapunitcube =
false);
122 return myPoints(idx);
125 const float *
getP(
int idx)
const override
127 return myPoints(idx).data();
131 float delta = myPoints(idx0)(dim) - myPoints(idx1)(dim);
143 template<
typename POLY>
148 ut_KDPQueue *kdqueue,
153 float tolerance = 1e-7
f,
154 bool wrapunitsquare =
false);
162 ut_KDPQueue *kdqueue,
167 float tolerance = 1e-7
f,
168 bool wrapunitcube =
false);
183 template<
typename INT>
192 float tolerance = 1e-7
f,
193 bool wrapunitcube =
false);
195 template<
typename INT>
204 float tolerance = 1e-7
f,
205 bool wrapunitcube =
false);
207 template<
typename INT>
215 float tolerance = 1e-7
f,
216 bool wrapunitcube =
false);
240 bool wrapunitcube =
false);
250 bool wrapunitcube =
false);
void setBalancer(ut_KDBalancer balance)
Definition of a geometry attribute.
GLdouble GLdouble GLint GLint const GLdouble * points
void updatePoints(bool enable_multithreading=true)
GEO_3DTree(const UT_Array< UT_Vector3 > &points)
GLboolean GLboolean GLboolean GLboolean a
GEO_2DTree(const UT_Array< UT_Vector2 > &points)
GLdouble GLdouble GLdouble q
A range of elements in an index-map.
const UT_Vector3 & getValue(int idx) const
bool GEOfindAttrib(const GA_Attribute *queryattrib, const GA_Range &queryrange, const GEO_Detail &searchindetail, const GA_Range &searchinrange, const GA_Attribute *searchinattrib, const GA_RWHandleT< INT > &foundprimnums, const GA_RWHandleV3 &foundprimuvws, float tolerance=1e-7f, bool wrapunitcube=false)
GLboolean GLboolean GLboolean b
virtual const float * getP(int idx) const =0
Return the position associated with the given point.
virtual int comparePosition(int idx0, int idx1, int dim) const =0
void buildIfNeeded(bool enable_multithreading=true) override
This must be called before querying, to build and balance the tree.
void balance(bool enable_multithreading=true)
const UT_Vector2 & getValue(int idx) const
void GEOpickUpAttribPoints(const POLY &poly, const UT_Vector2 *attribvalues, GEO_2DTree &tree, ut_KDPQueue *kdqueue, UT_IntArray &temp, UT_Array< UT_Vector2 > &temp2, UT_Array< UT_Vector3 > &primuvwsarray, UT_Array< exint > &treepointnumsarray, float tolerance=1e-7f, bool wrapunitsquare=false)