Field3D
MatrixFieldMapping Class Reference

Represents the mapping of a field by a matrix transform. More...

#include <FieldMapping.h>

Inheritance diagram for MatrixFieldMapping:
FieldMapping RefBase

Public Types

typedef MatrixFieldMapping class_type
 
typedef Curve< Imath::M44d > MatrixCurve
 Time-varying matrix.
 
typedef boost::intrusive_ptr< MatrixFieldMappingPtr
 Convenience typedef.
 
- Public Types inherited from FieldMapping
typedef FieldMapping class_type
 
typedef boost::intrusive_ptr< FieldMappingPtr
 
- Public Types inherited from RefBase
typedef boost::intrusive_ptr< RefBasePtr
 
typedef boost::weak_ptr< RefBaseWeakPtr
 

Public Member Functions

const M44dlocalToWorld () const
 Returns a reference to the local to world transform.
 
const MatrixCurve::SampleVeclocalToWorldSamples () const
 Returns a vector of all motion samples for local to world transform.
 
void makeIdentity ()
 Sets the transform to identity. This makes it functionally equivalent to a NullFieldMapping.
 
void setLocalToWorld (const M44d &lsToWs)
 Sets the local to world transform. All other matrices will be updated based on this.
 
void setLocalToWorld (float t, const M44d &lsToWs)
 Sets the local to world transform at a given time.
 
const M44dvoxelToWorld () const
 Returns a reference to the voxel to world space transform.
 
const M44dworldToVoxel () const
 Returns a reference to the world to voxel space transform.
 
M44d worldToVoxel (float time) const
 Returns the world to voxel space transform at a given time.
 
Constructors & destructor
 MatrixFieldMapping ()
 
 MatrixFieldMapping (const Box3i &extents)
 
From FieldMapping
virtual void worldToVoxel (const V3d &wsP, V3d &vsP) const
 Transform from world space position into voxel space.
 
virtual void worldToVoxel (const V3d &wsP, V3d &vsP, float time) const
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP) const
 Transform from voxel space position into world space.
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP, float time) const
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP) const
 Transform from world space position into local space.
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP, float time) const
 
virtual void localToWorld (const V3d &lsP, V3d &wsP) const
 Transform from local space position into world space.
 
virtual void localToWorld (const V3d &lsP, V3d &wsP, float time) const
 
void worldToVoxelDir (const V3d &wsV, V3d &vsV) const
 
void voxelToWorldDir (const V3d &vsV, V3d &wsV) const
 
void worldToLocalDir (const V3d &wsV, V3d &lsV) const
 
void localToWorldDir (const V3d &lsV, V3d &wsV) const
 
virtual void extentsChanged ()
 Implement this if the subclass needs to update itself when the resolution changes.
 
virtual std::string className () const
 Returns the FieldMapping type name. Used when writing/reading from disk.
 
virtual bool isIdentical (FieldMapping::Ptr other, double tolerance=0.0) const
 Whether the mapping is identical to another mapping.
 
virtual V3d wsVoxelSize (int, int, int) const
 Returns world-space size of a voxel at the specified coordinate.
 
virtual FieldMapping::Ptr clone () const
 Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it.
 
- Public Member Functions inherited from FieldMapping
const V3dorigin () const
 Returns the origin.
 
const V3dresolution () const
 Returns the resolution.
 
void setExtents (const Box3i &extents)
 This sets the field extents information to use for defining the local coordinate space.
 
 FieldMapping ()
 Constructor.
 
 FieldMapping (const Box3i &extents)
 Construct with known extents.
 
virtual ~FieldMapping ()
 Destructor.
 
void localToVoxel (const V3d &lsP, V3d &vsP) const
 Transform from local space to voxel space. This is just a multiplication by the resolution of the Field that we're mapping.
 
void voxelToLocal (const V3d &vsP, V3d &lsP) const
 Inverse of localToVoxel.
 
- Public Member Functions inherited from RefBase
void ref () const
 Used by boost::intrusive_pointer.
 
size_t refcnt ()
 Used by boost::intrusive_pointer.
 
void unref () const
 Used by boost::intrusive_pointer.
 
WeakPtr weakPtr () const
 
 RefBase ()
 
 RefBase (const RefBase &)
 Copy constructor.
 
RefBaseoperator= (const RefBase &)
 Assignment operator.
 
