#ifndef matrix_h
#define matrix_h
#ifdef __cplusplus
extern "C" {
#endif

/* **************************************************

   Copyright DIVISION Limited (c) 1994
   All rights reserved


   File    : dpl.h
   Project : dpl interface
   Author  : PJA
   Date    : 18/6/94

   Function: Introduces all the datatypes and functions
             used by the dpl interface

   History : Rev 1.0, 18 / 06 / 1994

**************************** */

#include <dpl/dpl.h>
#include <dpl/dpltypes.h>
#include <dpl/vpx/dpl_priv.h>

extern void dpl_SetAngleMode( int degrees );
extern void dpl_IdMatrix   ( dpl_MATRIX m );
extern void dpl_Translate  ( dpl_MATRIX m, float32 dx, float32 dy, float32 dz );
extern void dpl_Rotate     ( dpl_MATRIX m, float32 angle, int32 axis );
extern void dpl_Scale      ( dpl_MATRIX m, float32 x, float32 y, float32 z );
extern void dpl_Concat     ( dpl_MATRIX m, dpl_MATRIX a, dpl_MATRIX b );
extern void dpl_Invert     ( dpl_MATRIX inverse, dpl_MATRIX mat );
extern void dpl_XformPoint ( dpl_POINT q, dpl_POINT p, dpl_MATRIX m );

extern void dpl_IdMatrixDCS  ( dpl_DCS *d );
extern void dpl_TranslateDCS ( dpl_DCS *d, float32 dx, float32 dy, float32 dz );
extern void dpl_RotateDCS    ( dpl_DCS *d, float32 angle, int32 axis );
extern void dpl_ScaleDCS     ( dpl_DCS *d, float32 x, float32 y, float32 z );


#ifdef __cplusplus
}
#endif
#endif
