SoCamera(3IV)NAMESoCamera (SoCam) - abstract base class for camera nodes
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoCameraSYNOPSIS
#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
Page 1SoCamera(3IV)
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:
Page 2SoCamera(3IV)
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.
Page 3SoCamera(3IV)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
Page 4