SoCamera(3IV)

SoCamera (SoCam) - abstract base class for camera nodes

As shipped in IRIX 6.5.30. Added in IRIX 6.5.22.

NAME
     SoCamera (SoCam) - abstract base class for camera nodes

INHERITS FROM
     SoBase > SoFieldContainer > SoNode > SoCamera

SYNOPSIS
     #include <Inventor_c/nodes/SoCamera.h>

     typedef SoCamera    SoCam

                              #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 SoCameraViewportMapping {
          SO_CAM_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.
          SO_CAM_CROP_VIEWPORT_LINE_FRAME
                                Crops the viewport, but draws a thin frame
                                     around the viewport
          SO_CAM_CROP_VIEWPORT_NO_FRAME
                                Crops the viewport, but gives no visual
                                     feedback as to the viewport dimensions
                                     within the window
          SO_CAM_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.)
          SO_CAM_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

          Functions from class SoCamera:

     void                SoCamPtAt(SoCam *this, const SbVec3f *targetPoint)
     void                SoCamScaleHeight(SoCam *this, float scaleFactor)
     SbViewVolume        SoCamGetViewVol(const SoCam *this, float
                              useAspectRatio = 0.0)
     void                SoCamViewAll(SoCam *this, SoNode *sceneRoot, const
                              SbViewportRegion *vpRegion, float slack = 1.0)
     void                SoCamViewAllPath(SoCam *this, SoPath *path, const
                              SbViewportRegion *vpRegion, float slack = 1.0)
     SbViewportRegion    SoCamGetVpBounds(const SoCam *this, const
                              SbViewportRegion *region)
     SoType              SoCamGetClassTypeId()

          Functions from class SoNode:

     void                SoCamSetOverride(SoCam *this, SbBool state)
     SbBool              SoCamIsOverride(const SoCam *this)
     SoNode *            SoCamCopy(const SoCam *this, SbBool copyConnections =
                              FALSE)
     SbBool              SoCamAffectsState(const SoCam *this)
     SoNode *            SoCamGetByName(const char *name)
     int                 SoCamGetByNameList(const char *name, SoNodeList
                              *list)

          Functions from class SoFieldContainer:

     void                SoCamSetToDflts(SoCam *this)
     SbBool              SoCamHasDfltVals(const SoCam *this)
     SbBool              SoCamFldsAreEq(const SoCam *this, const
                              SoFieldContainer *fc)
     void                SoCamCopyFieldVals(SoCam *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoCamSet(SoCam *this, const char *fieldDataString)
     void                SoCamGet(SoCam *this, SbString *fieldDataString)
     int                 SoCamGetFields(const SoCam *this, SoFieldList
                              *resultList)
     SoField *           SoCamGetField(const SoCam *this, const char
                              *fieldName)
     SbBool              SoCamGetFieldName(const SoCam *this, const SoField
                              *field, SbName *fieldName)
     SbBool              SoCamIsNotifyEnabled(const SoCam *this)
     SbBool              SoCamEnableNotify(SoCam *this, SbBool flag)

          Functions from class SoBase:

     void                SoCamRef(SoCam *this)
     void                SoCamUnref(const SoCam *this)
     void                SoCamUnrefNoDelete(const SoCam *this)
     void                SoCamTouch(SoCam *this)
     SoType              SoCamGetTypeId(const SoCam *this)
     SbBool              SoCamIsOfType(const SoCam *this, SoType type)
     void                SoCamSetName(SoCam *this, const char *name)
     SbName              SoCamGetName(const SoCam *this)


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.
FUNCTIONS
     void                SoCamPtAt(SoCam *this, 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."

     void                SoCamScaleHeight(SoCam *this, float scaleFactor)
          Scales the height of the camera. Perspective cameras scale their
          heightAngle fields, and orthographic cameras scale their height
          fields.

     SbViewVolume        SoCamGetViewVol(const SoCam *this, float
                              useAspectRatio = 0.0)
          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                SoCamViewAll(SoCam *this, SoNode *sceneRoot, const
                              SbViewportRegion *vpRegion, float slack = 1.0)
     void                SoCamViewAllPath(SoCam *this, 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    SoCamGetVpBounds(const SoCam *this, const
                              SbViewportRegion *region)
          Returns the viewport region this camera would use to render into the
          given viewport region, accounting for cropping.

     SoType              SoCamGetClassTypeId()
          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