Coin Logo Coin3D is Free Software,
published under the BSD 3-clause license.
https://bitbucket.org/Coin3D/
http://www.kongsberg.com/kogt/
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
UTMCamera Class Reference

The UTMCamera class defines a camera node with perspective rendering and an UTM position. More...

#include <SmallChange/nodes/UTMCamera.h>

Inherits SoPerspectiveCamera.

Public Member Functions

 UTMCamera (void)
 
virtual void callback (SoCallbackAction *action)
 
virtual void GLRender (SoGLRenderAction *action)
 
virtual void audioRender (class SoAudioRenderAction *action)
 
virtual void getBoundingBox (SoGetBoundingBoxAction *action)
 
virtual void handleEvent (SoHandleEventAction *action)
 
virtual void rayPick (SoRayPickAction *action)
 
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
 
virtual void getMatrix (SoGetMatrixAction *action)
 
void getPosition (double &easting, double &northing, double &elevation)
 
- Public Member Functions inherited from SoPerspectiveCamera
virtual SoType getTypeId (void) const
 
 SoPerspectiveCamera (void)
 
virtual void scaleHeight (float scalefactor)
 
virtual SbViewVolume getViewVolume (float useaspectratio=0.0f) const
 
virtual void viewBoundingBox (const SbBox3f &box, float aspect, float slack)
 
- Public Member Functions inherited from SoCamera
SbViewVolume getViewVolume (const SbViewportRegion &vp, SbViewportRegion &resultvp, const SbMatrix &mm=SbMatrix::identity()) const
 
void pointAt (const SbVec3f &targetpoint)
 
void pointAt (const SbVec3f &targetpoint, const SbVec3f &upvector)
 
void viewAll (SoNode *const sceneroot, const SbViewportRegion &vpregion, const float slack=1.0f)
 
void viewAll (SoPath *const path, const SbViewportRegion &vpregion, const float slack=1.0f)
 
SbViewportRegion getViewportBounds (const SbViewportRegion &region) const
 
void setStereoMode (StereoMode mode)
 
StereoMode getStereoMode (void) const
 
void setStereoAdjustment (float adjustment)
 
float getStereoAdjustment (void) const
 
void setBalanceAdjustment (float adjustment)
 
float getBalanceAdjustment (void) const
 
virtual void doAction (SoAction *action)
 
- Public Member Functions inherited from SoNode
void setOverride (const SbBool state)
 
SbBool isOverride (void) const
 
void setNodeType (const NodeType type)
 
NodeType getNodeType (void) const
 
virtual SoNodecopy (SbBool copyconnections=FALSE) const
 
virtual SbBool affectsState (void) const
 
virtual void GLRenderBelowPath (SoGLRenderAction *action)
 
virtual void GLRenderInPath (SoGLRenderAction *action)
 
virtual void GLRenderOffPath (SoGLRenderAction *action)
 
virtual void pick (SoPickAction *action)
 
virtual void search (SoSearchAction *action)
 
virtual void write (SoWriteAction *action)
 
virtual void grabEventsSetup (void)
 
virtual void grabEventsCleanup (void)
 
virtual void startNotify (void)
 
SbUniqueId getNodeId (void) const
 
virtual SoChildListgetChildren (void) const
 
virtual void writeInstance (SoOutput *out)
 
virtual SoNodeaddToCopyDict (void) const
 
virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
 
virtual SoFieldContainercopyThroughConnection (void) const
 
- Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)
 
SbBool hasDefaultValues (void) const
 
SbBool fieldsAreEqual (const SoFieldContainer *container) const
 
void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
 
SbBool set (const char *const fielddata)
 
void get (SbString &fielddata)
 
virtual int getFields (SoFieldList &l) const
 
virtual int getAllFields (SoFieldList &l) const
 
virtual SoFieldgetField (const SbName &name) const
 
virtual SoFieldgetEventIn (const SbName &name) const
 
virtual SoFieldgetEventOut (const SbName &name) const
 
SbBool getFieldName (const SoField *const field, SbName &name) const
 
SbBool enableNotify (const SbBool flag)
 
SbBool isNotifyEnabled (void) const
 
SbBool set (const char *fielddata, SoInput *input)
 
void get (SbString &fielddata, SoOutput *out)
 
virtual SbBool validateNewFieldValue (SoField *field, void *newval)
 
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
 
SbBool getIsBuiltIn (void) const
 
virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
 
void setUserData (void *userdata) const
 
