C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
+ Collaboration diagram for Construction of Plane Projections:

Classes

class  MbProjectionsObjects
 The additional projected objects. More...
 
class  GetVestigesTransData
 A structure for data transmission between threads. More...
 
struct  MbMapSettings
 Parameters for the construction of one view projection.
. More...
 
class  MbMapBodiesPArray
 The set of solids projections. More...
 
struct  MbMapVisibilityMode
 Visibility mode of mapping. More...
 
class  CurveWType
 The curve with the type and tolerance. More...
 
class  MbAnnCurves
 The array of annotative curves. More...
 
class  MbSimbolthThreadView
 The implementation of the annotation view interface. More...
 
struct  ItAnnObjectStore
 The interface of annotated objects storage. More...
 
struct  ItSymbolObjectStore
 The interface of storage of conventional notations. More...
 
class  MbSpacePoints
 The array of spatial points for projection. More...
 
class  MbSpaceCurves
 An array of spatial curves for projection. More...
 
struct  MbCutLump
 Solid with a sing cutting in derive view. More...
 
struct  MbMappingLumps
 A solid or a set of solids which are defined in a coordinate system with an attribute of cutting in sections and cutaways. More...
 
class  MbPolygon3DSolid
 A polygon with a solid. More...
 
class  MbMapViewInfo
 The information about a view. More...
 
class  MbCompContourArray
 An array of contours belonging to the certain component. More...
 
class  MbSectionMap
 A data for constructing a set of sections and cutaways of shells. More...
 
struct  MbSectionMapIteratorAbs
 The interface of iterator of section views. More...
 
class  MbSectionMapIterator
 The iterator of section views of solid. More...
 
class  MbLocalSectionMapIterator
 The iterator of local views of sections of solid. More...
 
struct  ThreadMapperStruct
 A structure for the thread mapping creator. More...
 
class  MbBaseVestige
 The vestige of three-dimensional object. More...
 
class  MbVertexVestige
 The vestige of a vertex. More...
 
struct  MbCurveVestige
 The information about a curve vestige. More...
 
class  MbEdgeVestige
 The vestige of an edge or a curve. More...
 
class  MbFaceVestige
 The vestige of a face. More...
 
class  MbAnnotationEdgeVestige
 The vestige of an annotative object. More...
 
class  MbSymbolVestige
 The vestige of a conventional notation. More...
 
struct  MbVEFVestiges
 The set of arrays which are given after getting of all lines. More...
 

Enumerations

enum  AnnotatedObjectType { aot_SymbolicThread = 0 , aot_SymbolicThread_CuttedView , aot_SymbolicThread_SectionView }
 A type of an annotated object. More...
 
enum  MbeMapViewType { mvt_View , mvt_Cut , mvt_Section }
 A type of an associative view. More...
 
enum  MbMapSpaceCurveType {
  mst_Unset = 0 , mst_Degenerate , mst_Line , mst_Circle ,
  mst_Ellipse , mst_Arbitrary
}
 Тип пространственной геометрии кривой. More...
 
enum  MbeThrMapType { tmt_CompleteView = 0 , tmt_CuttedView , tmt_SectionView }
 Mapping type. More...
 
enum  MbeThrState { ts_NotChanged = 0 , ts_Changed , ts_Degenerated }
 Thread state. More...
 
enum  MbeThrAdapt {
  ta_UsingNothing = 0 , ta_UsingGabarit , ta_UsingSurfaces , ta_UsingSolid ,
  ta_TypesCount
}
 Method of thread fitting (adapting). More...
 

Functions

MbResultType SilhouetteCurve (const MbSurface &surface, const MbVector3D &eye, bool perspective, bool removeOnSurfaceBounds, RPArray< MbCurve3D > &result, VERSION version=Math::DefaultMathVersion())
 Create an array of isocline curves of the surface. More...
 
MbResultType SilhouetteCurve (const MbFace &face, const MbVector3D &eye, bool perspective, RPArray< MbCurve3D > &result, VERSION version=Math::DefaultMathVersion())
 Create an array of isocline curves of the face. More...
 
