60 affine_vector[0] = 1.;
61 affine_vector[1] = 0.;
62 affine_vector[2] = 0.;
63 affine_vector[3] = 1.;
64 affine_vector[4] = 0.;
65 affine_vector[5] = 0.;
77 affine_vector[0] = 1.;
78 affine_vector[1] = 0.;
79 affine_vector[2] = 0.;
80 affine_vector[3] = 1.;
84 affine_vector[4] = -xtranslate;
85 affine_vector[5] = -ytranslate;
102 plwarn(
"plP_affine_scale: attempt to scale X coordinates by zero." );
107 plwarn(
"plP_affine_scale: attempt to scale Y coordinates by zero." );
110 affine_vector[0] = 1. /
xscale;
111 affine_vector[1] = 0.;
112 affine_vector[2] = 0.;
113 affine_vector[3] = 1. /
yscale;
114 affine_vector[4] = 0.;
115 affine_vector[5] = 0.;
127 PLFLT cosangle = cos(
PI * angle / 180. );
128 PLFLT sinangle = sin(
PI * angle / 180. );
129 affine_vector[0] = cosangle;
130 affine_vector[1] = -sinangle;
131 affine_vector[2] = sinangle;
132 affine_vector[3] = cosangle;
133 affine_vector[4] = 0.;
134 affine_vector[5] = 0.;
147 PLFLT tanangle = tan(
PI * angle / 180. );
148 affine_vector[0] = 1.;
149 affine_vector[1] = 0.;
150 affine_vector[2] = -tanangle;
151 affine_vector[3] = 1.;
152 affine_vector[4] = 0.;
153 affine_vector[5] = 0.;
166 PLFLT tanangle = tan(
PI * angle / 180. );
167 affine_vector[0] = 1.;
168 affine_vector[1] = -tanangle;
169 affine_vector[2] = 0.;
170 affine_vector[3] = 1.;
171 affine_vector[4] = 0.;
172 affine_vector[5] = 0.;
187 PLFLT *affine_vectorA,
188 const PLFLT *affine_vectorB,
189 const PLFLT *affine_vectorC )
194 result[0] = affine_vectorB[0] * affine_vectorC[0] +
195 affine_vectorB[2] * affine_vectorC[1];
196 result[2] = affine_vectorB[0] * affine_vectorC[2] +
197 affine_vectorB[2] * affine_vectorC[3];
198 result[4] = affine_vectorB[0] * affine_vectorC[4] +
199 affine_vectorB[2] * affine_vectorC[5] +
202 result[1] = affine_vectorB[1] * affine_vectorC[0] +
203 affine_vectorB[3] * affine_vectorC[1];
204 result[3] = affine_vectorB[1] * affine_vectorC[2] +
205 affine_vectorB[3] * affine_vectorC[3];
206 result[5] = affine_vectorB[1] * affine_vectorC[4] +
207 affine_vectorB[3] * affine_vectorC[5] +
210 for ( i = 0; i <
NAFFINE; i++ )
211 affine_vectorA[i] = result[i];
void plP_affine_identity(PLFLT *affine_vector)
void plP_affine_multiply(PLFLT *affine_vectorA, const PLFLT *affine_vectorB, const PLFLT *affine_vectorC)
void plP_affine_yskew(PLFLT *affine_vector, PLFLT angle)
void plP_affine_rotate(PLFLT *affine_vector, PLFLT angle)
void plP_affine_translate(PLFLT *affine_vector, PLFLT xtranslate, PLFLT ytranslate)
void plwarn(const char *errormsg)
void plP_affine_xskew(PLFLT *affine_vector, PLFLT angle)
void plP_affine_scale(PLFLT *affine_vector, PLFLT xscale, PLFLT yscale)