Open CASCADE Technology 7.8.2.dev
PrsDim Class Reference

Auxiliary methods for computing dimensions. More...

#include <PrsDim.hxx>

Static Public Member Functions

static gp_Pnt Nearest (const TopoDS_Shape &aShape, const gp_Pnt &aPoint)
 Returns the nearest point in a shape. This is used by several classes in calculation of dimensions.
 
static gp_Pnt Nearest (const gp_Lin &theLine, const gp_Pnt &thePoint)
 
static Standard_Boolean Nearest (const Handle< Geom_Curve > &theCurve, const gp_Pnt &thePoint, const gp_Pnt &theFirstPoint, const gp_Pnt &theLastPoint, gp_Pnt &theNearestPoint)
 For the given point finds nearest point on the curve,.
 
static gp_Pnt Farest (const TopoDS_Shape &aShape, const gp_Pnt &aPoint)
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theEdge, Handle< Geom_Curve > &theCurve, gp_Pnt &theFirstPnt, gp_Pnt &theLastPnt)
 Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any Return TRUE if ok.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theEdge, Handle< Geom_Curve > &theCurve, gp_Pnt &theFirstPnt, gp_Pnt &theLastPnt, Standard_Boolean &theIsInfinite)
 Used by dimensions only. Computes the 3d geometry of <anEdge>. Return TRUE if ok.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theEdge, Handle< Geom_Curve > &theCurve, gp_Pnt &theFirstPnt, gp_Pnt &theLastPnt, Handle< Geom_Curve > &theExtCurve, Standard_Boolean &theIsInfinite, Standard_Boolean &theIsOnPlane, const Handle< Geom_Plane > &thePlane)
 Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any. If <aCurve> is not in the current plane, <extCurve> contains the not projected curve associated to <anEdge>. If <anEdge> is infinite, <isinfinite> = true and the 2 parameters <FirstPnt> and <LastPnt> have no signification. Return TRUE if ok.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theFirstEdge, const TopoDS_Edge &theSecondEdge, Handle< Geom_Curve > &theFirstCurve, Handle< Geom_Curve > &theSecondCurve, gp_Pnt &theFirstPnt1, gp_Pnt &theLastPnt1, gp_Pnt &theFirstPnt2, gp_Pnt &theLastPnt2, const Handle< Geom_Plane > &thePlane)
 Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any Return TRUE if ok.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theFirstEdge, const TopoDS_Edge &theSecondEdge, Handle< Geom_Curve > &theFirstCurve, Handle< Geom_Curve > &theSecondCurve, gp_Pnt &theFirstPnt1, gp_Pnt &theLastPnt1, gp_Pnt &theFirstPnt2, gp_Pnt &theLastPnt2, Standard_Boolean &theIsinfinite1, Standard_Boolean &theIsinfinite2)
 Used by dimensions only.Computes the 3d geometry of<anEdge1> and <anEdge2> and checks if they are infinite.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Edge &theFirstEdge, const TopoDS_Edge &theSecondEdge, Standard_Integer &theExtIndex, Handle< Geom_Curve > &theFirstCurve, Handle< Geom_Curve > &theSecondCurve, gp_Pnt &theFirstPnt1, gp_Pnt &theLastPnt1, gp_Pnt &theFirstPnt2, gp_Pnt &theLastPnt2, Handle< Geom_Curve > &theExtCurve, Standard_Boolean &theIsinfinite1, Standard_Boolean &theIsinfinite2, const Handle< Geom_Plane > &thePlane)
 Used by 2d Relation only Computes the 3d geometry of<anEdge1> and <anEdge2> in the current Plane and the extremities if any. Return in ExtCurve the 3d curve (not projected in the plane) of the first edge if <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If <indexExt> = 0, ExtCurve is Null. if there is an edge external to the plane, <isinfinite> is true if this edge is infinite. So, the extremities of it are not significant. Return TRUE if ok.
 
static Standard_Boolean ComputeGeomCurve (Handle< Geom_Curve > &aCurve, const Standard_Real first1, const Standard_Real last1, gp_Pnt &FirstPnt1, gp_Pnt &LastPnt1, const Handle< Geom_Plane > &aPlane, Standard_Boolean &isOnPlane)
 Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane and returns aCurve; Return TRUE if ok.
 
static Standard_Boolean ComputeGeometry (const TopoDS_Vertex &aVertex, gp_Pnt &point, const Handle< Geom_Plane > &aPlane, Standard_Boolean &isOnPlane)
 
static Standard_Boolean GetPlaneFromFace (const TopoDS_Face &aFace, gp_Pln &aPlane, Handle< Geom_Surface > &aSurf, PrsDim_KindOfSurface &aSurfType, Standard_Real &Offset)
 Tries to get Plane from Face. Returns Surface of Face in aSurf. Returns Standard_True and Plane of Face in aPlane in following cases: Face is Plane, Offset of Plane, Extrusion of Line and Offset of Extrusion of Line Returns pure type of Surface which can be: Plane, Cylinder, Cone, Sphere, Torus, SurfaceOfRevolution, SurfaceOfExtrusion.
 
