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 "zinc/fieldmodule.h"
13 #include "zinc/field.hpp"
14 #include "zinc/element.hpp"
15 #include "zinc/node.hpp"
16 #include "zinc/region.hpp"
17 #include "zinc/timesequence.hpp"
18 #include "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 FieldNormalise;
99 class FieldImagefilterBinaryDilate;
100 class FieldImagefilterBinaryErode;
101 class FieldImagefilterBinaryThreshold;
102 class FieldImagefilterCannyEdgeDetection;
103 class FieldImagefilterConnectedThreshold;
104 class FieldImagefilterCurvatureAnisotropicDiffusion;
105 class FieldImagefilterDiscreteGaussian;
106 class FieldImagefilterHistogram;
107 class FieldImagefilterMean;
108 class FieldImagefilterGradientMagnitudeRecursiveGaussian;
109 class FieldImagefilterRescaleIntensity;
110 class FieldImagefilterSigmoid;
111 class FieldImagefilterThreshold;
112 class FieldSceneviewerProjection;
113 class Fieldcache;
114 class Fieldmodulenotifier;
115 class Fieldsmoothing;
116 class Timekeeper;
117 class Optimisation;
118 class Sceneviewer;
119 
134 {
135 private:
136 
137  cmzn_fieldmodule_id id;
138 
139 public:
140 
141  Fieldmodule() : id(0)
142  { }
143 
144  // takes ownership of C handle, responsibility for destroying it
145  explicit Fieldmodule(cmzn_fieldmodule_id field_module_id) :
146  id(field_module_id)
147  { }
148 
149  Fieldmodule(const Fieldmodule& fieldModule) :
150  id(cmzn_fieldmodule_access(fieldModule.id))
151  { }
152 
153  Fieldmodule& operator=(const Fieldmodule& fieldModule)
154  {
155  cmzn_fieldmodule_id temp_id = cmzn_fieldmodule_access(fieldModule.id);
156  if (0 != id)
157  {
158  cmzn_fieldmodule_destroy(&id);
159  }
160  id = temp_id;
161  return *this;
162  }
163 
164  ~Fieldmodule()
165  {
166  if (0 != id)
167  {
168  cmzn_fieldmodule_destroy(&id);
169  }
170  }
171 
177  bool isValid() const
178  {
179  return (0 != id);
180  }
181 
187  cmzn_fieldmodule_id getId() const
188  {
189  return id;
190  }
191 
205  {
206  return cmzn_fieldmodule_begin_change(id);
207  }
208 
218  int endChange()
219  {
220  return cmzn_fieldmodule_end_change(id);
221  }
222 
232  {
233  return cmzn_fieldmodule_define_all_faces(id);
234  }
235 
242  Field findFieldByName(const char *fieldName)
243  {
244  return Field(cmzn_fieldmodule_find_field_by_name(id, fieldName));
245  }
246 
253  inline Fieldcache createFieldcache();
254 
267  {
268  return Fielditerator(cmzn_fieldmodule_create_fielditerator(id));
269  }
270 
278 
288 
299  {
300  return Elementbasis(cmzn_fieldmodule_create_elementbasis(
301  id, dimension, static_cast<cmzn_elementbasis_function_type>(functionType)));
302  }
303 
312  {
313  return Nodeset(cmzn_fieldmodule_find_nodeset_by_field_domain_type(id,
314  static_cast<cmzn_field_domain_type>(domainType)));
315  }
316 
331  Nodeset findNodesetByName(const char *nodeset_name)
332  {
333  return Nodeset(cmzn_fieldmodule_find_nodeset_by_name(id,
334  nodeset_name));
335  }
336 
345  Mesh findMeshByDimension(int dimension)
346  {
347  return Mesh(cmzn_fieldmodule_find_mesh_by_dimension(id, dimension));
348  }
349 
363  Mesh findMeshByName(const char *meshName)
364  {
365  return Mesh(cmzn_fieldmodule_find_mesh_by_name(id, meshName));
366  }
367 
378  inline Timesequence getMatchingTimesequence(int timesCount, const double *timesIn)
379  {
380  return Timesequence(cmzn_fieldmodule_get_matching_timesequence(
381  id, timesCount, timesIn));
382  }
383 
389  inline Region getRegion() const
390  {
391  return Region(cmzn_fieldmodule_get_region(id));
392  }
393 
401 
411  inline FieldAlias createFieldAlias(const Field& sourceField);
412 
422  inline FieldAdd createFieldAdd(const Field& sourceField1, const Field& sourceField2);
423 
433  inline FieldPower createFieldPower(const Field& sourceField1, const Field& sourceField2);
434 
444  inline FieldMultiply createFieldMultiply(const Field& sourceField1, const Field& sourceField2);
445 
455  inline FieldDivide createFieldDivide(const Field& sourceField1, const Field& sourceField2);
456 
466  inline FieldSubtract createFieldSubtract(const Field& sourceField1, const Field& sourceField2);
467 
477  inline FieldSumComponents createFieldSumComponents(const Field& sourceField);
478 
486  inline FieldLog createFieldLog(const Field& sourceField);
487 
495  inline FieldSqrt createFieldSqrt(const Field& sourceField);
496 
504  inline FieldExp createFieldExp(const Field& sourceField);
505 
513  inline FieldAbs createFieldAbs(const Field& sourceField);
514 
524  inline FieldIdentity createFieldIdentity(const Field& sourceField);
525 
535  inline FieldComponent createFieldComponent(const Field& sourceField, int sourceComponentIndex);
536 
546  inline FieldComponent createFieldComponent(const Field& sourceField,
547  int sourceComponentIndexesCount, const int *sourceComponentIndexesIn);
548 
557  inline FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields);
558 
570  inline FieldIf createFieldIf(const Field& sourceField1, const Field& sourceField2, const Field& sourceField3);
571 
580  inline FieldConstant createFieldConstant(int valuesCount, const double *valuesIn);
581 
589  inline FieldStringConstant createFieldStringConstant(const char *stringConstant);
590 
602 
616  const Field& vectorField, const Field& coordinateField);
617 
642  inline FieldFibreAxes createFieldFibreAxes(const Field& fibreField, const Field& coordinateField);
643 
651  inline FieldFiniteElement createFieldFiniteElement(int numberOfComponents);
652 
663  inline FieldEmbedded createFieldEmbedded(const Field& sourceField, const Field& embeddedLocationField);
664 
683  inline FieldEdgeDiscontinuity createFieldEdgeDiscontinuity(const Field& sourceField);
684 
702  const Field& sourceField, const Field& meshField, const Mesh& mesh);
703 
714  inline FieldNodeValue createFieldNodeValue(const Field& sourceField,
715  Node::ValueLabel nodeValueLabel, int versionNumber);
716 
726 
733 
734  inline FieldIsExterior createFieldIsExterior();
735 
736  inline FieldIsOnFace createFieldIsOnFace(Element::FaceType face);
737 
745  inline FieldGroup createFieldGroup();
746 
757  inline FieldImage createFieldImage();
758 
774  inline FieldImage createFieldImageFromSource(const Field& sourceField);
775 
785  inline FieldAnd createFieldAnd(const Field& sourceField1, const Field& sourceField2);
786 
796  inline FieldEqualTo createFieldEqualTo(const Field& sourceField1, const Field& sourceField2);
797 
807  inline FieldGreaterThan createFieldGreaterThan(const Field& sourceField1, const Field& sourceField2);
808 
816  inline FieldIsDefined createFieldIsDefined(const Field& sourceField);
817 
827  inline FieldLessThan createFieldLessThan(const Field& sourceField1, const Field& sourceField2);
828 
838  inline FieldOr createFieldOr(const Field& sourceField1, const Field& sourceField2);
839 
848  inline FieldNot createFieldNot(const Field& sourceField);
849 
859  inline FieldXor createFieldXor(const Field& sourceField1, const Field& sourceField2);
860 
869  inline FieldDeterminant createFieldDeterminant(const Field& sourceField);
870 
878  inline FieldEigenvalues createFieldEigenvalues(const Field& sourceField);
879 
888  inline FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues& eigenValuesField);
889 
897  inline FieldMatrixInvert createFieldMatrixInvert(const Field& sourceField);
898 
911  inline FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows,
912  const Field& sourceField1, const Field& sourceField2);
913 
937  inline FieldProjection createFieldProjection(const Field& sourceField, const Field& projectionMatrixField);
938 
950  inline FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field& sourceField);
951 
974  inline FieldMeshIntegral createFieldMeshIntegral(const Field& integrandField,
975  const Field& coordinateField, const Mesh& mesh);
976 
997  const Field& coordinateField, const Mesh& mesh);
998 
1008  inline FieldNodesetSum createFieldNodesetSum(const Field& sourceField, const Nodeset& nodeset);
1009 
1019  inline FieldNodesetMean createFieldNodesetMean(const Field& sourceField, const Nodeset& nodeset);
1020 
1033  inline FieldNodesetSumSquares createFieldNodesetSumSquares(const Field& sourceField, const Nodeset& nodeset);
1034 
1048  inline FieldNodesetMeanSquares createFieldNodesetMeanSquares(const Field& sourceField, const Nodeset& nodeset);
1049 
1059  inline FieldNodesetMinimum createFieldNodesetMinimum(const Field& sourceField, const Nodeset& nodeset);
1060 
1070  inline FieldNodesetMaximum createFieldNodesetMaximum(const Field& sourceField, const Nodeset& nodeset);
1071 
1085  inline FieldNodeGroup createFieldNodeGroup(const Nodeset& nodeset);
1086 
1100  inline FieldElementGroup createFieldElementGroup(const Mesh& mesh);
1101 
1110  inline FieldTimeLookup createFieldTimeLookup(const Field& sourceField, const Field& timeField);
1111 
1118  inline FieldTimeValue createFieldTimeValue(const Timekeeper& timeKeeper);
1119 
1130  inline FieldDerivative createFieldDerivative(const Field& sourceField, int xi_index);
1131 
1141  inline FieldCurl createFieldCurl(const Field& vectorField, const Field& coordinateField);
1142 
1154  inline FieldDivergence createFieldDivergence(const Field& vectorField, const Field& coordinateField);
1155 
1174  inline FieldGradient createFieldGradient(const Field& sourceField, const Field& coordinateField);
1175 
1183  inline FieldSin createFieldSin(const Field& sourceField);
1184 
1192  inline FieldCos createFieldCos(const Field& sourceField);
1193 
1201  inline FieldTan createFieldTan(const Field& sourceField);
1202 
1210  inline FieldAsin createFieldAsin(const Field& sourceField);
1211 
1219  inline FieldAcos createFieldAcos(const Field& sourceField);
1220 
1228  inline FieldAtan createFieldAtan(const Field& sourceField);
1229 
1240  inline FieldAtan2 createFieldAtan2(const Field& sourceField1, const Field& sourceField2);
1241 
1260  inline FieldCrossProduct createFieldCrossProduct(int fieldsCount, const Field *sourceFields);
1261 
1280  inline FieldCrossProduct createFieldCrossProduct(const Field& sourceField1, const Field& sourceField2);
1281 
1290  inline FieldDotProduct createFieldDotProduct(const Field& sourceField1, const Field& sourceField2);
1291 
1298  inline FieldMagnitude createFieldMagnitude(const Field& sourceField);
1299 
1307  inline FieldNormalise createFieldNormalise(const Field& sourceField);
1308 
1317  int radius, double dilate_value);
1318 
1327  int radius, double erode_value);
1328 
1340 
1347  double variance, double maximumError, double upperThreshold, double lowerThreshold);
1348 
1355  double lowerThreshold, double upperThreshold, double replaceValue,
1356  int dimension, int seedPointsCount, const double *seedPoints);
1357 
1370  const Field& sourceField, double timeStep, double conductance, int numIterations);
1371 
1386 
1396 
1408  inline FieldImagefilterMean createFieldImagefilterMean(const Field& sourceField, int radiusSizesCount,
1409  const int *radiusSizesIn);
1410 
1419  double sigma);
1420 
1427  double outputMin, double outputMax);
1428 
1435  double min, double max, double alpha, double beta);
1436 
1446 
1468  const Sceneviewer& sceneviewer, Scenecoordinatesystem fromCoordinateSystem,
1469  Scenecoordinatesystem toCoordinateSystem);
1470 };
1471 
1472 inline bool operator==(const Fieldmodule& a, const Fieldmodule& b)
1473 {
1474  return cmzn_fieldmodule_match(a.getId(), b.getId());
1475 }
1476 
1484 {
1485 protected:
1486  cmzn_fieldmoduleevent_id id;
1487 
1488 public:
1489 
1490  Fieldmoduleevent() : id(0)
1491  { }
1492 
1493  // takes ownership of C handle, responsibility for destroying it
1494  explicit Fieldmoduleevent(cmzn_fieldmoduleevent_id in_fieldmodule_event_id) :
1495  id(in_fieldmodule_event_id)
1496  { }
1497 
1498  Fieldmoduleevent(const Fieldmoduleevent& fieldmoduleEvent) :
1499  id(cmzn_fieldmoduleevent_access(fieldmoduleEvent.id))
1500  { }
1501 
1502  Fieldmoduleevent& operator=(const Fieldmoduleevent& fieldmoduleEvent)
1503  {
1504  cmzn_fieldmoduleevent_id temp_id = cmzn_fieldmoduleevent_access(fieldmoduleEvent.id);
1505  if (0 != id)
1506  cmzn_fieldmoduleevent_destroy(&id);
1507  id = temp_id;
1508  return *this;
1509  }
1510 
1511  ~Fieldmoduleevent()
1512  {
1513  if (0 != id)
1514  {
1515  cmzn_fieldmoduleevent_destroy(&id);
1516  }
1517  }
1518 
1524  bool isValid() const
1525  {
1526  return (0 != id);
1527  }
1528 
1534  cmzn_fieldmoduleevent_id getId() const
1535  {
1536  return id;
1537  }
1538 
1549  {
1550  return cmzn_fieldmoduleevent_get_field_change_flags(id, field.getId());
1551  }
1552 
1565  Meshchanges getMeshchanges(const Mesh& mesh) const
1566  {
1567  return Meshchanges(cmzn_fieldmoduleevent_get_meshchanges(id, mesh.getId()));
1568  }
1569 
1578  {
1579  return Nodesetchanges(cmzn_fieldmoduleevent_get_nodesetchanges(id, nodeset.getId()));
1580  }
1581 
1590  {
1591  return cmzn_fieldmoduleevent_get_summary_field_change_flags(id);
1592  }
1593 
1594 };
1595 
1605 {
1606 friend class Fieldmodulenotifier;
1607 private:
1608  Fieldmodulecallback(const Fieldmodulecallback&); // not implemented
1609  Fieldmodulecallback& operator=(const Fieldmodulecallback&); // not implemented
1610 
1611  static void C_callback(cmzn_fieldmoduleevent_id fieldmoduleevent_id, void *callbackVoid)
1612  {
1613  Fieldmoduleevent fieldmoduleevent(cmzn_fieldmoduleevent_access(fieldmoduleevent_id));
1614  Fieldmodulecallback *callback = reinterpret_cast<Fieldmodulecallback *>(callbackVoid);
1615  (*callback)(fieldmoduleevent);
1616  }
1617 
1618  virtual void operator()(const Fieldmoduleevent &fieldmoduleevent) = 0;
1619 
1620 protected:
1622  { }
1623 
1624 public:
1625  virtual ~Fieldmodulecallback()
1626  { }
1627 };
1628 
1635 {
1636 protected:
1637  cmzn_fieldmodulenotifier_id id;
1638 
1639 public:
1640 
1641  Fieldmodulenotifier() : id(0)
1642  { }
1643 
1644  // takes ownership of C handle, responsibility for destroying it
1645  explicit Fieldmodulenotifier(cmzn_fieldmodulenotifier_id in_fieldmodulenotifier_id) :
1646  id(in_fieldmodulenotifier_id)
1647  { }
1648 
1649  Fieldmodulenotifier(const Fieldmodulenotifier& fieldmoduleNotifier) :
1650  id(cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id))
1651  { }
1652 
1653  Fieldmodulenotifier& operator=(const Fieldmodulenotifier& fieldmoduleNotifier)
1654  {
1655  cmzn_fieldmodulenotifier_id temp_id = cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id);
1656  if (0 != id)
1657  {
1658  cmzn_fieldmodulenotifier_destroy(&id);
1659  }
1660  id = temp_id;
1661  return *this;
1662  }
1663 
1665  {
1666  if (0 != id)
1667  {
1668  cmzn_fieldmodulenotifier_destroy(&id);
1669  }
1670  }
1671 
1677  bool isValid() const
1678  {
1679  return (0 != id);
1680  }
1681 
1687  cmzn_fieldmodulenotifier_id getId() const
1688  {
1689  return id;
1690  }
1691 
1703  {
1704  return cmzn_fieldmodulenotifier_set_callback(id, callback.C_callback, static_cast<void*>(&callback));
1705  }
1706 
1714  {
1715  return cmzn_fieldmodulenotifier_clear_callback(id);
1716  }
1717 };
1718 
1720 {
1721  return Fieldmodule(cmzn_region_get_fieldmodule(id));
1722 }
1723 
1725 {
1726  return Fieldmodule(cmzn_field_get_fieldmodule(id));
1727 }
1728 
1730 {
1731  return Fieldmodule(cmzn_mesh_get_fieldmodule(id));
1732 }
1733 
1735 {
1736  return Fieldmodule(cmzn_nodeset_get_fieldmodule(id));
1737 }
1738 
1740 {
1741  return Fieldmodulenotifier(cmzn_fieldmodule_create_fieldmodulenotifier(id));
1742 }
1743 
1744 } // namespace Zinc
1745 }
1746 
1747 #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:231
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:345
FieldEigenvalues createFieldEigenvalues(const Field &sourceField)
Definition: fieldmatrixoperators.hpp:213
FieldAlias createFieldAlias(const Field &sourceField)
Definition: fieldalias.hpp:45
Object describing changes to a nodeset in a fieldmoduleevent.
Definition: node.hpp:791
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:417
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:30
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:298
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:49
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:1604
FieldStoredMeshLocation createFieldStoredMeshLocation(const Mesh &mesh)
Definition: fieldfiniteelement.hpp:466
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
FieldEmbedded createFieldEmbedded(const Field &sourceField, const Field &embeddedLocationField)
Definition: fieldfiniteelement.hpp:440
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:1719
FieldStoredString createFieldStoredString()
Definition: fieldfiniteelement.hpp:477
int endChange()
Definition: fieldmodule.hpp:218
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:225
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:374
FieldNodeValue createFieldNodeValue(const Field &sourceField, Node::ValueLabel nodeValueLabel, int versionNumber)
Definition: fieldfiniteelement.hpp:458
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:333
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:1565
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:363
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:557
A scalar field returning the magnitude of the vector source field.
Definition: fieldvectoroperators.hpp:83
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:204
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:237
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:1713
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:551
FieldPower createFieldPower(const Field &sourceField1, const Field &sourceField2)
Definition: fieldarithmeticoperators.hpp:281
Nodeset findNodesetByFieldDomainType(Field::DomainType domainType)
Definition: fieldmodule.hpp:311
cmzn_field_id getId() const
Definition: field.hpp:101
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:122
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:356
A field with the components specified in the array values.
Definition: fieldconstant.hpp:27
cmzn_fieldmodulenotifier_id getId() const
Definition: fieldmodule.hpp:1687
bool isValid() const
Definition: fieldmodule.hpp:1524
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
A field performing ITK mean image filter on source_field image.
Definition: fieldimageprocessing.hpp:518
int setCallback(Fieldmodulecallback &callback)
Definition: fieldmodule.hpp:1702
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:187
FieldNodesetMinimum createFieldNodesetMinimum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:202
DomainType
Definition: field.hpp:208
Field::ChangeFlags getFieldChangeFlags(const Field &field) const
Definition: fieldmodule.hpp:1548
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:428
Nodesetchanges getNodesetchanges(const Nodeset &nodeset) const
Definition: fieldmodule.hpp:1577
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:840
int ChangeFlags
Definition: field.hpp:140
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:331
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:569
bool isValid() const
Definition: fieldmodule.hpp:1677
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:1589
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:231
FieldAtan2 createFieldAtan2(const Field &sourceField1, const Field &sourceField2)
Definition: fieldtrigonometry.hpp:217
Fielditerator createFielditerator()
Definition: fieldmodule.hpp:266
FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields)
Definition: fieldcomposite.hpp:172
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:133
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:378
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:1739
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:177
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
Definition: fieldfiniteelement.hpp:402
FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field &sourceField)
Definition: fieldmatrixoperators.hpp:245
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
Definition: fieldfiniteelement.hpp:387
FieldImagefilterBinaryThreshold createFieldImagefilterBinaryThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:718
FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues &eigenValuesField)
Definition: fieldmatrixoperators.hpp:219
cmzn_fieldmoduleevent_id getId() const
Definition: fieldmodule.hpp:1534
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
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:1634
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:787
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:238
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:698
Region getRegion() const
Definition: fieldmodule.hpp:389
FieldCurl createFieldCurl(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:131
Field findFieldByName(const char *fieldName)
Definition: fieldmodule.hpp:242
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:1729
A set of nodes or points.
Definition: node.hpp:462
A field returning the N eigenvalues of symmetric N*N component source field.
Definition: fieldmatrixoperators.hpp:51
A specialised field type creating a local alias.
Definition: fieldalias.hpp:29
Object describing changes to a mesh in a fieldmoduleevent.
Definition: element.hpp:1165
Information about changes to fields and other objects in the field module.
Definition: fieldmodule.hpp:1483
FieldEqualTo createFieldEqualTo(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:247
A field that computes the location in a mesh.
Definition: fieldfiniteelement.hpp:260
A vector field which is the cross product of the source_fields.
Definition: fieldvectoroperators.hpp:34
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1724
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1734
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:446