61 scalar spanU(upperCpBounds.
x() - lowerCpBounds.
x());
62 scalar spanV(upperCpBounds.
y() - lowerCpBounds.
y());
63 scalar spanW(upperCpBounds.
z() - lowerCpBounds.
z());
66 for (label iCPw = 0; iCPw < nCPsW; ++iCPw)
68 for (label iCPv = 0; iCPv < nCPsV; ++iCPv)
70 for (label iCPu = 0; iCPu < nCPsU; ++iCPu)
75 lowerCpBounds.
x() + scalar(iCPu)/scalar(nCPsU - 1)*spanU,
76 lowerCpBounds.
y() + scalar(iCPv)/scalar(nCPsV - 1)*spanV,
77 lowerCpBounds.
z() + scalar(iCPw)/scalar(nCPsW - 1)*spanW
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
void setSize(const label n)
Alias for resize()
NURBS3DVolume morpher. Includes support functions for gradient computations Base class providing supp...
const dictionary & dict() const
Get dictionary.
const NURBSbasis & basisV() const
label getCPID(const label i, const label j, const label k) const
Get control point ID from its I-J-K coordinates.
const NURBSbasis & basisW() const
const NURBSbasis & basisU() const
Get basis functions.
const label & nCPs() const
const Cmpt & z() const
Access to the vector z component.
const Cmpt & y() const
Access to the vector y component.
const Cmpt & x() const
Access to the vector x component.
Abstract base for selecting how to construct the control points of a volumetric B-Splines morpher.
void transformControlPoints(const vector &geometryMin, const vector &geometryMax)
vectorField & cps_
The volumetric B-Splines control points.
NURBS3DVolume & box_
The volumetric B-Splines box.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
A non-counting (dummy) refCount.