Version: 9.12.0
SMESH_Pattern.idl
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // File : SMESH_Pattern.idl
24 // Created : Mon Aug 2 10:48:36 2004
25 // Author : Edward AGAPOV (eap)
26 // $Header:
27 //
28 #ifndef _SMESH_PATTERN_IDL_
29 #define _SMESH_PATTERN_IDL_
30 
31 #include "SMESH_Mesh.idl"
32 #include "SMESH_smIdType.idl"
33 
34 module SMESH
35 {
36 
37  typedef sequence<SMESH::PointStruct> point_array;
38 
42  interface SMESH_Pattern {
43 
47  boolean LoadFromFile(in string theFileContents);
48 
54  boolean LoadFromFace(in SMESH_Mesh theMesh,
55  in GEOM::GEOM_Object theFace,
56  in boolean theProject);
57 
61  boolean LoadFrom3DBlock(in SMESH_Mesh theMesh,
62  in GEOM::GEOM_Object theBlock);
63 
70  point_array ApplyToFace(in GEOM::GEOM_Object theFace,
71  in GEOM::GEOM_Object theVertexOnKeyPoint1,
72  in boolean theReverse);
73 
80  point_array ApplyTo3DBlock(in GEOM::GEOM_Object theBlock,
81  in GEOM::GEOM_Object theVertex000,
82  in GEOM::GEOM_Object theVertex001);
83 
90  in smIdType_array theFacesIDs,
91  in short theNodeIndexOnKeyPoint1,
92  in boolean theReverse);
93 
102  in smIdType_array theVolumesIDs,
103  in short theNode000Index,
104  in short theNode001Index);
105 
114  boolean MakeMesh (in SMESH_Mesh theMesh,
115  in boolean CreatePolygons,
116  in boolean CreatePolyedrs);
117 
121  string GetString();
122 
126  enum ErrorCode {
128  // Load(file)
129  ERR_READ_NB_POINTS, // couldn't read nb of points
130  ERR_READ_POINT_COORDS, // invalid nb of point coordinates
131  ERR_READ_TOO_FEW_POINTS, // too few points in a pattern
132  ERR_READ_3D_COORD, // coordinate of 3D point out of [0,1] range
133  ERR_READ_NO_KEYPOINT, // no key-points in 2D pattern
134  ERR_READ_BAD_INDEX, // invalid point index
135  ERR_READ_ELEM_POINTS, // invalid nb of points in element
136  ERR_READ_NO_ELEMS, // no elements in a pattern
137  ERR_READ_BAD_KEY_POINT, // a key-point not on a boundary
138  // Save(file)
139  ERR_SAVE_NOT_LOADED, // pattern was not loaded
140  // Load(shape)
141  ERR_LOAD_EMPTY_SUBMESH, // no elements to load
142  // Load(face)
143  ERR_LOADF_NARROW_FACE, // too narrow face
144  ERR_LOADF_CLOSED_FACE, // closed face
145  ERR_LOADF_CANT_PROJECT, // impossible to project nodes
146  // Load(volume)
147  ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
148  ERR_LOADV_COMPUTE_PARAMS, // can't compute point parameters
149  // Apply(shape)
150  ERR_APPL_NOT_LOADED, // pattern was not loaded
151  ERR_APPL_BAD_DIMENTION, // wrong shape dimension
152  ERR_APPL_BAD_NB_VERTICES, // keypoints - vertices mismatch
153  // Apply(face)
154  ERR_APPLF_BAD_TOPOLOGY, // bad pattern topology
155  ERR_APPLF_BAD_VERTEX, // first vertex not on an outer face boundary
156  ERR_APPLF_INTERNAL_EEROR, // program error
157  // Apply(volume)
158  ERR_APPLV_BAD_SHAPE, // volume is not a brick of 6 faces
159  // MakeMesh
160  ERR_MAKEM_NOT_COMPUTED // mapping failed
161  };
162 
167 
171  boolean Is2D();
172 
177 
183 
189  };
190 };
191 
192 #endif
@ ERR_MAKEM_NOT_COMPUTED
Definition: SMESH_Pattern.hxx:196
Definition: SMESH_Mesh.idl:338
SMESH_Pattern: interface of mesh pattern.
Definition: SMESH_Pattern.idl:42
ErrorCode
error code of the last of one of above operations
Definition: SMESH_Pattern.idl:126
@ ERR_APPL_BAD_NB_VERTICES
Definition: SMESH_Pattern.idl:152
@ ERR_READ_NB_POINTS
Definition: SMESH_Pattern.idl:129
@ ERR_LOAD_EMPTY_SUBMESH
Definition: SMESH_Pattern.idl:141
@ ERR_LOADF_NARROW_FACE
Definition: SMESH_Pattern.idl:143
@ ERR_LOADV_BAD_SHAPE
Definition: SMESH_Pattern.idl:147
@ ERR_READ_3D_COORD
Definition: SMESH_Pattern.idl:132
@ ERR_LOADF_CANT_PROJECT
Definition: SMESH_Pattern.idl:145
@ ERR_SAVE_NOT_LOADED
Definition: SMESH_Pattern.idl:139
@ ERR_READ_ELEM_POINTS
Definition: SMESH_Pattern.idl:135
@ ERR_APPLF_BAD_TOPOLOGY
Definition: SMESH_Pattern.idl:154
@ ERR_OK
Definition: SMESH_Pattern.idl:127
@ ERR_APPLF_INTERNAL_EEROR
Definition: SMESH_Pattern.idl:156
@ ERR_APPL_BAD_DIMENTION
Definition: SMESH_Pattern.idl:151
@ ERR_READ_BAD_INDEX
Definition: SMESH_Pattern.idl:134
@ ERR_LOADV_COMPUTE_PARAMS
Definition: SMESH_Pattern.idl:148
@ ERR_READ_NO_KEYPOINT
Definition: SMESH_Pattern.idl:133
@ ERR_LOADF_CLOSED_FACE
Definition: SMESH_Pattern.idl:144
@ ERR_READ_BAD_KEY_POINT
Definition: SMESH_Pattern.idl:137
@ ERR_READ_POINT_COORDS
Definition: SMESH_Pattern.idl:130
@ ERR_APPL_NOT_LOADED
Definition: SMESH_Pattern.idl:150
@ ERR_APPLF_BAD_VERTEX
Definition: SMESH_Pattern.idl:155
@ ERR_READ_TOO_FEW_POINTS
Definition: SMESH_Pattern.idl:131
@ ERR_APPLV_BAD_SHAPE
Definition: SMESH_Pattern.idl:158
@ ERR_READ_NO_ELEMS
Definition: SMESH_Pattern.idl:136
point_array GetPoints()
Return coordinates of pattern points.
point_array ApplyToMeshFaces(in SMESH_Mesh theMesh, in smIdType_array theFacesIDs, in short theNodeIndexOnKeyPoint1, in boolean theReverse)
Compute nodes coordinates applying the loaded pattern to mesh faces.
boolean LoadFrom3DBlock(in SMESH_Mesh theMesh, in GEOM::GEOM_Object theBlock)
Create a pattern from the mesh built on <theBlock>
boolean LoadFromFace(in SMESH_Mesh theMesh, in GEOM::GEOM_Object theFace, in boolean theProject)
Create a pattern from the mesh built on <theFace>.
ErrorCode GetErrorCode()
Return error code of the last operation.
string GetString()
Return the loaded pattern in the string form to be saved in file.
point_array ApplyTo3DBlock(in GEOM::GEOM_Object theBlock, in GEOM::GEOM_Object theVertex000, in GEOM::GEOM_Object theVertex001)
Compute nodes coordinates applying the loaded pattern to <theBlock>.
boolean LoadFromFile(in string theFileContents)
Load a pattern from the string <theFileContents>
boolean Is2D()
Return true if the loaded pattern is a 2D one.
boolean MakeMesh(in SMESH_Mesh theMesh, in boolean CreatePolygons, in boolean CreatePolyedrs)
Create nodes and elements in <theMesh> using nodes coordinates computed by either of Apply....
point_array ApplyToFace(in GEOM::GEOM_Object theFace, in GEOM::GEOM_Object theVertexOnKeyPoint1, in boolean theReverse)
Compute nodes coordinates applying the loaded pattern to <theFace>.
point_array ApplyToHexahedrons(in SMESH_Mesh theMesh, in smIdType_array theVolumesIDs, in short theNode000Index, in short theNode001Index)
Compute nodes coordinates applying the loaded pattern to hexahedrons.
long_array GetKeyPoints()
Return indices of key-points within the arrays returned by GetPoints()
array_of_long_array GetElementPoints(in boolean all)
Return nodal connectivity of the elements of the pattern or of all elements to be created.
Definition: SMESH_ControlsDef.hxx:64
sequence< long_array > array_of_long_array
Definition: SMESH_Mesh.idl:47
sequence< smIdType > smIdType_array
Definition: SMESH_Mesh.idl:45
sequence< SMESH::PointStruct > point_array
Definition: SMESH_Pattern.idl:37
sequence< long > long_array
Definition: SMESH_Mesh.idl:44