'\"! tbl | mmdoc
'\"macro stdmacro
.ie n \{\
.   ds Cr \fB
.   ds Cb \fB
.\}
.el \{\
.   ds Cr \f7
.   ds Cb \f8
.\}
.TH SoTextureCoordinatePlane(3IV)
.SH NAME
SoTextureCoordinatePlane \(em node that specifies texture coordinates by projection from a plane 
.SH INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoTextureCoordinateFunction > SoTextureCoordinatePlane
.SH SYNOPSIS
.ps -1
\*(Cr#include <Inventor/nodes/SoTextureCoordinatePlane.h>
.sp
.in 1i
\f1Fields from class SoTextureCoordinatePlane:
.in 0.5i
.sp
.ta 20m
.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\
\}
\*(CbdirectionS
.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\
\}
\*(CbdirectionT
.sp
.in 1i
\f1Methods from class SoTextureCoordinatePlane:
.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\
\}
\*(CbSoTextureCoordinatePlane\*(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 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
This node creates texture coordinates for points on an object's surface by projecting them onto a plane. The \*(CbdirectionS\f1 and \*(CbdirectionT\f1 fields define the plane. The S coordinate is computed as the distance from the object-space
\&origin along the vector specified in the \*(CbdirectionS\f1 field. The T coordinate is computed similarly, using the \*(CbdirectionT\f1 field. 
.sp
The length of the direction vector is also taken into account. For example, assume \*(CbdirectionS\f1 is (0.5,
\&0, 0) and \*(CbdirectionT\f1 is (0, 1, 0). The square defined by the (x, y, z) vertices: 
.nf
.in 1i

(-1, -1, 0) (1, -1, 0) (1, 1, 0) (-1, 1, 0) 

.fi
.in 0.5i
will be assigned the (s, t) texture coordinates: 
.nf
.in 1i

(-2, -1) (2, -1) (2, 1) (-2, 1)

.fi
.in 0.5i

.SH FIELDS
.ta 20m
.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\
\}
\*(CbdirectionS
.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\
\}
\*(CbdirectionT
.br
.in 1i
\f1Directions of projection for S and T coordinates. 
.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\
\}
\*(CbSoTextureCoordinatePlane\*(Cr()
.br
.in 1i
\f1Creates a texture function 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, SoRayPickAction
.br
.in 1i
\f1Sets the current texture function in the state. 
.sp
.in 0.5i
.SH FILE FORMAT/DEFAULTS
.nf
\*(CrTextureCoordinatePlane {
.in 1i
.ta 12m
directionS	1 0 0
directionT	0 1 0
.in 0.5i
}
.SH SEE ALSO
\*(CbSoTexture2, SoTexture2Transform, SoTextureCoordinateDefault, SoTextureCoordinateEnvironment