OpenCMISS-Zinc C++ API Documentation
 All Classes Namespaces Files Functions Typedefs Enumerations Enumerator Pages
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/element.hpp"
15 #include "opencmiss/zinc/node.hpp"
16 #include "opencmiss/zinc/region.hpp"
17 #include "opencmiss/zinc/timesequence.hpp"
18 #include "opencmiss/zinc/types/scenecoordinatesystem.hpp"
19 
20 namespace OpenCMISS
21 {
22 namespace Zinc
23 {
24 
25 class FieldAlias;
26 class FieldAdd;
27 class FieldPower;
28 class FieldMultiply;
29 class FieldDivide;
30 class FieldSubtract;
31 class FieldSumComponents;
32 class FieldLog;
33 class FieldSqrt;
34 class FieldExp;
35 class FieldAbs;
36 class FieldIdentity;
37 class FieldComponent;
38 class FieldConcatenate;
39 class FieldIf;
40 class FieldConstant;
41 class FieldStringConstant;
42 class FieldCoordinateTransformation;
43 class FieldVectorCoordinateTransformation;
44 class FieldFibreAxes;
45 class FieldFiniteElement;
46 class FieldEdgeDiscontinuity;
47 class FieldEmbedded;
48 class FieldFindMeshLocation;
49 class FieldNodeValue;
50 class FieldStoredMeshLocation;
51 class FieldStoredString;
52 class FieldIsExterior;
53 class FieldIsOnFace;
54 class FieldGroup;
55 class FieldImage;
56 class FieldAnd;
57 class FieldEqualTo;
58 class FieldGreaterThan;
59 class FieldIsDefined;
60 class FieldLessThan;
61 class FieldOr;
62 class FieldNot;
63 class FieldXor;
64 class FieldDeterminant;
65 class FieldEigenvalues;
66 class FieldEigenvectors;
67 class FieldMatrixInvert;
68 class FieldMatrixMultiply;
69 class FieldProjection;
70 class FieldTranspose;
71 class FieldMeshIntegral;
72 class FieldMeshIntegralSquares;
73 class FieldNodesetSum;
74 class FieldNodesetMean;
75 class FieldNodesetSumSquares;
76 class FieldNodesetMeanSquares;
77 class FieldNodesetMinimum;
78 class FieldNodesetMaximum;
79 class FieldElementGroup;
80 class FieldNodeGroup;
81 class FieldTimeLookup;
82 class FieldTimeValue;
83 class FieldDerivative;
84 class FieldCurl;
85 class FieldDivergence;
86 class FieldGradient;
87 class FieldSin;
88 class FieldCos;
89 class FieldTan;
90 class FieldAsin;
91 class FieldAcos;
92 class FieldAtan;
93 class FieldAtan2;
94 class FieldCrossProduct;
95 class FieldCrossProduct3D;
96 class FieldDotProduct;
97 class FieldMagnitude;
98 class FieldNodeLookup;
99 class FieldNormalise;
100 class FieldImagefilterBinaryDilate;
101 class FieldImagefilterBinaryErode;
102 class FieldImagefilterBinaryThreshold;
103 class FieldImagefilterCannyEdgeDetection;
104 class FieldImagefilterConnectedThreshold;
105 class FieldImagefilterCurvatureAnisotropicDiffusion;
106 class FieldImagefilterDiscreteGaussian;
107 class FieldImagefilterHistogram;
108 class FieldImagefilterMean;
109 class FieldImagefilterGradientMagnitudeRecursiveGaussian;
110 class FieldImagefilterRescaleIntensity;
111 class FieldImagefilterSigmoid;
112 class FieldImagefilterThreshold;
113 class FieldSceneviewerProjection;
114 class Fieldcache;
115 class Fieldmodulenotifier;
116 class Fieldsmoothing;
117 class Timekeeper;
118 class Optimisation;
119 class Sceneviewer;
120 
135 {
136 private:
137 
138  cmzn_fieldmodule_id id;
139 
140 public:
141 
142  Fieldmodule() : id(0)
143  { }
144 
145  // takes ownership of C handle, responsibility for destroying it
146  explicit Fieldmodule(cmzn_fieldmodule_id field_module_id) :
147  id(field_module_id)
148  { }
149 
150  Fieldmodule(const Fieldmodule& fieldModule) :
151  id(cmzn_fieldmodule_access(fieldModule.id))
152  { }
153 
154  Fieldmodule& operator=(const Fieldmodule& fieldModule)
155  {
156  cmzn_fieldmodule_id temp_id = cmzn_fieldmodule_access(fieldModule.id);
157  if (0 != id)
158  {
159  cmzn_fieldmodule_destroy(&id);
160  }
161  id = temp_id;
162  return *this;
163  }
164 
165  ~Fieldmodule()
166  {
167  if (0 != id)
168  {
169  cmzn_fieldmodule_destroy(&id);
170  }
171  }
172 
178  bool isValid() const
179  {
180  return (0 != id);
181  }
182 
188  cmzn_fieldmodule_id getId() const
189  {
190  return id;
191  }
192 
206  {
207  return cmzn_fieldmodule_begin_change(id);
208  }
209 
219  int endChange()
220  {
221  return cmzn_fieldmodule_end_change(id);
222  }
223 
233  {
234  return cmzn_fieldmodule_define_all_faces(id);
235  }
236 
243  Field findFieldByName(const char *fieldName)
244  {
245  return Field(cmzn_fieldmodule_find_field_by_name(id, fieldName));
246  }
247 
254  inline Fieldcache createFieldcache();
255 
268  {
269  return Fielditerator(cmzn_fieldmodule_create_fielditerator(id));
270  }
271 
279 
289 
300  {
301  return Elementbasis(cmzn_fieldmodule_create_elementbasis(
302  id, dimension, static_cast<cmzn_elementbasis_function_type>(functionType)));
303  }
304 
313  {
314  return Nodeset(cmzn_fieldmodule_find_nodeset_by_field_domain_type(id,
315  static_cast<cmzn_field_domain_type>(domainType)));
316  }
317 
332  Nodeset findNodesetByName(const char *nodeset_name)
333  {
334  return Nodeset(cmzn_fieldmodule_find_nodeset_by_name(id,
335  nodeset_name));
336  }
337 
346  Mesh findMeshByDimension(int dimension)
347  {
348  return Mesh(cmzn_fieldmodule_find_mesh_by_dimension(id, dimension));
349  }
350 
364  Mesh findMeshByName(const char *meshName)
365  {
366  return Mesh(cmzn_fieldmodule_find_mesh_by_name(id, meshName));
367  }
368 
376  {
377  return cmzn_fieldmodule_write_description(id);
378  }
379 
387  int readDescription(const char *description)
388  {
389  return cmzn_fieldmodule_read_description(id, description);
390  }
391 
402  inline Timesequence getMatchingTimesequence(int timesCount, const double *timesIn)
403  {
404  return Timesequence(cmzn_fieldmodule_get_matching_timesequence(
405  id, timesCount, timesIn));
406  }
407 
413  inline Region getRegion() const
414  {
415  return Region(cmzn_fieldmodule_get_region(id));
416  }
417 
425 
435  inline FieldAlias createFieldAlias(const Field& sourceField);
436 
446  inline FieldAdd createFieldAdd(const Field& sourceField1, const Field& sourceField2);
447 
457  inline FieldPower createFieldPower(const Field& sourceField1, const Field& sourceField2);
458 
468  inline FieldMultiply createFieldMultiply(const Field& sourceField1, const Field& sourceField2);
469 
479  inline FieldDivide createFieldDivide(const Field& sourceField1, const Field& sourceField2);
480 
490  inline FieldSubtract createFieldSubtract(const Field& sourceField1, const Field& sourceField2);
491 
501  inline FieldSumComponents createFieldSumComponents(const Field& sourceField);
502 
510  inline FieldLog createFieldLog(const Field& sourceField);
511 
519  inline FieldSqrt createFieldSqrt(const Field& sourceField);
520 
528  inline FieldExp createFieldExp(const Field& sourceField);
529 
537  inline FieldAbs createFieldAbs(const Field& sourceField);
538 
548  inline FieldIdentity createFieldIdentity(const Field& sourceField);
549 
559  inline FieldComponent createFieldComponent(const Field& sourceField, int sourceComponentIndex);
560 
570  inline FieldComponent createFieldComponent(const Field& sourceField,
571  int sourceComponentIndexesCount, const int *sourceComponentIndexesIn);
572 
581  inline FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields);
582 
594  inline FieldIf createFieldIf(const Field& sourceField1, const Field& sourceField2, const Field& sourceField3);
595 
604  inline FieldConstant createFieldConstant(int valuesCount, const double *valuesIn);
605 
613  inline FieldStringConstant createFieldStringConstant(const char *stringConstant);
614 
626 
640  const Field& vectorField, const Field& coordinateField);
641 
666  inline FieldFibreAxes createFieldFibreAxes(const Field& fibreField, const Field& coordinateField);
667 
675  inline FieldFiniteElement createFieldFiniteElement(int numberOfComponents);
676 
687  inline FieldEmbedded createFieldEmbedded(const Field& sourceField, const Field& embeddedLocationField);
688 
707  inline FieldEdgeDiscontinuity createFieldEdgeDiscontinuity(const Field& sourceField);
708 
726  const Field& sourceField, const Field& meshField, const Mesh& mesh);
727 
738  inline FieldNodeValue createFieldNodeValue(const Field& sourceField,
739  Node::ValueLabel nodeValueLabel, int versionNumber);
740 
750 
757 
765 
775 
783  inline FieldGroup createFieldGroup();
784 
795  inline FieldImage createFieldImage();
796 
814  inline FieldImage createFieldImageFromSource(const Field& sourceField);
815 
825  inline FieldAnd createFieldAnd(const Field& sourceField1, const Field& sourceField2);
826 
836  inline FieldEqualTo createFieldEqualTo(const Field& sourceField1, const Field& sourceField2);
837 
847  inline FieldGreaterThan createFieldGreaterThan(const Field& sourceField1, const Field& sourceField2);
848 
856  inline FieldIsDefined createFieldIsDefined(const Field& sourceField);
857 
867  inline FieldLessThan createFieldLessThan(const Field& sourceField1, const Field& sourceField2);
868 
878  inline FieldOr createFieldOr(const Field& sourceField1, const Field& sourceField2);
879 
888  inline FieldNot createFieldNot(const Field& sourceField);
889 
899  inline FieldXor createFieldXor(const Field& sourceField1, const Field& sourceField2);
900 
909  inline FieldDeterminant createFieldDeterminant(const Field& sourceField);
910 
918  inline FieldEigenvalues createFieldEigenvalues(const Field& sourceField);
919 
928  inline FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues& eigenValuesField);
929 
937  inline FieldMatrixInvert createFieldMatrixInvert(const Field& sourceField);
938 
951  inline FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows,
952  const Field& sourceField1, const Field& sourceField2);
953 
977  inline FieldProjection createFieldProjection(const Field& sourceField, const Field& projectionMatrixField);
978 
990  inline FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field& sourceField);
991 
1014  inline FieldMeshIntegral createFieldMeshIntegral(const Field& integrandField,
1015  const Field& coordinateField, const Mesh& mesh);
1016 
1036  inline FieldMeshIntegralSquares createFieldMeshIntegralSquares(const Field& integrandField,
1037  const Field& coordinateField, const Mesh& mesh);
1038 
1048  inline FieldNodesetSum createFieldNodesetSum(const Field& sourceField, const Nodeset& nodeset);
1049 
1059  inline FieldNodesetMean createFieldNodesetMean(const Field& sourceField, const Nodeset& nodeset);
1060 
1073  inline FieldNodesetSumSquares createFieldNodesetSumSquares(const Field& sourceField, const Nodeset& nodeset);
1074 
1088  inline FieldNodesetMeanSquares createFieldNodesetMeanSquares(const Field& sourceField, const Nodeset& nodeset);
1089 
1099  inline FieldNodesetMinimum createFieldNodesetMinimum(const Field& sourceField, const Nodeset& nodeset);
1100 
1110  inline FieldNodesetMaximum createFieldNodesetMaximum(const Field& sourceField, const Nodeset& nodeset);
1111 
1125  inline FieldNodeGroup createFieldNodeGroup(const Nodeset& nodeset);
1126 
1140  inline FieldElementGroup createFieldElementGroup(const Mesh& mesh);
1141 
1150  inline FieldTimeLookup createFieldTimeLookup(const Field& sourceField, const Field& timeField);
1151 
1158  inline FieldTimeValue createFieldTimeValue(const Timekeeper& timeKeeper);
1159 
1170  inline FieldDerivative createFieldDerivative(const Field& sourceField, int xi_index);
1171 
1181  inline FieldCurl createFieldCurl(const Field& vectorField, const Field& coordinateField);
1182 
1194  inline FieldDivergence createFieldDivergence(const Field& vectorField, const Field& coordinateField);
1195 
1214  inline FieldGradient createFieldGradient(const Field& sourceField, const Field& coordinateField);
1215 
1223  inline FieldSin createFieldSin(const Field& sourceField);
1224 
1232  inline FieldCos createFieldCos(const Field& sourceField);
1233 
1241  inline FieldTan createFieldTan(const Field& sourceField);
1242 
1250  inline FieldAsin createFieldAsin(const Field& sourceField);
1251 
1259  inline FieldAcos createFieldAcos(const Field& sourceField);
1260 
1268  inline FieldAtan createFieldAtan(const Field& sourceField);
1269 
1280  inline FieldAtan2 createFieldAtan2(const Field& sourceField1, const Field& sourceField2);
1281 
1300  inline FieldCrossProduct createFieldCrossProduct(int fieldsCount, const Field *sourceFields);
1301 
1320  inline FieldCrossProduct createFieldCrossProduct(const Field& sourceField1, const Field& sourceField2);
1321 
1330  inline FieldDotProduct createFieldDotProduct(const Field& sourceField1, const Field& sourceField2);
1331 
1338  inline FieldMagnitude createFieldMagnitude(const Field& sourceField);
1339 
1348  inline FieldNodeLookup createFieldNodeLookup(const Field& sourceField, const Node& lookupNode);
1349 
1357  inline FieldNormalise createFieldNormalise(const Field& sourceField);
1358 
1367  int radius, double dilate_value);
1368 
1377  int radius, double erode_value);
1378 
1390 
1397  double variance, double maximumError, double upperThreshold, double lowerThreshold);
1398 
1405  double lowerThreshold, double upperThreshold, double replaceValue,
1406  int dimension, int seedPointsCount, const double *seedPoints);
1407 
1420  const Field& sourceField, double timeStep, double conductance, int numIterations);
1421 
1436 
1446 
1458  inline FieldImagefilterMean createFieldImagefilterMean(const Field& sourceField, int radiusSizesCount,
1459  const int *radiusSizesIn);
1460 
1469  double sigma);
1470 
1477  double outputMin, double outputMax);
1478 
1485  double min, double max, double alpha, double beta);
1486 
1496 
1518  const Sceneviewer& sceneviewer, Scenecoordinatesystem fromCoordinateSystem,
1519  Scenecoordinatesystem toCoordinateSystem);
1520 };
1521 
1522 inline bool operator==(const Fieldmodule& a, const Fieldmodule& b)
1523 {
1524  return cmzn_fieldmodule_match(a.getId(), b.getId());
1525 }
1526 
1534 {
1535 protected:
1536  cmzn_fieldmoduleevent_id id;
1537 
1538 public:
1539 
1540  Fieldmoduleevent() : id(0)
1541  { }
1542 
1543  // takes ownership of C handle, responsibility for destroying it
1544  explicit Fieldmoduleevent(cmzn_fieldmoduleevent_id in_fieldmodule_event_id) :
1545  id(in_fieldmodule_event_id)
1546  { }
1547 
1548  Fieldmoduleevent(const Fieldmoduleevent& fieldmoduleEvent) :
1549  id(cmzn_fieldmoduleevent_access(fieldmoduleEvent.id))
1550  { }
1551 
1552  Fieldmoduleevent& operator=(const Fieldmoduleevent& fieldmoduleEvent)
1553  {
1554  cmzn_fieldmoduleevent_id temp_id = cmzn_fieldmoduleevent_access(fieldmoduleEvent.id);
1555  if (0 != id)
1556  cmzn_fieldmoduleevent_destroy(&id);
1557  id = temp_id;
1558  return *this;
1559  }
1560 
1561  ~Fieldmoduleevent()
1562  {
1563  if (0 != id)
1564  {
1565  cmzn_fieldmoduleevent_destroy(&id);
1566  }
1567  }
1568 
1574  bool isValid() const
1575  {
1576  return (0 != id);
1577  }
1578 
1584  cmzn_fieldmoduleevent_id getId() const
1585  {
1586  return id;
1587  }
1588 
1599  {
1600  return cmzn_fieldmoduleevent_get_field_change_flags(id, field.getId());
1601  }
1602 
1615  Meshchanges getMeshchanges(const Mesh& mesh) const
1616  {
1617  return Meshchanges(cmzn_fieldmoduleevent_get_meshchanges(id, mesh.getId()));
1618  }
1619 
1628  {
1629  return Nodesetchanges(cmzn_fieldmoduleevent_get_nodesetchanges(id, nodeset.getId()));
1630  }
1631 
1640  {
1641  return cmzn_fieldmoduleevent_get_summary_field_change_flags(id);
1642  }
1643 
1644 };
1645 
1655 {
1656 friend class Fieldmodulenotifier;
1657 private:
1658  Fieldmodulecallback(const Fieldmodulecallback&); // not implemented
1659  Fieldmodulecallback& operator=(const Fieldmodulecallback&); // not implemented
1660 
1661  static void C_callback(cmzn_fieldmoduleevent_id fieldmoduleevent_id, void *callbackVoid)
1662  {
1663  Fieldmoduleevent fieldmoduleevent(cmzn_fieldmoduleevent_access(fieldmoduleevent_id));
1664  Fieldmodulecallback *callback = reinterpret_cast<Fieldmodulecallback *>(callbackVoid);
1665  (*callback)(fieldmoduleevent);
1666  }
1667 
1668  virtual void operator()(const Fieldmoduleevent &fieldmoduleevent) = 0;
1669 
1670 protected:
1672  { }
1673 
1674 public:
1675  virtual ~Fieldmodulecallback()
1676  { }
1677 };
1678 
1685 {
1686 protected:
1687  cmzn_fieldmodulenotifier_id id;
1688 
1689 public:
1690 
1691  Fieldmodulenotifier() : id(0)
1692  { }
1693 
1694  // takes ownership of C handle, responsibility for destroying it
1695  explicit Fieldmodulenotifier(cmzn_fieldmodulenotifier_id in_fieldmodulenotifier_id) :
1696  id(in_fieldmodulenotifier_id)
1697  { }
1698 
1699  Fieldmodulenotifier(const Fieldmodulenotifier& fieldmoduleNotifier) :
1700  id(cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id))
1701  { }
1702 
1703  Fieldmodulenotifier& operator=(const Fieldmodulenotifier& fieldmoduleNotifier)
1704  {
1705  cmzn_fieldmodulenotifier_id temp_id = cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id);
1706  if (0 != id)
1707  {
1708  cmzn_fieldmodulenotifier_destroy(&id);
1709  }
1710  id = temp_id;
1711  return *this;
1712  }
1713 
1715  {
1716  if (0 != id)
1717  {
1718  cmzn_fieldmodulenotifier_destroy(&id);
1719  }
1720  }
1721 
1727  bool isValid() const
1728  {
1729  return (0 != id);
1730  }
1731 
1737  cmzn_fieldmodulenotifier_id getId() const
1738  {
1739  return id;
1740  }
1741 
1753  {
1754  return cmzn_fieldmodulenotifier_set_callback(id, callback.C_callback, static_cast<void*>(&callback));
1755  }
1756 
1764  {
1765  return cmzn_fieldmodulenotifier_clear_callback(id);
1766  }
1767 };
1768 
1770 {
1771  return Fieldmodule(cmzn_region_get_fieldmodule(id));
1772 }
1773 
1775 {
1776  return Fieldmodule(cmzn_field_get_fieldmodule(id));
1777 }
1778 
1780 {
1781  return Fieldmodule(cmzn_mesh_get_fieldmodule(id));
1782 }
1783 
1785 {
1786  return Fieldmodule(cmzn_nodeset_get_fieldmodule(id));
1787 }
1788 
1790 {
1791  return Fieldmodulenotifier(cmzn_fieldmodule_create_fieldmodulenotifier(id));
1792 }
1793 
1794 } // namespace Zinc
1795 }
1796 
1797 #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:346
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: node.hpp:800
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:457
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:84
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:28
Elementbasis createElementbasis(int dimension, enum Elementbasis::FunctionType functionType)
Definition: fieldmodule.hpp:299
A set of basis functions that can apply over an element of a given dimension.
Definition: element.hpp:31
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:50
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:472
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: node.hpp:515
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:1654
FieldStoredMeshLocation createFieldStoredMeshLocation(const Mesh &mesh)
Definition: fieldfiniteelement.hpp:506
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:533
FieldEmbedded createFieldEmbedded(const Field &sourceField, const Field &embeddedLocationField)
Definition: fieldfiniteelement.hpp:480
FieldGradient createFieldGradient(const Field &sourceField, const Field &coordinateField)
Definition: fieldderivatives.hpp:141
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:1769
FieldStoredString createFieldStoredString()
Definition: fieldfiniteelement.hpp:517
int endChange()
Definition: fieldmodule.hpp:219
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:375
FieldNodeValue createFieldNodeValue(const Field &sourceField, Node::ValueLabel nodeValueLabel, int versionNumber)
Definition: fieldfiniteelement.hpp:498
FieldImagefilterHistogram createFieldImagefilterHistogram(const Field &sourceField)
Definition: fieldimageprocessing.hpp:780
FieldDivergence createFieldDivergence(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:136
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 node values/derivatives.
Definition: fieldfiniteelement.hpp:334
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:1615
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:364
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:528
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:205
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:238
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:1763
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:312
cmzn_field_id getId() const
Definition: field.hpp:102
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:123
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:357
A field with the components specified in the array values.
Definition: fieldconstant.hpp:27
cmzn_fieldmodulenotifier_id getId() const
Definition: fieldmodule.hpp:1737
bool isValid() const
Definition: fieldmodule.hpp:1574
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:375
A field performing ITK mean image filter on source_field image.
Definition: fieldimageprocessing.hpp:518
int setCallback(Fieldmodulecallback &callback)
Definition: fieldmodule.hpp:1752
A field returning the gradient of a source field with respect to a given coordinate field...
Definition: fieldderivatives.hpp:110
FieldNodeGroup createFieldNodeGroup(const Nodeset &nodeset)
Definition: fieldsubobjectgroup.hpp:100
FieldNodesetSum createFieldNodesetSum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:176
FunctionType
Definition: element.hpp:85
FieldIsDefined createFieldIsDefined(const Field &sourceField)
Definition: fieldlogicaloperators.hpp:259
cmzn_fieldmodule_id getId() const
Definition: fieldmodule.hpp:188
FieldNodesetMinimum createFieldNodesetMinimum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:202
int readDescription(const char *description)
Definition: fieldmodule.hpp:387
DomainType
Definition: field.hpp:209
Field::ChangeFlags getFieldChangeFlags(const Field &field) const
Definition: fieldmodule.hpp:1598
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:468
Nodesetchanges getNodesetchanges(const Nodeset &nodeset) const
Definition: fieldmodule.hpp:1627
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: element.hpp:844
int ChangeFlags
Definition: field.hpp:141
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:332
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:569
bool isValid() const
Definition: fieldmodule.hpp:1727
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:1639
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:232
FieldAtan2 createFieldAtan2(const Field &sourceField1, const Field &sourceField2)
Definition: fieldtrigonometry.hpp:217
Fielditerator createFielditerator()
Definition: fieldmodule.hpp:267
FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields)
Definition: fieldcomposite.hpp:172
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:134
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:402
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:126
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:1789
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:178
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:417
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:395
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:439
FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues &eigenValuesField)
Definition: fieldmatrixoperators.hpp:224
cmzn_fieldmoduleevent_id getId() const
Definition: fieldmodule.hpp:1584
A field whose values are the 4x4 transformation matrix mapping coordinates between two scene coordina...
Definition: fieldsceneviewerprojection.hpp:38
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:539
Point object used to represent finite element nodes.
Definition: node.hpp:38
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:284
Manages individual user notification of changes with a field module.
Definition: fieldmodule.hpp:1684
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: element.hpp:791
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:706
Region getRegion() const
Definition: fieldmodule.hpp:413
FieldCurl createFieldCurl(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:131
Field findFieldByName(const char *fieldName)
Definition: fieldmodule.hpp:243
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:1779
A set of nodes or points.
Definition: node.hpp:462
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: element.hpp:1169
Information about changes to fields and other objects in the field module.
Definition: fieldmodule.hpp:1533
FieldEqualTo createFieldEqualTo(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:247
A field that computes the location in a mesh.
Definition: fieldfiniteelement.hpp:261
A vector field which is the cross product of the source_fields.
Definition: fieldvectoroperators.hpp:34
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1774
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1784
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:486