static void InitFaceLength (const TopoDS_Face &aFace, gp_Pln &aPlane, Handle< Geom_Surface > &aSurface, PrsDim_KindOfSurface &aSurfaceType, Standard_Real &anOffset)
 
static void InitLengthBetweenCurvilinearFaces (const TopoDS_Face &theFirstFace, const TopoDS_Face &theSecondFace, Handle< Geom_Surface > &theFirstSurf, Handle< Geom_Surface > &theSecondSurf, gp_Pnt &theFirstAttach, gp_Pnt &theSecondAttach, gp_Dir &theDirOnPlane)
 Finds attachment points on two curvilinear faces for length dimension.
 
static Standard_Boolean InitAngleBetweenPlanarFaces (const TopoDS_Face &theFirstFace, const TopoDS_Face &theSecondFace, gp_Pnt &theCenter, gp_Pnt &theFirstAttach, gp_Pnt &theSecondAttach, const Standard_Boolean theIsFirstPointSet=Standard_False)
 Finds three points for the angle dimension between two planes.
 
static Standard_Boolean InitAngleBetweenCurvilinearFaces (const TopoDS_Face &theFirstFace, const TopoDS_Face &theSecondFace, const PrsDim_KindOfSurface theFirstSurfType, const PrsDim_KindOfSurface theSecondSurfType, gp_Pnt &theCenter, gp_Pnt &theFirstAttach, gp_Pnt &theSecondAttach, const Standard_Boolean theIsFirstPointSet=Standard_False)
 Finds three points for the angle dimension between two curvilinear surfaces.
 
static gp_Pnt ProjectPointOnPlane (const gp_Pnt &aPoint, const gp_Pln &aPlane)
 
static gp_Pnt ProjectPointOnLine (const gp_Pnt &aPoint, const gp_Lin &aLine)
 
static gp_Pnt TranslatePointToBound (const gp_Pnt &aPoint, const gp_Dir &aDir, const Bnd_Box &aBndBox)
 
static Standard_Boolean InDomain (const Standard_Real aFirstPar, const Standard_Real aLastPar, const Standard_Real anAttachPar)
 returns True if point with anAttachPar is in domain of arc
 
static gp_Pnt NearestApex (const gp_Elips &elips, const gp_Pnt &pApex, const gp_Pnt &nApex, const Standard_Real fpara, const Standard_Real lpara, Standard_Boolean &IsInDomain)
 computes nearest to ellipse arc apex
 
static Standard_Real DistanceFromApex (const gp_Elips &elips, const gp_Pnt &Apex, const Standard_Real par)
 computes length of ellipse arc in parametric units
 
static void ComputeProjEdgePresentation (const Handle< Prs3d_Presentation > &aPres, const Handle< Prs3d_Drawer > &aDrawer, const TopoDS_Edge &anEdge, const Handle< Geom_Curve > &ProjCurve, const gp_Pnt &FirstP, const gp_Pnt &LastP, const Quantity_NameOfColor aColor=Quantity_NOC_PURPLE, const Standard_Real aWidth=2, const Aspect_TypeOfLine aProjTOL=Aspect_TOL_DASH, const Aspect_TypeOfLine aCallTOL=Aspect_TOL_DOT)
 
static void ComputeProjVertexPresentation (const Handle< Prs3d_Presentation > &aPres, const Handle< Prs3d_Drawer > &aDrawer, const TopoDS_Vertex &aVertex, const gp_Pnt &ProjPoint, const Quantity_NameOfColor aColor=Quantity_NOC_PURPLE, const Standard_Real aWidth=2, const Aspect_TypeOfMarker aProjTOM=Aspect_TOM_PLUS, const Aspect_TypeOfLine aCallTOL=Aspect_TOL_DOT)
 

Detailed Description

Auxiliary methods for computing dimensions.

Member Function Documentation

◆ ComputeGeomCurve()

static Standard_Boolean PrsDim::ComputeGeomCurve ( Handle< Geom_Curve > & aCurve,
const Standard_Real first1,
const Standard_Real last1,
gp_Pnt & FirstPnt1,
gp_Pnt & LastPnt1,
const Handle< Geom_Plane > & aPlane,
Standard_Boolean & isOnPlane )
static

Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane and returns aCurve; Return TRUE if ok.

◆ ComputeGeometry() [1/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theEdge,
Handle< Geom_Curve > & theCurve,
gp_Pnt & theFirstPnt,
gp_Pnt & theLastPnt )
static

Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any Return TRUE if ok.