MbResultType SilhouetteCurve (const MbSurface &surface, const MbAxis3D &axis, bool removeOnSurfaceBounds, RPArray< MbCurve3D > &curves, VERSION version=Math::DefaultMathVersion())
 Create an array of isocline curves of the rotated surface. More...
 
MbResultType SilhouetteCurve (const MbFace &face, const MbAxis3D &axis, RPArray< MbCurve3D > &curves, VERSION version=Math::DefaultMathVersion())
 Create an array of isocline curves of the rotated face. More...
 
MbResultType GetVestiges (const MbPlacement3D &place, double znear, const RPArray< MbLump > &lumps, const MbProjectionsObjects &objects, MbVEFVestiges &result, const MbMapVisibilityMode &visMode, VERSION version=Math::DefaultMathVersion(), bool merge=true, const std::vector< MbLumpCube > *prevCubes=nullptr)
 Construction of view projections. More...
 
MbResultType GetVestiges (const SArray< MbMapSettings > &settings, const RPArray< MbLump > &lumps, const MbProjectionsObjects &objects, PArray< MbVEFVestiges > &results, VERSION version=Math::DefaultMathVersion())
 Construction of several view projections. More...
 
void JustCutLimitCurve (const RPArray< MbLump > &lumps, const MbCurve &contour, const SArray< MbCrossPoint > &cross, const MbMapViewInfo &baseViewInfo, const MbMapViewInfo &viewInfo, RPArray< MbCurve > &curves)
 The definition of boundary curve regions. More...
 
void HiddenLinesMapping (const RPArray< MbLump > &lumps, const MbPlacement3D &place, double znear, double sag, PArray< MbPolygon3DSolid > &visibleEdges, PArray< MbPolygon3DSolid > &hiddenEdges, PArray< MbPolygon3DSolid > &visibleTangs, PArray< MbPolygon3DSolid > &hiddenTangs)
 Calculate polygons of lines. More...
 
void VisualLinesMapping (const RPArray< MbLump > &lumps, const MbPlacement3D &place, double znear, double sag, PArray< MbPolygon3DSolid > &visibleEdges, PArray< MbPolygon3DSolid > &visibleTangs, VERSION version=Math::DefaultMathVersion())
 Calculate polygons of visible lines. More...
 
int AnnotationSort (const MbSimbolthThreadView **pf, const MbSimbolthThreadView **ps)
 Sort the objects. More...
 
void SetCuttingFlags (RPArray< MbLump > &lumps, const SArray< uint > *baseNotSected, const SArray< uint > *deriveNotSected)
 Set cutting flags. More...
 
bool PerformThreadMapping (const ThreadMapperStruct &_thrStruct, MbSimbolthThreadView &_symbView)
 Calculate thread mapping lines. More...
 
bool PerformThreadMapping (const ThreadMapperStruct &_thrStruct, MbAnnCurves &annCurves)
 Calculate thread mapping lines. More...
 
MbEdgeVestigeAddVestigeCurve (uint otherComp, size_t otherIdent, const MbName &otherName, RPArray< MbEdgeVestige > &arr, bool isCenterLine, bool ownName)
 Add the MbEdgeVestige to an array. More...
 
MbAnnotationEdgeVestigeAddVestigeAnnotationEdge (uint otherComp, size_t otherIdent, const MbTopologyItem *otherItem, const MbName &otherName, MbBaseVestige::Type type, MbBaseVestige::SubType subType, RPArray< MbAnnotationEdgeVestige > &array)
 Add the MbAnnotationEdgeVestige to an array. More...
 
MbVertexVestigeGetVertexI (size_t i, const MbVEFVestiges &vestiges)
 The access to an array element. More...
 
template<class ThreadsVector >
bool CheckThreads (ThreadsVector &threads, const MbPlacement3D *placeSec, bool checkThreadNames, double angleEps=Math::angleRegion)
 Delete incorrect threads. More...
 