void * getUserData (void) const
 
- Public Member Functions inherited from SoBase
void ref (void) const
 
void unref (void) const
 
void unrefNoDelete (void) const
 
int32_t getRefCount (void) const
 
void touch (void)
 
SbBool isOfType (SoType type) const
 
virtual SbName getName (void) const
 
virtual void setName (const SbName &newname)
 
void addAuditor (void *const auditor, const SoNotRec::Type type)
 
void removeAuditor (void *const auditor, const SoNotRec::Type type)
 
const SoAuditorListgetAuditors (void) const
 
SbBool shouldWrite (void)
 
void assertAlive (void) const
 

Static Public Member Functions

static void initClass (void)
 
- Static Public Member Functions inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)
 
static SoNodegetByName (const SbName &name)
 
static int getByName (const SbName &name, SoNodeList &l)
 
static void initClasses (void)
 
static SbUniqueId getNextNodeId (void)
 
static int getActionMethodIndex (const SoType type)
 
static void getBoundingBoxS (SoAction *action, SoNode *node)
 
static void GLRenderS (SoAction *action, SoNode *node)
 
static void callbackS (SoAction *action, SoNode *node)
 
static void getMatrixS (SoAction *action, SoNode *node)
 
static void handleEventS (SoAction *action, SoNode *node)
 
static void pickS (SoAction *action, SoNode *node)
 
static void rayPickS (SoAction *action, SoNode *node)
 
static void searchS (SoAction *action, SoNode *node)
 
static void writeS (SoAction *action, SoNode *node)
 
static void audioRenderS (SoAction *action, SoNode *node)
 
static void getPrimitiveCountS (SoAction *action, SoNode *node)
 
- Static Public Member Functions inherited from SoFieldContainer
static void initCopyDict (void)
 
static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)
 
static SoFieldContainercheckCopy (const SoFieldContainer *orig)
 
static SoFieldContainerfindCopy (const SoFieldContainer *orig, const SbBool copyconnections)
 
static void copyDone (void)
 
- Static Public Member Functions inherited from SoBase
static void initClass (void)
 
static SoType getClassTypeId (void)
 
static void addName (SoBase *const base, const char *const name)
 
static void removeName (SoBase *const base, const char *const name)
 
static void incrementCurrentWriteCounter (void)
 
static void decrementCurrentWriteCounter (void)
 
static SoBasegetNamedBase (const SbName &name, SoType type)
 
static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)
 
static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)
 
static void setInstancePrefix (const SbString &c)
 
static void setTraceRefs (SbBool trace)
 
static SbBool getTraceRefs (void)
 
static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
 
static SbBool readRoute (SoInput *input)
 

Public Attributes

SoSFVec3d utmposition
 
SoSFBool moveTransform
 
- Public Attributes inherited from SoPerspectiveCamera
SoSFFloat heightAngle
 
- Public Attributes inherited from SoCamera
 MONOSCOPIC
 
 LEFT_VIEW
 
 RIGHT_VIEW
 
SoSFEnum viewportMapping
 
SoSFVec3f position
 
SoSFRotation orientation
 
SoSFFloat aspectRatio
 
SoSFFloat nearDistance
 
SoSFFloat farDistance
 
SoSFFloat focalDistance
 
- Public Attributes inherited from SoNode
 INVENTOR
 
 VRML1
 
 VRML2
 
 INVENTOR_1
 
 INVENTOR_2_0
 
 INVENTOR_2_1
 
 INVENTOR_2_5
 
 INVENTOR_2_6
 
 COIN_1_0
 
 COIN_2_0
 
 EXTENSION
 

Protected Member Functions

virtual ~UTMCamera ()
 
virtual void notify (SoNotList *nl)
 
- Protected Member Functions inherited from SoPerspectiveCamera
virtual const SoFieldDatagetFieldData (void) const
 
virtual ~SoPerspectiveCamera ()
 
- Protected Member Functions inherited from SoCamera
 SoCamera (void)
 
virtual ~SoCamera ()
 
virtual void jitter (int numpasses, int curpass, const SbViewportRegion &vpreg, SbVec3f &jitteramount) const
 
- Protected Member Functions inherited from SoNode
 SoNode (void)
 
virtual ~SoNode ()
 
virtual SbBool readInstance (SoInput *in, unsigned short flags)
 
- Protected Member Functions inherited from SoFieldContainer
 SoFieldContainer (void)
 
