OpenCMISS-Zinc C++ API Documentation
fieldmodule.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 #ifndef CMZN_FIELDMODULE_HPP__
10 #define CMZN_FIELDMODULE_HPP__
11 
12 #include "opencmiss/zinc/fieldmodule.h"
13 #include "opencmiss/zinc/field.hpp"
14 #include "opencmiss/zinc/mesh.hpp"
15 #include "opencmiss/zinc/node.hpp"
16 #include "opencmiss/zinc/nodeset.hpp"
17 #include "opencmiss/zinc/region.hpp"
18 #include "opencmiss/zinc/timesequence.hpp"
19 #include "opencmiss/zinc/types/scenecoordinatesystem.hpp"
20 
21 namespace OpenCMISS
22 {
23 namespace Zinc
24 {
25 
26 class FieldAlias;
27 class FieldAdd;
28 class FieldPower;
29 class FieldMultiply;
30 class FieldDivide;
31 class FieldSubtract;
32 class FieldSumComponents;
33 class FieldLog;
34 class FieldSqrt;
35 class FieldExp;
36 class FieldAbs;
37 class FieldIdentity;
38 class FieldComponent;
39 class FieldConcatenate;
40 class FieldIf;
41 class FieldConstant;
42 class FieldStringConstant;
43 class FieldCoordinateTransformation;
44 class FieldVectorCoordinateTransformation;
45 class FieldFibreAxes;
46 class FieldFiniteElement;
47 class FieldEdgeDiscontinuity;
48 class FieldEmbedded;
49 class FieldFindMeshLocation;
50 class FieldNodeValue;
51 class FieldStoredMeshLocation;
52 class FieldStoredString;
53 class FieldIsExterior;
54 class FieldIsOnFace;
55 class FieldGroup;
56 class FieldImage;
57 class FieldAnd;
58 class FieldEqualTo;
59 class FieldGreaterThan;
60 class FieldIsDefined;
61 class FieldLessThan;
62 class FieldOr;
63 class FieldNot;
64 class FieldXor;
65 class FieldDeterminant;
66 class FieldEigenvalues;
67 class FieldEigenvectors;
68 class FieldMatrixInvert;
69 class FieldMatrixMultiply;
70 class FieldProjection;
71 class FieldTranspose;
72 class FieldMeshIntegral;
73 class FieldMeshIntegralSquares;
74 class FieldNodesetSum;
75 class FieldNodesetMean;
76 class FieldNodesetSumSquares;
77 class FieldNodesetMeanSquares;
78 class FieldNodesetMinimum;
79 class FieldNodesetMaximum;
80 class FieldElementGroup;
81 class FieldNodeGroup;
82 class FieldTimeLookup;
83 class FieldTimeValue;
84 class FieldDerivative;
85 class FieldCurl;
86 class FieldDivergence;
87 class FieldGradient;
88 class FieldSin;
89 class FieldCos;
90 class FieldTan;
91 class FieldAsin;
92 class FieldAcos;
93 class FieldAtan;
94 class FieldAtan2;
95 class FieldCrossProduct;
96 class FieldCrossProduct3D;
97 class FieldDotProduct;
98 class FieldMagnitude;
99 class FieldNodeLookup;
100 class FieldNormalise;
101 class FieldImagefilterBinaryDilate;
102 class FieldImagefilterBinaryErode;
103 class FieldImagefilterBinaryThreshold;
104 class FieldImagefilterCannyEdgeDetection;
105 class FieldImagefilterConnectedThreshold;
106 class FieldImagefilterCurvatureAnisotropicDiffusion;
107 class FieldImagefilterDiscreteGaussian;
108 class FieldImagefilterHistogram;
109 class FieldImagefilterMean;
110 class FieldImagefilterGradientMagnitudeRecursiveGaussian;
111 class FieldImagefilterRescaleIntensity;
112 class FieldImagefilterSigmoid;
113 class FieldImagefilterThreshold;
114 class FieldSceneviewerProjection;
115 class Fieldcache;
116 class Fieldmodulenotifier;
117 class Fieldsmoothing;
118 class Timekeeper;
119 class Optimisation;
120 class Sceneviewer;
121 
136 {
137 private:
138 
139  cmzn_fieldmodule_id id;
140 
141 public:
142 
143  Fieldmodule() : id(0)
144  { }
145 
146  // takes ownership of C handle, responsibility for destroying it
147  explicit Fieldmodule(cmzn_fieldmodule_id field_module_id) :
148  id(field_module_id)
149  { }
150 
151  Fieldmodule(const Fieldmodule& fieldModule) :
152  id(cmzn_fieldmodule_access(fieldModule.id))
153  { }
154 
155  Fieldmodule& operator=(const Fieldmodule& fieldModule)
156  {
157  cmzn_fieldmodule_id temp_id = cmzn_fieldmodule_access(fieldModule.id);
158  if (0 != id)
159  {
160  cmzn_fieldmodule_destroy(&id);
161  }
162  id = temp_id;
163  return *this;
164  }
165 
166  ~Fieldmodule()
167  {
168  if (0 != id)
169  {
170  cmzn_fieldmodule_destroy(&id);
171  }
172  }
173 
179  bool isValid() const
180  {
181  return (0 != id);
182  }
183 
189  cmzn_fieldmodule_id getId() const
190  {
191  return id;
192  }
193 
207  {
208  return cmzn_fieldmodule_begin_change(id);
209  }
210 
220  int endChange()
221  {
222  return cmzn_fieldmodule_end_change(id);
223  }
224 
235  {
236  return cmzn_fieldmodule_define_all_faces(id);
237  }
238 
245  Field findFieldByName(const char *fieldName)
246  {
247  return Field(cmzn_fieldmodule_find_field_by_name(id, fieldName));
248  }
249 
256  inline Fieldcache createFieldcache();
257 
270  {
271  return Fielditerator(cmzn_fieldmodule_create_fielditerator(id));
272  }
273 
281 
291 
302  {
303  return Elementbasis(cmzn_fieldmodule_create_elementbasis(
304  id, dimension, static_cast<cmzn_elementbasis_function_type>(functionType)));
305  }
306 
315  {
316  return Nodeset(cmzn_fieldmodule_find_nodeset_by_field_domain_type(id,
317  static_cast<cmzn_field_domain_type>(domainType)));
318  }
319 
334  Nodeset findNodesetByName(const char *nodeset_name)
335  {
336  return Nodeset(cmzn_fieldmodule_find_nodeset_by_name(id,
337  nodeset_name));
338  }
339 
348  Mesh findMeshByDimension(int dimension)
349  {
350  return Mesh(cmzn_fieldmodule_find_mesh_by_dimension(id, dimension));
351  }
352 
366  Mesh findMeshByName(const char *meshName)
367  {
368  return Mesh(cmzn_fieldmodule_find_mesh_by_name(id, meshName));
369  }
370 
378  {
379  return cmzn_fieldmodule_write_description(id);
380  }
381 
389  int readDescription(const char *description)
390  {
391  return cmzn_fieldmodule_read_description(id, description);
392  }
393 
404  inline Timesequence getMatchingTimesequence(int timesCount, const double *timesIn)
405  {
406  return Timesequence(cmzn_fieldmodule_get_matching_timesequence(
407  id, timesCount, timesIn));
408  }
409 
415  inline Region getRegion() const
416  {
417  return Region(cmzn_fieldmodule_get_region(id));
418  }
419 
427 
437  inline FieldAlias createFieldAlias(const Field& sourceField);
438 
448  inline FieldAdd createFieldAdd(const Field& sourceField1, const Field& sourceField2);
449 
459  inline FieldPower createFieldPower(const Field& sourceField1, const Field& sourceField2);
460 
470  inline FieldMultiply createFieldMultiply(const Field& sourceField1, const Field& sourceField2);
471 
481  inline FieldDivide createFieldDivide(const Field& sourceField1, const Field& sourceField2);
482 
492  inline FieldSubtract createFieldSubtract(const Field& sourceField1, const Field& sourceField2);
493 
503  inline FieldSumComponents createFieldSumComponents(const Field& sourceField);
504 
512  inline FieldLog createFieldLog(const Field& sourceField);
513 
521  inline FieldSqrt createFieldSqrt(const Field& sourceField);
522 
530  inline FieldExp createFieldExp(const Field& sourceField);
531 
539  inline FieldAbs createFieldAbs(const Field& sourceField);
540 
550  inline FieldIdentity createFieldIdentity(const Field& sourceField);
551 
561  inline FieldComponent createFieldComponent(const Field& sourceField, int sourceComponentIndex);
562 
572  inline FieldComponent createFieldComponent(const Field& sourceField,
573  int sourceComponentIndexesCount, const int *sourceComponentIndexesIn);
574 
584  inline FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields);
585 
597  inline FieldIf createFieldIf(const Field& sourceField1, const Field& sourceField2, const Field& sourceField3);
598 
607  inline FieldConstant createFieldConstant(int valuesCount, const double *valuesIn);
608 
616  inline FieldStringConstant createFieldStringConstant(const char *stringConstant);
617 
629 
643  const Field& vectorField, const Field& coordinateField);
644 
669  inline FieldFibreAxes createFieldFibreAxes(const Field& fibreField, const Field& coordinateField);
670 
678  inline FieldFiniteElement createFieldFiniteElement(int numberOfComponents);
679 
690  inline FieldEmbedded createFieldEmbedded(const Field& sourceField, const Field& embeddedLocationField);
691 
710  inline FieldEdgeDiscontinuity createFieldEdgeDiscontinuity(const Field& sourceField);
711 
729  const Field& sourceField, const Field& meshField, const Mesh& mesh);
730 
745  inline FieldNodeValue createFieldNodeValue(const Field& sourceField,
746  Node::ValueLabel nodeValueLabel, int versionNumber);
747 
759 
766 
774 
784 
792  inline FieldGroup createFieldGroup();
793 
804  inline FieldImage createFieldImage();
805 
823  inline FieldImage createFieldImageFromSource(const Field& sourceField);
824 
834  inline FieldAnd createFieldAnd(const Field& sourceField1, const Field& sourceField2);
835 
845  inline FieldEqualTo createFieldEqualTo(const Field& sourceField1, const Field& sourceField2);
846 
856  inline FieldGreaterThan createFieldGreaterThan(const Field& sourceField1, const Field& sourceField2);
857 
865  inline FieldIsDefined createFieldIsDefined(const Field& sourceField);
866 
876  inline FieldLessThan createFieldLessThan(const Field& sourceField1, const Field& sourceField2);
877 
887  inline FieldOr createFieldOr(const Field& sourceField1, const Field& sourceField2);
888 
897  inline FieldNot createFieldNot(const Field& sourceField);
898 
908  inline FieldXor createFieldXor(const Field& sourceField1, const Field& sourceField2);
909 
918  inline FieldDeterminant createFieldDeterminant(const Field& sourceField);
919 
927  inline FieldEigenvalues createFieldEigenvalues(const Field& sourceField);
928 
937  inline FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues& eigenValuesField);
938 
946  inline FieldMatrixInvert createFieldMatrixInvert(const Field& sourceField);
947 
960  inline FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows,
961  const Field& sourceField1, const Field& sourceField2);
962 
986  inline FieldProjection createFieldProjection(const Field& sourceField, const Field& projectionMatrixField);
987 
999  inline FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field& sourceField);
1000 
1023  inline FieldMeshIntegral createFieldMeshIntegral(const Field& integrandField,
1024  const Field& coordinateField, const Mesh& mesh);
1025 
1045  inline FieldMeshIntegralSquares createFieldMeshIntegralSquares(const Field& integrandField,
1046  const Field& coordinateField, const Mesh& mesh);
1047 
1057  inline FieldNodesetSum createFieldNodesetSum(const Field& sourceField, const Nodeset& nodeset);
1058 
1068  inline FieldNodesetMean createFieldNodesetMean(const Field& sourceField, const Nodeset& nodeset);
1069 
1082  inline FieldNodesetSumSquares createFieldNodesetSumSquares(const Field& sourceField, const Nodeset& nodeset);
1083 
1097  inline FieldNodesetMeanSquares createFieldNodesetMeanSquares(const Field& sourceField, const Nodeset& nodeset);
1098 
1108  inline FieldNodesetMinimum createFieldNodesetMinimum(const Field& sourceField, const Nodeset& nodeset);
1109 
1119  inline FieldNodesetMaximum createFieldNodesetMaximum(const Field& sourceField, const Nodeset& nodeset);
1120 
1134  inline FieldNodeGroup createFieldNodeGroup(const Nodeset& nodeset);
1135 
1149  inline FieldElementGroup createFieldElementGroup(const Mesh& mesh);
1150 
1159  inline FieldTimeLookup createFieldTimeLookup(const Field& sourceField, const Field& timeField);
1160 
1167  inline FieldTimeValue createFieldTimeValue(const Timekeeper& timeKeeper);
1168 
1179  inline FieldDerivative createFieldDerivative(const Field& sourceField, int xi_index);
1180 
1190  inline FieldCurl createFieldCurl(const Field& vectorField, const Field& coordinateField);
1191 
1203  inline FieldDivergence createFieldDivergence(const Field& vectorField, const Field& coordinateField);
1204 
1226  inline FieldGradient createFieldGradient(const Field& sourceField, const Field& coordinateField);
1227 
1235  inline FieldSin createFieldSin(const Field& sourceField);
1236 
1244  inline FieldCos createFieldCos(const Field& sourceField);
1245 
1253  inline FieldTan createFieldTan(const Field& sourceField);
1254 
1262  inline FieldAsin createFieldAsin(const Field& sourceField);
1263 
1271  inline FieldAcos createFieldAcos(const Field& sourceField);
1272 
1280  inline FieldAtan createFieldAtan(const Field& sourceField);
1281 
1292  inline FieldAtan2 createFieldAtan2(const Field& sourceField1, const Field& sourceField2);
1293 
1312  inline FieldCrossProduct createFieldCrossProduct(int fieldsCount, const Field *sourceFields);
1313 
1332  inline FieldCrossProduct createFieldCrossProduct(const Field& sourceField1, const Field& sourceField2);
1333 
1342  inline FieldDotProduct createFieldDotProduct(const Field& sourceField1, const Field& sourceField2);
1343 
1350  inline FieldMagnitude createFieldMagnitude(const Field& sourceField);
1351 
1360  inline FieldNodeLookup createFieldNodeLookup(const Field& sourceField, const Node& lookupNode);
1361 
1369  inline FieldNormalise createFieldNormalise(const Field& sourceField);
1370 
1379  int radius, double dilate_value);
1380 
1389  int radius, double erode_value);
1390 
1402 
1409  double variance, double maximumError, double upperThreshold, double lowerThreshold);
1410 
1417  double lowerThreshold, double upperThreshold, double replaceValue,
1418  int dimension, int seedPointsCount, const double *seedPoints);
1419 
1432  const Field& sourceField, double timeStep, double conductance, int numIterations);
1433 
1448 
1458 
1470  inline FieldImagefilterMean createFieldImagefilterMean(const Field& sourceField, int radiusSizesCount,
1471  const int *radiusSizesIn);
1472 
1481  double sigma);
1482 
1489  double outputMin, double outputMax);
1490 
1497  double min, double max, double alpha, double beta);
1498 
1508 
1530  const Sceneviewer& sceneviewer, Scenecoordinatesystem fromCoordinateSystem,
1531  Scenecoordinatesystem toCoordinateSystem);
1532 };
1533 
1534 inline bool operator==(const Fieldmodule& a, const Fieldmodule& b)
1535 {
1536  return cmzn_fieldmodule_match(a.getId(), b.getId());
1537 }
1538 
1546 {
1547 protected:
1548  cmzn_fieldmoduleevent_id id;
1549 
1550 public:
1551 
1552  Fieldmoduleevent() : id(0)
1553  { }
1554 
1555  // takes ownership of C handle, responsibility for destroying it
1556  explicit Fieldmoduleevent(cmzn_fieldmoduleevent_id in_fieldmodule_event_id) :
1557  id(in_fieldmodule_event_id)
1558  { }
1559 
1560  Fieldmoduleevent(const Fieldmoduleevent& fieldmoduleEvent) :
1561  id(cmzn_fieldmoduleevent_access(fieldmoduleEvent.id))
1562  { }
1563 
1564  Fieldmoduleevent& operator=(const Fieldmoduleevent& fieldmoduleEvent)
1565  {
1566  cmzn_fieldmoduleevent_id temp_id = cmzn_fieldmoduleevent_access(fieldmoduleEvent.id);
1567  if (0 != id)
1568  cmzn_fieldmoduleevent_destroy(&id);
1569  id = temp_id;
1570  return *this;
1571  }
1572 
1573  ~Fieldmoduleevent()
1574  {
1575  if (0 != id)
1576  {
1577  cmzn_fieldmoduleevent_destroy(&id);
1578  }
1579  }
1580 
1586  bool isValid() const
1587  {
1588  return (0 != id);
1589  }
1590 
1596  cmzn_fieldmoduleevent_id getId() const
1597  {
1598  return id;
1599  }
1600 
1611  {
1612  return cmzn_fieldmoduleevent_get_field_change_flags(id, field.getId());
1613  }
1614 
1627  Meshchanges getMeshchanges(const Mesh& mesh) const
1628  {
1629  return Meshchanges(cmzn_fieldmoduleevent_get_meshchanges(id, mesh.getId()));
1630  }
1631 
1640  {
1641  return Nodesetchanges(cmzn_fieldmoduleevent_get_nodesetchanges(id, nodeset.getId()));
1642  }
1643 
1652  {
1653  return cmzn_fieldmoduleevent_get_summary_field_change_flags(id);
1654  }
1655 
1656 };
1657 
1667 {
1668 friend class Fieldmodulenotifier;
1669 private:
1670  Fieldmodulecallback(const Fieldmodulecallback&); // not implemented
1671  Fieldmodulecallback& operator=(const Fieldmodulecallback&); // not implemented
1672 
1673  static void C_callback(cmzn_fieldmoduleevent_id fieldmoduleevent_id, void *callbackVoid)
1674  {
1675  Fieldmoduleevent fieldmoduleevent(cmzn_fieldmoduleevent_access(fieldmoduleevent_id));
1676  Fieldmodulecallback *callback = reinterpret_cast<Fieldmodulecallback *>(callbackVoid);
1677  (*callback)(fieldmoduleevent);
1678  }
1679 
1680  virtual void operator()(const Fieldmoduleevent &fieldmoduleevent) = 0;
1681 
1682 protected:
1684  { }
1685 
1686 public:
1687  virtual ~Fieldmodulecallback()
1688  { }
1689 };
1690 
1697 {
1698 protected:
1699  cmzn_fieldmodulenotifier_id id;
1700 
1701 public:
1702 
1703  Fieldmodulenotifier() : id(0)
1704  { }
1705 
1706  // takes ownership of C handle, responsibility for destroying it
1707  explicit Fieldmodulenotifier(cmzn_fieldmodulenotifier_id in_fieldmodulenotifier_id) :
1708  id(in_fieldmodulenotifier_id)
1709  { }
1710 
1711  Fieldmodulenotifier(const Fieldmodulenotifier& fieldmoduleNotifier) :
1712  id(cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id))
1713  { }
1714 
1715  Fieldmodulenotifier& operator=(const Fieldmodulenotifier& fieldmoduleNotifier)
1716  {
1717  cmzn_fieldmodulenotifier_id temp_id = cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id);
1718  if (0 != id)
1719  {
1720  cmzn_fieldmodulenotifier_destroy(&id);
1721  }
1722  id = temp_id;
1723  return *this;
1724  }
1725 
1727  {
1728  if (0 != id)
1729  {
1730  cmzn_fieldmodulenotifier_destroy(&id);
1731  }
1732  }
1733 
1739  bool isValid() const
1740  {
1741  return (0 != id);
1742  }
1743 
1749  cmzn_fieldmodulenotifier_id getId() const
1750  {
1751  return id;
1752  }
1753 
1765  {
1766  return cmzn_fieldmodulenotifier_set_callback(id, callback.C_callback, static_cast<void*>(&callback));
1767  }
1768 
1776  {
1777  return cmzn_fieldmodulenotifier_clear_callback(id);
1778  }
1779 };
1780 
1782 {
1783  return Fieldmodule(cmzn_region_get_fieldmodule(id));
1784 }
1785 
1787 {
1788  return Fieldmodule(cmzn_field_get_fieldmodule(id));
1789 }
1790 
1792 {
1793  return Fieldmodule(cmzn_mesh_get_fieldmodule(id));
1794 }
1795 
1797 {
1798  return Fieldmodule(cmzn_nodeset_get_fieldmodule(id));
1799 }
1800 
1802 {
1803  return Fieldmodulenotifier(cmzn_fieldmodule_create_fieldmodulenotifier(id));
1804 }
1805 
1806 } // namespace Zinc
1807 }
1808 
1809 #endif
A field which computes the mean of the squares of each source field component over all nodes in the n...
Definition: fieldnodesetoperators.hpp:109
FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows, const Field &sourceField1, const Field &sourceField2)
Definition: fieldmatrixoperators.hpp:236
FieldSin createFieldSin(const Field &sourceField)
Definition: fieldtrigonometry.hpp:187
A field performing ITK binary dilate image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:30
FieldNodesetMaximum createFieldNodesetMaximum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:209
FieldImagefilterCannyEdgeDetection createFieldImagefilterCannyEdgeDetection(const Field &sourceField, double variance, double maximumError, double upperThreshold, double lowerThreshold)
Definition: fieldimageprocessing.hpp:730
Mesh findMeshByDimension(int dimension)
Definition: fieldmodule.hpp:348
FieldEigenvalues createFieldEigenvalues(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:218
FieldAlias createFieldAlias(const Field &sourceField)
Definition: fieldalias.hpp:45
Object describing changes to a nodeset in a fieldmoduleevent.
Definition: nodeset.hpp:367
FieldImagefilterMean createFieldImagefilterMean(const Field &sourceField, int radiusSizesCount, const int *radiusSizesIn)
Definition: fieldimageprocessing.hpp:800
FieldTimeLookup createFieldTimeLookup(const Field &sourceField, const Field &timeField)
Definition: fieldtime.hpp:66
FieldSubtract createFieldSubtract(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:299
FieldFiniteElement createFieldFiniteElement(int numberOfComponents)
Definition: fieldfiniteelement.hpp:483
A "fibre axes" field type which returns a 9-component (3 x 3 vector) field representing an orthonorma...
Definition: fieldfibres.hpp:44
A real-valued interpolated field.
Definition: fieldfiniteelement.hpp:31
A field where the which divides the components of source_field_one by source_field_two.
Definition: fieldarithmeticoperators.hpp:111
FieldCos createFieldCos(const Field &sourceField)
Definition: fieldtrigonometry.hpp:192
A field where the components are the arccosine value (using radians) of the components of the source_...
Definition: fieldtrigonometry.hpp:120
FieldAbs createFieldAbs(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:320
FieldMultiply createFieldMultiply(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:287
A field where the components are the sine value (using radians) of the components of the source_field...
Definition: fieldtrigonometry.hpp:28
A field which defines a subset of elements from a master mesh.
Definition: fieldsubobjectgroup.hpp:31
FieldImagefilterDiscreteGaussian createFieldImagefilterDiscreteGaussian(const Field &sourceField)
Definition: fieldimageprocessing.hpp:759
ValueLabel
Definition: node.hpp:80
A field returning the transpose of N*M matrix source_field.
Definition: fieldmatrixoperators.hpp:190
A description of a non-linear optimisation problem.
Definition: optimisation.hpp:29
Elementbasis createElementbasis(int dimension, enum Elementbasis::FunctionType functionType)
Definition: fieldmodule.hpp:301
A set of basis functions that can apply over an element of a given dimension.
Definition: elementbasis.hpp:28
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:51
A field whose value equals the source_field evaluated at the time given by time_field, overriding any time prescribed for field evaluation.
Definition: fieldtime.hpp:28
FieldElementGroup createFieldElementGroup(const Mesh &mesh)
Definition: fieldsubobjectgroup.hpp:89
FieldAnd createFieldAnd(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:241
A field where the components are the arctangent value (using radians) of the components of the source...
Definition: fieldtrigonometry.hpp:143
FieldVectorCoordinateTransformation createFieldVectorCoordinateTransformation(const Field &vectorField, const Field &coordinateField)
Definition: fieldcoordinatetransformation.hpp:80
FieldStringConstant createFieldStringConstant(const char *stringConstant)
Definition: fieldconstant.hpp:72
FieldAsin createFieldAsin(const Field &sourceField)
Definition: fieldtrigonometry.hpp:202
FieldImagefilterBinaryDilate createFieldImagefilterBinaryDilate(const Field &sourceField, int radius, double dilate_value)
Definition: fieldimageprocessing.hpp:700
A field which concatenates the components of all source fields, in order, into a single vector...
Definition: fieldcomposite.hpp:131
FieldNot createFieldNot(const Field &sourceField)
Definition: fieldlogicaloperators.hpp:276
Optimisation createOptimisation()
Definition: optimisation.hpp:499
Scenecoordinatesystem
Definition: scenecoordinatesystem.hpp:26
FieldTimeValue createFieldTimeValue(const Timekeeper &timeKeeper)
Definition: fieldtime.hpp:72
A field which has one component equal to the sum of all components of the source field.
Definition: fieldvectoroperators.hpp:130
FieldNodesetSumSquares createFieldNodesetSumSquares(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:188
FieldCoordinateTransformation createFieldCoordinateTransformation(const Field &sourceField)
Definition: fieldcoordinatetransformation.hpp:73
cmzn_nodeset_id getId() const
Definition: nodeset.hpp:82
FieldDotProduct createFieldDotProduct(const Field &sourceField1, const Field &sourceField2)
Definition: fieldvectoroperators.hpp:168
FieldImagefilterCurvatureAnisotropicDiffusion createFieldImagefilterCurvatureAnisotropicDiffusion(const Field &sourceField, double timeStep, double conductance, int numIterations)
Definition: fieldimageprocessing.hpp:750
A field where the which calculates the components of source_field_one raised to the power of the comp...
Definition: fieldarithmeticoperators.hpp:58
Base class functor for field module notifier callbacks.
Definition: fieldmodule.hpp:1666
FieldStoredMeshLocation createFieldStoredMeshLocation(const Mesh &mesh)
Definition: fieldfiniteelement.hpp:532
FieldConstant createFieldConstant(int valuesCount, const double *valuesIn)
Definition: fieldconstant.hpp:66
A conditional field with the same number of components as each of the source_fields.
Definition: fieldconditional.hpp:30
FieldAdd createFieldAdd(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:275
FieldNormalise createFieldNormalise(const Field &sourceField)
Definition: fieldvectoroperators.hpp:179
FieldIsOnFace createFieldIsOnFace(Element::FaceType face)
Definition: fieldfiniteelement.hpp:559
FieldEmbedded createFieldEmbedded(const Field &sourceField, const Field &embeddedLocationField)
Definition: fieldfiniteelement.hpp:506
FieldGradient createFieldGradient(const Field &sourceField, const Field &coordinateField)
Definition: fieldderivatives.hpp:143
A field whose component values are 1 if that component of source_field_one OR source_field_two is non...
Definition: fieldlogicaloperators.hpp:224
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1781
FieldStoredString createFieldStoredString()
Definition: fieldfiniteelement.hpp:543
int endChange()
Definition: fieldmodule.hpp:220
A field returning the scalar real determinant of a square matrix source field.
Definition: fieldmatrixoperators.hpp:28
FieldMatrixInvert createFieldMatrixInvert(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:230
FieldOr createFieldOr(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:270
A field where the components are the cosine value (using radians) of the components of the source_fie...
Definition: fieldtrigonometry.hpp:51
A field which defines a subset of nodes from a master nodeset.
Definition: fieldsubobjectgroup.hpp:64
FieldImagefilterBinaryErode createFieldImagefilterBinaryErode(const Field &sourceField, int radius, double erode_value)
Definition: fieldimageprocessing.hpp:709
A scalar field whose value is the dot product of the two supplied source fields, which must have equa...
Definition: fieldvectoroperators.hpp:61
A field which stores and returns string values at nodes.
Definition: fieldfiniteelement.hpp:401
FieldNodeValue createFieldNodeValue(const Field &sourceField, Node::ValueLabel nodeValueLabel, int versionNumber)
Definition: fieldfiniteelement.hpp:524
FieldImagefilterHistogram createFieldImagefilterHistogram(const Field &sourceField)
Definition: fieldimageprocessing.hpp:780
FieldDivergence createFieldDivergence(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:138
FieldImagefilterRescaleIntensity createFieldImagefilterRescaleIntensity(const Field &sourceField, double outputMin, double outputMax)
Definition: fieldimageprocessing.hpp:792
A field where the which multiplies the components of source_field_one and source_field_two.
Definition: fieldarithmeticoperators.hpp:82
A field which computes the sum of each source field component over all nodes in the nodeset for which...
Definition: fieldnodesetoperators.hpp:30
A field which represents and returns labelled node parameters, i.
Definition: fieldfiniteelement.hpp:360
A specialisation of the mesh integral field that integrates the squares of the components of the inte...
Definition: fieldmeshoperators.hpp:157
Meshchanges getMeshchanges(const Mesh &mesh) const
Definition: fieldmodule.hpp:1627
A field returning one or more components of a source field in a specified order.
Definition: fieldcomposite.hpp:54
Mesh findMeshByName(const char *meshName)
Definition: fieldmodule.hpp:366
A hierarchical block/namespace owning domains and fields.
Definition: region.hpp:33
Fieldsmoothing createFieldsmoothing()
Definition: fieldsmoothing.hpp:119
FieldImage createFieldImageFromSource(const Field &sourceField)
Definition: fieldimage.hpp:574
A scalar field returning the magnitude of the vector source field.
Definition: fieldvectoroperators.hpp:83
FieldIsExterior createFieldIsExterior()
Definition: fieldfiniteelement.hpp:554
Image processing derived field type performing the ITK discrete gaussian filter.
Definition: fieldimageprocessing.hpp:226
A field returning result of ITK canny edge detection filter on the source field image.
Definition: fieldimageprocessing.hpp:149
int beginChange()
Definition: fieldmodule.hpp:206
A field returning the derivative of the field with respect to element xi_index as its primary value...
Definition: fieldderivatives.hpp:29
A field returning a value of a source field at an embedded location.
Definition: fieldfiniteelement.hpp:259
A field calculating the integral over a mesh.
Definition: fieldmeshoperators.hpp:33
Parameters for smoothing a field.
Definition: fieldsmoothing.hpp:28
int clearCallback()
Definition: fieldmodule.hpp:1775
FieldLog createFieldLog(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:305
A field performing ITK connected threshold image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:174
FieldNodesetMean createFieldNodesetMean(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:182
FieldImage createFieldImage()
Definition: fieldimage.hpp:568
FieldPower createFieldPower(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:281
Nodeset findNodesetByFieldDomainType(Field::DomainType domainType)
Definition: fieldmodule.hpp:314
cmzn_field_id getId() const
Definition: field.hpp:103
The timekeeper synchronises a current time across Zinc objects.
Definition: timekeeper.hpp:41
A field whose component values are 1 if that component of source_field_one AND source_field_two is no...
Definition: fieldlogicaloperators.hpp:29
A field measuring discontinuity between surface elements.
Definition: fieldfiniteelement.hpp:144
A field whose component values are 1 if that component of source_field_one is less than the component...
Definition: fieldlogicaloperators.hpp:135
A field returning the values of source vector field normalised to unit length.
Definition: fieldvectoroperators.hpp:106
An image-based field giving the pixel colour/intensity values.
Definition: fieldimage.hpp:31
FieldSceneviewerProjection createFieldSceneviewerProjection(const Sceneviewer &sceneviewer, Scenecoordinatesystem fromCoordinateSystem, Scenecoordinatesystem toCoordinateSystem)
Definition: fieldsceneviewerprojection.hpp:56
A field where the components are the trigonometric tangent value (using radians) of the components of...
Definition: fieldtrigonometry.hpp:74
A field storing locations within a mesh.
Definition: fieldfiniteelement.hpp:383
A field with the components specified in the array values.
Definition: fieldconstant.hpp:27
cmzn_fieldmodulenotifier_id getId() const
Definition: fieldmodule.hpp:1749
bool isValid() const
Definition: fieldmodule.hpp:1586
FieldImagefilterConnectedThreshold createFieldImagefilterConnectedThreshold(const Field &sourceField, double lowerThreshold, double upperThreshold, double replaceValue, int dimension, int seedPointsCount, const double *seedPoints)
Definition: fieldimageprocessing.hpp:740
A field returning the inverse of N*N symmetric matrix valued source field.
Definition: fieldmatrixoperators.hpp:99
FieldXor createFieldXor(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:281
char * writeDescription()
Definition: fieldmodule.hpp:377
A field performing ITK mean image filter on source_field image.
Definition: fieldimageprocessing.hpp:518
int setCallback(Fieldmodulecallback &callback)
Definition: fieldmodule.hpp:1764
A field returning the gradient of a source field with respect to a given coordinate field...
Definition: fieldderivatives.hpp:112
FieldNodeGroup createFieldNodeGroup(const Nodeset &nodeset)
Definition: fieldsubobjectgroup.hpp:100
FieldNodesetSum createFieldNodesetSum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:176
FunctionType
Definition: elementbasis.hpp:82
FieldIsDefined createFieldIsDefined(const Field &sourceField)
Definition: fieldlogicaloperators.hpp:259
cmzn_fieldmodule_id getId() const
Definition: fieldmodule.hpp:189
FieldNodesetMinimum createFieldNodesetMinimum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:202
int readDescription(const char *description)
Definition: fieldmodule.hpp:389
DomainType
Definition: field.hpp:210
Field::ChangeFlags getFieldChangeFlags(const Field &field) const
Definition: fieldmodule.hpp:1610
A field whose component values are 1 if that component of the source_field is zero, 0 otherwise; effectively a component-wise logical not operator.
Definition: fieldlogicaloperators.hpp:195
FieldMeshIntegralSquares createFieldMeshIntegralSquares(const Field &integrandField, const Field &coordinateField, const Mesh &mesh)
Definition: fieldmeshoperators.hpp:187
FieldEdgeDiscontinuity createFieldEdgeDiscontinuity(const Field &sourceField)
Definition: fieldfiniteelement.hpp:494
Nodesetchanges getNodesetchanges(const Nodeset &nodeset) const
Definition: fieldmodule.hpp:1639
A scalar field returning the divergence of vector field within coordinate field.
Definition: fieldderivatives.hpp:77
A field where the components are calculated using the atan2 c function, so that the angle returned (i...
Definition: fieldtrigonometry.hpp:170
FieldTan createFieldTan(const Field &sourceField)
Definition: fieldtrigonometry.hpp:197
A field where the field components are the natural exponent of each component in the source field...
Definition: fieldarithmeticoperators.hpp:224
cmzn_mesh_id getId() const
Definition: mesh.hpp:87
int ChangeFlags
Definition: field.hpp:142
FieldExp createFieldExp(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:315
A field which returns the current time from the supplied time keeper.
Definition: fieldtime.hpp:50
A field returning the N, N-dimensional eigenvectors computed with the source eigenvalues field...
Definition: fieldmatrixoperators.hpp:75
Nodeset findNodesetByName(const char *nodeset_name)
Definition: fieldmodule.hpp:334
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:569
bool isValid() const
Definition: fieldmodule.hpp:1739
A field which computes the maximum of each source field component over all nodes in the nodeset for w...
Definition: fieldnodesetoperators.hpp:159
A field where the field components are the natural logarithm of each component in the source field...
Definition: fieldarithmeticoperators.hpp:168
Field::ChangeFlags getSummaryFieldChangeFlags() const
Definition: fieldmodule.hpp:1651
A field which computes the minimum of each source field component over all nodes in the nodeset for w...
Definition: fieldnodesetoperators.hpp:134
int defineAllFaces()
Definition: fieldmodule.hpp:234
FieldAtan2 createFieldAtan2(const Field &sourceField1, const Field &sourceField2)
Definition: fieldtrigonometry.hpp:217
Fielditerator createFielditerator()
Definition: fieldmodule.hpp:269
FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields)
Definition: fieldcomposite.hpp:172
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:135
FieldAtan createFieldAtan(const Field &sourceField)
Definition: fieldtrigonometry.hpp:212
FieldComponent createFieldComponent(const Field &sourceField, int sourceComponentIndex)
Definition: fieldcomposite.hpp:153
A field returning 1 (true) at locations where the source field is defined and 0 (false) elsewhere...
Definition: fieldlogicaloperators.hpp:113
A field which performs a coordinate transformation from the source field values in their coordinate s...
Definition: fieldcoordinatetransformation.hpp:30
Timesequence getMatchingTimesequence(int timesCount, const double *timesIn)
Definition: fieldmodule.hpp:404
A non-decreasing list of times at which nodal parameters can be stored.
Definition: timesequence.hpp:35
Cache for setting domain locations at which fields are evaluated or assigned.
Definition: fieldcache.hpp:33
FieldIdentity createFieldIdentity(const Field &sourceField)
Definition: fieldcomposite.hpp:148
A field whose component values are 1 if that component of source_field_one EQUALS that component of s...
Definition: fieldlogicaloperators.hpp:59
A field performing ITK curvature anisotropic diffusion image filter on scalar source field image...
Definition: fieldimageprocessing.hpp:202
FieldDerivative createFieldDerivative(const Field &sourceField, int xi_index)
Definition: fieldderivatives.hpp:128
A field where the field components are the square root of each component in the source field...
Definition: fieldarithmeticoperators.hpp:196
FieldMagnitude createFieldMagnitude(const Field &sourceField)
Definition: fieldvectoroperators.hpp:174
A field where the which adds the components of source_field_one and source_field_two.
Definition: fieldarithmeticoperators.hpp:29
FieldSumComponents createFieldSumComponents(const Field &sourceField)
Definition: fieldvectoroperators.hpp:184
FieldImagefilterThreshold createFieldImagefilterThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:817
A field performing ITK binary erode image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:57
FieldSqrt createFieldSqrt(const Field &sourceField)
Definition: fieldarithmeticoperators.hpp:310
Image processing derived field type performing the ITK histogram field.
Definition: fieldimageprocessing.hpp:302
A field performing ITK gradient magnitude recursive gaussian image filter on scalar source field imag...
Definition: fieldimageprocessing.hpp:466
Fieldmodulenotifier createFieldmodulenotifier()
Definition: fieldmodule.hpp:1801
FieldLessThan createFieldLessThan(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:264
FieldMeshIntegral createFieldMeshIntegral(const Field &integrandField, const Field &coordinateField, const Mesh &mesh)
Definition: fieldmeshoperators.hpp:174
A field returning the values resulting from matrix multiplication <source_field1> x <source_field2>...
Definition: fieldmatrixoperators.hpp:126
bool isValid() const
Definition: fieldmodule.hpp:179
A field where the components are the arcsine value (using radians) of the components of the source_fi...
Definition: fieldtrigonometry.hpp:97
FieldAcos createFieldAcos(const Field &sourceField)
Definition: fieldtrigonometry.hpp:207
A field which returns 1 on 2-D faces and 1-D lines considered to lie on a specified face of their top...
Definition: fieldfiniteelement.hpp:443
FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field &sourceField)
Definition: fieldmatrixoperators.hpp:250
A field which performs a coordinate transformation of vectors from their original coordinate system a...
Definition: fieldcoordinatetransformation.hpp:56
A generic group field used for grouping local subobjects.
Definition: fieldgroup.hpp:35
A field which gives the result of subtracting source_field_two from source_field_one.
Definition: fieldarithmeticoperators.hpp:140
Image processing derived field type performing the ITK binary threshold filter.
Definition: fieldimageprocessing.hpp:80
A projection field returning the result of a matrix multiplication with perspective division on the s...
Definition: fieldmatrixoperators.hpp:165
A field performing ITK sigmoid image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:544
A field which returns 1 on 2-D faces and 1-D lines considered as exterior to their top-level element...
Definition: fieldfiniteelement.hpp:421
FieldImagefilterBinaryThreshold createFieldImagefilterBinaryThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:718
A field whose value equals source field calculated at the lookup node instead of the domain location ...
Definition: fieldfiniteelement.hpp:465
FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues &eigenValuesField)
Definition: fieldmatrixoperators.hpp:224
cmzn_fieldmoduleevent_id getId() const
Definition: fieldmodule.hpp:1596
A field whose values are the 4x4 transformation matrix mapping coordinates between two scene coordina...
Definition: fieldsceneviewerprojection.hpp:38
The OpenCMISS namespace.
Definition: context.hpp:20
A field performing ITK rescale intensity image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:492
FieldNodeLookup createFieldNodeLookup(const Field &sourceField, const Node &lookupNode)
Definition: fieldfiniteelement.hpp:565
Point object used to represent finite element nodes.
Definition: node.hpp:34
FieldGreaterThan createFieldGreaterThan(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:253
Fieldcache createFieldcache()
Definition: fieldcache.hpp:187
FieldDivide createFieldDivide(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:293
A string constant field with the supplied string value in <string_constant>.
Definition: fieldconstant.hpp:50
FieldGroup createFieldGroup()
Definition: fieldgroup.hpp:359
A field which computes the mean of each source field component over all nodes in the nodeset for whic...
Definition: fieldnodesetoperators.hpp:54
FieldNodesetMeanSquares createFieldNodesetMeanSquares(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:195
The Zinc sceneviewer is responsible for rendering the graphical Scene.
Definition: sceneviewer.hpp:260
FaceType
Definition: element.hpp:110
Manages individual user notification of changes with a field module.
Definition: fieldmodule.hpp:1696
A field which computes the sum of the squares of each source field component over all nodes in the no...
Definition: fieldnodesetoperators.hpp:81
A finite element mesh consisting of a set of elements of fixed dimension.
Definition: mesh.hpp:34
A field whose component values are 1 if that component of source_field_one is greater than the compon...
Definition: fieldlogicaloperators.hpp:84
A field whose component values are 1 if that component of source_field_one OR source_field_two is non...
Definition: fieldlogicaloperators.hpp:164
FieldIf createFieldIf(const Field &sourceField1, const Field &sourceField2, const Field &sourceField3)
Definition: fieldconditional.hpp:46
FieldCrossProduct createFieldCrossProduct(int fieldsCount, const Field *sourceFields)
Definition: fieldvectoroperators.hpp:146
FieldImagefilterGradientMagnitudeRecursiveGaussian createFieldImagefilterGradientMagnitudeRecursiveGaussian(const Field &sourceField, double sigma)
Definition: fieldimageprocessing.hpp:771
FieldProjection createFieldProjection(const Field &sourceField, const Field &projectionMatrixField)
Definition: fieldmatrixoperators.hpp:243
FieldFibreAxes createFieldFibreAxes(const Field &fibreField, const Field &coordinateField)
Definition: fieldfibres.hpp:60
FieldImagefilterSigmoid createFieldImagefilterSigmoid(const Field &sourceField, double min, double max, double alpha, double beta)
Definition: fieldimageprocessing.hpp:808
A field returning the curl of vector_field at location given by coordinate_field. ...
Definition: fieldderivatives.hpp:52
An iterator for looping through all the fields in a fieldmodule.
Definition: field.hpp:724
Region getRegion() const
Definition: fieldmodule.hpp:415
FieldCurl createFieldCurl(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:133
Field findFieldByName(const char *fieldName)
Definition: fieldmodule.hpp:245
A field where the field components are the absolute value of each component in the source field...
Definition: fieldarithmeticoperators.hpp:252
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1791
A set of nodes or points.
Definition: nodeset.hpp:29
A field calculating the eigenvalues.
Definition: fieldmatrixoperators.hpp:50
A specialised field type creating a local alias.
Definition: fieldalias.hpp:29
Object describing changes to a mesh in a fieldmoduleevent.
Definition: mesh.hpp:440
Information about changes to fields and other objects in the field module.
Definition: fieldmodule.hpp:1545
FieldEqualTo createFieldEqualTo(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:247
A field that computes the location in a mesh.
Definition: fieldfiniteelement.hpp:282
A vector field which is the cross product of the source_fields.
Definition: fieldvectoroperators.hpp:34
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1786
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1796
FieldDeterminant createFieldDeterminant(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:207
A field with the single source field.
Definition: fieldcomposite.hpp:30
FieldFindMeshLocation createFieldFindMeshLocation(const Field &sourceField, const Field &meshField, const Mesh &mesh)
Definition: fieldfiniteelement.hpp:512