bool GetThreadEdgeCentre (const MbCurveEdge &edge, MbCartPoint3D &pnt)
 Get a central point. More...
 
bool CalculateThreadLimits (const MbFace &threadFace, const MbAxis3D &threadAxis, const MbFace &face, MbVector3D &threadDir, MbCartPoint3D &facePnt1, MbCartPoint3D &facePnt2, MbCartPoint3D &axisPnt1, MbCartPoint3D &axisPnt2, double dr=0.0, bool findCommonEdges=true)
 Find the boundary point of the thread. More...
 

Detailed Description

Enumeration Type Documentation

◆ AnnotatedObjectType

A type of an annotated object.

The type of annotated object.

Enumerator
aot_SymbolicThread 

The projective (full) view.

aot_SymbolicThread_CuttedView 

The cutaway-view.

aot_SymbolicThread_SectionView 

The section-view.

◆ MbeMapViewType

A type of an associative view.

A type of an associative view.

Enumerator
mvt_View 

A view.

mvt_Cut 

A cutaway.

mvt_Section 

A section.

◆ MbMapSpaceCurveType

Тип пространственной геометрии кривой.

Тип пространственной геометрии кривой.

Enumerator
mst_Unset 

тип геометрии кривой неопределен

mst_Degenerate 

кривая в проекции вырождается в точку

mst_Line 

кривая в проекции вырождается в линию

mst_Circle 

кривая в проекции вырождается в окружность

mst_Ellipse 

кривая в проекции вырождается в эллипс

mst_Arbitrary 

произвольный тип кривой

◆ MbeThrMapType

Mapping type.

A type of thread mapping.

Enumerator
tmt_CompleteView 

Full view. Coordinate system in creator of thread mapping ThreadMapperStruct determines plane of view. Map all.

tmt_CuttedView 

The cutaway-view. Coordinate system in creator of thread mapping ThreadMapperStruct determines plane of cutaway. Map only that behind plane.

tmt_SectionView 

Section. Coordinate system in creator of thread mapping ThreadMapperStruct determines section plane. Map only that on plane.

◆ MbeThrState

Thread state.

Thread state.

Enumerator
ts_NotChanged 

Not changed.

ts_Changed 

Changed.

ts_Degenerated 

Degenerated.

◆ MbeThrAdapt

Method of thread fitting (adapting).

Method of fitting start and end of thread.

Enumerator
ta_UsingNothing 

No fit, check only.

ta_UsingGabarit 

By solid bounding box.

ta_UsingSurfaces 

By solid surfaces below thread.

ta_UsingSolid 

By solid.

ta_TypesCount 

Count of thread fitting methods.

Function Documentation

◆ SilhouetteCurve() [1/4]

MbResultType SilhouetteCurve ( const MbSurface surface,
const MbVector3D eye,
bool  perspective,
bool  removeOnSurfaceBounds,
RPArray< MbCurve3D > &  result,
VERSION  version = Math::DefaultMathVersion() 
)

Create an array of isocline curves of the surface.

Create an array of isocline curves of the surface with truncation by the definition domain.

Parameters
[in]surface- The surface.
[in]eye- The direction of view.
[in]perspective- Whether the projection is perspective.
[in]removeOnSurfaceBounds- Remove the isocline curves coincident with the surface bounds.
[out]result- The output array of isocline curves.
[in]version- The version.
Returns
Returns operation result code.

◆ SilhouetteCurve() [2/4]

MbResultType SilhouetteCurve ( const MbFace face,
const MbVector3D eye,
bool  perspective,
RPArray< MbCurve3D > &  result,
VERSION  version = Math::DefaultMathVersion() 
)

Create an array of isocline curves of the face.

Create an array of isocline curves of the face with truncation by the definition domain.

Parameters
[in]face- The face.
[in]eye- The direction of view.
[in]perspective- Whether the projection is perspective.
[out]result- The output array of isocline curves.
[in]version- The version.
Returns
Returns operation result code.