◆ ComputeGeometry() [2/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theEdge,
Handle< Geom_Curve > & theCurve,
gp_Pnt & theFirstPnt,
gp_Pnt & theLastPnt,
Handle< Geom_Curve > & theExtCurve,
Standard_Boolean & theIsInfinite,
Standard_Boolean & theIsOnPlane,
const Handle< Geom_Plane > & thePlane )
static

Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any. If <aCurve> is not in the current plane, <extCurve> contains the not projected curve associated to <anEdge>. If <anEdge> is infinite, <isinfinite> = true and the 2 parameters <FirstPnt> and <LastPnt> have no signification. Return TRUE if ok.

◆ ComputeGeometry() [3/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theEdge,
Handle< Geom_Curve > & theCurve,
gp_Pnt & theFirstPnt,
gp_Pnt & theLastPnt,
Standard_Boolean & theIsInfinite )
static

Used by dimensions only. Computes the 3d geometry of <anEdge>. Return TRUE if ok.

◆ ComputeGeometry() [4/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theFirstEdge,
const TopoDS_Edge & theSecondEdge,
Handle< Geom_Curve > & theFirstCurve,
Handle< Geom_Curve > & theSecondCurve,
gp_Pnt & theFirstPnt1,
gp_Pnt & theLastPnt1,
gp_Pnt & theFirstPnt2,
gp_Pnt & theLastPnt2,
const Handle< Geom_Plane > & thePlane )
static

Used by 2d Relation only Computes the 3d geometry of <anEdge> in the current WorkingPlane and the extremities if any Return TRUE if ok.

◆ ComputeGeometry() [5/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theFirstEdge,
const TopoDS_Edge & theSecondEdge,
Handle< Geom_Curve > & theFirstCurve,
Handle< Geom_Curve > & theSecondCurve,
gp_Pnt & theFirstPnt1,
gp_Pnt & theLastPnt1,
gp_Pnt & theFirstPnt2,
gp_Pnt & theLastPnt2,
Standard_Boolean & theIsinfinite1,
Standard_Boolean & theIsinfinite2 )
static

Used by dimensions only.Computes the 3d geometry of<anEdge1> and <anEdge2> and checks if they are infinite.

◆ ComputeGeometry() [6/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Edge & theFirstEdge,
const TopoDS_Edge & theSecondEdge,
Standard_Integer & theExtIndex,
Handle< Geom_Curve > & theFirstCurve,
Handle< Geom_Curve > & theSecondCurve,
gp_Pnt & theFirstPnt1,
gp_Pnt & theLastPnt1,
gp_Pnt & theFirstPnt2,
gp_Pnt & theLastPnt2,
Handle< Geom_Curve > & theExtCurve,
Standard_Boolean & theIsinfinite1,
Standard_Boolean & theIsinfinite2,
const Handle< Geom_Plane > & thePlane )
static

Used by 2d Relation only Computes the 3d geometry of<anEdge1> and <anEdge2> in the current Plane and the extremities if any. Return in ExtCurve the 3d curve (not projected in the plane) of the first edge if <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If <indexExt> = 0, ExtCurve is Null. if there is an edge external to the plane, <isinfinite> is true if this edge is infinite. So, the extremities of it are not significant. Return TRUE if ok.

◆ ComputeGeometry() [7/7]

static Standard_Boolean PrsDim::ComputeGeometry ( const TopoDS_Vertex & aVertex,
gp_Pnt & point,
const Handle< Geom_Plane > & aPlane,
Standard_Boolean & isOnPlane )
static

◆ ComputeProjEdgePresentation()

static void PrsDim::ComputeProjEdgePresentation ( const Handle< Prs3d_Presentation > & aPres,
const Handle< Prs3d_Drawer > & aDrawer,
const TopoDS_Edge & anEdge,
const Handle< Geom_Curve > & ProjCurve,
const gp_Pnt & FirstP,
const gp_Pnt & LastP,
const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE,
const Standard_Real aWidth = 2,
const Aspect_TypeOfLine aProjTOL = Aspect_TOL_DASH,
const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT )
static

◆ ComputeProjVertexPresentation()

static void PrsDim::ComputeProjVertexPresentation ( const Handle< Prs3d_Presentation > & aPres,
const Handle< Prs3d_Drawer > & aDrawer,
const TopoDS_Vertex & aVertex,
const gp_Pnt & ProjPoint,
const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE,
const Standard_Real aWidth = 2,
const Aspect_TypeOfMarker aProjTOM = Aspect_TOM_PLUS,
const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT )
static

◆ DistanceFromApex()

static Standard_Real PrsDim::DistanceFromApex ( const gp_Elips & elips,
const gp_Pnt & Apex,
const Standard_Real par )
static

computes length of ellipse arc in parametric units

◆ Farest()

static gp_Pnt PrsDim::Farest ( const TopoDS_Shape & aShape,
const gp_Pnt & aPoint )
static