virtual ~SoFieldContainer ()
 
- Protected Member Functions inherited from SoBase
 SoBase (void)
 
virtual ~SoBase ()
 
virtual void destroy (void)
 
SbBool hasMultipleWriteRefs (void) const
 
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
 
void writeFooter (SoOutput *out) const
 
virtual const char * getFileFormatName (void) const
 

Additional Inherited Members

- Public Types inherited from SoCamera
enum  ViewportMapping
 
enum  StereoMode
 
- Public Types inherited from SoNode
enum  NodeType
 
- Protected Types inherited from SoBase
enum  BaseFlags
 
- Static Protected Member Functions inherited from SoNode
static const SoFieldData ** getFieldDataPtr (void)
 
static void setNextActionMethodIndex (int index)
 
static int getNextActionMethodIndex (void)
 
static void incNextActionMethodIndex (void)
 
static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
 
- Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)
 
- Protected Attributes inherited from SoNode
SbUniqueId uniqueId
 
- Protected Attributes inherited from SoFieldContainer
SbBool isBuiltIn
 
- Static Protected Attributes inherited from SoNode
static SbUniqueId nextUniqueId
 
static int nextActionMethodIndex
 

Detailed Description

The UTMCamera class defines a camera node with perspective rendering and an UTM position.

This node adds a field utmposition to the perspective camera node. utmposition is a vector which contains 3 values for easting, northing and elevation.

The position vector moves the camera relative to the UTM position. Use this camera instead of a normal SoPerspectiveCamera if you plan to operate on large floating point coordinates that might cause floating point precision to become too low. This is typically useful if you want to place objects using, for instance, UTM coordinates.

To perhaps better understand how it works, think of it this way: when scene graph traversal arrives at an UTMCamera, all transformation matrices will be set to identity, i.e. no transformations, so the camera position (for OpenGL) will be set at world origo (0,0,0). When a UTMPosition node is then later encountered during traversal, a transformation will be added which translates geometry to its correct position relative to the UTMCamera setting.

As the camera will always be positioned in (0,0,0) for OpenGL with this scheme, we get the advantage of maximum precision for floating point numbers.

See also
UTMPosition, UTMCoordinate

Constructor & Destructor Documentation

◆ UTMCamera()

UTMCamera::UTMCamera ( void  )

◆ ~UTMCamera()

UTMCamera::~UTMCamera ( )
protectedvirtual

Member Function Documentation

◆ audioRender()

void UTMCamera::audioRender ( class SoAudioRenderAction action)
virtual

Reimplemented from SoCamera.

◆ callback()

void UTMCamera::callback ( SoCallbackAction action)
virtual

Reimplemented from SoCamera.

◆ getBoundingBox()

void UTMCamera::getBoundingBox ( SoGetBoundingBoxAction action)
virtual

Reimplemented from SoCamera.

◆ getMatrix()

void UTMCamera::getMatrix ( SoGetMatrixAction action)
virtual

Reimplemented from SoCamera.

◆ getPosition()

void UTMCamera::getPosition ( double &  easting,
double &  northing,
double &  elevation 
)

This is a helper function to return the three components of the UTMCamera::utmposition vector field.

FIXME: function is redundant and should be made obsolete.

◆ getPrimitiveCount()

void UTMCamera::getPrimitiveCount ( SoGetPrimitiveCountAction action)
virtual

Reimplemented from SoCamera.

◆ GLRender()

void UTMCamera::GLRender ( SoGLRenderAction action)
virtual

Reimplemented from SoCamera.

◆ handleEvent()

void UTMCamera::handleEvent ( SoHandleEventAction action)
virtual

Reimplemented from SoCamera.

◆ initClass()

void UTMCamera::initClass ( void  )
static

◆ notify()

void UTMCamera::notify ( SoNotList nl)
protectedvirtual

Overridden to recalculate cached values when something change.

Reimplemented from SoNode.

◆ rayPick()

void UTMCamera::rayPick ( SoRayPickAction action)
virtual

Reimplemented from SoCamera.

Member Data Documentation

◆ moveTransform

SoSFBool UTMCamera::moveTransform

This field is to enable a hack to move transforms in front of the camera to after an UTMPosition node.

Default value is FALSE.

◆ utmposition

SoSFVec3d UTMCamera::utmposition

First value of vector is easting (+X) position of the camera, second is northing (+Y) position, and third is the elevation (+Z) position of the camera.

Default value is [0, 0, 0].


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