OpenCMISS-Zinc C++ API Documentation
 All Classes Namespaces Files Functions Typedefs Enumerations Enumerator Pages
element.hpp
Go to the documentation of this file.
1 
4 /* OpenCMISS-Zinc Library
5 *
6 * This Source Code Form is subject to the terms of the Mozilla Public
7 * License, v. 2.0. If a copy of the MPL was not distributed with this
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
9 
10 #ifndef CMZN_ELEMENT_HPP__
11 #define CMZN_ELEMENT_HPP__
12 
13 #include "zinc/element.h"
14 #include "zinc/field.hpp"
15 #include "zinc/differentialoperator.hpp"
16 #include "zinc/node.hpp"
17 
18 namespace OpenCMISS
19 {
20 namespace Zinc
21 {
22 
32 {
33 private:
34 
35  cmzn_elementbasis_id id;
36 
37 public:
38 
39  Elementbasis() : id(0)
40  { }
41 
42  // takes ownership of C handle, responsibility for destroying it
43  explicit Elementbasis(cmzn_elementbasis_id element_basis_id) :
44  id(element_basis_id)
45  { }
46 
47  Elementbasis(const Elementbasis& elementBasis) :
48  id(cmzn_elementbasis_access(elementBasis.id))
49  { }
50 
51  Elementbasis& operator=(const Elementbasis& elementBasis)
52  {
53  cmzn_elementbasis_id temp_id = cmzn_elementbasis_access(elementBasis.id);
54  if (0 != id)
55  {
56  cmzn_elementbasis_destroy(&id);
57  }
58  id = temp_id;
59  return *this;
60  }
61 
62  ~Elementbasis()
63  {
64  if (0 != id)
65  {
66  cmzn_elementbasis_destroy(&id);
67  }
68  }
69 
75  bool isValid() const
76  {
77  return (0 != id);
78  }
79 
86  {
87  FUNCTION_TYPE_INVALID = CMZN_ELEMENTBASIS_FUNCTION_TYPE_INVALID,
89  FUNCTION_TYPE_CONSTANT = CMZN_ELEMENTBASIS_FUNCTION_TYPE_CONSTANT,
91  FUNCTION_TYPE_LINEAR_LAGRANGE = CMZN_ELEMENTBASIS_FUNCTION_TYPE_LINEAR_LAGRANGE,
94  FUNCTION_TYPE_QUADRATIC_LAGRANGE = CMZN_ELEMENTBASIS_FUNCTION_TYPE_QUADRATIC_LAGRANGE,
97  FUNCTION_TYPE_CUBIC_LAGRANGE = CMZN_ELEMENTBASIS_FUNCTION_TYPE_CUBIC_LAGRANGE,
100  FUNCTION_TYPE_LINEAR_SIMPLEX = CMZN_ELEMENTBASIS_FUNCTION_TYPE_LINEAR_SIMPLEX,
107  FUNCTION_TYPE_QUADRATIC_SIMPLEX = CMZN_ELEMENTBASIS_FUNCTION_TYPE_QUADRATIC_SIMPLEX,
115  FUNCTION_TYPE_CUBIC_HERMITE = CMZN_ELEMENTBASIS_FUNCTION_TYPE_CUBIC_HERMITE
118  };
119 
125  cmzn_elementbasis_id getId() const
126  {
127  return id;
128  }
129 
136  {
137  return cmzn_elementbasis_get_dimension(id);
138  }
139 
147  enum FunctionType getFunctionType(int chartComponent)
148  {
149  return static_cast<FunctionType>(cmzn_elementbasis_get_function_type(id, chartComponent));
150  }
151 
160  int setFunctionType(int chartComponent, FunctionType functionType)
161  {
162  return cmzn_elementbasis_set_function_type(id, chartComponent,
163  static_cast<cmzn_elementbasis_function_type>(functionType));
164  }
165 
172  {
173  return cmzn_elementbasis_get_number_of_nodes(id);
174  }
175 
189  {
190  return cmzn_elementbasis_get_number_of_functions(id);
191  }
192 
201  int getNumberOfFunctionsPerNode(int nodeNumber)
202  {
203  return cmzn_elementbasis_get_number_of_functions_per_node(id, nodeNumber);
204  }
205 
206 };
207 
208 class Fieldmodule;
209 class Mesh;
210 class MeshGroup;
211 class Elementtemplate;
212 
219 class Element
220 {
221 private:
222 
223  cmzn_element_id id;
224 
225 public:
226 
227  Element() : id(0)
228  { }
229 
230  // takes ownership of C handle, responsibility for destroying it
231  explicit Element(cmzn_element_id element_id) :
232  id(element_id)
233  { }
234 
235  Element(const Element& element) :
236  id(cmzn_element_access(element.id))
237  { }
238 
239  ~Element()
240  {
241  if (0 != id)
242  {
243  cmzn_element_destroy(&id);
244  }
245  }
246 
252  bool isValid() const
253  {
254  return (0 != id);
255  }
256 
261  {
262  CHANGE_FLAG_NONE = CMZN_ELEMENT_CHANGE_FLAG_NONE,
264  CHANGE_FLAG_ADD = CMZN_ELEMENT_CHANGE_FLAG_ADD,
266  CHANGE_FLAG_REMOVE = CMZN_ELEMENT_CHANGE_FLAG_REMOVE,
268  CHANGE_FLAG_IDENTIFIER = CMZN_ELEMENT_CHANGE_FLAG_IDENTIFIER,
270  CHANGE_FLAG_DEFINITION = CMZN_ELEMENT_CHANGE_FLAG_DEFINITION,
272  CHANGE_FLAG_FIELD = CMZN_ELEMENT_CHANGE_FLAG_FIELD
274  };
275 
279  typedef int ChangeFlags;
280 
284  enum FaceType
285  {
286  FACE_TYPE_INVALID = CMZN_ELEMENT_FACE_TYPE_INVALID,
288  FACE_TYPE_ALL = CMZN_ELEMENT_FACE_TYPE_ALL,
290  FACE_TYPE_XI1_0 = CMZN_ELEMENT_FACE_TYPE_XI1_0,
292  FACE_TYPE_XI1_1 = CMZN_ELEMENT_FACE_TYPE_XI1_1,
294  FACE_TYPE_XI2_0 = CMZN_ELEMENT_FACE_TYPE_XI2_0,
296  FACE_TYPE_XI2_1 = CMZN_ELEMENT_FACE_TYPE_XI2_1,
298  FACE_TYPE_XI3_0 = CMZN_ELEMENT_FACE_TYPE_XI3_0,
300  FACE_TYPE_XI3_1 = CMZN_ELEMENT_FACE_TYPE_XI3_1
302  };
303 
304  Element& operator=(const Element& element)
305  {
306  cmzn_element_id temp_id = cmzn_element_access(element.id);
307  if (0 != id)
308  {
309  cmzn_element_destroy(&id);
310  }
311  id = temp_id;
312  return *this;
313  }
314 
319  {
320  SHAPE_TYPE_INVALID = CMZN_ELEMENT_SHAPE_TYPE_INVALID,
322  SHAPE_TYPE_LINE = CMZN_ELEMENT_SHAPE_TYPE_LINE,
324  SHAPE_TYPE_SQUARE = CMZN_ELEMENT_SHAPE_TYPE_SQUARE,
326  SHAPE_TYPE_TRIANGLE = CMZN_ELEMENT_SHAPE_TYPE_TRIANGLE,
328  SHAPE_TYPE_CUBE = CMZN_ELEMENT_SHAPE_TYPE_CUBE,
330  SHAPE_TYPE_TETRAHEDRON = CMZN_ELEMENT_SHAPE_TYPE_TETRAHEDRON,
332  SHAPE_TYPE_WEDGE12 = CMZN_ELEMENT_SHAPE_TYPE_WEDGE12,
334  SHAPE_TYPE_WEDGE13 = CMZN_ELEMENT_SHAPE_TYPE_WEDGE13,
336  SHAPE_TYPE_WEDGE23 = CMZN_ELEMENT_SHAPE_TYPE_WEDGE23
338  };
339 
344  {
345  POINT_SAMPLING_MODE_INVALID = CMZN_ELEMENT_POINT_SAMPLING_MODE_INVALID,
347  POINT_SAMPLING_MODE_CELL_CENTRES = CMZN_ELEMENT_POINT_SAMPLING_MODE_CELL_CENTRES,
349  POINT_SAMPLING_MODE_CELL_CORNERS = CMZN_ELEMENT_POINT_SAMPLING_MODE_CELL_CORNERS,
351  POINT_SAMPLING_MODE_CELL_POISSON = CMZN_ELEMENT_POINT_SAMPLING_MODE_CELL_POISSON,
356  POINT_SAMPLING_MODE_SET_LOCATION = CMZN_ELEMENT_POINT_SAMPLING_MODE_SET_LOCATION,
358  POINT_SAMPLING_MODE_GAUSSIAN_QUADRATURE = CMZN_ELEMENT_POINT_SAMPLING_MODE_GAUSSIAN_QUADRATURE
363  };
364 
369  {
370  QUADRATURE_RULE_INVALID = CMZN_ELEMENT_QUADRATURE_RULE_INVALID,
372  QUADRATURE_RULE_GAUSSIAN = CMZN_ELEMENT_QUADRATURE_RULE_GAUSSIAN,
378  QUADRATURE_RULE_MIDPOINT = CMZN_ELEMENT_QUADRATURE_RULE_MIDPOINT
381  };
382 
388  cmzn_element_id getId() const
389  {
390  return id;
391  }
392 
399  {
400  return cmzn_element_get_dimension(id);
401  }
402 
411  {
412  return cmzn_element_get_identifier(id);
413  }
414 
423  int setIdentifier(int identifier)
424  {
425  return cmzn_element_set_identifier(id, identifier);
426  }
427 
433  inline Mesh getMesh() const;
434 
444  {
445  return static_cast<ShapeType>(cmzn_element_get_shape_type(id));
446  }
447 
455  inline int merge(const Elementtemplate& elementTemplate);
456 
457 };
458 
459 inline bool operator==(const Element& a, const Element& b)
460 {
461  return a.getId() == b.getId();
462 }
463 
472 {
473 private:
474 
475  cmzn_elementtemplate_id id;
476 
477 public:
478 
479  Elementtemplate() : id(0)
480  { }
481 
482  // takes ownership of C handle, responsibility for destroying it
483  explicit Elementtemplate(cmzn_elementtemplate_id element_template_id) :
484  id(element_template_id)
485  { }
486 
487  Elementtemplate(const Elementtemplate& elementTemplate) :
488  id(cmzn_elementtemplate_access(elementTemplate.id))
489  { }
490 
491  Elementtemplate& operator=(const Elementtemplate& elementTemplate)
492  {
493  cmzn_elementtemplate_id temp_id = cmzn_elementtemplate_access(elementTemplate.id);
494  if (0 != id)
495  {
496  cmzn_elementtemplate_destroy(&id);
497  }
498  id = temp_id;
499  return *this;
500  }
501 
502  ~Elementtemplate()
503  {
504  if (0 != id)
505  {
506  cmzn_elementtemplate_destroy(&id);
507  }
508  }
509 
515  bool isValid() const
516  {
517  return (0 != id);
518  }
519 
525  cmzn_elementtemplate_id getId() const
526  {
527  return id;
528  }
529 
536  {
537  return static_cast<Element::ShapeType>(cmzn_elementtemplate_get_element_shape_type(id));
538  }
539 
554  {
555  return cmzn_elementtemplate_set_element_shape_type(id,
556  static_cast<cmzn_element_shape_type>(shapeType));
557  }
558 
565  {
566  return cmzn_elementtemplate_get_number_of_nodes(id);
567  }
568 
577  int setNumberOfNodes(int numberOfNodes)
578  {
579  return cmzn_elementtemplate_set_number_of_nodes(id, numberOfNodes);
580  }
581 
592  int defineFieldElementConstant(const Field& field, int componentNumber)
593  {
594  return cmzn_elementtemplate_define_field_element_constant(
595  id, field.getId(), componentNumber);
596  }
597 
624  int defineFieldSimpleNodal(const Field& field, int componentNumber,
625  const Elementbasis& basis, int nodeIndexesCount, const int *nodeIndexesIn)
626  {
627  return cmzn_elementtemplate_define_field_simple_nodal(
628  id, field.getId(), componentNumber, basis.getId(),
629  nodeIndexesCount, nodeIndexesIn);
630  }
631 
651  int setMapNodeValueLabel(const Field& field, int componentNumber,
652  int basisNodeIndex, int nodeFunctionIndex, Node::ValueLabel nodeValueLabel)
653  {
654  return cmzn_elementtemplate_set_map_node_value_label(id, field.getId(),
655  componentNumber, basisNodeIndex, nodeFunctionIndex,
656  static_cast<cmzn_node_value_label>(nodeValueLabel));
657  }
658 
678  int setMapNodeVersion(const Field& field, int componentNumber,
679  int basisNodeIndex, int nodeFunctionIndex, int versionNumber)
680  {
681  return cmzn_elementtemplate_set_map_node_version(id, field.getId(),
682  componentNumber, basisNodeIndex, nodeFunctionIndex, versionNumber);
683  }
684 
693  Node getNode(int localNodeIndex)
694  {
695  return Node(cmzn_elementtemplate_get_node(id, localNodeIndex));
696  }
697 
707  int setNode(int localNodeIndex, const Node& node)
708  {
709  return cmzn_elementtemplate_set_node(id, localNodeIndex, node.getId());
710  }
711 };
712 
719 {
720 private:
721 
722  cmzn_elementiterator_id id;
723 
724 public:
725 
726  Elementiterator() : id(0)
727  { }
728 
729  // takes ownership of C handle, responsibility for destroying it
730  explicit Elementiterator(cmzn_elementiterator_id element_iterator_id) :
731  id(element_iterator_id)
732  { }
733 
734  Elementiterator(const Elementiterator& elementIterator) :
735  id(cmzn_elementiterator_access(elementIterator.id))
736  { }
737 
738  Elementiterator& operator=(const Elementiterator& elementIterator)
739  {
740  cmzn_elementiterator_id temp_id = cmzn_elementiterator_access(elementIterator.id);
741  if (0 != id)
742  {
743  cmzn_elementiterator_destroy(&id);
744  }
745  id = temp_id;
746  return *this;
747  }
748 
749  ~Elementiterator()
750  {
751  if (0 != id)
752  {
753  cmzn_elementiterator_destroy(&id);
754  }
755  }
756 
762  bool isValid() const
763  {
764  return (0 != id);
765  }
766 
775  {
776  return Element(cmzn_elementiterator_next(id));
777  }
778 };
779 
787 class Mesh
788 {
789 
790 protected:
791  cmzn_mesh_id id;
792 
793 public:
794 
795  Mesh() : id(0)
796  { }
797 
798  // takes ownership of C handle, responsibility for destroying it
799  explicit Mesh(cmzn_mesh_id mesh_id) : id(mesh_id)
800  { }
801 
802  Mesh(const Mesh& mesh) :
803  id(cmzn_mesh_access(mesh.id))
804  { }
805 
806  ~Mesh()
807  {
808  if (0 != id)
809  {
810  cmzn_mesh_destroy(&id);
811  }
812  }
813 
819  bool isValid() const
820  {
821  return (0 != id);
822  }
823 
824  Mesh& operator=(const Mesh& mesh)
825  {
826  cmzn_mesh_id temp_id = cmzn_mesh_access(mesh.id);
827  if (0 != id)
828  {
829  cmzn_mesh_destroy(&id);
830  }
831  id = temp_id;
832  return *this;
833  }
834 
840  cmzn_mesh_id getId() const
841  {
842  return id;
843  }
844 
852  inline MeshGroup castGroup();
853 
860  bool containsElement(const Element& element)
861  {
862  return cmzn_mesh_contains_element(id, element.getId());
863  }
864 
872  {
873  return Elementtemplate(cmzn_mesh_create_elementtemplate(id));
874  }
875 
887  Element createElement(int identifier, const Elementtemplate& elementTemplate)
888  {
889  return Element(cmzn_mesh_create_element(id, identifier, elementTemplate.getId()));
890  }
891 
905  {
906  return Elementiterator(cmzn_mesh_create_elementiterator(id));
907  }
908 
920  int defineElement(int identifier, const Elementtemplate& elementTemplate)
921  {
922  return cmzn_mesh_define_element(id, identifier, elementTemplate.getId());
923  }
924 
932  {
933  return cmzn_mesh_destroy_all_elements(id);
934  }
935 
944  int destroyElement(const Element& element)
945  {
946  return cmzn_mesh_destroy_element(id, element.getId());
947  }
948 
960  int destroyElementsConditional(const Field& conditionalField)
961  {
962  return cmzn_mesh_destroy_elements_conditional(id,
963  conditionalField.getId());
964  }
965 
973  {
974  return Element(cmzn_mesh_find_element_by_identifier(id, identifier));
975  }
976 
989  {
990  return Differentialoperator(cmzn_mesh_get_chart_differentialoperator(
991  id, order, term));
992  }
993 
1000  {
1001  return cmzn_mesh_get_dimension(id);
1002  }
1003 
1009  inline Fieldmodule getFieldmodule() const;
1010 
1018  {
1019  return Mesh(cmzn_mesh_get_master_mesh(id));
1020  }
1021 
1029  char *getName()
1030  {
1031  return cmzn_mesh_get_name(id);
1032  }
1033 
1039  int getSize()
1040  {
1041  return cmzn_mesh_get_size(id);
1042  }
1043 
1044 };
1045 
1046 inline bool operator==(const Mesh& a, const Mesh& b)
1047 {
1048  return cmzn_mesh_match(a.getId(), b.getId());
1049 }
1050 
1051 inline Mesh Element::getMesh() const
1052 {
1053  return Mesh(cmzn_element_get_mesh(id));
1054 }
1055 
1061 class MeshGroup : public Mesh
1062 {
1063 
1064 public:
1065 
1066  // takes ownership of C handle, responsibility for destroying it
1067  explicit MeshGroup(cmzn_mesh_group_id mesh_id) : Mesh(reinterpret_cast<cmzn_mesh_id>(mesh_id))
1068  { }
1069 
1070  MeshGroup()
1071  { }
1072 
1078  cmzn_mesh_group_id getId() const
1079  {
1080  return (cmzn_mesh_group_id)(id);
1081  }
1082 
1091  int addElement(const Element& element)
1092  {
1093  return cmzn_mesh_group_add_element(
1094  reinterpret_cast<cmzn_mesh_group_id>(id), element.getId());
1095  }
1096 
1107  int addElementsConditional(const Field& conditionalField)
1108  {
1109  return cmzn_mesh_group_add_elements_conditional(
1110  reinterpret_cast<cmzn_mesh_group_id>(id), conditionalField.getId());
1111  }
1112 
1119  {
1120  return cmzn_mesh_group_remove_all_elements(reinterpret_cast<cmzn_mesh_group_id>(id));
1121  }
1122 
1131  int removeElement(const Element& element)
1132  {
1133  return cmzn_mesh_group_remove_element(reinterpret_cast<cmzn_mesh_group_id>(id),
1134  element.getId());
1135  }
1136 
1147  int removeElementsConditional(const Field& conditionalField)
1148  {
1149  return cmzn_mesh_group_remove_elements_conditional(
1150  reinterpret_cast<cmzn_mesh_group_id>(id), conditionalField.getId());
1151  }
1152 
1153 };
1154 
1156 {
1157  return MeshGroup(cmzn_mesh_cast_group(id));
1158 }
1159 
1166 {
1167 private:
1168 
1169  cmzn_meshchanges_id id;
1170 
1171 public:
1172 
1173  Meshchanges() : id(0)
1174  { }
1175 
1176  // takes ownership of C handle, responsibility for destroying it
1177  explicit Meshchanges(cmzn_meshchanges_id meshchanges_id) :
1178  id(meshchanges_id)
1179  { }
1180 
1181  Meshchanges(const Meshchanges& meshchanges) :
1182  id(cmzn_meshchanges_access(meshchanges.id))
1183  { }
1184 
1185  Meshchanges& operator=(const Meshchanges& meshchanges)
1186  {
1187  cmzn_meshchanges_id temp_id = cmzn_meshchanges_access(meshchanges.id);
1188  if (0 != id)
1189  cmzn_meshchanges_destroy(&id);
1190  id = temp_id;
1191  return *this;
1192  }
1193 
1194  ~Meshchanges()
1195  {
1196  if (0 != id)
1197  cmzn_meshchanges_destroy(&id);
1198  }
1199 
1205  bool isValid() const
1206  {
1207  return (0 != id);
1208  }
1209 
1220  {
1221  return cmzn_meshchanges_get_element_change_flags(id, element.getId());
1222  }
1223 
1231  {
1232  return cmzn_meshchanges_get_number_of_changes(id);
1233  }
1234 
1241  {
1242  return cmzn_meshchanges_get_summary_element_change_flags(id);
1243  }
1244 };
1245 
1246 inline int Element::merge(const Elementtemplate& elementTemplate)
1247 {
1248  return cmzn_element_merge(id, elementTemplate.getId());
1249 }
1250 
1251 } // namespace Zinc
1252 }
1253 
1254 #endif /* CMZN_ELEMENT_HPP__ */
Definition: element.hpp:288
int addElement(const Element &element)
Definition: element.hpp:1091
A single finite element from a mesh.
Definition: element.hpp:219
int setElementShapeType(enum Element::ShapeType shapeType)
Definition: element.hpp:553
int addElementsConditional(const Field &conditionalField)
Definition: element.hpp:1107
int destroyAllElements()
Definition: element.hpp:931
ValueLabel
Definition: node.hpp:84
int defineElement(int identifier, const Elementtemplate &elementTemplate)
Definition: element.hpp:920
A set of basis functions that can apply over an element of a given dimension.
Definition: element.hpp:31
Elementtemplate createElementtemplate()
Definition: element.hpp:871
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:49
bool isValid() const
Definition: element.hpp:762
ShapeType
Definition: element.hpp:318
Differentialoperator getChartDifferentialoperator(int order, int term)
Definition: element.hpp:988
int removeAllElements()
Definition: element.hpp:1118
int getDimension()
Definition: element.hpp:135
Mesh getMesh() const
Definition: element.hpp:1051
int getNumberOfFunctions()
Definition: element.hpp:188
int setNumberOfNodes(int numberOfNodes)
Definition: element.hpp:577
cmzn_mesh_group_id getId() const
Definition: element.hpp:1078
int getNumberOfFunctionsPerNode(int nodeNumber)
Definition: element.hpp:201
int ChangeFlags
Definition: element.hpp:279
Describes the derivative of a field to evaluate.
Definition: differentialoperator.hpp:26
Node getNode(int localNodeIndex)
Definition: element.hpp:693
int setMapNodeVersion(const Field &field, int componentNumber, int basisNodeIndex, int nodeFunctionIndex, int versionNumber)
Definition: element.hpp:678
bool isValid() const
Definition: element.hpp:252
Element::ChangeFlags getElementChangeFlags(const Element &element)
Definition: element.hpp:1219
bool isValid() const
Definition: element.hpp:515
int defineFieldSimpleNodal(const Field &field, int componentNumber, const Elementbasis &basis, int nodeIndexesCount, const int *nodeIndexesIn)
Definition: element.hpp:624
QuadratureRule
Definition: element.hpp:368
int removeElement(const Element &element)
Definition: element.hpp:1131
cmzn_field_id getId() const
Definition: field.hpp:101
An iterator for looping through all the elements in a mesh.
Definition: element.hpp:718
MeshGroup castGroup()
Definition: element.hpp:1155
Element findElementByIdentifier(int identifier)
Definition: element.hpp:972
A description of element shape and field definitions.
Definition: element.hpp:471
int getDimension()
Definition: element.hpp:398
FunctionType
Definition: element.hpp:85
cmzn_element_id getId() const
Definition: element.hpp:388
ChangeFlag
Definition: element.hpp:260
enum FunctionType getFunctionType(int chartComponent)
Definition: element.hpp:147
cmzn_mesh_id getId() const
Definition: element.hpp:840
bool containsElement(const Element &element)
Definition: element.hpp:860
bool isValid() const
Definition: element.hpp:1205
int getSize()
Definition: element.hpp:1039
int defineFieldElementConstant(const Field &field, int componentNumber)
Definition: element.hpp:592
bool isValid() const
Definition: element.hpp:819
cmzn_node_id getId() const
Definition: node.hpp:140
A subset of a master mesh.
Definition: element.hpp:1061
char * getName()
Definition: element.hpp:1029
int destroyElementsConditional(const Field &conditionalField)
Definition: element.hpp:960
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:133
int destroyElement(const Element &element)
Definition: element.hpp:944
int getNumberOfChanges()
Definition: element.hpp:1230
int getNumberOfNodes()
Definition: element.hpp:564
Mesh getMasterMesh()
Definition: element.hpp:1017
cmzn_elementbasis_id getId() const
Definition: element.hpp:125
Element::ChangeFlags getSummaryElementChangeFlags()
Definition: element.hpp:1240
cmzn_elementtemplate_id getId() const
Definition: element.hpp:525
PointSamplingMode
Definition: element.hpp:343
int getNumberOfNodes()
Definition: element.hpp:171
int setNode(int localNodeIndex, const Node &node)
Definition: element.hpp:707
Element next()
Definition: element.hpp:774
enum Element::ShapeType getElementShapeType()
Definition: element.hpp:535
enum ShapeType getShapeType()
Definition: element.hpp:443
int removeElementsConditional(const Field &conditionalField)
Definition: element.hpp:1147
int setMapNodeValueLabel(const Field &field, int componentNumber, int basisNodeIndex, int nodeFunctionIndex, Node::ValueLabel nodeValueLabel)
Definition: element.hpp:651
Elementiterator createElementiterator()
Definition: element.hpp:904
Point object used to represent finite element nodes.
Definition: node.hpp:38
int merge(const Elementtemplate &elementTemplate)
Definition: element.hpp:1246
int setIdentifier(int identifier)
Definition: element.hpp:423
int getIdentifier()
Definition: element.hpp:410
bool isValid() const
Definition: element.hpp:75
FaceType
Definition: element.hpp:284
Element createElement(int identifier, const Elementtemplate &elementTemplate)
Definition: element.hpp:887
A finite element mesh consisting of a set of elements of fixed dimension.
Definition: element.hpp:787
int getDimension()
Definition: element.hpp:999
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1729
Object describing changes to a mesh in a fieldmoduleevent.
Definition: element.hpp:1165
int setFunctionType(int chartComponent, FunctionType functionType)
Definition: element.hpp:160