virtual ~RefBase ()
 Destructor.
 
virtual bool checkRTTI (const char *typenameStr)=0
 This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();.
 
bool matchRTTI (const char *typenameStr)
 Performs a check to see if the given typename string matches this class' This needs to be implemented in -all- subclasses, even abstract ones.
 

Static Public Member Functions

static const charstaticClassType ()
 
- Static Public Member Functions inherited from FieldMapping
static const charstaticClassType ()
 
- Static Public Member Functions inherited from RefBase
static const charstaticClassType ()
 

Public Attributes

 DEFINE_FIELD_RTTI_CONCRETE_CLASS
 
- Public Attributes inherited from FieldMapping
 DEFINE_FIELD_RTTI_ABSTRACT_CLASS
 

Private Types

typedef FieldMapping base
 Convenience typedef for referring to base class.
 

Private Member Functions

void getLocalToVoxelMatrix (M44d &result)
 
void updateTransform ()
 Updates the local to world transformation matrix.
 

Private Attributes

bool m_isTimeVarying
 Stores whether the curve has more than one time sample.
 
M44d m_lsToWs
 Local space to world space.
 
MatrixCurve m_lsToWsCurve
 Time-varying local to world space transform.
 
M44d m_vsToWs
 Voxel space to world space.
 
MatrixCurve m_vsToWsCurve
 Time-varying voxel to world space transform.
 
M44d m_wsToLs
 World space to local space.
 
M44d m_wsToVs
 World space to voxel space.
 
V3d m_wsVoxelSize
 Precomputed world-space voxel size. Calculations may assume orthogonal transformation for efficiency.
 

Additional Inherited Members

- Protected Attributes inherited from FieldMapping
V3d m_origin
 The integer voxel-space origin of the underlying Field object. Is equal to field.extents.min.
 
V3d m_res
 The integer voxel-space resolution of the underlying Field object. Is equal to field.extents.max - field.extents.min + 1.
 

Detailed Description

Represents the mapping of a field by a matrix transform.

Refer to using_mappings for examples of how to use this in your code.

Note
Regarding time-varying matrices. If setLocalToWorld(M44d) is called, an underlying Curve object is created with just one sample at time=0.0.
Todo
Add calls for easily specifying the transform given grid size, offset, rotation, etc.

Definition at line 334 of file FieldMapping.h.

Member Typedef Documentation

◆ Ptr

Convenience typedef.

Definition at line 341 of file FieldMapping.h.

◆ MatrixCurve

Time-varying matrix.

Definition at line 343 of file FieldMapping.h.

◆ class_type

◆ base

Convenience typedef for referring to base class.

Definition at line 530 of file FieldMapping.h.

Constructor & Destructor Documentation

◆ MatrixFieldMapping() [1/2]

MatrixFieldMapping::MatrixFieldMapping ( )

Definition at line 253 of file FieldMapping.cpp.

254 : FieldMapping()
255{
256 makeIdentity();
257}
FieldMapping()
Constructor.
void makeIdentity()
Sets the transform to identity. This makes it functionally equivalent to a NullFieldMapping.

References makeIdentity().

Referenced by clone().

◆ MatrixFieldMapping() [2/2]

MatrixFieldMapping::MatrixFieldMapping ( const Box3i & extents)

Definition at line 261 of file FieldMapping.cpp.

262 : FieldMapping(extents)
263{
264 makeIdentity();
265}

References makeIdentity().

Member Function Documentation

◆ staticClassType()

static const char * MatrixFieldMapping::staticClassType ( )
inlinestatic

Definition at line 350 of file FieldMapping.h.

351 {
352 return "MatrixFieldMapping";
353 }

Referenced by className().

◆ setLocalToWorld() [1/2]

void MatrixFieldMapping::setLocalToWorld ( const M44d & lsToWs)

Sets the local to world transform. All other matrices will be updated based on this.

Note
This resets the Curve to contain just one sample at time=0.0

Definition at line 269 of file FieldMapping.cpp.

270{
271 if (m_lsToWsCurve.numSamples() > 0) {
272 makeIdentity();
273 }
274 setLocalToWorld(0.0f, lsToWs);
275}
#define FIELD3D_MTX_T
Definition StdMathLib.h:99
size_t numSamples() const
Returns the number of samples in the curve.
Definition Curve.h:116
void setLocalToWorld(const M44d &lsToWs)
Sets the local to world transform. All other matrices will be updated based on this.
MatrixCurve m_lsToWsCurve
Time-varying local to world space transform.

