summaryrefslogtreecommitdiff
path: root/inc/StlMesh_MeshDomain.hxx
blob: 013d2c81317b3d837c4f11bd8b146ac39b316232 (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
// 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 _StlMesh_MeshDomain_HeaderFile
#define _StlMesh_MeshDomain_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_StlMesh_MeshDomain_HeaderFile
#include <Handle_StlMesh_MeshDomain.hxx>
#endif

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _TColgp_SequenceOfXYZ_HeaderFile
#include <TColgp_SequenceOfXYZ.hxx>
#endif
#ifndef _StlMesh_SequenceOfMeshTriangle_HeaderFile
#include <StlMesh_SequenceOfMeshTriangle.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class Standard_NegativeValue;
class Standard_NullValue;
class StlMesh_SequenceOfMeshTriangle;
class TColgp_SequenceOfXYZ;


//! A  mesh domain is  a set of triangles defined with <br>
//!          three geometric vertices. The  mesh domain has its <br>
//!          own deflection. <br>
//! <br>
class StlMesh_MeshDomain : public MMgt_TShared {

public:

  //! The mesh deflection is defaulted to Confusion from <br>
//!          package Precision. <br>
  Standard_EXPORT   StlMesh_MeshDomain();
  //! Raised if the deflection is lower than zero <br>//! Raised if the deflection  is lower than  Confusion <br>
//!          from package Precision <br>
  Standard_EXPORT   StlMesh_MeshDomain(const Standard_Real Deflection);
  //! Build a triangle with the triplet of vertices (V1, <br>
//!          V2, V3).  This triplet defines  the indexes of the <br>
//!          vertex in the  current domain The coordinates  Xn, <br>
//!          Yn,  Zn  defines   the normal  direction   to  the <br>
//!          triangle.  Returns  the  range of  the triangle in <br>
//!          the current domain. <br>
  Standard_EXPORT   virtual  Standard_Integer AddTriangle(const Standard_Integer V1,const Standard_Integer V2,const Standard_Integer V3,const Standard_Real Xn,const Standard_Real Yn,const Standard_Real Zn) ;
  //! Returns the range of the vertex in the current <br>
//!          domain. <br>
  Standard_EXPORT   virtual  Standard_Integer AddVertex(const Standard_Real X,const Standard_Real Y,const Standard_Real Z) ;
  //! Returns  the range of   the vertex in  the current <br>
//!          domain.  The current vertex is not inserted in the <br>
//!          mesh if it already exist. <br>
  Standard_EXPORT   virtual  Standard_Integer AddOnlyNewVertex(const Standard_Real X,const Standard_Real Y,const Standard_Real Z,Standard_Boolean& IsNew) ;
  
      virtual  Standard_Real Deflection() const;
  //! Number of triangles in the mesh. <br>
      virtual  Standard_Integer NbTriangles() const;
  //! Number of vertices in the mesh. <br>
      virtual  Standard_Integer NbVertices() const;
  //! Returns the set of triangles of the  current mesh domain <br>
      virtual const StlMesh_SequenceOfMeshTriangle& Triangles() const;
  //! Returns  the coordinates   of the  vertices of the <br>
//!          mesh domain   of range <DomainIndex>.   {XV1, YV1, <br>
//!          ZV1, XV2, YV2, ZV2, XV3,.....} <br>
      virtual const TColgp_SequenceOfXYZ& Vertices() const;




  DEFINE_STANDARD_RTTI(StlMesh_MeshDomain)

protected:




private: 


Standard_Real deflection;
Standard_Integer nbVertices;
Standard_Integer nbTriangles;
TColgp_SequenceOfXYZ vertexCoords;
StlMesh_SequenceOfMeshTriangle trianglesVertex;


};


#include <StlMesh_MeshDomain.lxx>



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


#endif