Tool class for computation the proximity distance from first primitive set to second one that is the maximal from minimum perpendicular distances. If no perpendicular distance is found, the minimum distance will be returned. This tool is not intended to be used independently, and is integrated in other classes, implementing algorithms based on shape tessellation (BRepExtrema_ProximityValueTool).
More...
|
| BRepExtrema_ProximityDistTool () |
| Creates new unitialized tool.
|
|
| BRepExtrema_ProximityDistTool (const Handle< BRepExtrema_TriangleSet > &theSet1, const Standard_Integer theNbSamples1, const BVH_Array3d &theAddVertices1, const NCollection_Vector< ProxPnt_Status > &theAddStatus1, const Handle< BRepExtrema_TriangleSet > &theSet2, const BRepExtrema_ShapeList &theShapeList1, const BRepExtrema_ShapeList &theShapeList2) |
| Creates new tool for the given element sets.
|
|
void | LoadTriangleSets (const Handle< BRepExtrema_TriangleSet > &theSet1, const Handle< BRepExtrema_TriangleSet > &theSet2) |
| Loads the given element sets into the tool.
|
|
void | LoadShapeLists (const BRepExtrema_ShapeList &theShapeList1, const BRepExtrema_ShapeList &theShapeList2) |
| Loads the given list of subshapes into the tool.
|
|
void | LoadAdditionalPointsFirstSet (const BVH_Array3d &theAddVertices1, const NCollection_Vector< ProxPnt_Status > &theAddStatus1) |
| Loads given additional vertices and their statuses.
|
|
void | Perform () |
| Performs searching of the proximity distance.
|
|
| BVH_Distance () |
| Constructor.
|
|
void | SetObject (const BVH_Vec3d &theObject) |
| Sets the object to which the distance is required.
|
|
Standard_Real | ComputeDistance () |
| Computes the distance between object and BVH tree.
|
|
Standard_Boolean | IsDone () const |
| Returns IsDone flag.
|
|
Standard_Real | Distance () const |
| Returns the computed distance.
|
|
virtual Standard_Boolean | IsMetricBetter (const Standard_Real &theLeft, const Standard_Real &theRight) const override |
| Compares the two metrics and chooses the best one.
|
|
virtual Standard_Boolean | RejectMetric (const Standard_Real &theMetric) const override |
| Rejects the branch by the metric.
|
|
virtual Standard_Boolean | Stop () const override |
| Returns the flag controlling the tree descend.
|
|
| BVH_Traverse () |
| Constructor.
|
|
void | SetBVHSet (BVHSetType *theBVHSet) |
| Sets the BVH Set containing the BVH tree.
|
|
virtual Standard_Boolean | AcceptMetric (const MetricType &) const |
| Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise.
|
|
virtual Standard_Boolean | RejectNode (const BVH_VecNt &theCornerMin, const BVH_VecNt &theCornerMax, MetricType &theMetric) const =0 |
| Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise.
|
|
virtual Standard_Boolean | Accept (const Standard_Integer theIndex, const MetricType &theMetric)=0 |
| Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise.
|
|
Standard_Integer | Select () |
| Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements.
|
|
Standard_Integer | Select (const opencascade::handle< BVH_Tree< NumType, Dimension > > &theBVH) |
| Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.
|
|
virtual Standard_Boolean | IsMetricBetter (const MetricType &, const MetricType &) const |
| Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise.
|
|
virtual Standard_Boolean | RejectMetric (const MetricType &) const |
| Rejects the node by the metric.
|
|
|
Standard_Real | myMinDistance |
| Minimal distance from point to BVH, could be not equal to myDistance.
|
|
BVH_Vec3d | myMinDistPoint |
| Point on BVH providing the minimal distance.
|
|
BVH_Vec3d | myExtremaPoint |
| Point on BVH providing the extrema.
|
|
Standard_Real | myProxDist |
| Proximity distance.
|
|
BVH_Vec3d | myPnt1 |
| Proximity points.
|
|
BVH_Vec3d | myPnt2 |
| Minimal distance from point to BVH, could be not equal to myDistance.
|
|
ProxPnt_Status | myPntStatus1 |
| Proximity points' status.
|
|
ProxPnt_Status | myPntStatus2 |
| Minimal distance from point to BVH, could be not equal to myDistance.
|
|
virtual Standard_Boolean | RejectNode (const BVH_Vec3d &theCornerMin, const BVH_Vec3d &theCornerMax, Standard_Real &theMetric) const override |
| Defines the rules for node rejection by bounding box.
|
|
virtual Standard_Boolean | Accept (const Standard_Integer theSgmIdx, const Standard_Real &) override |
| Defines the rules for leaf acceptance.
|
|
void | ProximityPoints (BVH_Vec3d &thePoint1, BVH_Vec3d &thePoint2) const |
| Returns points on triangles sets, which provide the proximity distance.
|
|
void | ProximityPointsStatus (ProxPnt_Status &thePointStatus1, ProxPnt_Status &thePointStatus2) const |
| Returns status of points on triangles sets, which provide the proximity distance.
|
|
Standard_Real | ProximityDistance () const |
| Returns the computed distance.
|
|
static Standard_Boolean | IsNodeOnBorder (const Standard_Integer theNodeIdx, const Handle< Poly_Triangulation > &theTr) |
| Returns true if the node is on the boarder.
|
|
static Standard_Boolean | IsEdgeOnBorder (const Standard_Integer theTrgIdx, const Standard_Integer theFirstEdgeNodeIdx, const Standard_Integer theSecondEdgeNodeIdx, const Handle< Poly_Triangulation > &theTr) |
| Returns true if the edge is on the boarder.
|
|
Standard_Real | ComputeDistance () |
| Computes the distance between object and BVH tree.
|
|
void | DefineStatusProxPnt () |
| Defines the status of proximity points.
|
|
Tool class for computation the proximity distance from first primitive set to second one that is the maximal from minimum perpendicular distances. If no perpendicular distance is found, the minimum distance will be returned. This tool is not intended to be used independently, and is integrated in other classes, implementing algorithms based on shape tessellation (BRepExtrema_ProximityValueTool).
Please note that algorithm results are approximate and depend greatly on the quality of input tessellation(s).