◆ SilhouetteCurve() [3/4]

MbResultType SilhouetteCurve ( const MbSurface surface,
const MbAxis3D axis,
bool  removeOnSurfaceBounds,
RPArray< MbCurve3D > &  curves,
VERSION  version = Math::DefaultMathVersion() 
)

Create an array of isocline curves of the rotated surface.

Create an array of isocline curves of the surface with truncation by the definition domain.

Parameters
[in]surface- The surface.
[in]axis- The axis of lathe section.
[in]removeOnSurfaceBounds- Remove the isocline curves coincident with the surface bounds.
[out]curves- The output array of isocline curves.
[in]version- The version.
Returns
Returns operation result code.

◆ SilhouetteCurve() [4/4]

MbResultType SilhouetteCurve ( const MbFace face,
const MbAxis3D axis,
RPArray< MbCurve3D > &  curves,
VERSION  version = Math::DefaultMathVersion() 
)

Create an array of isocline curves of the rotated face.

Create an array of isocline curves of the face with truncation by the definition domain.

Parameters
[in]face- The face.
[in]axis- The axis of lathe section.
[out]result- The output array of isocline curves.
[in]version- The version.
Returns
Returns operation result code.

◆ GetVestiges() [1/2]

MbResultType GetVestiges ( const MbPlacement3D place,
double  znear,
const RPArray< MbLump > &  lumps,
const MbProjectionsObjects objects,
MbVEFVestiges result,
const MbMapVisibilityMode visMode,
VERSION  version = Math::DefaultMathVersion(),
bool  merge = true,
const std::vector< MbLumpCube > *  prevCubes = nullptr 
)

Construction of view projections.

Construction of view projections to the given plane.
Creates a set of vestiges of objects - solids with matrices and additional projected objects.

Note
In multithreaded mode runs in parallel.
Parameters
[in]place- A projection plane.
[in]znear- A parameter of perspective image. Should be set to 0.0.
[in]lumps- Projected objects.
[in]objects- Additional projected objects.
[out]result- The result.
[in]visMode- Visibility mode of mapping. Applicable to projections of solids, spatial points, spatial curves. Not applicable to conventional notations.
[in]version- The version of construction. The last version Math::DefaultMathVersion().
[in]merge- Merge same curves (default true).
[in]prevCubes- Bounding boxes of solids before changes.
Returns
Returns the result of the operation.

◆ GetVestiges() [2/2]

MbResultType GetVestiges ( const SArray< MbMapSettings > &  settings,
const RPArray< MbLump > &  lumps,
const MbProjectionsObjects objects,
PArray< MbVEFVestiges > &  results,
VERSION  version = Math::DefaultMathVersion() 
)

Construction of several view projections.

Construction of projections to the given planes.
Creates sets of vestiges of objects (solids with matrices and additional projected objects).

Note
In multithreaded mode runs in parallel.
Parameters
[in]settings- An array of parameter sets for the construction of view projections.
[in]lumps- Projected objects.
[in]objects- Additional projected objects.
[out]results- The results array (is erased prior to the calculations with objects deletion). Destruction of the results is a responsibility of the function caller.
[in]version- The version of construction. The last version Math::DefaultMathVersion().
Returns
Returns the result of the operation.

◆ JustCutLimitCurve()

void JustCutLimitCurve ( const RPArray< MbLump > &  lumps,
const MbCurve contour,
const SArray< MbCrossPoint > &  cross,
const MbMapViewInfo baseViewInfo,
const MbMapViewInfo viewInfo,
RPArray< MbCurve > &  curves 
)

The definition of boundary curve regions.

Definition of regions of boundary curve of local view or remote view.

