![]() |
Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
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) |
![]() | |
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) |
![]() | |
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 ®ion) 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) |
![]() | |
void | setOverride (const SbBool state) |
SbBool | isOverride (void) const |
void | setNodeType (const NodeType type) |
NodeType | getNodeType (void) const |
virtual SoNode * | copy (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 SoChildList * | getChildren (void) const |
virtual void | writeInstance (SoOutput *out) |
virtual SoNode * | addToCopyDict (void) const |
virtual void | copyContents (const SoFieldContainer *from, SbBool copyconnections) |
virtual SoFieldContainer * | copyThroughConnection (void) const |
![]() | |
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 SoField * | getField (const SbName &name) const |
virtual SoField * | getEventIn (const SbName &name) const |
virtual SoField * | getEventOut (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 |
![]() | |
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 SoAuditorList & | getAuditors (void) const |
SbBool | shouldWrite (void) |
void | assertAlive (void) const |
Static Public Member Functions | |
static void | initClass (void) |
![]() | |
static uint32_t | getCompatibilityTypes (const SoType &nodetype) |
static SoNode * | getByName (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 void | initCopyDict (void) |
static void | addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) |
static SoFieldContainer * | checkCopy (const SoFieldContainer *orig) |
static SoFieldContainer * | findCopy (const SoFieldContainer *orig, const SbBool copyconnections) |
static void | copyDone (void) |
![]() | |
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 SoBase * | getNamedBase (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 |
![]() | |
SoSFFloat | heightAngle |
![]() | |
MONOSCOPIC | |
LEFT_VIEW | |
RIGHT_VIEW | |
SoSFEnum | viewportMapping |
SoSFVec3f | position |
SoSFRotation | orientation |
SoSFFloat | aspectRatio |
SoSFFloat | nearDistance |
SoSFFloat | farDistance |
SoSFFloat | focalDistance |
![]() | |
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) |
![]() | |
virtual const SoFieldData * | getFieldData (void) const |
virtual | ~SoPerspectiveCamera () |
![]() | |
SoCamera (void) | |
virtual | ~SoCamera () |
virtual void | jitter (int numpasses, int curpass, const SbViewportRegion &vpreg, SbVec3f &jitteramount) const |
![]() | |
SoNode (void) | |
virtual | ~SoNode () |
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
![]() | |
SoFieldContainer (void) | |
virtual | ~SoFieldContainer () |
![]() | |
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 | |
![]() | |
enum | ViewportMapping |
enum | StereoMode |
![]() | |
enum | NodeType |
![]() | |
enum | BaseFlags |
![]() | |
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 uint32_t | getCurrentWriteCounter (void) |
![]() | |
SbUniqueId | uniqueId |
![]() | |
SbBool | isBuiltIn |
![]() | |
static SbUniqueId | nextUniqueId |
static int | nextActionMethodIndex |
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.
UTMCamera::UTMCamera | ( | void | ) |
|
protectedvirtual |
|
virtual |
Reimplemented from SoCamera.
|
virtual |
Reimplemented from SoCamera.
|
virtual |
Reimplemented from SoCamera.
|
virtual |
Reimplemented from SoCamera.
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.
|
virtual |
Reimplemented from SoCamera.
|
virtual |
Reimplemented from SoCamera.
|
virtual |
Reimplemented from SoCamera.
|
static |
|
protectedvirtual |
Overridden to recalculate cached values when something change.
Reimplemented from SoNode.
|
virtual |
Reimplemented from SoCamera.
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
.
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].