table of contents
SoCamera(3IV)() | SoCamera(3IV)() |
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 ®ion) 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 ®ion) 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