9 #ifndef CMZN_FIELDLOGICALOPERATORS_HPP__
10 #define CMZN_FIELDLOGICALOPERATORS_HPP__
12 #include "zinc/fieldlogicaloperators.h"
13 #include "zinc/field.hpp"
14 #include "zinc/fieldmodule.hpp"
20 class FieldAnd :
public Field
33 explicit FieldAnd(cmzn_field_id field_id) : Field(field_id)
37 const Field& sourceField2);
46 inline FieldAnd operator&&(
const Field& operand1,
const Field& operand2)
50 class FieldEqualTo :
public Field
63 explicit FieldEqualTo(cmzn_field_id field_id) : Field(field_id)
67 const Field& sourceField2);
71 FieldEqualTo() : Field(0)
75 class FieldGreaterThan :
public Field
88 explicit FieldGreaterThan(cmzn_field_id field_id) : Field(field_id)
92 const Field& sourceField2);
96 FieldGreaterThan() : Field(0)
101 inline FieldGreaterThan operator>(
const Field& operand1,
const Field& operand2)
105 class FieldLessThan :
public Field
118 explicit FieldLessThan(cmzn_field_id field_id) : Field(field_id)
125 FieldLessThan() : Field(0)
130 inline FieldLessThan operator<(
const Field& operand1,
const Field& operand2)
134 class FieldOr :
public Field
147 explicit FieldOr(cmzn_field_id field_id) : Field(field_id)
151 const Field& sourceField2);
160 inline FieldOr operator||(
const Field& operand1,
const Field& operand2)
164 class FieldNot :
public Field
178 explicit FieldNot(cmzn_field_id field_id) : Field(field_id)
185 FieldNot() : Field(0)
190 inline FieldNot operator!(
const Field& operand)
194 class FieldXor :
public Field
207 explicit FieldXor(cmzn_field_id field_id) : Field(field_id)
211 const Field& sourceField2);
215 FieldXor() : Field(0)
222 return FieldAnd(cmzn_fieldmodule_create_field_and(
id,
228 return FieldEqualTo(cmzn_fieldmodule_create_field_equal_to(
id,
240 return FieldLessThan(cmzn_fieldmodule_create_field_less_than(
id,
246 return FieldOr(cmzn_fieldmodule_create_field_or(
id,
252 return FieldNot(cmzn_fieldmodule_create_field_not(
id, sourceField.
getId()));
257 return FieldXor(cmzn_fieldmodule_create_field_xor(
id,
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:46
FieldAnd createFieldAnd(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:220
FieldNot createFieldNot(const Field &sourceField)
Definition: fieldlogicaloperators.hpp:250
A field whose component values are 1 if that component of source_field_one OR source_field_two is non...
Definition: fieldlogicaloperators.hpp:203
FieldOr createFieldOr(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:244
cmzn_field_id getId() const
Definition: field.hpp:98
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
FieldXor createFieldXor(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:255
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
A field whose component values are 1 if that component of source_field_one EQUALS that component of s...
Definition: fieldlogicaloperators.hpp:59
FieldLessThan createFieldLessThan(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:238
FieldGreaterThan createFieldGreaterThan(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:232
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
FieldEqualTo createFieldEqualTo(const Field &sourceField1, const Field &sourceField2)
Definition: fieldlogicaloperators.hpp:226
Fieldmodule getFieldmodule() const
Definition: fieldmodule.hpp:1572