References FIELD3D_MTX_T, m_lsToWsCurve, makeIdentity(), Curve< T >::numSamples(), and setLocalToWorld().

Referenced by setLocalToWorld().

◆ setLocalToWorld() [2/2]

void MatrixFieldMapping::setLocalToWorld ( float t,
const M44d & lsToWs )

Sets the local to world transform at a given time.

Definition at line 279 of file FieldMapping.cpp.

280{
283}
void addSample(const float t, const T &value)
Adds a sample point to the curve.
Definition Curve.h:189
void updateTransform()
Updates the local to world transformation matrix.

References Curve< T >::addSample(), FIELD3D_MTX_T, m_lsToWsCurve, and updateTransform().

◆ localToWorld() [1/3]

const M44d & MatrixFieldMapping::localToWorld ( ) const
inline

Returns a reference to the local to world transform.

Note
This assumes the query to be at time=0.0

Definition at line 376 of file FieldMapping.h.

377 { return m_lsToWs; }
M44d m_lsToWs
Local space to world space.

◆ worldToVoxel() [1/4]

const M44d & MatrixFieldMapping::worldToVoxel ( ) const
inline

Returns a reference to the world to voxel space transform.

Note
This assumes the query to be at time=0.0

Definition at line 381 of file FieldMapping.h.

382 { return m_wsToVs; }
M44d m_wsToVs
World space to voxel space.

Referenced by FieldWrapper< Field_T >::setWsBoundsOptimization(), and MIPFieldWrapper< Field_T >::setWsBoundsOptimization().

◆ worldToVoxel() [2/4]

M44d MatrixFieldMapping::worldToVoxel ( float time) const
inline

Returns the world to voxel space transform at a given time.

Definition at line 385 of file FieldMapping.h.

386 {
387 if (!m_isTimeVarying) {
388 return m_wsToVs;
389 } else {
390 return m_vsToWsCurve.linear(time).inverse();
391 }
392 }
T linear(const float t) const
Linearly interpolates a value from the curve.
Definition Curve.h:216
MatrixCurve m_vsToWsCurve
Time-varying voxel to world space transform.
bool m_isTimeVarying
Stores whether the curve has more than one time sample.

References FIELD3D_MTX_T.

◆ voxelToWorld() [1/3]

const M44d & MatrixFieldMapping::voxelToWorld ( ) const
inline

Returns a reference to the voxel to world space transform.

Note
This assumes the query to be at time=0.0

Definition at line 396 of file FieldMapping.h.

397 { return m_vsToWs; }
M44d m_vsToWs
Voxel space to world space.

◆ localToWorldSamples()

const MatrixCurve::SampleVec & MatrixFieldMapping::localToWorldSamples ( ) const
inline

Returns a vector of all motion samples for local to world transform.

Definition at line 400 of file FieldMapping.h.

401 { return m_lsToWsCurve.samples(); }
const SampleVec & samples() const
Returns a const reference to the samples in the curve.
Definition Curve.h:120

◆ makeIdentity()

void MatrixFieldMapping::makeIdentity ( )

Sets the transform to identity. This makes it functionally equivalent to a NullFieldMapping.

Definition at line 287 of file FieldMapping.cpp.

288{
291}
void clear()
Clears all samples in curve.
Definition Curve.h:124

References Curve< T >::clear(), m_lsToWsCurve, and updateTransform().

Referenced by MatrixFieldMapping(), MatrixFieldMapping(), and setLocalToWorld().

◆ worldToVoxel() [3/4]

virtual void MatrixFieldMapping::worldToVoxel ( const V3d & wsP,
V3d & vsP ) const
inlinevirtual

Transform from world space position into voxel space.

Implements FieldMapping.

Definition at line 412 of file FieldMapping.h.

413 { m_wsToVs.multVecMatrix(wsP, vsP); }

References FIELD3D_MTX_T.

◆ worldToVoxel() [4/4]

virtual void MatrixFieldMapping::worldToVoxel ( const V3d & wsP,
V3d & vsP,
float time ) const
inlinevirtual

Implements FieldMapping.

Definition at line 414 of file FieldMapping.h.

