34 template<
class>
class GeoField,
35 template<
class ...>
class Op,
42 const GeoField<TypeA>& a,
43 const GeoField<TypeB>&
b
54 template<
class>
class GeoField,
55 template<
class ...>
class Op,
69 template<
class>
class GeoField,
70 template<
class ...>
class Op,
79 && foundObject<GeoField<TypeA>>(fieldNames_[0])
82 clearObject(resultName_);
86 lookupObject<GeoField<TypeA>>(fieldNames_[0]).
clone()
95 && foundObject<GeoField<TypeA>>(resultName_)
96 && foundObject<GeoField<TypeB>>(fieldNames_[i])
100 lookupObject<GeoField<TypeA>>(resultName_).
clone();
101 const GeoField<TypeB>&
b =
102 lookupObject<GeoField<TypeB>>(fieldNames_[i]);
104 clearObject(resultName_);
105 return opAndStore<GeoField, Op>(a(),
b);
114 template<
class>
class GeoField,
115 template<
class ...>
class Op,
122 #define processType(Type, none) \
123 success = success || foldAB<GeoField, Op, TypeA, Type>(i);
131 template<
template<
class>
class GeoField,
template<
class ...>
class Op>
136 #define processType(Type, none) \
137 success = success || foldA<GeoField, Op, Type>(i);
145 template<
template<
class>
class GeoField,
template<
class ...>
class Op>
150 if (!fold<GeoField, Op>(i))
160 template<
template<
class ...>
class Op>
164 calcGeoFieldOp<VolField, Op>()
165 || calcGeoFieldOp<VolInternalField, Op>()
166 || 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.
ObjectType & 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)