summaryrefslogtreecommitdiff
path: root/xc/unsupported/doc/PHIGS/man3/p023
blob: 9e57e0957639284980e6f5938cfc11c77cf33bf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
.\"##
.\" $XConsortium: p023,v 5.2 94/04/17 20:54:27 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 "COMPOSE TRANSFORMATION MATRIX" 3P "29 February 1991"
.SH NAME
COMPOSE TRANSFORMATION MATRIX  \- compose a \s-2\&2D\s+2 transformation matrix,
which is the composition of a specified matrix and a transformation
matrix defined by a fixed point, shift vector, rotation angle, and scale
factors
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pcompose_tran_matrix ( m, pt, shift, angle, scale, error_ind, result )
Pmatrix	m;	\fItransformation matrix\fP
Ppoint	*pt;	\fIfixed point\fP
Pvec	*shift;	\fIshift vector\fP
Pfloat	angle;	\fIrotation angle\fP
Pvec	*scale;	\fIscale vector\fP
Pint	*error_ind;	\fI\s-2OUT\s+2 error indicator\fP
Pmatrix	result;	\fI\s-2OUT\s+2 transformation matrix\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, *, *)
.SH DESCRIPTION
.SS Purpose
Use \s-2COMPOSE TRANSFORMATION MATRIX\s+2 to generate a \s-2\&2D\s+2 homogeneous
(3\ \(mu\ 3) matrix that composes an existing 3\ \(mu\ 3 matrix with a
transformation specified by \s-2\&2D\s+2 values for scaling, rotation, and
translation about a fixed point.
.LP
The returned matrix may be passed as an argument to
\s-2SET LOCAL TRANSFORMATION\s+2 or \s-2SET GLOBAL TRANSFORMATION\s+2
to modify the modelling transformation that is
applied to output primitives during traversal.
.SS C Input Parameters
.IP \fIm\fP
The \s-2\&2D\s+2 (3\ \(mu\ 3) homogeneous transformation matrix to use in the
composition.
This matrix is a Pmatrix type, defined in phigs.h as follows:
.IP
typedef  Pfloat  Pmatrix[3][3];
.IP \fIpt\fP
A pointer to a Ppoint structure containing the \fIx\fP and \fIy\fP 
coordinates of a fixed point in Modelling Coordinates.
Scaling and rotation are performed relative to this fixed point.
Ppoint 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 */
.sp .2
} Ppoint;
.fi
.IP \fIshift\fP
A pointer to a Pvec structure containing 
.I x
and 
.I y 
coordinates defining the shift (translation) to be added to the transformation.
Pvec 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 */
.sp .2
} Pvec;
.fi
.IP \fIangle\fP
The angle of rotation, in radians, to be added to the transformation.
A positive angle is a counter-clockwise rotation.
A negative angle is clockwise rotation.
.IP \fIscale\fP
A pointer to a Pvec structure containing \fIx\fP and \fIy\fP values
defining the scale factors to be applied to the transformation.
.SS C Output Parameters
.IP \fIerror_ind\fP
A pointer to the location to store the error number of any error detected
by this function.
.IP \fIresult\fP
The resulting \s-2\&2D\s+2 (3\ \(mu\ 3) transformation matrix.
.SS Execution
\s-2COMPOSE TRANSFORMATION MATRIX\s+2 returns the matrix that performs
the transformation resulting from the composition of the input matrix
and the matrix specified by the input parameters \fIshift, angle,\fP
and \fIscale\fP.
Rotation and scaling are calculated relative to the fixed point.
.LP
The composition is performed as:
.sp .4
	\fIresult\fP = \fIa\fP \s-2x\s+2 \fIb\fP
.LP
Where \fIb\fP is the input matrix and \fIa\fP is the matrix built from
the other input parameters.
.LP
The order of operations used to build the transformation matrix \fIb\fP is:
.sp .4
.nf
	\(bu  scale
	\(bu  rotate
	\(bu  shift (translate)
.fi
.SH ERRORS
.IP 002
Ignoring function, function requires state (\s-2PHOP, *, *, *\s+2)
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "COMPOSE TRANSFORMATION MATRIX 3 (3P)"
.SM "COMPOSE MATRIX (3P)"
.SM "BUILD TRANSFORMATION MATRIX (3P)"
.SM "SET LOCAL TRANSFORMATION (3P)"
.SM "SET GLOBAL TRANSFORMATION (3P)"
.fi