'\"! tbl | mmdoc
'\"macro stdmacro
.ie n \{\
.   ds Cr \fB
.   ds Cb \fB
.\}
.el \{\
.   ds Cr \f7
.   ds Cb \f8
.\}
.TH SoPerspectiveCamera(3IV)
.SH NAME
SoPerspectiveCamera \(em perspective camera node 
.SH INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoCamera > SoPerspectiveCamera
.SH SYNOPSIS
.ps -1
\*(Cr#include <Inventor/nodes/SoPerspectiveCamera.h>
.sp
.in 1i
\f1Fields from class SoPerspectiveCamera:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbheightAngle
.sp
.in 1i
\f1Fields from class SoCamera:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFEnum
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbviewportMapping
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFVec3f
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbposition
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFRotation
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cborientation
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbaspectRatio
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbnearDistance
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbfarDistance
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbfocalDistance
.sp
.in 1i
\f1Methods from class SoPerspectiveCamera:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Cr
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbSoPerspectiveCamera\*(Cr()
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crstatic SoType
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetClassTypeId\*(Cr()
.sp
.in 1i
\f1Methods from class SoCamera:
.in 0.5i
.sp
.ta 22m
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbpointAt\*(Cr(const SbVec3f &targetPoint)
.br
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(Crvirtual void
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbscaleHeight\*(Cr(float scaleFactor)
.br
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(Crvirtual SbViewVolume
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetViewVolume\*(Cr(float useAspectRatio = 0.0) const
.br
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbviewAll\*(Cr(SoNode *sceneRoot, const SbViewportRegion &vpRegion, float slack = 1.0)
.br
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbviewAll\*(Cr(SoPath *path, const SbViewportRegion &vpRegion, float slack = 1.0)
.br
.in 1i+22n
.ti 0.5i
.ta 22m
.ds Pt \*(CrSbViewportRegion
.ie \w'\*(Pt'>=22n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetViewportBounds\*(Cr(const SbViewportRegion &region) const
.sp
.in 1i
\f1Methods from class SoNode:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbsetOverride\*(Cr(SbBool state)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbisOverride\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoNode *
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbcopy\*(Cr(SbBool copyConnections = FALSE) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual SbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbaffectsState\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crstatic SoNode *
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetByName\*(Cr(const SbName &name)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crstatic int
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetByName\*(Cr(const SbName &name, SoNodeList &list)
.sp
.in 1i
\f1Methods from class SoFieldContainer:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbsetToDefaults\*(Cr()
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbhasDefaultValues\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbfieldsAreEqual\*(Cr(const SoFieldContainer *fc) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbcopyFieldValues\*(Cr(const SoFieldContainer *fc, SbBool copyConnections = FALSE)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbset\*(Cr(const char *fieldDataString)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbget\*(Cr(SbString &fieldDataString)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual int
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetFields\*(Cr(SoFieldList &resultList) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual SoField *
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetField\*(Cr(const SbName &fieldName) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetFieldName\*(Cr(const SoField *field, SbName &fieldName) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbisNotifyEnabled\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbenableNotify\*(Cr(SbBool flag)
.sp
.in 1i
\f1Methods from class SoBase:
.in 0.5i
.sp
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbref\*(Cr()
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbunref\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbunrefNoDelete\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvoid
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(Cbtouch\*(Cr()
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual SoType
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetTypeId\*(Cr() const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSbBool
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbisOfType\*(Cr(SoType type) const
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual void
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbsetName\*(Cr(const SbName &name)
.br
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crvirtual SbName
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetName\*(Cr() const
.sp
.SH DESCRIPTION
A perspective camera defines a perspective projection from a viewpoint. The viewing volume for a perspective camera is a truncated right pyramid. 
.sp
By default, the camera is located at (0,0,1) and looks along
\&the negative z-axis; the \*(Cbposition\f1 and \*(Cborientation\f1 fields can be used to change these values. The \*(CbheightAngle\f1 field defines the total vertical angle of the viewing volume; this and the \*(CbaspectRatio\f1 field determine the horizontal angle. 
.SH FIELDS
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(CrSoSFFloat
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbheightAngle
.br
.in 1i
\f1Vertical angle of the viewing volume. 
.sp
.in 0.5i
.SH METHODS
.ta 20m
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Cr
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbSoPerspectiveCamera\*(Cr()
.br
.in 1i
\f1Creates a perspective camera node with default settings. 
.sp
.in 0.5i
.in 1i+20n
.ti 0.5i
.ta 20m
.ds Pt \*(Crstatic SoType
.ie \w'\*(Pt'>=20n \{\
.ne 3
\*(Pt
.ti 0.5i
	\c\
\}
.el\{\
.ne 2
\*(Pt	\c\
\}
\*(CbgetClassTypeId\*(Cr()
.br
.in 1i
\f1Returns type identifier for this class. 
.sp
.in 0.5i
.SH ACTION BEHAVIOR
\*(CbSoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoHandleEventAction, SoRayPickAction
.br
.in 1i
\f1Sets the viewport and camera information in the state. 
.sp
.in 0.5i
.SH FILE FORMAT/DEFAULTS
.nf
\*(CrPerspectiveCamera {
.in 1i
.ta 17m
viewportMapping	ADJUST_CAMERA
position	0 0 1
orientation	0 0 1  0
aspectRatio	1
nearDistance	1
farDistance	10
focalDistance	5
heightAngle	0.785398
.in 0.5i
}
.SH SEE ALSO
\*(CbSbViewVolume, SoOrthographicCamera