◆ GetPlaneFromFace()

static Standard_Boolean PrsDim::GetPlaneFromFace ( const TopoDS_Face & aFace,
gp_Pln & aPlane,
Handle< Geom_Surface > & aSurf,
PrsDim_KindOfSurface & aSurfType,
Standard_Real & Offset )
static

Tries to get Plane from Face. Returns Surface of Face in aSurf. Returns Standard_True and Plane of Face in aPlane in following cases: Face is Plane, Offset of Plane, Extrusion of Line and Offset of Extrusion of Line Returns pure type of Surface which can be: Plane, Cylinder, Cone, Sphere, Torus, SurfaceOfRevolution, SurfaceOfExtrusion.

◆ InDomain()

static Standard_Boolean PrsDim::InDomain ( const Standard_Real aFirstPar,
const Standard_Real aLastPar,
const Standard_Real anAttachPar )
static

returns True if point with anAttachPar is in domain of arc

◆ InitAngleBetweenCurvilinearFaces()

static Standard_Boolean PrsDim::InitAngleBetweenCurvilinearFaces ( const TopoDS_Face & theFirstFace,
const TopoDS_Face & theSecondFace,
const PrsDim_KindOfSurface theFirstSurfType,
const PrsDim_KindOfSurface theSecondSurfType,
gp_Pnt & theCenter,
gp_Pnt & theFirstAttach,
gp_Pnt & theSecondAttach,
const Standard_Boolean theIsFirstPointSet = Standard_False )
static

Finds three points for the angle dimension between two curvilinear surfaces.

◆ InitAngleBetweenPlanarFaces()

static Standard_Boolean PrsDim::InitAngleBetweenPlanarFaces ( const TopoDS_Face & theFirstFace,
const TopoDS_Face & theSecondFace,
gp_Pnt & theCenter,
gp_Pnt & theFirstAttach,
gp_Pnt & theSecondAttach,
const Standard_Boolean theIsFirstPointSet = Standard_False )
static

Finds three points for the angle dimension between two planes.

◆ InitFaceLength()

static void PrsDim::InitFaceLength ( const TopoDS_Face & aFace,
gp_Pln & aPlane,
Handle< Geom_Surface > & aSurface,
PrsDim_KindOfSurface & aSurfaceType,
Standard_Real & anOffset )
static

◆ InitLengthBetweenCurvilinearFaces()

static void PrsDim::InitLengthBetweenCurvilinearFaces ( const TopoDS_Face & theFirstFace,
const TopoDS_Face & theSecondFace,
Handle< Geom_Surface > & theFirstSurf,
Handle< Geom_Surface > & theSecondSurf,
gp_Pnt & theFirstAttach,
gp_Pnt & theSecondAttach,
gp_Dir & theDirOnPlane )
static

Finds attachment points on two curvilinear faces for length dimension.

Parameters
thePlaneDir[in] the direction on the dimension plane to compute the plane automatically. It will not be taken into account if plane is defined by user.

◆ Nearest() [1/3]

static gp_Pnt PrsDim::Nearest ( const gp_Lin & theLine,
const gp_Pnt & thePoint )
static
Returns
the nearest point on the line.

◆ Nearest() [2/3]

static Standard_Boolean PrsDim::Nearest ( const Handle< Geom_Curve > & theCurve,
const gp_Pnt & thePoint,
const gp_Pnt & theFirstPoint,
const gp_Pnt & theLastPoint,
gp_Pnt & theNearestPoint )
static

For the given point finds nearest point on the curve,.

Returns
TRUE if found point is belongs to the curve and FALSE otherwise.

◆ Nearest() [3/3]

static gp_Pnt PrsDim::Nearest ( const TopoDS_Shape & aShape,
const gp_Pnt & aPoint )
static

Returns the nearest point in a shape. This is used by several classes in calculation of dimensions.

◆ NearestApex()

static gp_Pnt PrsDim::NearestApex ( const gp_Elips & elips,
const gp_Pnt & pApex,
const gp_Pnt & nApex,
const Standard_Real fpara,
const Standard_Real lpara,
Standard_Boolean & IsInDomain )
static

computes nearest to ellipse arc apex

◆ ProjectPointOnLine()

static gp_Pnt PrsDim::ProjectPointOnLine ( const gp_Pnt & aPoint,
const gp_Lin & aLine )
static

◆ ProjectPointOnPlane()

static gp_Pnt PrsDim::ProjectPointOnPlane ( const gp_Pnt & aPoint,
const gp_Pln & aPlane )
static

◆ TranslatePointToBound()

static gp_Pnt PrsDim::TranslatePointToBound ( const gp_Pnt & aPoint,
const gp_Dir & aDir,
const Bnd_Box & aBndBox )
static

The documentation for this class was generated from the following file: