Classes | |
struct | CompareShapes |
Sort shapes in the list by their coordinates. More... | |
Typedefs | |
typedef std::map< std::string, NodeLinks > | LevelInfo |
typedef std::vector< LevelInfo > | LevelsList |
typedef std::vector< std::string > | NodeLinks |
typedef std::map< std::string, std::pair< LevelsList, LevelsList > > | TreeModel |
Functions | |
Standard_EXPORT void | AddSimpleShapes (const TopoDS_Shape &theShape, TopTools_ListOfShape &theList) |
Recursively extract all shapes from compounds and compsolids of the given shape into theList. More... | |
Standard_EXPORT bool | CheckShape (TopoDS_Shape &shape, bool checkGeometry=false) |
Check shape. More... | |
Standard_EXPORT bool | CheckTriangulation (const TopoDS_Shape &theShape) |
Build a triangulation on theShape if it is absent. More... | |
Standard_EXPORT TopoDS_Shape | CompsolidToCompound (const TopoDS_Shape &theCompsolid) |
Convert TopoDS_COMPSOLID to TopoDS_COMPOUND. More... | |
Standard_EXPORT gp_Pnt | ConvertClickToPoint (int x, int y, Handle(V3d_View) theView) |
Returns the point clicked in 3D view. More... | |
Standard_EXPORT void | ConvertStringToTree (const std::string &dependencyStr, TreeModel &tree) |
Restore dependency tree data from the string representation. More... | |
Standard_EXPORT void | ConvertTreeToString (const TreeModel &tree, std::string &dependencyStr) |
Convert dependency tree data to the string representation. More... | |
Standard_EXPORT double | DefaultDeflection () |
Get default deflection coefficient used for triangulation. More... | |
Standard_EXPORT bool | FixShapeCurves (TopoDS_Shape &shape) |
Fix curves of the given shape. More... | |
Standard_EXPORT bool | FixShapeTolerance (TopoDS_Shape &shape, bool checkGeometry) |
Limit shape tolerance to the given value This is overloaded function, it behaves exactly as previous one. More... | |
Standard_EXPORT bool | FixShapeTolerance (TopoDS_Shape &shape, Standard_Real tolerance=Precision::Confusion(), bool checkGeometry=false) |
Limit shape tolerance to the given value This is overloaded function, it behaves exactly as previous one. More... | |
Standard_EXPORT bool | FixShapeTolerance (TopoDS_Shape &shape, TopAbs_ShapeEnum type, Standard_Real tolerance=Precision::Confusion(), bool checkGeometry=false) |
Limit shape tolerance to the given value. More... | |
Standard_EXPORT TopoDS_Shape | GetEdgeNearPoint (const TopoDS_Shape &theShape, const TopoDS_Vertex &thePoint) |
Find an edge of theShape, closest to thePoint. More... | |
Standard_EXPORT Standard_Real | GetMinDistance (const TopoDS_Shape &theShape1, const TopoDS_Shape &theShape2, gp_Pnt &thePnt1, gp_Pnt &thePnt2) |
Computes minumal distance between two shapes. More... | |
Standard_EXPORT Standard_Real | GetMinDistanceSingular (const TopoDS_Shape &aSh1, const TopoDS_Shape &aSh2, gp_Pnt &Ptmp1, gp_Pnt &Ptmp2) |
Computes minumal distance between two shapes for singular cases (workaround for bugs 19899, 19908 and 19910 from Mantis). More... | |
Standard_EXPORT gp_Ax3 | GetPosition (const TopoDS_Shape &theShape) |
Get Local Coordinate System, corresponding to the given shape. More... | |
Standard_EXPORT TopAbs_ShapeEnum | GetTypeOfSimplePart (const TopoDS_Shape &theShape) |
Return type of shape for explode. In case of compound it will be a type of its first sub shape. More... | |
Standard_EXPORT gp_Vec | GetVector (const TopoDS_Shape &theShape, Standard_Boolean doConsiderOrientation) |
Get vector, defined by the given edge. More... | |
Standard_EXPORT bool | IsOpenPath (const TopoDS_Shape &theShape) |
Check if the shape is not a closed wire or edge. More... | |
Standard_EXPORT void | MeshShape (const TopoDS_Shape shape, double deflection, bool forced=true) |
Generate triangulation for the shape. More... | |
Standard_EXPORT Standard_Boolean | PreciseBoundingBox (const TopoDS_Shape &theShape, Bnd_Box &theBox) |
Compute precise bounding box of the shape based on the rough bounding box. More... | |
Standard_EXPORT TopoDS_Shape | ReduceCompound (const TopoDS_Shape &shape) |
Extract single SOLID from COMPSOLID or COMPOUND. More... | |
Standard_EXPORT std::pair< double, double > | ShapeToDouble (const TopoDS_Shape &theShape, bool isOldSorting=false) |
Compute numerical functor for the shape. More... | |
Standard_EXPORT void | SortShapes (TopTools_ListOfShape &SL, const Standard_Boolean isOldSorting=Standard_True) |
Sort shapes by their centers of mass, using formula X*999 + Y*99 + Z*0.9. More... | |
Standard_EXPORT bool | Write (const TopoDS_Shape &shape, const char *fileName) |
Write shape to the BREP file. More... | |
Typedef Documentation
◆ LevelInfo
typedef std::map<std::string, NodeLinks> GEOMUtils::LevelInfo |
◆ LevelsList
typedef std::vector<LevelInfo> GEOMUtils::LevelsList |
◆ NodeLinks
typedef std::vector<std::string> GEOMUtils::NodeLinks |
◆ TreeModel
typedef std::map<std::string,std::pair<LevelsList,LevelsList> > GEOMUtils::TreeModel |
Function Documentation
◆ AddSimpleShapes()
void GEOMUtils::AddSimpleShapes | ( | const TopoDS_Shape & | theShape, |
TopTools_ListOfShape & | theList | ||
) |
Recursively extract all shapes from compounds and compsolids of the given shape into theList.
If theShape is not compound or compsolid, theList will contain only theShape itself.
- Parameters
-
theShape The shape to be exploded. theList Output parameter.
◆ CheckShape()
Check shape.
- Parameters
-
shape input shape object checkGeometry when set to true
, causes check of underlying geometry in addition to the topology
- Returns
true
if shape is valid orfalse
otherwise
Referenced by FixShapeCurves(), and FixShapeTolerance().
◆ CheckTriangulation()
bool GEOMUtils::CheckTriangulation | ( | const TopoDS_Shape & | theShape | ) |
Build a triangulation on theShape if it is absent.
- Parameters
-
theShape The shape to check/build triangulation on.
- Return values
-
bool Returns false if the shape has no faces, i.e. impossible to build triangulation.
◆ CompsolidToCompound()
TopoDS_Shape GEOMUtils::CompsolidToCompound | ( | const TopoDS_Shape & | theCompsolid | ) |
Convert TopoDS_COMPSOLID to TopoDS_COMPOUND.
If the argument shape is not of type TopoDS_COMPSOLID, this method returns it as is.
- Parameters
-
theCompsolid The compsolid to be converted.
- Return values
-
TopoDS_Shape Returns the resulting compound.
◆ ConvertClickToPoint()
gp_Pnt GEOMUtils::ConvertClickToPoint | ( | int | x, |
int | y, | ||
Handle(V3d_View) | theView | ||
) |
Returns the point clicked in 3D view.
- Parameters
-
x The X coordinate in the view. y The Y coordinate in the view. theView View where the given point takes place.
- Return values
-
gp_Pnt Returns the point clicked in 3D view
◆ ConvertStringToTree()
void GEOMUtils::ConvertStringToTree | ( | const std::string & | dependencyStr, |
TreeModel & | tree | ||
) |
Restore dependency tree data from the string representation.
- Parameters
-
dependencyStr string representation of tree data tree output dependency tree data
◆ ConvertTreeToString()
void GEOMUtils::ConvertTreeToString | ( | const TreeModel & | tree, |
std::string & | dependencyStr | ||
) |
Convert dependency tree data to the string representation.
- Parameters
-
tree dependency tree data dependencyStr output string
◆ DefaultDeflection()
double GEOMUtils::DefaultDeflection | ( | ) |
Get default deflection coefficient used for triangulation.
- Returns
- default deflection value
Referenced by MeshShape().
◆ FixShapeCurves()
bool GEOMUtils::FixShapeCurves | ( | TopoDS_Shape & | shape | ) |
Fix curves of the given shape.
The function checks each curve of the input shape in the following way:
- compute deviation of the curve from the underlying surface in a set of points computed with the certain discretization step value
- find maximum tolerance between computed deviation values
- limit tolerance of the curve with the computed maximum value
- Parameters
-
shape shape being fixed
- Returns
true
if resulting shape is valid
References CheckShape().
◆ FixShapeTolerance() [1/3]
Limit shape tolerance to the given value This is overloaded function, it behaves exactly as previous one.
References FixShapeTolerance().
◆ FixShapeTolerance() [2/3]
bool GEOMUtils::FixShapeTolerance | ( | TopoDS_Shape & | shape, |
Standard_Real | tolerance = Precision::Confusion() , |
||
bool | checkGeometry = false |
||
) |
Limit shape tolerance to the given value This is overloaded function, it behaves exactly as previous one.
References FixShapeTolerance().
◆ FixShapeTolerance() [3/3]
bool GEOMUtils::FixShapeTolerance | ( | TopoDS_Shape & | shape, |
TopAbs_ShapeEnum | type, | ||
Standard_Real | tolerance = Precision::Confusion() , |
||
bool | checkGeometry = false |
||
) |
Limit shape tolerance to the given value.
- Parameters
-
shape shape being fixed type topology type which tolerance is to be limited; TopAbs_SHAPE means all types of topology tolerance expected tolerance value (1e-7 by default) checkGeometry check geometry validity of result
- Returns
true
if resulting shape is valid
- Note
- Resulting tolerance of the shape is not mandatory equal to requested value as it might be changed by fixshape operation in order to get valid shape where possible
-
By default, result only checked for topology validity; check of geometry can be done by passing
true
to checkGeometry parameter
References CheckShape().
Referenced by FixShapeTolerance().
◆ GetEdgeNearPoint()
TopoDS_Shape GEOMUtils::GetEdgeNearPoint | ( | const TopoDS_Shape & | theShape, |
const TopoDS_Vertex & | thePoint | ||
) |
Find an edge of theShape, closest to thePoint.
- Parameters
-
theShape The shape to explore. thePoint The point near the required edge.
- Return values
-
TopoDS_Shape Returns the found edge or an empty shape if multiple edges found.
◆ GetMinDistance()
Standard_Real GEOMUtils::GetMinDistance | ( | const TopoDS_Shape & | theShape1, |
const TopoDS_Shape & | theShape2, | ||
gp_Pnt & | thePnt1, | ||
gp_Pnt & | thePnt2 | ||
) |
Computes minumal distance between two shapes.
- Parameters
-
theShape1 the first shape theShape2 the second shape thePnt1 the output result point on the first shape thePnt2 the output result point on the second shape
- Return values
-
negative value in case of failure; otherwise the real distance.
References DraftVecUtils::dist(), and GetMinDistanceSingular().
Referenced by PreciseBoundingBox().
◆ GetMinDistanceSingular()
double GEOMUtils::GetMinDistanceSingular | ( | const TopoDS_Shape & | aSh1, |
const TopoDS_Shape & | aSh2, | ||
gp_Pnt & | Ptmp1, | ||
gp_Pnt & | Ptmp2 | ||
) |
Computes minumal distance between two shapes for singular cases (workaround for bugs 19899, 19908 and 19910 from Mantis).
- Parameters
-
aSh1 the first shape aSh2 the second shape Ptmp1 the output result point on the first shape Ptmp2 the output result point on the second shape
- Return values
-
negative value if it is not a singular case; actual distance for singular case.
Referenced by GetMinDistance().
◆ GetPosition()
gp_Ax3 GEOMUtils::GetPosition | ( | const TopoDS_Shape & | theShape | ) |
Get Local Coordinate System, corresponding to the given shape.
Origin of the LCS is situated at the shape's center of mass. Axes of the LCS are obtained from shape's location or, if the shape is a planar face, from position of its plane.
References GetTypeOfSimplePart().
◆ GetTypeOfSimplePart()
TopAbs_ShapeEnum GEOMUtils::GetTypeOfSimplePart | ( | const TopoDS_Shape & | theShape | ) |
Return type of shape for explode. In case of compound it will be a type of its first sub shape.
- Parameters
-
theShape The shape to get type of.
- Return values
-
TopAbs_ShapeEnum Return type of shape for explode.
Referenced by GetPosition().
◆ GetVector()
gp_Vec GEOMUtils::GetVector | ( | const TopoDS_Shape & | theShape, |
Standard_Boolean | doConsiderOrientation | ||
) |
Get vector, defined by the given edge.
- Parameters
-
theShape The edge. doConsiderOrientation If True, take into account the edge orientation.
- Note
- It is recommended to use doConsiderOrientation=Standard_False, because the same edge can have different orientation depending on the way it was extracted from a shape.
◆ IsOpenPath()
bool GEOMUtils::IsOpenPath | ( | const TopoDS_Shape & | theShape | ) |
Check if the shape is not a closed wire or edge.
This function is used for pipe creation algorithm to test if the pipe path is not closed. It returns false if theShape is a wire or an edge with coincident end vertices. Otherwise it returns true.
- Parameters
-
theShape the shape to be tested.
- Returns
- true if theShape is not a closed wire or edge.
◆ MeshShape()
void GEOMUtils::MeshShape | ( | const TopoDS_Shape | shape, |
double | deflection, | ||
bool | forced = true |
||
) |
Generate triangulation for the shape.
- Parameters
-
shape shape being meshed deflection deflection coefficient to be used forced if true
, causes generation of mesh regardless it is already present in the shape
References DefaultDeflection().
◆ PreciseBoundingBox()
Standard_Boolean GEOMUtils::PreciseBoundingBox | ( | const TopoDS_Shape & | theShape, |
Bnd_Box & | theBox | ||
) |
Compute precise bounding box of the shape based on the rough bounding box.
- Parameters
-
theShape the shape. theBox rough bounding box on input; precise bounding box on output.
- Return values
-
Standard_True in case of success; Standard_False otherwise.
References GetMinDistance().
Referenced by SMESH_Mesh::GetShapeDiagonalSize().
◆ ReduceCompound()
TopoDS_Shape GEOMUtils::ReduceCompound | ( | const TopoDS_Shape & | shape | ) |
Extract single SOLID from COMPSOLID or COMPOUND.
If the argument shape is a COMPUND or COMPSOLID and there's only single simple-shape type inside, this sub-shape is returned as a result; otherwise, the shape is not changed.
- Parameters
-
shape compound or compsolid being processed.
- Return values
-
TopoDS_Shape resulting shape
◆ ShapeToDouble()
std::pair< double, double > GEOMUtils::ShapeToDouble | ( | const TopoDS_Shape & | theShape, |
bool | isOldSorting = false |
||
) |
Compute numerical functor for the shape.
Resulting value can be used to sort out shapes according to some parameter.
Returns a pair of two values (dist, functor) where
- dist is a some value that is computed according to the center of mass of given shape;
- functor is a numerical functor value
The numerical functor is computed according to the shape's topological properties as follows:
- orientation for vertices
- length for edges and wires
- area for faces and shells
- volume for solids, compounds, compsolids
If isOldSorting parameter is set to true
, for all cases linear properties of the shape are used (to support backward compatibility in some methods). By default, this parameter is set to false
.
Referenced by GEOMUtils::CompareShapes::operator()().
◆ SortShapes()
void GEOMUtils::SortShapes | ( | TopTools_ListOfShape & | SL, |
const Standard_Boolean | isOldSorting = Standard_True |
||
) |
Sort shapes by their centers of mass, using formula X*999 + Y*99 + Z*0.9.
◆ Write()
bool GEOMUtils::Write | ( | const TopoDS_Shape & | shape, |
const char * | fileName | ||
) |
Write shape to the BREP file.
- Parameters
-
source shape
- Returns
true
if file was written orfalse
otherwise