trusty (3) SoCamera.3iv.gz

Provided by: inventor-doc_2.1.5-10-18_all bug

NAME

       SoCamera — abstract base class for camera nodes

INHERITS FROM

       SoBase > SoFieldContainer > SoNode > SoCamera

SYNOPSIS

       #include <Inventor/nodes/SoCamera.h>

       #define SO_ASPECT_SQUARE        1.00
       #define SO_ASPECT_VIDEO         1.333333333
       #define SO_ASPECT_35mm_ACADEMY  1.371
       #define SO_ASPECT_16mm          1.369
       #define SO_ASPECT_35mm_FULL     1.33333
       #define SO_ASPECT_70mm          2.287
       #define SO_ASPECT_CINEMASCOPE   2.35
       #define SO_ASPECT_HDTV          1.777777777
       #define SO_ASPECT_PANAVISION    2.361
       #define SO_ASPECT_35mm          1.5
       #define SO_ASPECT_VISTAVISION   2.301

     enum ViewportMapping {
          SoCamera::CROP_VIEWPORT_FILL_FRAME
                                   Crops  the  viewport  within  the  current  window,  so that the aspect ratio
                                        matches that of the camera. As the window size changes, the aspect ratio
                                        remains unchanged. The cropped region is drawn as a filled gray area.
          SoCamera::CROP_VIEWPORT_LINE_FRAME
                                   Crops the viewport, but draws a thin frame around the viewport
          SoCamera::CROP_VIEWPORT_NO_FRAME
                                   Crops  the  viewport,  but  gives  no  visual  feedback  as  to  the viewport
                                        dimensions within the window
          SoCamera::ADJUST_CAMERA  Adjusts the camera aspect ratio and height to make it fit  within  the  given
                                        window.  (The  camera's fields are not affected, just the values sent to
                                        the graphics library.)
          SoCamera::LEAVE_ALONE    Do nothing. Camera image may become stretched out of proportion
     }

          Fields from class SoCamera:

     SoSFEnum            viewportMapping
     SoSFVec3f           position
     SoSFRotation        orientation
     SoSFFloat           aspectRatio
     SoSFFloat           nearDistance
     SoSFFloat           farDistance
     SoSFFloat           focalDistance

          Methods from class SoCamera:

     void                  pointAt(const SbVec3f &targetPoint)
     virtual void          scaleHeight(float scaleFactor)
     virtual SbViewVolume  getViewVolume(float useAspectRatio = 0.0) const
     void                  viewAll(SoNode *sceneRoot, const SbViewportRegion &vpRegion, float slack = 1.0)
     void                  viewAll(SoPath *path, const SbViewportRegion &vpRegion, float slack = 1.0)
     SbViewportRegion      getViewportBounds(const SbViewportRegion &region) const
     static SoType         getClassTypeId()

          Methods from class SoNode:

     void                setOverride(SbBool state)
     SbBool              isOverride() const
     SoNode *            copy(SbBool copyConnections = FALSE) const
     virtual SbBool      affectsState() const
     static SoNode *     getByName(const SbName &name)
     static int          getByName(const SbName &name, SoNodeList &list)

          Methods from class SoFieldContainer:

     void                setToDefaults()
     SbBool              hasDefaultValues() const
     SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
     void                copyFieldValues(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
     SbBool              set(const char *fieldDataString)
     void                get(SbString &fieldDataString)
     virtual int         getFields(SoFieldList &resultList) const
     virtual SoField *   getField(const SbName &fieldName) const
     SbBool              getFieldName(const SoField *field, SbName &fieldName) const
     SbBool              isNotifyEnabled() const
     SbBool              enableNotify(SbBool flag)

          Methods from class SoBase:

     void                ref()
     void                unref() const
     void                unrefNoDelete() const
     void                touch()
     virtual SoType      getTypeId() const
     SbBool              isOfType(SoType type) const
     virtual void        setName(const SbName &name)
     virtual SbName      getName() const

DESCRIPTION

       This is the abstract base class for all camera nodes. It defines the common methods and fields  that  all
       cameras  have.  Cameras  are used to view a scene. When a camera is encountered during rendering, it sets
       the projection and viewing matrices and viewport appropriately; it does not draw geometry. Cameras should
       be  placed  before  any  shape  nodes  or light nodes in a scene graph; otherwise, those shapes or lights
       cannot be rendered properly. Cameras are affected by the current transformation, so you  can  position  a
       camera  by  placing  a  transformation  node  before  it  in  the  scene graph . The default position and
       orientation of a camera is at (0,0,1) looking along the negative z-axis.

       You can also use a node kit to create a camera; see the reference page for SoCameraKit.

FIELDS

     SoSFEnum            viewportMapping
          Defines how to map the rendered image into the current viewport, when the aspect ratio of  the  camera
          differs from that of the viewport.

     SoSFVec3f           position
          The location of the camera viewpoint.

     SoSFRotation        orientation
          The  orientation  of  the  camera  viewpoint,  defined as a rotation of the viewing direction from its
          default (0,0,-1) vector.

     SoSFFloat           aspectRatio
          The ratio of camera viewing width to height. This value must be greater than 0.0.  There  are  several
          standard camera aspect ratios defined in SoCamera.h.

     SoSFFloat           nearDistance
     SoSFFloat           farDistance
          The distance from the camera viewpoint to the near and far clipping planes.

     SoSFFloat           focalDistance
          The distance from the viewpoint to the point of focus. This is typically ignored during rendering, but
          may be used by some viewers to define a point of interest.

METHODS

     void                  pointAt(const SbVec3f &targetPoint)
          Sets the orientation of the camera so that it points toward the given target point while  keeping  the
          "up"  direction  of  the  camera parallel to the positive y-axis. If this is not possible, it uses the
          positive z-axis as "up."

     virtual void          scaleHeight(float scaleFactor)
          Scales the height of the camera. Perspective cameras scale their heightAngle fields, and  orthographic
          cameras scale their height fields.

     virtual SbViewVolume  getViewVolume(float useAspectRatio = 0.0) const
          Returns  a  view  volume  structure,  based  on the camera's viewing parameters. If the useAspectRatio
          argument is not 0.0 (the default), the camera uses that ratio instead of the one it has.

     void                  viewAll(SoNode *sceneRoot, const SbViewportRegion &vpRegion, float slack = 1.0)
     void                  viewAll(SoPath *path, const SbViewportRegion &vpRegion, float slack = 1.0)
          Sets the camera to view the scene rooted by the given node or defined by the given path. The near  and
          far  clipping  planes  will  be  positioned  slack  bounding sphere radii away from the bounding box's
          center. A value of 1.0 will make the clipping planes the tightest around the bounding sphere.

     SbViewportRegion      getViewportBounds(const SbViewportRegion &region) const
          Returns the viewport region this camera would use to render into the given viewport region, accounting
          for cropping.

     static SoType         getClassTypeId()
          Returns type identifier for this class.

FILE FORMAT/DEFAULTS

       This is an abstract class. See the reference page of a derived class for the format and default values.

SEE ALSO

       SoOrthographicCamera, SoPerspectiveCamera, SoCameraKit

                                                                                                 SoCamera(3IV)()