56 explicit BRNode(
const ON_BoundingBox &node);
60 const ON_BoundingBox &node,
61 const ON_BrepFace *
face,
72 void addChild(
BRNode *child);
75 void getLeaves(std::list<const BRNode *> &out_leaves)
const;
94 bool isTrimmed(
const ON_2dPoint &uv,
double &trimdist)
const;
120 void removeChild(
BRNode *child);
126 const BRNode *closer(
const ON_3dPoint &pt,
const BRNode *left,
const BRNode *right)
const;
129 Stl() : m_children() {}
131 std::vector<const BRNode *> m_children;
134 const ON_BrepFace *m_face;
136 const ON_Curve *m_trim;
141 ON_3dPoint m_estimate;
151 if (
LIKELY(child != NULL)) {
152 m_stl->m_children.push_back(child);
157 BRNode::removeChild(
BRNode *child)
159 std::vector<const BRNode *>::iterator i;
160 for (i = m_stl->m_children.begin(); i != m_stl->m_children.end();) {
163 i = m_stl->m_children.erase(i);
171 BRNode::isLeaf()
const
173 if (m_stl->m_children.empty()) {
184 if (m_start != ON_3dPoint::UnsetPoint) {
187 if (m_end != ON_3dPoint::UnsetPoint) {
bool isTrimmed(const ON_2dPoint &uv, double &trimdist) const
fastf_t getCurveEstimateOfV(fastf_t u, fastf_t tol) const
void addChild(BRNode *child)
void getLeaves(std::list< const BRNode * > &out_leaves) const
void serialize(Serializer &serializer) const
fastf_t getCurveEstimateOfU(fastf_t v, fastf_t tol) const
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt, ON_Interval &u, ON_Interval &v) const
BRNode(const ON_Curve *curve, int trim_index, int adj_face_index, const ON_BoundingBox &node, const ON_BrepFace *face, const ON_Interval &t, bool innerTrim, bool checkTrim, bool trimmed)
void GetBBox(fastf_t *min, fastf_t *max) const
BRNode(Deserializer &deserializer, const ON_Brep &brep)
ON_2dPoint getClosestPointEstimate(const ON_3dPoint &pt) const
BRNode(const ON_BoundingBox &node)
Header file for the BRL-CAD common definitions.
void int char int int double * min
#define LIKELY(expression)
#define VSETALL(v, s)
Set all elements of 3D vector to same scalar value.
#define VMINMAX(min, max, pt)
double fastf_t
fastest 64-bit (or larger) floating point type
bool sortX(const BRNode *first, const BRNode *second)
bool sortY(const BRNode *first, const BRNode *second)