File indexing completed on 2026-08-17 09:14:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _MeshVS_MeshPrsBuilder_HeaderFile
0017 #define _MeshVS_MeshPrsBuilder_HeaderFile
0018
0019 #include <MeshVS_PrsBuilder.hxx>
0020 #include <MeshVS_DisplayModeFlags.hxx>
0021 #include <MeshVS_BuilderPriority.hxx>
0022 #include <TColStd_PackedMapOfInteger.hxx>
0023 #include <TColStd_Array1OfReal.hxx>
0024 #include <MeshVS_HArray1OfSequenceOfInteger.hxx>
0025
0026 class MeshVS_Mesh;
0027 class MeshVS_DataSource;
0028 class Graphic3d_ArrayOfSegments;
0029 class Graphic3d_ArrayOfTriangles;
0030 class Graphic3d_ArrayOfPrimitives;
0031 class Graphic3d_AspectFillArea3d;
0032 class Graphic3d_AspectLine3d;
0033
0034 DEFINE_STANDARD_HANDLE(MeshVS_MeshPrsBuilder, MeshVS_PrsBuilder)
0035
0036
0037 class MeshVS_MeshPrsBuilder : public MeshVS_PrsBuilder
0038 {
0039
0040 public:
0041
0042 Standard_EXPORT MeshVS_MeshPrsBuilder(const Handle(MeshVS_Mesh)& Parent,
0043 const MeshVS_DisplayModeFlags& Flags = MeshVS_DMF_OCCMask,
0044 const Handle(MeshVS_DataSource)& DS = 0,
0045 const Standard_Integer Id = -1,
0046 const MeshVS_BuilderPriority& Priority = MeshVS_BP_Mesh);
0047
0048
0049 Standard_EXPORT virtual void Build(const Handle(Prs3d_Presentation)& Prs,
0050 const TColStd_PackedMapOfInteger& IDs,
0051 TColStd_PackedMapOfInteger& IDsToExclude,
0052 const Standard_Boolean IsElement,
0053 const Standard_Integer DisplayMode) const Standard_OVERRIDE;
0054
0055
0056 Standard_EXPORT virtual void BuildNodes(const Handle(Prs3d_Presentation)& Prs,
0057 const TColStd_PackedMapOfInteger& IDs,
0058 TColStd_PackedMapOfInteger& IDsToExclude,
0059 const Standard_Integer DisplayMode) const;
0060
0061
0062 Standard_EXPORT virtual void BuildElements(const Handle(Prs3d_Presentation)& Prs,
0063 const TColStd_PackedMapOfInteger& IDs,
0064 TColStd_PackedMapOfInteger& IDsToExclude,
0065 const Standard_Integer DisplayMode) const;
0066
0067
0068 Standard_EXPORT virtual void BuildHilightPrs(const Handle(Prs3d_Presentation)& Prs,
0069 const TColStd_PackedMapOfInteger& IDs,
0070 const Standard_Boolean IsElement) const;
0071
0072
0073 Standard_EXPORT static void AddVolumePrs(const Handle(MeshVS_HArray1OfSequenceOfInteger)& Topo,
0074 const TColStd_Array1OfReal& Nodes,
0075 const Standard_Integer NbNodes,
0076 const Handle(Graphic3d_ArrayOfPrimitives)& Array,
0077 const Standard_Boolean IsReflected,
0078 const Standard_Boolean IsShrinked,
0079 const Standard_Boolean IsSelect,
0080 const Standard_Real ShrinkCoef);
0081
0082
0083 Standard_EXPORT static void HowManyPrimitives(
0084 const Handle(MeshVS_HArray1OfSequenceOfInteger)& Topo,
0085 const Standard_Boolean AsPolygons,
0086 const Standard_Boolean IsSelect,
0087 const Standard_Integer NbNodes,
0088 Standard_Integer& Vertices,
0089 Standard_Integer& Bounds);
0090
0091 DEFINE_STANDARD_RTTIEXT(MeshVS_MeshPrsBuilder, MeshVS_PrsBuilder)
0092
0093 protected:
0094
0095 Standard_EXPORT void AddLinkPrs(const TColStd_Array1OfReal& theCoords,
0096 const Handle(Graphic3d_ArrayOfSegments)& theLines,
0097 const Standard_Boolean IsShrinked,
0098 const Standard_Real ShrinkCoef) const;
0099
0100
0101 Standard_EXPORT void AddFaceWirePrs(const TColStd_Array1OfReal& theCoords,
0102 const Standard_Integer theNbNodes,
0103 const Handle(Graphic3d_ArrayOfSegments)& theLines,
0104 const Standard_Boolean theIsShrinked,
0105 const Standard_Real theShrinkingCoef) const;
0106
0107
0108 Standard_EXPORT void AddFaceSolidPrs(const Standard_Integer ID,
0109 const TColStd_Array1OfReal& theCoords,
0110 const Standard_Integer theNbNodes,
0111 const Standard_Integer theMaxNodes,
0112 const Handle(Graphic3d_ArrayOfTriangles)& theTriangles,
0113 const Standard_Boolean theIsReflected,
0114 const Standard_Boolean theIsShrinked,
0115 const Standard_Real theShrinkCoef,
0116 const Standard_Boolean theIsMeshSmoothShading) const;
0117
0118
0119 Standard_EXPORT void DrawArrays(const Handle(Prs3d_Presentation)& Prs,
0120 const Handle(Graphic3d_ArrayOfPrimitives)& thePolygons,
0121 const Handle(Graphic3d_ArrayOfPrimitives)& theLines,
0122 const Handle(Graphic3d_ArrayOfPrimitives)& theLinkLines,
0123 const Handle(Graphic3d_ArrayOfPrimitives)& theVolumesInShad,
0124 const Standard_Boolean IsPolygonsEdgesOff,
0125 const Standard_Boolean IsSelected,
0126 const Handle(Graphic3d_AspectFillArea3d)& theFillAsp,
0127 const Handle(Graphic3d_AspectLine3d)& theLineAsp) const;
0128
0129
0130
0131
0132
0133 Standard_EXPORT static void CalculateCenter(const TColStd_Array1OfReal& theCoords,
0134 const Standard_Integer NbNodes,
0135 Standard_Real& xG,
0136 Standard_Real& yG,
0137 Standard_Real& zG);
0138 };
0139
0140 #endif