Note
In multithreaded mode runs in parallel.
Parameters
[in]lumps- Projected objects.
[in]contour- A boundary curve. In the coordinate system of the view "viewInfo".
[in]cross- Points of intersection between boundary curve and lines of drawing - points of intersection of curve on regions of different visibility.
[in]baseViewInfo- The information about base view, on which a local or sectional view:
a view type:
mvt_View - View,
mvt_Cut - Cutaway,
mvt_Section - Section;
a plane of view, cutaway or section.
[in]viewInfo- The information about a view:
a view type:
mvt_View - A local view. A detail view,
mvt_Cut - A local cutaway,
mvt_Section - A local section;
a plane of view, cutaway or section.
If the type of derived and basic view is not equal to the mvt_View then the type of the derived view must coincide with the type of the basic view.
[out]curves- The result - a set of visible pieces of a boundary curve.

◆ HiddenLinesMapping()

void HiddenLinesMapping ( const RPArray< MbLump > &  lumps,
const MbPlacement3D place,
double  znear,
double  sag,
PArray< MbPolygon3DSolid > &  visibleEdges,
PArray< MbPolygon3DSolid > &  hiddenEdges,
PArray< MbPolygon3DSolid > &  visibleTangs,
PArray< MbPolygon3DSolid > &  hiddenTangs 
)

Calculate polygons of lines.

Calculate polygons of visible and invisible lines for assembly.

Parameters
[in]lumps- A set of solids with matrices.
[in]place- A projection plane.
[in]znear- A parameter of perspective mapping. Set to be equal to 0.0.
[in]sag- An angular tolerance.
[out]visibleEdges- Polygons of visible lines of edges.
[out]hiddenEdges- Polygons of invisible lines of edges.
[out]visibleTangs- Polygons of visible lines of smooth edges.
[out]hiddenTangs- Polygons of invisible lines of smooth edges.

◆ VisualLinesMapping()

void VisualLinesMapping ( const RPArray< MbLump > &  lumps,
const MbPlacement3D place,
double  znear,
double  sag,
PArray< MbPolygon3DSolid > &  visibleEdges,
PArray< MbPolygon3DSolid > &  visibleTangs,
VERSION  version = Math::DefaultMathVersion() 
)

Calculate polygons of visible lines.

Calculate polygons of visible lines and isocline curves for assembly.

Parameters
[in]lumps- A set of solids with matrices.
[in]place- A projection plane.
[in]znear- A parameter of perspective mapping. Set to be equal to 0.0.
[in]sag- An angular tolerance.
[out]visibleEdges- Polygons of visible lines.
[out]visibleTangs- Polygons of visible lines of smooth edges.
[in]version- The version.

◆ AnnotationSort()

int AnnotationSort ( const MbSimbolthThreadView **  pf,
const MbSimbolthThreadView **  ps 
)
inline

Sort the objects.

Sort the annotative objects by the component name.

Parameters
[in]pf- The first object.
[in]ps- The second object.
Returns
0, if the names of components are equal,
-1, if the first object name is less than the second,
1, if the first object name is greater than the second.

◆ SetCuttingFlags()

void SetCuttingFlags ( RPArray< MbLump > &  lumps,
const SArray< uint > *  baseNotSected,
const SArray< uint > *  deriveNotSected 
)

Set cutting flags.

Set cutting flags.

◆ PerformThreadMapping() [1/2]

bool PerformThreadMapping ( const ThreadMapperStruct _thrStruct,
MbSimbolthThreadView _symbView 
)

Calculate thread mapping lines.

Calculate solid thread mapping lines (with interface).


Conditions for obtaining a set of curves for mapping:

  1. A thread axis must be perpendicular or colinear to the Z-axis of a view.
  2. Arrays of curves in the _symbView must be empty.
    Parameters
    [in]_thrStruct- Data for construction.
    [out]_symbView- A pointer to a view interface.
    Contains a set of curves of thread mapping in a solid coordinate system with visibility defining in projection.
    Returns
    returns true if the operation succeeded.

◆ PerformThreadMapping() [2/2]

bool PerformThreadMapping ( const ThreadMapperStruct _thrStruct,
MbAnnCurves annCurves 
)

Calculate thread mapping lines.

Calculate solid thread mapping lines (without interface).

