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 FieldEmbedded;
47 class FieldFindMeshLocation;
48 class FieldNodeValue;
49 class FieldStoredMeshLocation;
50 class FieldStoredString;
51 class FieldGroup;
52 class FieldImage;
53 class FieldAnd;
54 class FieldEqualTo;
55 class FieldGreaterThan;
56 class FieldLessThan;
57 class FieldOr;
58 class FieldNot;
59 class FieldXor;
60 class FieldDeterminant;
61 class FieldEigenvalues;
62 class FieldEigenvectors;
63 class FieldMatrixInvert;
64 class FieldMatrixMultiply;
65 class FieldProjection;
66 class FieldTranspose;
67 class FieldNodesetSum;
68 class FieldNodesetMean;
69 class FieldNodesetSumSquares;
70 class FieldNodesetMeanSquares;
71 class FieldNodesetMinimum;
72 class FieldNodesetMaximum;
73 class FieldElementGroup;
74 class FieldNodeGroup;
75 class FieldTimeLookup;
76 class FieldTimeValue;
77 class FieldDerivative;
78 class FieldCurl;
79 class FieldDivergence;
80 class FieldGradient;
81 class FieldSin;
82 class FieldCos;
83 class FieldTan;
84 class FieldAsin;
85 class FieldAcos;
86 class FieldAtan;
87 class FieldAtan2;
88 class FieldCrossProduct;
89 class FieldCrossProduct3D;
90 class FieldDotProduct;
91 class FieldMagnitude;
92 class FieldNormalise;
93 class FieldImagefilterBinaryDilate;
94 class FieldImagefilterBinaryErode;
95 class FieldImagefilterBinaryThreshold;
96 class FieldImagefilterCannyEdgeDetection;
97 class FieldImagefilterConnectedThreshold;
98 class FieldImagefilterCurvatureAnisotropicDiffusion;
99 class FieldImagefilterDiscreteGaussian;
100 class FieldImagefilterHistogram;
101 class FieldImagefilterMean;
102 class FieldImagefilterGradientMagnitudeRecursiveGaussian;
103 class FieldImagefilterRescaleIntensity;
104 class FieldImagefilterSigmoid;
105 class FieldImagefilterThreshold;
106 class FieldSceneviewerProjection;
107 class Fieldcache;
108 class Fieldmodulenotifier;
109 class Timekeeper;
110 class Optimisation;
111 class Sceneviewer;
112 
127 {
128 private:
129 
130  cmzn_fieldmodule_id id;
131 
132 public:
133 
134  Fieldmodule() : id(0)
135  { }
136 
137  // takes ownership of C handle, responsibility for destroying it
138  explicit Fieldmodule(cmzn_fieldmodule_id field_module_id) :
139  id(field_module_id)
140  { }
141 
142  Fieldmodule(const Fieldmodule& fieldModule) :
143  id(cmzn_fieldmodule_access(fieldModule.id))
144  { }
145 
146  Fieldmodule& operator=(const Fieldmodule& fieldModule)
147  {
148  cmzn_fieldmodule_id temp_id = cmzn_fieldmodule_access(fieldModule.id);
149  if (0 != id)
150  {
151  cmzn_fieldmodule_destroy(&id);
152  }
153  id = temp_id;
154  return *this;
155  }
156 
157  ~Fieldmodule()
158  {
159  if (0 != id)
160  {
161  cmzn_fieldmodule_destroy(&id);
162  }
163  }
164 
170  bool isValid() const
171  {
172  return (0 != id);
173  }
174 
180  cmzn_fieldmodule_id getId() const
181  {
182  return id;
183  }
184 
198  {
199  return cmzn_fieldmodule_begin_change(id);
200  }
201 
211  int endChange()
212  {
213  return cmzn_fieldmodule_end_change(id);
214  }
215 
225  {
226  return cmzn_fieldmodule_define_all_faces(id);
227  }
228 
235  Field findFieldByName(const char *fieldName)
236  {
237  return Field(cmzn_fieldmodule_find_field_by_name(id, fieldName));
238  }
239 
246  inline Fieldcache createFieldcache();
247 
260  {
261  return Fielditerator(cmzn_fieldmodule_create_fielditerator(id));
262  }
263 
271 
272  Elementbasis createElementbasis(int dimension, enum Elementbasis::FunctionType functionType)
273  {
274  return Elementbasis(cmzn_fieldmodule_create_elementbasis(
275  id, dimension, static_cast<cmzn_elementbasis_function_type>(functionType)));
276  }
277 
278  Nodeset findNodesetByFieldDomainType(Field::DomainType domainType)
279  {
280  return Nodeset(cmzn_fieldmodule_find_nodeset_by_field_domain_type(id,
281  static_cast<cmzn_field_domain_type>(domainType)));
282  }
283 
298  Nodeset findNodesetByName(const char *nodeset_name)
299  {
300  return Nodeset(cmzn_fieldmodule_find_nodeset_by_name(id,
301  nodeset_name));
302  }
303 
312  Mesh findMeshByDimension(int dimension)
313  {
314  return Mesh(cmzn_fieldmodule_find_mesh_by_dimension(id, dimension));
315  }
316 
330  Mesh findMeshByName(const char *meshName)
331  {
332  return Mesh(cmzn_fieldmodule_find_mesh_by_name(id, meshName));
333  }
334 
345  inline Timesequence getMatchingTimesequence(int timesCount, const double *timesIn)
346  {
347  return Timesequence(cmzn_fieldmodule_get_matching_timesequence(
348  id, timesCount, timesIn));
349  }
350 
356  inline Region getRegion() const
357  {
358  return Region(cmzn_fieldmodule_get_region(id));
359  }
360 
368 
378  inline FieldAlias createFieldAlias(const Field& sourceField);
379 
389  inline FieldAdd createFieldAdd(const Field& sourceField1, const Field& sourceField2);
390 
400  inline FieldPower createFieldPower(const Field& sourceField1, const Field& sourceField2);
401 
411  inline FieldMultiply createFieldMultiply(const Field& sourceField1, const Field& sourceField2);
412 
422  inline FieldDivide createFieldDivide(const Field& sourceField1, const Field& sourceField2);
423 
433  inline FieldSubtract createFieldSubtract(const Field& sourceField1, const Field& sourceField2);
434 
444  inline FieldSumComponents createFieldSumComponents(const Field& sourceField);
445 
453  inline FieldLog createFieldLog(const Field& sourceField);
454 
462  inline FieldSqrt createFieldSqrt(const Field& sourceField);
463 
471  inline FieldExp createFieldExp(const Field& sourceField);
472 
480  inline FieldAbs createFieldAbs(const Field& sourceField);
481 
491  inline FieldIdentity createFieldIdentity(const Field& sourceField);
492 
501  inline FieldComponent createFieldComponent(const Field& sourceField, int componentIndex);
502 
511  inline FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields);
512 
524  inline FieldIf createFieldIf(const Field& sourceField1, const Field& sourceField2, const Field& sourceField3);
525 
534  inline FieldConstant createFieldConstant(int valuesCount, const double *valuesIn);
535 
543  inline FieldStringConstant createFieldStringConstant(const char *stringConstant);
544 
556 
570  const Field& vectorField, const Field& coordinateField);
571 
593  inline FieldFibreAxes createFieldFibreAxes(const Field& fibreField, const Field& coordinateField);
594 
602  inline FieldFiniteElement createFieldFiniteElement(int numberOfComponents);
603 
614  inline FieldEmbedded createFieldEmbedded(const Field& sourceField, const Field& embeddedLocationField);
615 
631  const Field& sourceField, const Field& meshField, const Mesh& mesh);
632 
643  inline FieldNodeValue createFieldNodeValue(const Field& sourceField,
644  Node::ValueLabel nodeValueLabel, int versionNumber);
645 
653 
660 
668  inline FieldGroup createFieldGroup();
669 
680  inline FieldImage createFieldImage();
681 
697  inline FieldImage createFieldImageFromSource(const Field& sourceField);
698 
708  inline FieldAnd createFieldAnd(const Field& sourceField1, const Field& sourceField2);
709 
719  inline FieldEqualTo createFieldEqualTo(const Field& sourceField1, const Field& sourceField2);
720 
730  inline FieldGreaterThan createFieldGreaterThan(const Field& sourceField1, const Field& sourceField2);
731 
741  inline FieldLessThan createFieldLessThan(const Field& sourceField1, const Field& sourceField2);
742 
752  inline FieldOr createFieldOr(const Field& sourceField1, const Field& sourceField2);
753 
762  inline FieldNot createFieldNot(const Field& sourceField);
763 
773  inline FieldXor createFieldXor(const Field& sourceField1, const Field& sourceField2);
774 
783  inline FieldDeterminant createFieldDeterminant(const Field& sourceField);
784 
792  inline FieldEigenvalues createFieldEigenvalues(const Field& sourceField);
793 
802  inline FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues& eigenValuesField);
803 
811  inline FieldMatrixInvert createFieldMatrixInvert(const Field& sourceField);
812 
825  inline FieldMatrixMultiply createFieldMatrixMultiply(int numberOfRows,
826  const Field& sourceField1, const Field& sourceField2);
827 
851  inline FieldProjection createFieldProjection(const Field& sourceField, const Field& projectionMatrixField);
852 
864  inline FieldTranspose createFieldTranspose(int sourceNumberOfRows, const Field& sourceField);
865 
875  inline FieldNodesetSum createFieldNodesetSum(const Field& sourceField, const Nodeset& nodeset);
876 
886  inline FieldNodesetMean createFieldNodesetMean(const Field& sourceField, const Nodeset& nodeset);
887 
900  inline FieldNodesetSumSquares createFieldNodesetSumSquares(const Field& sourceField, const Nodeset& nodeset);
901 
915  inline FieldNodesetMeanSquares createFieldNodesetMeanSquares(const Field& sourceField, const Nodeset& nodeset);
916 
926  inline FieldNodesetMinimum createFieldNodesetMinimum(const Field& sourceField, const Nodeset& nodeset);
927 
937  inline FieldNodesetMaximum createFieldNodesetMaximum(const Field& sourceField, const Nodeset& nodeset);
938 
952  inline FieldNodeGroup createFieldNodeGroup(const Nodeset& nodeset);
953 
967  inline FieldElementGroup createFieldElementGroup(const Mesh& mesh);
968 
977  inline FieldTimeLookup createFieldTimeLookup(const Field& sourceField, const Field& timeField);
978 
985  inline FieldTimeValue createFieldTimeValue(const Timekeeper& timeKeeper);
986 
997  inline FieldDerivative createFieldDerivative(const Field& sourceField, int xi_index);
998 
1008  inline FieldCurl createFieldCurl(const Field& vectorField, const Field& coordinateField);
1009 
1021  inline FieldDivergence createFieldDivergence(const Field& vectorField, const Field& coordinateField);
1022 
1042  inline FieldGradient createFieldGradient(const Field& sourceField, const Field& coordinateField);
1043 
1051  inline FieldSin createFieldSin(const Field& sourceField);
1052 
1060  inline FieldCos createFieldCos(const Field& sourceField);
1061 
1069  inline FieldTan createFieldTan(const Field& sourceField);
1070 
1078  inline FieldAsin createFieldAsin(const Field& sourceField);
1079 
1087  inline FieldAcos createFieldAcos(const Field& sourceField);
1088 
1096  inline FieldAtan createFieldAtan(const Field& sourceField);
1097 
1108  inline FieldAtan2 createFieldAtan2(const Field& sourceField1, const Field& sourceField2);
1109 
1128  inline FieldCrossProduct createFieldCrossProduct(int fieldsCount, const Field *sourceFields);
1129 
1148  inline FieldCrossProduct createFieldCrossProduct(const Field& sourceField1, const Field& sourceField2);
1149 
1158  inline FieldDotProduct createFieldDotProduct(const Field& sourceField1, const Field& sourceField2);
1159 
1166  inline FieldMagnitude createFieldMagnitude(const Field& sourceField);
1167 
1175  inline FieldNormalise createFieldNormalise(const Field& sourceField);
1176 
1185  int radius, double dilate_value);
1186 
1195  int radius, double erode_value);
1196 
1208 
1215  double variance, double maximumError, double upperThreshold, double lowerThreshold);
1216 
1223  double lowerThreshold, double upperThreshold, double replaceValue,
1224  int dimension, int seedPointsCount, const double *seedPoints);
1225 
1238  const Field& sourceField, double timeStep, double conductance, int numIterations);
1239 
1254 
1264 
1272  inline FieldImagefilterMean createFieldImagefilterMean(const Field& sourceField, int valuesCount,
1273  const int *radiusSizesIn);
1274 
1283  double sigma);
1284 
1291  double outputMin, double outputMax);
1292 
1299  double min, double max, double alpha, double beta);
1300 
1310 
1332  const Sceneviewer& sceneviewer, Scenecoordinatesystem fromCoordinateSystem,
1333  Scenecoordinatesystem toCoordinateSystem);
1334 };
1335 
1336 inline bool operator==(const Fieldmodule& a, const Fieldmodule& b)
1337 {
1338  return cmzn_fieldmodule_match(a.getId(), b.getId());
1339 }
1340 
1348 {
1349 protected:
1350  cmzn_fieldmoduleevent_id id;
1351 
1352 public:
1353 
1354  Fieldmoduleevent() : id(0)
1355  { }
1356 
1357  // takes ownership of C handle, responsibility for destroying it
1358  explicit Fieldmoduleevent(cmzn_fieldmoduleevent_id in_fieldmodule_event_id) :
1359  id(in_fieldmodule_event_id)
1360  { }
1361 
1362  Fieldmoduleevent(const Fieldmoduleevent& fieldmoduleEvent) :
1363  id(cmzn_fieldmoduleevent_access(fieldmoduleEvent.id))
1364  { }
1365 
1366  Fieldmoduleevent& operator=(const Fieldmoduleevent& fieldmoduleEvent)
1367  {
1368  cmzn_fieldmoduleevent_id temp_id = cmzn_fieldmoduleevent_access(fieldmoduleEvent.id);
1369  if (0 != id)
1370  cmzn_fieldmoduleevent_destroy(&id);
1371  id = temp_id;
1372  return *this;
1373  }
1374 
1375  ~Fieldmoduleevent()
1376  {
1377  if (0 != id)
1378  {
1379  cmzn_fieldmoduleevent_destroy(&id);
1380  }
1381  }
1382 
1388  bool isValid() const
1389  {
1390  return (0 != id);
1391  }
1392 
1398  cmzn_fieldmoduleevent_id getId() const
1399  {
1400  return id;
1401  }
1402 
1403  Field::ChangeFlags getFieldChangeFlags(const Field& field) const
1404  {
1405  return cmzn_fieldmoduleevent_get_field_change_flags(id, field.getId());
1406  }
1407 
1420  Meshchanges getMeshchanges(const Mesh& mesh) const
1421  {
1422  return Meshchanges(cmzn_fieldmoduleevent_get_meshchanges(id, mesh.getId()));
1423  }
1424 
1433  {
1434  return Nodesetchanges(cmzn_fieldmoduleevent_get_nodesetchanges(id, nodeset.getId()));
1435  }
1436 
1437  Field::ChangeFlags getSummaryFieldChangeFlags() const
1438  {
1439  return cmzn_fieldmoduleevent_get_summary_field_change_flags(id);
1440  }
1441 
1442 };
1443 
1453 {
1454 friend class Fieldmodulenotifier;
1455 private:
1456  Fieldmodulecallback(const Fieldmodulecallback&); // not implemented
1457  Fieldmodulecallback& operator=(const Fieldmodulecallback&); // not implemented
1458 
1459  static void C_callback(cmzn_fieldmoduleevent_id fieldmoduleevent_id, void *callbackVoid)
1460  {
1461  Fieldmoduleevent fieldmoduleevent(cmzn_fieldmoduleevent_access(fieldmoduleevent_id));
1462  Fieldmodulecallback *callback = reinterpret_cast<Fieldmodulecallback *>(callbackVoid);
1463  (*callback)(fieldmoduleevent);
1464  }
1465 
1466  virtual void operator()(const Fieldmoduleevent &fieldmoduleevent) = 0;
1467 
1468 protected:
1470  { }
1471 
1472 public:
1473  virtual ~Fieldmodulecallback()
1474  { }
1475 };
1476 
1483 {
1484 protected:
1485  cmzn_fieldmodulenotifier_id id;
1486 
1487 public:
1488 
1489  Fieldmodulenotifier() : id(0)
1490  { }
1491 
1492  // takes ownership of C handle, responsibility for destroying it
1493  explicit Fieldmodulenotifier(cmzn_fieldmodulenotifier_id in_fieldmodulenotifier_id) :
1494  id(in_fieldmodulenotifier_id)
1495  { }
1496 
1497  Fieldmodulenotifier(const Fieldmodulenotifier& fieldmoduleNotifier) :
1498  id(cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id))
1499  { }
1500 
1501  Fieldmodulenotifier& operator=(const Fieldmodulenotifier& fieldmoduleNotifier)
1502  {
1503  cmzn_fieldmodulenotifier_id temp_id = cmzn_fieldmodulenotifier_access(fieldmoduleNotifier.id);
1504  if (0 != id)
1505  {
1506  cmzn_fieldmodulenotifier_destroy(&id);
1507  }
1508  id = temp_id;
1509  return *this;
1510  }
1511 
1513  {
1514  if (0 != id)
1515  {
1516  cmzn_fieldmodulenotifier_destroy(&id);
1517  }
1518  }
1519 
1525  bool isValid() const
1526  {
1527  return (0 != id);
1528  }
1529 
1535  cmzn_fieldmodulenotifier_id getId() const
1536  {
1537  return id;
1538  }
1539 
1551  {
1552  return cmzn_fieldmodulenotifier_set_callback(id, callback.C_callback, static_cast<void*>(&callback));
1553  }
1554 
1562  {
1563  return cmzn_fieldmodulenotifier_clear_callback(id);
1564  }
1565 };
1566 
1568 {
1569  return Fieldmodule(cmzn_region_get_fieldmodule(id));
1570 }
1571 
1573 {
1574  return Fieldmodule(cmzn_field_get_fieldmodule(id));
1575 }
1576 
1578 {
1579  return Fieldmodule(cmzn_mesh_get_fieldmodule(id));
1580 }
1581 
1583 {
1584  return Fieldmodule(cmzn_nodeset_get_fieldmodule(id));
1585 }
1586 
1588 {
1589  return Fieldmodulenotifier(cmzn_fieldmodule_create_fieldmodulenotifier(id));
1590 }
1591 
1592 } // namespace Zinc
1593 }
1594 
1595 #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:733
Mesh findMeshByDimension(int dimension)
Definition: fieldmodule.hpp:312
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:715
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:198
A "fibre axes" field type which returns a 9-component (3 x 3 vector) field representing an orthonorma...
Definition: fieldfibres.hpp:42
A real-valued field defined by element basis.
Definition: fieldfiniteelement.hpp:29
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:762
ValueLabel
Definition: node.hpp:83
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
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:46
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:220
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:703
A field which concatenates the components of all source fields, in order, into a single vector...
Definition: fieldcomposite.hpp:103
FieldNot createFieldNot(const Field &sourceField)
Definition: fieldlogicaloperators.hpp:250
Optimisation createOptimisation()
Definition: optimisation.hpp:437
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
FieldComponent createFieldComponent(const Field &sourceField, int componentIndex)
Definition: fieldcomposite.hpp:125
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:474
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:753
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:1452
FieldStoredMeshLocation createFieldStoredMeshLocation(const Mesh &mesh)
Definition: fieldfiniteelement.hpp:235
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:209
FieldGradient createFieldGradient(const Field &sourceField, const Field &coordinateField)
Definition: fieldderivatives.hpp:142
A field whose component values are 1 if that component of source_field_one OR source_field_two is non...
Definition: fieldlogicaloperators.hpp:203
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1567
FieldStoredString createFieldStoredString()
Definition: fieldfiniteelement.hpp:246
int endChange()
Definition: fieldmodule.hpp:211
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:244
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:712
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:185
FieldNodeValue createFieldNodeValue(const Field &sourceField, Node::ValueLabel nodeValueLabel, int versionNumber)
Definition: fieldfiniteelement.hpp:227
FieldImagefilterHistogram createFieldImagefilterHistogram(const Field &sourceField)
Definition: fieldimageprocessing.hpp:783
FieldDivergence createFieldDivergence(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:137
FieldImagefilterRescaleIntensity createFieldImagefilterRescaleIntensity(const Field &sourceField, double outputMin, double outputMax)
Definition: fieldimageprocessing.hpp:795
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:144
Meshchanges getMeshchanges(const Mesh &mesh) const
Definition: fieldmodule.hpp:1420
A field returning a single component of a source field as a scalar.
Definition: fieldcomposite.hpp:52
Mesh findMeshByName(const char *meshName)
Definition: fieldmodule.hpp:330
A hierarchical block/namespace owning domains and fields.
Definition: region.hpp:33
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:197
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:48
int clearCallback()
Definition: fieldmodule.hpp:1561
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
cmzn_field_id getId() const
Definition: field.hpp:98
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 whose component values are 1 if that component of source_field_one is less than the component...
Definition: fieldlogicaloperators.hpp:114
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
FieldImagefilterMean createFieldImagefilterMean(const Field &sourceField, int valuesCount, const int *radiusSizesIn)
Definition: fieldimageprocessing.hpp:803
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:167
A field with the components specified in the array values.
Definition: fieldconstant.hpp:27
cmzn_fieldmodulenotifier_id getId() const
Definition: fieldmodule.hpp:1535
bool isValid() const
Definition: fieldmodule.hpp:1388
FieldImagefilterConnectedThreshold createFieldImagefilterConnectedThreshold(const Field &sourceField, double lowerThreshold, double upperThreshold, double replaceValue, int dimension, int seedPointsCount, const double *seedPoints)
Definition: fieldimageprocessing.hpp:743
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:255
A field performing ITK mean image filter on source_field image.
Definition: fieldimageprocessing.hpp:520
int setCallback(Fieldmodulecallback &callback)
Definition: fieldmodule.hpp:1550
A field returning the curl of vector_field at location given by coordinate_field. ...
Definition: fieldderivatives.hpp:111
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
cmzn_fieldmodule_id getId() const
Definition: fieldmodule.hpp:180
FieldNodesetMinimum createFieldNodesetMinimum(const Field &sourceField, const Nodeset &nodeset)
Definition: fieldnodesetoperators.hpp:202
DomainType
Definition: field.hpp:190
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:174
Nodesetchanges getNodesetchanges(const Nodeset &nodeset) const
Definition: fieldmodule.hpp:1432
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:703
int ChangeFlags
Definition: field.hpp:137
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:298
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:571
bool isValid() const
Definition: fieldmodule.hpp:1525
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
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:224
FieldAtan2 createFieldAtan2(const Field &sourceField1, const Field &sourceField2)
Definition: fieldtrigonometry.hpp:217
Fielditerator createFielditerator()
Definition: fieldmodule.hpp:259
FieldConcatenate createFieldConcatenate(int fieldsCount, const Field *sourceFields)
Definition: fieldcomposite.hpp:136
Container/manager of fields and domains within a region.
Definition: fieldmodule.hpp:126
FieldAtan createFieldAtan(const Field &sourceField)
Definition: fieldtrigonometry.hpp:212
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:345
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:120
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:127
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:820
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:1587
FieldLessThan createFieldLessThan(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:238
A field returning the values resulting from matrix multiplication <source_field1> x <source_field2>...
Definition: fieldmatrixoperators.hpp:126
bool isValid() const
Definition: fieldmodule.hpp:170
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
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:546
FieldImagefilterBinaryThreshold createFieldImagefilterBinaryThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:721
FieldEigenvectors createFieldEigenvectors(const FieldEigenvalues &eigenValuesField)
Definition: fieldmatrixoperators.hpp:219
cmzn_fieldmoduleevent_id getId() const
Definition: fieldmodule.hpp:1398
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:232
Fieldcache createFieldcache()
Definition: fieldcache.hpp:186
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:309
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:261
Manages individual user notification of changes with a field module.
Definition: fieldmodule.hpp:1482
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:650
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:143
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:774
FieldProjection createFieldProjection(const Field &sourceField, const Field &projectionMatrixField)
Definition: fieldmatrixoperators.hpp:238
FieldFibreAxes createFieldFibreAxes(const Field &fibreField, const Field &coordinateField)
Definition: fieldfibres.hpp:58
FieldImagefilterSigmoid createFieldImagefilterSigmoid(const Field &sourceField, double min, double max, double alpha, double beta)
Definition: fieldimageprocessing.hpp:811
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:655
Region getRegion() const
Definition: fieldmodule.hpp:356
FieldCurl createFieldCurl(const Field &vectorField, const Field &coordinateField)
Definition: fieldderivatives.hpp:132
Field findFieldByName(const char *fieldName)
Definition: fieldmodule.hpp:235
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:1577
A set of nodes or points.
Definition: node.hpp:421
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:991
Information about changes to fields and other objects in the field module.
Definition: fieldmodule.hpp:1347
FieldEqualTo createFieldEqualTo(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:226
A field that computes the location in a mesh.
Definition: fieldfiniteelement.hpp:71
A vector field which is the cross product of the source_fields.
Definition: fieldvectoroperators.hpp:34
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1572
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1582
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:215