58     affine_vector[0] = 1.;
    59     affine_vector[1] = 0.;
    60     affine_vector[2] = 0.;
    61     affine_vector[3] = 1.;
    62     affine_vector[4] = 0.;
    63     affine_vector[5] = 0.;
    75     affine_vector[0] = 1.;
    76     affine_vector[1] = 0.;
    77     affine_vector[2] = 0.;
    78     affine_vector[3] = 1.;
    82     affine_vector[4] = -xtranslate;
    83     affine_vector[5] = -ytranslate;
   100         plwarn( 
"plP_affine_scale: attempt to scale X coordinates by zero." );
   105         plwarn( 
"plP_affine_scale: attempt to scale Y coordinates by zero." );
   108     affine_vector[0] = 1. / xscale;
   109     affine_vector[1] = 0.;
   110     affine_vector[2] = 0.;
   111     affine_vector[3] = 1. / yscale;
   112     affine_vector[4] = 0.;
   113     affine_vector[5] = 0.;
   125     PLFLT cosangle = cos( 
PI * angle / 180. );
   126     PLFLT sinangle = sin( 
PI * angle / 180. );
   127     affine_vector[0] = cosangle;
   128     affine_vector[1] = -sinangle;
   129     affine_vector[2] = sinangle;
   130     affine_vector[3] = cosangle;
   131     affine_vector[4] = 0.;
   132     affine_vector[5] = 0.;
   145     PLFLT tanangle = tan( 
PI * angle / 180. );
   146     affine_vector[0] = 1.;
   147     affine_vector[1] = 0.;
   148     affine_vector[2] = -tanangle;
   149     affine_vector[3] = 1.;
   150     affine_vector[4] = 0.;
   151     affine_vector[5] = 0.;
   164     PLFLT tanangle = tan( 
PI * angle / 180. );
   165     affine_vector[0] = 1.;
   166     affine_vector[1] = -tanangle;
   167     affine_vector[2] = 0.;
   168     affine_vector[3] = 1.;
   169     affine_vector[4] = 0.;
   170     affine_vector[5] = 0.;
   185     PLFLT *affine_vectorA,
   192     result[0] = affine_vectorB[0] * affine_vectorC[0] +
   193                 affine_vectorB[2] * affine_vectorC[1];
   194     result[2] = affine_vectorB[0] * affine_vectorC[2] +
   195                 affine_vectorB[2] * affine_vectorC[3];
   196     result[4] = affine_vectorB[0] * affine_vectorC[4] +
   197                 affine_vectorB[2] * affine_vectorC[5] +
   200     result[1] = affine_vectorB[1] * affine_vectorC[0] +
   201                 affine_vectorB[3] * affine_vectorC[1];
   202     result[3] = affine_vectorB[1] * affine_vectorC[2] +
   203                 affine_vectorB[3] * affine_vectorC[3];
   204     result[5] = affine_vectorB[1] * affine_vectorC[4] +
   205                 affine_vectorB[3] * affine_vectorC[5] +
   208     for ( i = 0; i < 
NAFFINE; i++ )
   209         affine_vectorA[i] = result[i];
 
void plP_affine_identity(PLFLT *affine_vector)
void plP_affine_yskew(PLFLT *affine_vector, PLFLT angle)
void plP_affine_multiply(PLFLT *affine_vectorA, PLFLT_VECTOR affine_vectorB, PLFLT_VECTOR affine_vectorC)
void plP_affine_rotate(PLFLT *affine_vector, PLFLT angle)
void plP_affine_translate(PLFLT *affine_vector, PLFLT xtranslate, PLFLT ytranslate)
void plwarn(PLCHAR_VECTOR errormsg)
void plP_affine_xskew(PLFLT *affine_vector, PLFLT angle)
const PLFLT * PLFLT_VECTOR
void plP_affine_scale(PLFLT *affine_vector, PLFLT xscale, PLFLT yscale)