.\"##
.\" $XConsortium: p394,v 5.2 94/04/17 20:59:03 rws Exp $
.\"##
.\"## 
$XMCOPY
.\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. 
.\"## 
.\"##                         All Rights Reserved
.\"## 
.\"## Permission to use, copy, modify, and distribute this software and its 
.\"## documentation for any purpose and without fee is hereby granted, 
.\"## provided that the above copyright notice appear in all copies and that
.\"## both that copyright notice and this permission notice appear in 
.\"## supporting documentation, and that the name of Sun Microsystems,
.\"## not be used in advertising or publicity 
.\"## pertaining to distribution of the software without specific, written 
.\"## prior permission.  
.\"## 
.\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\"## PERFORMANCE OF THIS SOFTWARE.
.TH "TEXT 3" 3P "29 February 1991"
.SH NAME
TEXT 3 \- create structure element specifying \s-2\&3D\s+2 text primitive
.IX "Primitives, Text Primitives" "TEXT 3"
.IX "Text Primitives" "TEXT 3"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
ptext3 ( text_pt, dir, text )
Ppoint3	*text_pt;	\fItext point\fP
Pvec3	dir[2];	\fIdirection vectors\fP
char	*text;	\fItext string\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, STOP, *)
.SH DESCRIPTION
.SS Purpose
The \s-2TEXT 3\s+2 subroutine puts a structure element
containing the full specification of a three-dimensional
\s-2TEXT 3\s+2 primitive into the currently open structure.
.LP
The \s-2TEXT 3\s+2 primitive is a character string. The location and
orientation of the string in the display is controlled by the
\fItext point\fP and \fIdirection vectors\fP subroutine parameters,
specified in Modelling Coordinates (\s-2MC\s+2).
Other aspects of the text display, such as the font, colour, spacing,
height, and alignment, are controlled by the current values of the
primitive attributes listed below.
.LP
If the current edit mode is \s-2INSERT\s+2, the structure element created
by the \s-2TEXT 3\s+2 subroutine is inserted into the open structure after
the element pointed to by the current element pointer. If the current
edit mode is \s-2REPLACE\s+2, the \s-2TEXT 3\s+2 element replaces the
element in the structure pointed to by the element pointer.  In either
case, the element pointer is updated to point to the new \s-2TEXT 3\s+2
element.
.SS C Input Parameters
.IP \fItext_pt\fP
A pointer to a Ppoint3 structure that specifies the \fIx, y\fP, and \fIz\fP
coordinates that locate the text string.
The Ppoint3 structure is defined in phigs.h as follows:
.sp .4
.ta .5i +\w'Pfloat     'u +\w'x;     'u
.nf
typedef struct  {
.sp .2
	Pfloat	x;	/* x coordinate */
	Pfloat	y;	/* y coordinate */
	Pfloat	z;	/* z coordinate */
.sp .2
} Ppoint3;
.fi
.IP \fIdir\fP
An array of two Pvec3 structures containing direction vectors.
The Pvec3 structure is defined in phigs.h as follows:
.sp .4
.ta .5i +\w'Pfloat	'u +\w'delta_x;		'u
.nf
typedef struct  {
.sp .2
	Pfloat	delta_x;	/* x magnitude */
	Pfloat	delta_y;	/* y magnitude */
	Pfloat	delta_z;	/* z magnitude */
.sp .2
} Pvec3;
.fi
.IP \fItext\fP
A pointer to the character string to be written into the display.
.SS Execution
When the structure is traversed, the \s-2TEXT 3\s+2 element draws the
specified character string on the plane in the \s-2MC\s+2
system defined by \fItext point\fP and the two \fIdirection vectors\fP.
These parameters define a Text Local Coordinate (\s-2TLC\s+2)
system in the \s-2MC\s+2 system. The \fItext point\fP parameter
defines the origin of this
\s-2TLC\s+2 system, the first direction vector defines the
positive \fIx\fP axis, and the second direction vector
defines the positive
\fIy\fP axis.
Only the directions, not the lengths, of these vectors are relevant.
.LP
The precise position of the text is defined in relation to this plane by
the current values of the text primitive attributes \s-2CHARACTER UP
VECTOR, TEXT PATH,\s+2 and \s-2TEXT ALIGNMENT\s+2. The text
primitive is subject to the current transformations in
the transformation pipeline from
the \s-2MC\s+2 system to the workstation display.
.LP
Other aspects of the appearance of the text are controlled by the
attributes \s-2TEXT FONT, TEXT PRECISION, CHARACTER HEIGHT, CHARACTER
WIDTH, CHARACTER EXPANSION FACTOR, CHARACTER SPACING,\s+2 and
\s-2TEXT COLOUR INDEX\s+2.
.SS Attributes Applied
The attributes listed below are used to display the
\s-2TEXT 3\s+2 primitive when the structure is traversed. The Aspect Source 
Flags (\s-2ASF\s+2s) tell where to access the output display attributes. 
These attributes can come directly from the traversal state list,
or they can be accessed indirectly, using the appropriate index 
in the traversal state list and the corresponding bundled 
representation in the \s-2PHIGS\s+2 workstation state list.
.RS
.nf
.ta .5i +\w'back interior reflectance equation   'u 
.sp
text font			text font \s-2ASF\s+2
text precision			text precision \s-2ASF\s+2
character expansion factor	character expansion factor \s-2ASF\s+2
character spacing		character spacing \s-2ASF\s+2
text colour			text colour index \s-2ASF\s+2
character height
character up vector
text path
text alignment
text index
depth cue index
name set
.fi
.RE
.sp .2
.SH ERRORS
.IP 005
Ignoring function, function requires state (\s-2PHOP, *, STOP, *\s+2)
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "INQUIRE TEXT FACILITIES (3P)"
.SM "INQUIRE TEXT EXTENT (3P)"
.SM "TEXT (3P)"
.fi