415 {
416 if (!m_isTimeVarying) {
417 m_wsToVs.multVecMatrix(wsP, vsP);
418 } else {
419 M44d wsToVs = m_vsToWsCurve.linear(time).inverse();
420 wsToVs.multVecMatrix(wsP, vsP);
421 }
422 }
Imath::M44d M44d
Definition SpiMathLib.h:82

References FIELD3D_MTX_T.

◆ voxelToWorld() [2/3]

virtual void MatrixFieldMapping::voxelToWorld ( const V3d & vsP,
V3d & wsP ) const
inlinevirtual

Transform from voxel space position into world space.

Implements FieldMapping.

Definition at line 424 of file FieldMapping.h.

425 { m_vsToWs.multVecMatrix(vsP, wsP); }

References FIELD3D_MTX_T.

◆ voxelToWorld() [3/3]

virtual void MatrixFieldMapping::voxelToWorld ( const V3d & vsP,
V3d & wsP,
float time ) const
inlinevirtual

Implements FieldMapping.

Definition at line 426 of file FieldMapping.h.

427 {
428 if (!m_isTimeVarying) {
429 m_vsToWs.multVecMatrix(vsP, wsP);
430 } else {
432 vsToWs.multVecMatrix(vsP, wsP);
433 }
434 }

References FIELD3D_MTX_T.

◆ worldToLocal() [1/2]

virtual void MatrixFieldMapping::worldToLocal ( const V3d & wsP,
V3d & lsP ) const
inlinevirtual

Transform from world space position into local space.

Implements FieldMapping.

Definition at line 436 of file FieldMapping.h.

437 { m_wsToLs.multVecMatrix(wsP, lsP); }
M44d m_wsToLs
World space to local space.

References FIELD3D_MTX_T.

◆ worldToLocal() [2/2]

virtual void MatrixFieldMapping::worldToLocal ( const V3d & wsP,
V3d & lsP,
float time ) const
inlinevirtual

Implements FieldMapping.

Definition at line 438 of file FieldMapping.h.

440 {
441 if (!m_isTimeVarying) {
442 m_wsToLs.multVecMatrix(wsP, lsP);
443 } else {
444 M44d wsToLs = m_lsToWsCurve.linear(time).inverse();
445 wsToLs.multVecMatrix(wsP, lsP);
446 }
447 }

References FIELD3D_MTX_T.

◆ localToWorld() [2/3]

virtual void MatrixFieldMapping::localToWorld ( const V3d & lsP,
V3d & wsP ) const
inlinevirtual

Transform from local space position into world space.

Implements FieldMapping.

Definition at line 449 of file FieldMapping.h.

450 { m_lsToWs.multVecMatrix(lsP, wsP); }

References FIELD3D_MTX_T.

◆ localToWorld() [3/3]

virtual void MatrixFieldMapping::localToWorld ( const V3d & lsP,
V3d & wsP,
float time ) const
inlinevirtual

Implements FieldMapping.

Definition at line 451 of file FieldMapping.h.

452 {
453 if (!m_isTimeVarying) {
454 m_lsToWs.multVecMatrix(lsP, wsP);
455 } else {
457 lsToWs.multVecMatrix(lsP, wsP);
458 }
459 }

References FIELD3D_MTX_T.

◆ worldToVoxelDir()

void MatrixFieldMapping::worldToVoxelDir ( const V3d & wsV,
V3d & vsV ) const
inline
Todo
Generalize and make time-dependent.

Definition at line 462 of file FieldMapping.h.

463 { m_wsToVs.multDirMatrix(wsV, vsV); }

References FIELD3D_MTX_T.

◆ voxelToWorldDir()

void MatrixFieldMapping::voxelToWorldDir ( const V3d & vsV,
V3d & wsV ) const
inline
Todo
Generalize and make time-dependent.

Definition at line 466 of file FieldMapping.h.

467 { m_vsToWs.multDirMatrix(vsV, wsV); }

References FIELD3D_MTX_T.

◆ worldToLocalDir()

void MatrixFieldMapping::worldToLocalDir ( const V3d & wsV,
V3d & lsV ) const
inline
Todo
Generalize and make time-dependent.

Definition at line 470 of file FieldMapping.h.

471 { m_wsToLs.multDirMatrix(wsV, lsV); }

References FIELD3D_MTX_T.

◆ localToWorldDir()

