summaryrefslogtreecommitdiff
path: root/inc/MeshVS_MeshPrsBuilder.hxx
blob: c8bdb6c25476d494c39213575a9e9198de2b598f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _MeshVS_MeshPrsBuilder_HeaderFile
#define _MeshVS_MeshPrsBuilder_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_MeshVS_MeshPrsBuilder_HeaderFile
#include <Handle_MeshVS_MeshPrsBuilder.hxx>
#endif

#ifndef _MeshVS_PrsBuilder_HeaderFile
#include <MeshVS_PrsBuilder.hxx>
#endif
#ifndef _Handle_MeshVS_Mesh_HeaderFile
#include <Handle_MeshVS_Mesh.hxx>
#endif
#ifndef _MeshVS_DisplayModeFlags_HeaderFile
#include <MeshVS_DisplayModeFlags.hxx>
#endif
#ifndef _Handle_MeshVS_DataSource_HeaderFile
#include <Handle_MeshVS_DataSource.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _MeshVS_BuilderPriority_HeaderFile
#include <MeshVS_BuilderPriority.hxx>
#endif
#ifndef _Handle_Prs3d_Presentation_HeaderFile
#include <Handle_Prs3d_Presentation.hxx>
#endif
#ifndef _TColStd_PackedMapOfInteger_HeaderFile
#include <TColStd_PackedMapOfInteger.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Graphic3d_ArrayOfPolylines_HeaderFile
#include <Handle_Graphic3d_ArrayOfPolylines.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Graphic3d_ArrayOfPolygons_HeaderFile
#include <Handle_Graphic3d_ArrayOfPolygons.hxx>
#endif
#ifndef _Handle_MeshVS_HArray1OfSequenceOfInteger_HeaderFile
#include <Handle_MeshVS_HArray1OfSequenceOfInteger.hxx>
#endif
#ifndef _Handle_Graphic3d_ArrayOfPrimitives_HeaderFile
#include <Handle_Graphic3d_ArrayOfPrimitives.hxx>
#endif
#ifndef _Handle_Graphic3d_AspectFillArea3d_HeaderFile
#include <Handle_Graphic3d_AspectFillArea3d.hxx>
#endif
#ifndef _Handle_Graphic3d_AspectLine3d_HeaderFile
#include <Handle_Graphic3d_AspectLine3d.hxx>
#endif
class MeshVS_Mesh;
class MeshVS_DataSource;
class Prs3d_Presentation;
class TColStd_Array1OfReal;
class Graphic3d_ArrayOfPolylines;
class Graphic3d_ArrayOfPolygons;
class MeshVS_HArray1OfSequenceOfInteger;
class Graphic3d_ArrayOfPrimitives;
class Graphic3d_AspectFillArea3d;
class Graphic3d_AspectLine3d;


//! This class provides methods to compute base mesh presentation <br>
class MeshVS_MeshPrsBuilder : public MeshVS_PrsBuilder {

public:

