Salome HOME
First publish of HEXABLOCKcomponant
[modules/hexablock.git] / src / HEXABLOCK_I / HexDocument_impl.hxx
1 #ifndef __HexDocument_impl__
2 #define __HexDocument_impl__
3
4 #include <SALOMEconfig.h>
5 #include CORBA_SERVER_HEADER(Document)
6 #include "SALOME_GenericObj_i.hh"
7
8 #include "hexa_base.hxx"
9 #include "HexDocument.hxx"
10
11
12 // #define HEXA_NS Hex
13 using namespace HEXABLOCK_ORB;
14
15 class Document_impl:
16   public POA_HEXABLOCK_ORB::Document,
17   public SALOME::GenericObj_i
18 {
19
20 public:
21   Document_impl(HEXA_NS::Document *ptrCpp);
22
23   HEXA_NS::Document* GetImpl() throw (SALOME::SALOME_Exception);
24
25   void purge() throw (SALOME::SALOME_Exception);
26
27   ::CORBA::Long saveVtk(const char* fname) throw (SALOME::SALOME_Exception);
28
29   char* getFile() throw (SALOME::SALOME_Exception);
30   void setFile(const char* fileName) throw (SALOME::SALOME_Exception);
31   ::CORBA::Boolean isSavedFile() throw (SALOME::SALOME_Exception);
32   ::CORBA::Long saveFile() throw (SALOME::SALOME_Exception);
33   void setTolerance(::CORBA::Double tol) throw (SALOME::SALOME_Exception);
34   ::CORBA::Double getTolerance() throw (SALOME::SALOME_Exception);
35   Vertex_ptr addVertex(::CORBA::Double x, ::CORBA::Double y, ::CORBA::Double z) throw (SALOME::SALOME_Exception);
36   ::CORBA::Long countVertex() throw (SALOME::SALOME_Exception);
37   Vertex_ptr getVertex(::CORBA::Long i) throw (SALOME::SALOME_Exception);
38   Vertex_ptr findVertex(::CORBA::Double x, ::CORBA::Double y, ::CORBA::Double z) throw (SALOME::SALOME_Exception);
39   Edge_ptr addEdge(Vertex_ptr v0, Vertex_ptr v1) throw (SALOME::SALOME_Exception);
40   ::CORBA::Long countEdge() throw (SALOME::SALOME_Exception);
41   Edge_ptr getEdge(::CORBA::Long i) throw (SALOME::SALOME_Exception);
42   Edge_ptr findEdge(Vertex_ptr p1, Vertex_ptr p2) throw (SALOME::SALOME_Exception);
43   Quad_ptr addQuad(Edge_ptr e0, Edge_ptr e1, Edge_ptr e2, Edge_ptr e3) throw (SALOME::SALOME_Exception);
44   Quad_ptr addQuadVertices(Vertex_ptr v0, Vertex_ptr v1, Vertex_ptr v2, Vertex_ptr v3) throw (SALOME::SALOME_Exception);
45   ::CORBA::Long countQuad() throw (SALOME::SALOME_Exception);
46   Quad_ptr getQuad(::CORBA::Long i) throw (SALOME::SALOME_Exception);
47   Quad_ptr findQuad(Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
48   Hexa_ptr addHexa(Quad_ptr q0, Quad_ptr q1, Quad_ptr q2, Quad_ptr q3, Quad_ptr q4, Quad_ptr q5) throw (SALOME::SALOME_Exception);
49   Hexa_ptr addHexaVertices(Vertex_ptr v0, Vertex_ptr v1, Vertex_ptr v2, Vertex_ptr v3, Vertex_ptr v4, Vertex_ptr v5, Vertex_ptr v6, Vertex_ptr v7) throw (SALOME::SALOME_Exception);
50   ::CORBA::Long countHexa() throw (SALOME::SALOME_Exception);
51   Hexa_ptr getHexa(::CORBA::Long i) throw (SALOME::SALOME_Exception);
52   Hexa_ptr findHexa(Vertex_ptr p1, Vertex_ptr p2) throw (SALOME::SALOME_Exception);
53   Vector_ptr addVector(::CORBA::Double dx, ::CORBA::Double dy, ::CORBA::Double dz) throw (SALOME::SALOME_Exception);
54   Vector_ptr addVectorVertices(Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
55 //   ::CORBA::Long countVector() throw (SALOME::SALOME_Exception);
56 //   Vector_ptr getVector(::CORBA::Long i) throw (SALOME::SALOME_Exception);
57   Cylinder_ptr addCylinder(Vertex_ptr base, Vector_ptr direction, ::CORBA::Double radius, ::CORBA::Double height) throw (SALOME::SALOME_Exception);
58 //   ::CORBA::Long countCylinder() throw (SALOME::SALOME_Exception);
59 //   Cylinder_ptr getCylinder(::CORBA::Long i) throw (SALOME::SALOME_Exception);
60   Pipe_ptr addPipe(Vertex_ptr base, Vector_ptr direction, ::CORBA::Double int_radius, ::CORBA::Double ext_radius, ::CORBA::Double height) throw (SALOME::SALOME_Exception);
61 //   ::CORBA::Long countPipe() throw (SALOME::SALOME_Exception);
62 //   Pipe_ptr getPipe(::CORBA::Long i) throw (SALOME::SALOME_Exception);
63   ::CORBA::Boolean removeHexa(Hexa_ptr h) throw (SALOME::SALOME_Exception);
64   ::CORBA::Boolean removeConnectedHexa(Hexa_ptr h) throw (SALOME::SALOME_Exception);
65   Elements_ptr makeCartesian(Vertex_ptr pt, Vector_ptr vx, Vector_ptr vy, Vector_ptr vz, ::CORBA::Long nx, ::CORBA::Long ny, ::CORBA::Long nz) throw (SALOME::SALOME_Exception);
66   Elements_ptr makeCartesian1(Vertex_ptr v, Vector_ptr v1, ::CORBA::Long px, ::CORBA::Long py, ::CORBA::Long pz, ::CORBA::Long mx, ::CORBA::Long my, ::CORBA::Long mz) throw (SALOME::SALOME_Exception);
67   Elements_ptr makeCylindrical(Vertex_ptr pt, Vector_ptr vex, Vector_ptr vez, ::CORBA::Double dr, ::CORBA::Double da, ::CORBA::Double dl, ::CORBA::Long nr, ::CORBA::Long na, ::CORBA::Long nl, ::CORBA::Boolean fill) throw (SALOME::SALOME_Exception);
68 //   Elements_ptr makeSpherical( Vertex_ptr pt, ::CORBA::Double dx, ::CORBA::Double dy, ::CORBA::Double dz, ::CORBA::Long n ) throw (SALOME::SALOME_Exception);
69   Elements_ptr makeSpherical( Vertex_ptr ptIn,
70     Vector_ptr dvIn,
71     ::CORBA::Long n,
72     ::CORBA::Double k ) throw (SALOME::SALOME_Exception); //CS_TODO
73 //   Elements_ptr makeCylinder(Cylinder_ptr cyl, ::CORBA::Long nr, ::CORBA::Long na, ::CORBA::Long nl) throw (SALOME::SALOME_Exception);
74   Elements_ptr makeCylinder(Cylinder_ptr cyl, Vector_ptr vr, ::CORBA::Long nr, ::CORBA::Long na, ::CORBA::Long nl) throw (SALOME::SALOME_Exception);
75 //   Elements_ptr makePipe(Pipe_ptr p, ::CORBA::Long nr, ::CORBA::Long na, ::CORBA::Long nl) throw (SALOME::SALOME_Exception);
76
77 //   Elements_ptr makeCylinders(Cylinder_ptr c1, Cylinder_ptr c2) throw (SALOME::SALOME_Exception);
78     CrossElements_ptr makeCylinders(Cylinder_ptr cyl1, Cylinder_ptr cyl2) throw (SALOME::SALOME_Exception);
79
80 //   Elements_ptr makePipes(Pipe_ptr p1, ::CORBA::Long n1r, ::CORBA::Long n1a, ::CORBA::Long n1l, Pipe_ptr p2, ::CORBA::Long n2r, ::CORBA::Long n2a, ::CORBA::Long n2l) throw (SALOME::SALOME_Exception);
81
82   Elements_ptr prismQuad(Quad_ptr qd, Vector_ptr v, ::CORBA::Long nb) throw (SALOME::SALOME_Exception);
83   Elements_ptr prismQuads(const Quads& qds, Vector_ptr v, ::CORBA::Long nb) throw (SALOME::SALOME_Exception);
84
85   Elements_ptr joinQuad(Quad_ptr qa, Quad_ptr qb, Vertex_ptr va1, Vertex_ptr vb1, Vertex_ptr va2, Vertex_ptr vb2, ::CORBA::Long nb) throw (SALOME::SALOME_Exception);
86   Elements_ptr joinQuads(const Quads& qds, Quad_ptr qb, Vertex_ptr va1, Vertex_ptr vb1, Vertex_ptr va2, Vertex_ptr vb2, ::CORBA::Long nb) throw (SALOME::SALOME_Exception);
87
88 //CS_NOT_SPEC
89 //   Elements_ptr mergeQuads(Quad_ptr qa, Quad_ptr qb, Vertex_ptr va1, Vertex_ptr vb1, Vertex_ptr va2, Vertex_ptr vb2) throw (SALOME::SALOME_Exception);
90 //   Elements_ptr mergeEdges(Edge_ptr e1, Edge_ptr e2, Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
91 //   Elements_ptr mergeVertices(Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
92
93
94   ::CORBA::Long mergeQuads(Quad_ptr qa, Quad_ptr qb, Vertex_ptr va1, Vertex_ptr vb1, Vertex_ptr va2, Vertex_ptr vb2) throw (SALOME::SALOME_Exception);
95   ::CORBA::Long mergeEdges(Edge_ptr e1, Edge_ptr e2, Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
96   ::CORBA::Long mergeVertices(Vertex_ptr v1, Vertex_ptr v2) throw (SALOME::SALOME_Exception);
97
98   Elements_ptr disconnectQuad(Hexa_ptr h, Quad_ptr q) throw (SALOME::SALOME_Exception);
99 //   Elements_ptr disconnectEdge(Hexa_ptr h, Edge_ptr e) throw (SALOME::SALOME_Exception);
100 //   Elements_ptr disconnectVertex(Hexa_ptr h, Vertex_ptr v) throw (SALOME::SALOME_Exception);
101 //   ::CORBA::Long disconnectQuad(Hexa_ptr h, Quad_ptr q) throw (SALOME::SALOME_Exception);
102 //   Quad_ptr disconnectQuad(Hexa_ptr h, Quad_ptr q) throw (SALOME::SALOME_Exception);
103 //   ::CORBA::Long disconnectEdge(Hexa_ptr h, Edge_ptr e) throw (SALOME::SALOME_Exception);
104 //   Edge_ptr disconnectEdge(Hexa_ptr h, Edge_ptr e) throw (SALOME::SALOME_Exception);
105   Elements_ptr disconnectEdge(Hexa_ptr h, Edge_ptr e) throw (SALOME::SALOME_Exception);
106 //   ::CORBA::Long disconnectVertex(Hexa_ptr h, Vertex_ptr v) throw (SALOME::SALOME_Exception);
107   Elements_ptr disconnectVertex(Hexa_ptr h, Vertex_ptr v) throw (SALOME::SALOME_Exception);
108 //   Vertex_ptr disconnectVertex(Hexa_ptr h, Vertex_ptr v) throw (SALOME::SALOME_Exception);
109
110   Elements_ptr cut(Edge_ptr e, ::CORBA::Long nb_of_cuts) throw (SALOME::SALOME_Exception);
111 //   Elements_ptr makeTranslation(Element_ptr e, Vector_ptr vec) throw (SALOME::SALOME_Exception);//CS_Bruno
112   Elements_ptr makeTranslation(Elements_ptr e, Vector_ptr vec) throw (SALOME::SALOME_Exception);
113 //   Elements_ptr makeScale(Vertex_ptr e, Vertex_ptr ver, ::CORBA::Double k) throw (SALOME::SALOME_Exception);
114   Elements_ptr makeRotation(Elements_ptr l, Vertex_ptr ver, Vector_ptr vec, ::CORBA::Double angle) throw (SALOME::SALOME_Exception);
115 //   Elements_ptr makeSymmetryPoint(Element_ptr e, Vertex_ptr ver) throw (SALOME::SALOME_Exception);
116 //   Elements_ptr makeSymmetryLine(Element_ptr e, Vertex_ptr ver, Vector_ptr vec) throw (SALOME::SALOME_Exception);
117 //   Elements_ptr makeSymmetryPlane(Element_ptr e, Vertex_ptr ver, Vector_ptr vec) throw (SALOME::SALOME_Exception);
118
119 //   void performTranslation(Element_ptr e, Vector_ptr vec) throw (SALOME::SALOME_Exception);
120   void performTranslation(Elements_ptr l, Vector_ptr vec) throw (SALOME::SALOME_Exception);
121 //   void performScale(Element_ptr e, Vertex_ptr ver, ::CORBA::Double k) throw (SALOME::SALOME_Exception);
122   void performRotation(Elements_ptr l, Vertex_ptr ver, Vector_ptr vec, ::CORBA::Double angle) throw (SALOME::SALOME_Exception);
123 //   void performSymmetryPoint(Element_ptr e, Vertex_ptr ver) throw (SALOME::SALOME_Exception);
124 //   void performSymmetryLine(Element_ptr e, Vertex_ptr ver, Vector_ptr vec) throw (SALOME::SALOME_Exception);
125 //   void performSymmetryPlane(Element_ptr e, Vertex_ptr ver, Vector_ptr vec) throw (SALOME::SALOME_Exception);
126   Group_ptr addHexaGroup(const char* name) throw (SALOME::SALOME_Exception);
127   Group_ptr addQuadGroup(const char* name) throw (SALOME::SALOME_Exception);
128   Group_ptr addEdgeGroup(const char* name) throw (SALOME::SALOME_Exception);
129   Group_ptr addHexaNodeGroup(const char* name) throw (SALOME::SALOME_Exception);
130   Group_ptr addQuadNodeGroup(const char* name) throw (SALOME::SALOME_Exception);
131   Group_ptr addEdgeNodeGroup(const char* name) throw (SALOME::SALOME_Exception);
132   Group_ptr addVertexNodeGroup(const char* name) throw (SALOME::SALOME_Exception);
133   ::CORBA::Long removeGroup(Group_ptr g) throw (SALOME::SALOME_Exception);
134   ::CORBA::Long countGroup() throw (SALOME::SALOME_Exception);
135   Group_ptr getGroup(::CORBA::Long i) throw (SALOME::SALOME_Exception);
136   Group_ptr findGroup(const char* name) throw (SALOME::SALOME_Exception);
137
138   Law_ptr addLaw(const char* name, ::CORBA::Long nb_nodes) throw (SALOME::SALOME_Exception);
139   ::CORBA::Long countLaw() throw (SALOME::SALOME_Exception);
140   Law_ptr getLaw(::CORBA::Long i) throw (SALOME::SALOME_Exception);
141   void removeLaw(Law_ptr l) throw (SALOME::SALOME_Exception);
142   Law_ptr findLaw(const char* name) throw (SALOME::SALOME_Exception);
143   ::CORBA::Long countPropagation() throw (SALOME::SALOME_Exception);
144   Propagation_ptr getPropagation(::CORBA::Long i) throw (SALOME::SALOME_Exception);
145   Propagation_ptr findPropagation(Edge_ptr e) throw (SALOME::SALOME_Exception);
146
147 private:
148   HEXA_NS::Document *_document_cpp;
149
150 };
151
152 #endif