void MatrixFieldMapping::localToWorldDir ( const V3d & lsV,
V3d & wsV ) const
inline
Todo
Generalize and make time-dependent.

Definition at line 474 of file FieldMapping.h.

475 { m_lsToWs.multDirMatrix(lsV, wsV); }

References FIELD3D_MTX_T.

◆ extentsChanged()

void MatrixFieldMapping::extentsChanged ( )
virtual

Implement this if the subclass needs to update itself when the resolution changes.

Reimplemented from FieldMapping.

Definition at line 295 of file FieldMapping.cpp.

296{
298}

References updateTransform().

◆ className()

std::string MatrixFieldMapping::className ( ) const
virtual

Returns the FieldMapping type name. Used when writing/reading from disk.

Implements FieldMapping.

Definition at line 302 of file FieldMapping.cpp.

303{
304 return std::string(staticClassType());
305}
static const char * staticClassType()

References staticClassType().

◆ isIdentical()

bool MatrixFieldMapping::isIdentical ( FieldMapping::Ptr other,
double tolerance = 0.0 ) const
virtual

Whether the mapping is identical to another mapping.

Implements FieldMapping.

Definition at line 309 of file FieldMapping.cpp.

311{
313
314 if (other->className() != k_matrixMappingName) {
315 return false;
316 } else {
317
320
321 if (mm) {
322
323 const SampleVec lsToWs1 = m_lsToWsCurve.samples();
324 const SampleVec lsToWs2 = mm->m_lsToWsCurve.samples();
325 const SampleVec vsToWs1 = m_vsToWsCurve.samples();
326 const SampleVec vsToWs2 = mm->m_vsToWsCurve.samples();
327
328 size_t numSamples = lsToWs1.size();
329
330 // First check if time sample counts differ
331 // lsToWs and vsToWs are guaranteed to have same sample count.
332 if (lsToWs1.size() != lsToWs2.size()) {
333 return false;
334 }
335
336 // Then check if all time samples match, then check localToWorld
337 // and voxelToWorld matrices
338 for (size_t i = 0; i < numSamples; ++i) {
339 if (lsToWs1[i].first != lsToWs2[i].first) {
340 return false;
341 }
343 tolerance)) {
344 return false;
345 }
347 tolerance)) {
348 return false;
349 }
350 }
351
352 return true;
353
354 } else {
355 return false;
356 }
357 }
358 return false;
359}
std::vector< Sample > SampleVec
Definition Curve.h:102
boost::intrusive_ptr< MatrixFieldMapping > Ptr
Convenience typedef.
bool checkMatricesIdentical(const Matrix_T &m1, const Matrix_T &m2, double tolerance)

References FIELD3D_MTX_T, m_lsToWsCurve, m_vsToWsCurve, and Curve< T >::samples().

◆ wsVoxelSize()

virtual V3d MatrixFieldMapping::wsVoxelSize ( int i,
int j,
int k ) const
inlinevirtual

Returns world-space size of a voxel at the specified coordinate.

Implements FieldMapping.

Definition at line 484 of file FieldMapping.h.

485 { return m_wsVoxelSize; }
V3d m_wsVoxelSize
Precomputed world-space voxel size. Calculations may assume orthogonal transformation for efficiency.

◆ clone()

FieldMapping::Ptr MatrixFieldMapping::clone ( ) const
virtual

Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it.

Implements FieldMapping.

Definition at line 414 of file FieldMapping.cpp.

415{
416 return Ptr(new MatrixFieldMapping(*this));
417}

References MatrixFieldMapping().

◆ updateTransform()

void MatrixFieldMapping::updateTransform ( )
private

Updates the local to world transformation matrix.

Definition at line 363 of file FieldMapping.cpp.

364{
365 typedef MatrixCurve::SampleVec::const_iterator SampleIter;
366
367 // Build the voxel to world space transforms ---
368 M44d lsToVs;
370 M44d vsToLs = lsToVs.inverse();
371 // Loop over all samples in lsToWs, append vsToLs and create new curve
372 // Also handle the special case where lsToWs has no samples. In that
373 // case m_vsToWsCurve still has to have one sample.
376 for (SampleIter i = lsToWs.begin(), end = lsToWs.end(); i != end; i++) {
377 m_vsToWsCurve.addSample(i->first, vsToLs * i->second);
378 }
379
380 // See if the curve has more than just a single sample
382
383 // Sample the time-varying transforms at time=0.0
385 m_wsToLs = m_lsToWs.inverse();
387 m_wsToVs = m_vsToWs.inverse();
388
389 // Precompute the voxel size
391 m_vsToWs.multVecMatrix(V3d(0, 0, 0), voxelOrigin);
392 m_vsToWs.multVecMatrix(V3d(1, 0, 0), nextVoxel);
394 m_vsToWs.multVecMatrix(V3d(0, 1, 0), nextVoxel);
396 m_vsToWs.multVecMatrix(V3d(0, 0, 1), nextVoxel);
398}
Imath::V3d V3d
Definition SpiMathLib.h:74
void getLocalToVoxelMatrix(M44d &result)