  //! Creates builder with certain display mode flags, data source, ID and priority <br>
  Standard_EXPORT   MeshVS_MeshPrsBuilder(const Handle(MeshVS_Mesh)& Parent,const MeshVS_DisplayModeFlags& Flags = MeshVS_DMF_OCCMask,const Handle(MeshVS_DataSource)& DS = 0,const Standard_Integer Id = -1,const MeshVS_BuilderPriority& Priority = MeshVS_BP_Mesh);
  //! Builds base mesh presentation by calling the methods below <br>
  Standard_EXPORT   virtual  void Build(const Handle(Prs3d_Presentation)& Prs,const TColStd_PackedMapOfInteger& IDs,TColStd_PackedMapOfInteger& IDsToExclude,const Standard_Boolean IsElement,const Standard_Integer DisplayMode) const;
  //! Builds nodes presentation <br>
  Standard_EXPORT   virtual  void BuildNodes(const Handle(Prs3d_Presentation)& Prs,const TColStd_PackedMapOfInteger& IDs,TColStd_PackedMapOfInteger& IDsToExclude,const Standard_Integer DisplayMode) const;
  //! Builds elements presentation <br>
  Standard_EXPORT   virtual  void BuildElements(const Handle(Prs3d_Presentation)& Prs,const TColStd_PackedMapOfInteger& IDs,TColStd_PackedMapOfInteger& IDsToExclude,const Standard_Integer DisplayMode) const;
  //! Builds presentation of hilighted entity <br>
  Standard_EXPORT   virtual  void BuildHilightPrs(const Handle(Prs3d_Presentation)& Prs,const TColStd_PackedMapOfInteger& IDs,const Standard_Boolean IsElement) const;
  //! Add to array polygons or polylines representing volume <br>
  Standard_EXPORT   static  void AddVolumePrs(const Handle(MeshVS_HArray1OfSequenceOfInteger)& Topo,const TColStd_Array1OfReal& Nodes,const Standard_Integer NbNodes,const Handle(Graphic3d_ArrayOfPrimitives)& Array,const Standard_Boolean IsReflected,const Standard_Boolean IsShrinked,const Standard_Boolean IsSelect,const Standard_Real ShrinkCoef) ;
  //! Calculate how many polygons or polylines are necessary to draw passed topology <br>
  Standard_EXPORT   static  void HowManyPrimitives(const Handle(MeshVS_HArray1OfSequenceOfInteger)& Topo,const Standard_Boolean AsPolygons,const Standard_Boolean IsSelect,const Standard_Integer NbNodes,Standard_Integer& Vertices,Standard_Integer& Bounds) ;




  DEFINE_STANDARD_RTTI(MeshVS_MeshPrsBuilder)

protected:

  //! Add to array of polylines some lines representing link <br>
  Standard_EXPORT     void AddLinkPrs(const TColStd_Array1OfReal& theCoords,const Handle(Graphic3d_ArrayOfPolylines)& theLines,const Standard_Boolean IsShrinked,const Standard_Real ShrinkCoef) const;
  //! Add to array of polylines some lines representing face's wire <br>
  Standard_EXPORT     void AddFaceWirePrs(const TColStd_Array1OfReal& theCoords,const Standard_Integer NbNodes,const Handle(Graphic3d_ArrayOfPolylines)& theLines,const Standard_Boolean IsShrinked,const Standard_Real ShrinkCoef) const;
  //! Add to array of polygons a polygon representing face <br>
  Standard_EXPORT     void AddFaceSolidPrs(const Standard_Integer ID,const TColStd_Array1OfReal& theCoords,const Standard_Integer NbNodes,const Standard_Integer MaxNodes,const Handle(Graphic3d_ArrayOfPolygons)& thePolygons,const Standard_Boolean IsReflected,const Standard_Boolean IsShrinked,const Standard_Real ShrinkCoef,const Standard_Boolean IsMeshSmoothShading) const;
  //! Draw array of polygons and polylines in the certain order according to transparency <br>
  Standard_EXPORT     void DrawArrays(const Handle(Prs3d_Presentation)& Prs,const Handle(Graphic3d_ArrayOfPolygons)& thePolygons,const Handle(Graphic3d_ArrayOfPolylines)& theLines,const Handle(Graphic3d_ArrayOfPolylines)& theLinkLines,const Handle(Graphic3d_ArrayOfPolygons)& theVolumesInShad,const Standard_Boolean IsPolygonsEdgesOff,const Standard_Boolean IsSelected,const Handle(Graphic3d_AspectFillArea3d)& theFillAsp,const Handle(Graphic3d_AspectLine3d)& theLineAsp) const;
  //! Default calculation of center of face or link. This method if useful for shrink mode presentation <br>
//! theCoords is array of nodes co-ordinates in the strict order X1, Y1, Z1, X2... <br>
//! NbNodes is number of nodes an element consist of <br>
//! xG, yG, zG are co-ordinates of center whose will be returned <br>
  Standard_EXPORT   static  void CalculateCenter(const TColStd_Array1OfReal& theCoords,const Standard_Integer NbNodes,Standard_Real& xG,Standard_Real& yG,Standard_Real& zG) ;



private: 




};





// other Inline functions and methods (like "C++: function call" methods)


#endif