34 template<
class>
class GeoField,
35 template<
class ...>
class Op,
42 const GeoField<TypeA>& a,
43 const GeoField<TypeB>&
b
52 template<
class>
class GeoField,
53 template<
class ...>
class Op,
67 template<
class>
class GeoField,
68 template<
class ...>
class Op,
77 && foundObject<GeoField<TypeA>>(fieldNames_[0])
80 clearObject(resultName_);
84 lookupObject<GeoField<TypeA>>(fieldNames_[0]).
clone()
91 && foundObject<GeoField<TypeA>>(resultName_)
92 && foundObject<GeoField<TypeB>>(fieldNames_[i])
96 lookupObject<GeoField<TypeA>>(resultName_).
clone();
97 const GeoField<TypeB>&
b =
98 lookupObject<GeoField<TypeB>>(fieldNames_[i]);
100 clearObject(resultName_);
101 return opAndStore<GeoField, Op>(a(),
b);
110 template<
class>
class GeoField,
111 template<
class ...>
class Op,
118 #define processType(Type, none) \
119 success = success || foldAB<GeoField, Op, TypeA, Type>(i);
127 template<
template<
class>
class GeoField,
template<
class ...>
class Op>
132 #define processType(Type, none) \
133 success = success || foldA<GeoField, Op, Type>(i);
141 template<
template<
class>
class GeoField,
template<
class ...>
class Op>
146 if (!fold<GeoField, Op>(i))
156 template<
template<
class ...>
class Op>
160 calcGeoFieldOp<VolField, Op>()
161 || calcGeoFieldOp<VolInternalField, Op>()
162 || calcGeoFieldOp<SurfaceField, Op>();
#define forAll(list, i)
Loop across all elements in list.
bool foldA(const label i)
Fold the fields expression up one place.
bool calcGeoFieldOp()
Calculate and store the fields expression for the given geometric.
bool fold(const label i)
Fold the fields expression up one place.
word resultName_
Name of result fields.
bool foldAB(const label i)
Fold the fields expression up one place.
bool opAndStore(const GeoField< TypeA > &a, const GeoField< TypeB > &b)
Operate on the fields and store the result. Supported overload.
bool calcOp()
Calculate and store the fields expression for the given operation.
bool store(const tmp< ObjectType > &tfield)
Store the given field in the objectRegistry.
A class for managing temporary objects.
#define processType(Type, none)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
FOR_ALL_FIELD_TYPES(makeFieldSourceTypedef)