References Curve< T >::addSample(), Curve< T >::clear(), FIELD3D_MTX_T, getLocalToVoxelMatrix(), Curve< T >::linear(), m_isTimeVarying, m_lsToWs, m_lsToWsCurve, m_vsToWs, m_vsToWsCurve, m_wsToLs, m_wsToVs, m_wsVoxelSize, Curve< T >::numSamples(), and Curve< T >::samples().

Referenced by extentsChanged(), makeIdentity(), and setLocalToWorld().

◆ getLocalToVoxelMatrix()

void MatrixFieldMapping::getLocalToVoxelMatrix ( M44d & result)
private
Todo
Unit test this

Definition at line 402 of file FieldMapping.cpp.

403{
404 // Local to voxel is a scale by the resolution of the field, offset
405 // to the origin of the extents
407 scaling.setScale(m_res);
408 translation.setTranslation(m_origin);
409 result = scaling * translation;
410}
V3d m_origin
The integer voxel-space origin of the underlying Field object. Is equal to field.extents....
V3d m_res
The integer voxel-space resolution of the underlying Field object. Is equal to field....

References FIELD3D_MTX_T, FieldMapping::m_origin, and FieldMapping::m_res.

Referenced by updateTransform().

Member Data Documentation

◆ DEFINE_FIELD_RTTI_CONCRETE_CLASS

MatrixFieldMapping::DEFINE_FIELD_RTTI_CONCRETE_CLASS

Definition at line 348 of file FieldMapping.h.

◆ m_lsToWs

M44d MatrixFieldMapping::m_lsToWs
private

Local space to world space.

Note
This is used only when m_lsToWsCurve has zero or one samples.

Definition at line 503 of file FieldMapping.h.

Referenced by updateTransform().

◆ m_wsToLs

M44d MatrixFieldMapping::m_wsToLs
private

World space to local space.

Note
This is used only when m_lsToWsCurve has zero or one samples.

Definition at line 506 of file FieldMapping.h.

Referenced by updateTransform().

◆ m_vsToWs

M44d MatrixFieldMapping::m_vsToWs
private

Voxel space to world space.

Note
This is used only when m_lsToWsCurve has zero or one samples.

Definition at line 509 of file FieldMapping.h.

Referenced by updateTransform().

◆ m_wsToVs

M44d MatrixFieldMapping::m_wsToVs
private

World space to voxel space.

Note
This is used only when m_lsToWsCurve has zero or one samples.

Definition at line 512 of file FieldMapping.h.

Referenced by updateTransform().

◆ m_lsToWsCurve

MatrixCurve MatrixFieldMapping::m_lsToWsCurve
private

Time-varying local to world space transform.

Definition at line 515 of file FieldMapping.h.

Referenced by isIdentical(), makeIdentity(), setLocalToWorld(), setLocalToWorld(), and updateTransform().

◆ m_vsToWsCurve

MatrixCurve MatrixFieldMapping::m_vsToWsCurve
private

Time-varying voxel to world space transform.

Definition at line 517 of file FieldMapping.h.

Referenced by isIdentical(), and updateTransform().

◆ m_isTimeVarying

bool MatrixFieldMapping::m_isTimeVarying
private

Stores whether the curve has more than one time sample.

Note
This is set by updateTransform().

Definition at line 521 of file FieldMapping.h.

Referenced by updateTransform().

◆ m_wsVoxelSize

V3d MatrixFieldMapping::m_wsVoxelSize
private

Precomputed world-space voxel size. Calculations may assume orthogonal transformation for efficiency.

Definition at line 525 of file FieldMapping.h.

Referenced by updateTransform().


The documentation for this class was generated from the following files: