Field3D
NullFieldMapping Class Reference

Trivial class, world space is equal to local space, i.e. the field is contained in the unit cube [0..1] in all axes. More...

#include <FieldMapping.h>

Inheritance diagram for NullFieldMapping:
FieldMapping RefBase

Public Types

typedef NullFieldMapping class_type
 
typedef boost::intrusive_ptr< NullFieldMappingPtr
 Convenience typedef. More...
 
- 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

Constructors & destructor
 NullFieldMapping ()
 
 NullFieldMapping (const Box3i &extents)
 
From FieldMapping
virtual void worldToVoxel (const V3d &wsP, V3d &vsP) const
 Transform from world space position into voxel space. More...
 
virtual void worldToVoxel (const V3d &wsP, V3d &vsP, float) const
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP) const
 Transform from voxel space position into world space. More...
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP, float) const
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP) const
 Transform from world space position into local space. More...
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP, float) const
 
virtual void localToWorld (const V3d &lsP, V3d &wsP) const
 Transform from local space position into world space. More...
 
virtual void localToWorld (const V3d &lsP, V3d &wsP, float) const
 
virtual std::string className () const
 Returns the FieldMapping type name. Used when writing/reading from disk. More...
 
virtual bool isIdentical (FieldMapping::Ptr other, double tolerance=0.0) const
 Whether the mapping is identical to another mapping. More...
 
virtual V3d wsVoxelSize (int, int, int) const
 Returns world-space size of a voxel at the specified coordinate. More...
 
virtual FieldMapping::Ptr clone () const
 Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it. More...
 
- Public Member Functions inherited from FieldMapping
const V3dorigin () const
 Returns the origin. More...
 
const V3dresolution () const
 Returns the resolution. More...
 
void setExtents (const Box3i &extents)
 This sets the field extents information to use for defining the local coordinate space. More...
 
 FieldMapping ()
 Constructor. More...
 
 FieldMapping (const Box3i &extents)
 Construct with known extents. More...
 
virtual ~FieldMapping ()
 Destructor. More...
 
virtual void extentsChanged ()
 Implement this if the subclass needs to update itself when the resolution changes. More...
 
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. More...
 
void voxelToLocal (const V3d &vsP, V3d &lsP) const
 Inverse of localToVoxel. More...
 
- Public Member Functions inherited from RefBase
void ref () const
 Used by boost::intrusive_pointer. More...
 
size_t refcnt ()
 Used by boost::intrusive_pointer. More...
 
void unref () const
 Used by boost::intrusive_pointer. More...
 
WeakPtr weakPtr () const
 
 RefBase ()
 
 RefBase (const RefBase &)
 Copy constructor. More...
 
RefBaseoperator= (const RefBase &)
 Assignment operator. More...
 
virtual ~RefBase ()
 Destructor. More...
 
virtual bool checkRTTI (const char *typenameStr)=0
 This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();. More...
 
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. More...
 

Static Public Member Functions

static const char * staticClassType ()
 
- Static Public Member Functions inherited from FieldMapping
static const char * staticClassType ()
 
- Static Public Member Functions inherited from RefBase
static const char * staticClassType ()
 

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. More...
 

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. More...
 
V3d m_res
 The integer voxel-space resolution of the underlying Field object. Is equal to field.extents.max - field.extents.min + 1. More...
 

Detailed Description

Trivial class, world space is equal to local space, i.e. the field is contained in the unit cube [0..1] in all axes.

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

Definition at line 236 of file FieldMapping.h.

Member Typedef Documentation

◆ Ptr

typedef boost::intrusive_ptr<NullFieldMapping> NullFieldMapping::Ptr

Convenience typedef.

Definition at line 243 of file FieldMapping.h.

◆ class_type

Definition at line 247 of file FieldMapping.h.

◆ base

Convenience typedef for referring to base class.

Definition at line 311 of file FieldMapping.h.

Constructor & Destructor Documentation

◆ NullFieldMapping() [1/2]

NullFieldMapping::NullFieldMapping ( )
inline

Definition at line 260 of file FieldMapping.h.

261  : FieldMapping()
262  { /* Empty */ }

Referenced by clone().

◆ NullFieldMapping() [2/2]

NullFieldMapping::NullFieldMapping ( const Box3i extents)
inline

Definition at line 263 of file FieldMapping.h.

264  : FieldMapping(extents)
265  { /* Empty */ }

Member Function Documentation

◆ staticClassType()

static const char* NullFieldMapping::staticClassType ( )
inlinestatic

Definition at line 250 of file FieldMapping.h.

251  {
252  return "NullFieldMapping";
253  }

Referenced by className().

◆ worldToVoxel() [1/2]

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

Transform from world space position into voxel space.

Implements FieldMapping.

Definition at line 274 of file FieldMapping.h.

275  { localToVoxel(wsP, vsP); }

References FieldMapping::localToVoxel().

◆ worldToVoxel() [2/2]

virtual void NullFieldMapping::worldToVoxel ( const V3d wsP,
V3d vsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 276 of file FieldMapping.h.

277  { localToVoxel(wsP, vsP); }

References FieldMapping::localToVoxel().

◆ voxelToWorld() [1/2]

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

Transform from voxel space position into world space.

Implements FieldMapping.

Definition at line 279 of file FieldMapping.h.

280  { voxelToLocal(vsP, wsP); }

References FieldMapping::voxelToLocal().

◆ voxelToWorld() [2/2]

virtual void NullFieldMapping::voxelToWorld ( const V3d vsP,
V3d wsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 281 of file FieldMapping.h.

282  { voxelToLocal(vsP, wsP); }

References FieldMapping::voxelToLocal().

◆ worldToLocal() [1/2]

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

Transform from world space position into local space.

Implements FieldMapping.

Definition at line 284 of file FieldMapping.h.

285  { lsP = wsP; }

◆ worldToLocal() [2/2]

virtual void NullFieldMapping::worldToLocal ( const V3d wsP,
V3d lsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 286 of file FieldMapping.h.

287  { lsP = wsP; }

◆ localToWorld() [1/2]

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

Transform from local space position into world space.

Implements FieldMapping.

Definition at line 289 of file FieldMapping.h.

290  { wsP = lsP; }

◆ localToWorld() [2/2]

virtual void NullFieldMapping::localToWorld ( const V3d lsP,
V3d wsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 291 of file FieldMapping.h.

292  { wsP = lsP; }

◆ className()

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

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

Implements FieldMapping.

Definition at line 226 of file FieldMapping.cpp.

227 {
228  return std::string(staticClassType());
229 }

References staticClassType().

◆ isIdentical()

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

Whether the mapping is identical to another mapping.

Implements FieldMapping.

Definition at line 233 of file FieldMapping.cpp.

235 {
236  // For null mappings it's simple - if the other one is also a null mapping
237  // then true, otherwise it's false.
238 
239  return other->className() == k_nullMappingName;
240 }

References FIELD3D_NAMESPACE_OPEN::k_nullMappingName().

◆ wsVoxelSize()

virtual V3d NullFieldMapping::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 299 of file FieldMapping.h.

300  { return V3d(1.0 / m_res.x, 1.0 / m_res.y, 1.0 / m_res.z); }

◆ clone()

FieldMapping::Ptr NullFieldMapping::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 244 of file FieldMapping.cpp.

245 {
246  return Ptr(new NullFieldMapping(*this));
247 }

References NullFieldMapping().

Member Data Documentation

◆ DEFINE_FIELD_RTTI_CONCRETE_CLASS

NullFieldMapping::DEFINE_FIELD_RTTI_CONCRETE_CLASS

Definition at line 248 of file FieldMapping.h.


The documentation for this class was generated from the following files:
FieldMapping::FieldMapping
FieldMapping()
Constructor.
Definition: FieldMapping.cpp:113
V3d
Imath::V3d V3d
Definition: SpiMathLib.h:74
FieldMapping::m_res
V3d m_res
The integer voxel-space resolution of the underlying Field object. Is equal to field....
Definition: FieldMapping.h:193
NullFieldMapping::Ptr
boost::intrusive_ptr< NullFieldMapping > Ptr
Convenience typedef.
Definition: FieldMapping.h:243
NullFieldMapping::staticClassType
static const char * staticClassType()
Definition: FieldMapping.h:250
FieldMapping::voxelToLocal
void voxelToLocal(const V3d &vsP, V3d &lsP) const
Inverse of localToVoxel.
Definition: FieldMapping.cpp:162
NullFieldMapping::NullFieldMapping
NullFieldMapping()
Definition: FieldMapping.h:260
FIELD3D_NAMESPACE_OPEN::k_nullMappingName
const string k_nullMappingName("NullFieldMapping")
FieldMapping::localToVoxel
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 Fie...
Definition: FieldMapping.cpp:155