10 #ifndef CMZN_MESH_HPP__ 11 #define CMZN_MESH_HPP__ 13 #include "opencmiss/zinc/mesh.h" 14 #include "opencmiss/zinc/field.hpp" 15 #include "opencmiss/zinc/element.hpp" 16 #include "opencmiss/zinc/elementfieldtemplate.hpp" 17 #include "opencmiss/zinc/elementtemplate.hpp" 18 #include "opencmiss/zinc/differentialoperator.hpp" 46 explicit Mesh(cmzn_mesh_id mesh_id) : id(mesh_id)
50 id(cmzn_mesh_access(mesh.id))
57 cmzn_mesh_destroy(&
id);
73 cmzn_mesh_id temp_id = cmzn_mesh_access(mesh.id);
76 cmzn_mesh_destroy(&
id);
109 return cmzn_mesh_contains_element(
id, element.
getId());
163 return Element(cmzn_mesh_create_element(
id, identifier, elementTemplate.
getId()));
197 return cmzn_mesh_define_element(
id, identifier, elementTemplate.
getId());
208 return cmzn_mesh_destroy_all_elements(
id);
221 return cmzn_mesh_destroy_element(
id, element.
getId());
237 return cmzn_mesh_destroy_elements_conditional(
id,
238 conditionalField.
getId());
249 return Element(cmzn_mesh_find_element_by_identifier(
id, identifier));
276 return cmzn_mesh_get_dimension(
id);
294 return Mesh(cmzn_mesh_get_master_mesh(
id));
306 return cmzn_mesh_get_name(
id);
316 return cmzn_mesh_get_size(
id);
321 inline bool operator==(
const Mesh& a,
const Mesh& b)
328 return Mesh(cmzn_element_get_mesh(
id));
342 explicit MeshGroup(cmzn_mesh_group_id mesh_id) :
Mesh(reinterpret_cast<cmzn_mesh_id>(mesh_id))
355 return (cmzn_mesh_group_id)(id);
368 return cmzn_mesh_group_add_element(
369 reinterpret_cast<cmzn_mesh_group_id>(
id), element.
getId());
384 return cmzn_mesh_group_add_elements_conditional(
385 reinterpret_cast<cmzn_mesh_group_id>(
id), conditionalField.
getId());
395 return cmzn_mesh_group_remove_all_elements(reinterpret_cast<cmzn_mesh_group_id>(
id));
408 return cmzn_mesh_group_remove_element(reinterpret_cast<cmzn_mesh_group_id>(
id),
424 return cmzn_mesh_group_remove_elements_conditional(
425 reinterpret_cast<cmzn_mesh_group_id>(
id), conditionalField.
getId());
432 return MeshGroup(cmzn_mesh_cast_group(
id));
444 cmzn_meshchanges_id id;
452 explicit Meshchanges(cmzn_meshchanges_id meshchanges_id) :
457 id(cmzn_meshchanges_access(meshchanges.id))
462 cmzn_meshchanges_id temp_id = cmzn_meshchanges_access(meshchanges.id);
464 cmzn_meshchanges_destroy(&
id);
472 cmzn_meshchanges_destroy(&
id);
496 return cmzn_meshchanges_get_element_change_flags(
id, element.
getId());
507 return cmzn_meshchanges_get_number_of_changes(
id);
517 return cmzn_meshchanges_get_summary_element_change_flags(
id);
int addElement(const Element &element)
Definition: mesh.hpp:366
A single finite element from a mesh.
Definition: element.hpp:34
int addElementsConditional(const Field &conditionalField)
Definition: mesh.hpp:382
int destroyAllElements()
Definition: mesh.hpp:206
int defineElement(int identifier, const Elementtemplate &elementTemplate)
Definition: mesh.hpp:195
A set of basis functions that can apply over an element of a given dimension.
Definition: elementbasis.hpp:28
Elementtemplate createElementtemplate()
Definition: mesh.hpp:144
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:51
Elementfieldtemplate createElementfieldtemplate(const Elementbasis &basis)
Definition: mesh.hpp:130
Differentialoperator getChartDifferentialoperator(int order, int term)
Definition: mesh.hpp:263
int removeAllElements()
Definition: mesh.hpp:393
Mesh getMesh() const
Definition: mesh.hpp:326
cmzn_mesh_group_id getId() const
Definition: mesh.hpp:353
int ChangeFlags
Definition: element.hpp:105
Describes the derivative of a field to evaluate.
Definition: differentialoperator.hpp:26
Element::ChangeFlags getElementChangeFlags(const Element &element)
Definition: mesh.hpp:494
int removeElement(const Element &element)
Definition: mesh.hpp:406
cmzn_field_id getId() const
Definition: field.hpp:103
An iterator for looping through all the elements in a mesh.
Definition: element.hpp:423
MeshGroup castGroup()
Definition: mesh.hpp:430
Element findElementByIdentifier(int identifier)
Definition: mesh.hpp:247
A description of element shape and field definitions.
Definition: elementtemplate.hpp:31
cmzn_element_id getId() const
Definition: element.hpp:207
cmzn_mesh_id getId() const
Definition: mesh.hpp:87
bool containsElement(const Element &element)
Definition: mesh.hpp:107
bool isValid() const
Definition: mesh.hpp:480
int getSize()
Definition: mesh.hpp:314
bool isValid() const
Definition: mesh.hpp:66
A subset of a master mesh.
Definition: mesh.hpp:336
char * getName()
Definition: mesh.hpp:304
int destroyElementsConditional(const Field &conditionalField)
Definition: mesh.hpp:235
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:135
int destroyElement(const Element &element)
Definition: mesh.hpp:219
int getNumberOfChanges()
Definition: mesh.hpp:505
Mesh getMasterMesh()
Definition: mesh.hpp:292
cmzn_elementbasis_id getId() const
Definition: elementbasis.hpp:122
Element::ChangeFlags getSummaryElementChangeFlags()
Definition: mesh.hpp:515
cmzn_elementtemplate_id getId() const
Definition: elementtemplate.hpp:85
int removeElementsConditional(const Field &conditionalField)
Definition: mesh.hpp:422
The OpenCMISS namespace.
Definition: context.hpp:20
Elementiterator createElementiterator()
Definition: mesh.hpp:178
Element createElement(int identifier, const Elementtemplate &elementTemplate)
Definition: mesh.hpp:161
A finite element mesh consisting of a set of elements of fixed dimension.
Definition: mesh.hpp:34
int getDimension()
Definition: mesh.hpp:274
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1791
Object describing changes to a mesh in a fieldmoduleevent.
Definition: mesh.hpp:440
A template defining field parameter mapping and interpolation over an element chart.
Definition: elementfieldtemplate.hpp:39