Parameters
[in]_thrStruct- Data for construction.
[out]annCurves- The array of annotative curves.
Returns
returns true if the operation succeeded.

◆ AddVestigeCurve()

MbEdgeVestige* AddVestigeCurve ( uint  otherComp,
size_t  otherIdent,
const MbName otherName,
RPArray< MbEdgeVestige > &  arr,
bool  isCenterLine,
bool  ownName 
)
inline

Add the MbEdgeVestige to an array.

Add the MbEdgeVestige to an array by the private constructors.

Parameters
[in]otherComp- A component.
[in]otherIdent- A thread identifier.
[in]otherName- A name of a topological object.
[out]array- Array of edges.
[in]isCenterLine- Is curve is center line or not.
[in]ownName- Is otherName own object name or not.

◆ AddVestigeAnnotationEdge()

MbAnnotationEdgeVestige* AddVestigeAnnotationEdge ( uint  otherComp,
size_t  otherIdent,
const MbTopologyItem otherItem,
const MbName otherName,
MbBaseVestige::Type  type,
MbBaseVestige::SubType  subType,
RPArray< MbAnnotationEdgeVestige > &  array 
)
inline

Add the MbAnnotationEdgeVestige to an array.

Add the MbAnnotationEdgeVestige to an array by the private constructors.

Parameters
[in]otherComp- A component.
[in]otherIdent- A thread identifier.
[in]otherItem- A topological object.
[in]otherName- A name of a topological object.
[in]type- A subtype of annotative edges.
[in]subType- A subtype of annotative edges.
[out]array- Array of annotative edges.

◆ GetVertexI()

MbVertexVestige& GetVertexI ( size_t  i,
const MbVEFVestiges vestiges 
)
inline

The access to an array element.

The access to an array element by an index.

Parameters
[in]i- An index.
[in]array- An array of vertices vestiges.
Returns
A vestige of a vertex by an index.

◆ CheckThreads()

template<class ThreadsVector >
bool CheckThreads ( ThreadsVector &  threads,
const MbPlacement3D placeSec,
bool  checkThreadNames,
double  angleEps = Math::angleRegion 
)

Delete incorrect threads.

Delete degenerate threads and ones incorrectly located relative to plane of view.\ From set of threads will be deleted:
1) null-pointers,
2) threads with incorrect parameters,
3) threads without names,
4) duplicate threads (warning raised in case of duplication - shouldn't be such situations),
5) incorrectly located relative to plane of view: thread axis must be parallel or perpendicular to Z-axis of plane.

Parameters
[in,out]threads- Set of threads.
[in]placeSec- Plane of view.
[in]checkThreadNames- Whether a name of thread exists.

◆ GetThreadEdgeCentre()

bool GetThreadEdgeCentre ( const MbCurveEdge edge,
MbCartPoint3D pnt 
)

Get a central point.

Get a central point of closed edge or closed chain of edges.

Parameters
[in]edge- Edge.
[out]pnt- Central point as result.

◆ CalculateThreadLimits()

bool CalculateThreadLimits ( const MbFace threadFace,
const MbAxis3D threadAxis,
const MbFace face,
MbVector3D threadDir,
MbCartPoint3D facePnt1,
MbCartPoint3D facePnt2,
MbCartPoint3D axisPnt1,
MbCartPoint3D axisPnt2,
double  dr = 0.0,
bool  findCommonEdges = true 
)

Find the boundary point of the thread.

Find the boundary point of the thread on the edges size. The point on the thread axis streamlined along the direction of the thread axis.

Parameters
[in]threadFace- The face of thread.
[in]threadAxis- The axis of thread.
[in]face- Face adjacent to the edge of the thread.
[out]threadDir- The direction of the thread.
[out]facePnt1- Starting point on the adjacent face.
[out]facePnt2- The final point on the adjacent face.
[out]axisPnt1- Starting point for the thread axis.
[out]axisPnt2- Endpoint to the thread axis.
[in]dr- Thread depth.
[in]findCommonEdges- Find common edges.
Returns
Returns true, if successful.