home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 January
/
Chip_1997-01_cd.bin
/
ms95
/
disk22
/
dir08
/
f012190.re_
/
f012190.re
Wrap
Text File
|
1996-04-02
|
4KB
|
218 lines
/*----------------------------------------------------------------------+
| |
| Copyright (c) 1985-93; Bentley Systems, Inc., All rights reserved. |
| |
| "MicroStation", "MDL", and "MicroCSL" are trademarks of Bentley |
| Systems, Inc. |
| |
| Limited permission is hereby granted to reproduce and modify this |
| copyrighted material provided that the resulting code is used only |
| in conjunction with Bentley Systems products under the terms of the |
| license agreement provided therein, and that this notice is retained |
| in its entirety in any such reproduction or modification. |
| |
+----------------------------------------------------------------------*/
/*----------------------------------------------------------------------+
| |
| $Workfile: msrmatrx.fdf $
| $Revision: 6.6 $
| $Date: 25 Oct 1995 08:30:10 $
| |
+----------------------------------------------------------------------*/
#if !defined (__msrmatrxFDF__)
#define __msrmatrxFDF__
/*----------------------------------------------------------------------+
| |
| Header File Dependencies |
| |
+----------------------------------------------------------------------*/
#if !defined (__dloadlibH__)
#include "dloadlib.h"
#endif
#if !defined (__mdlH__)
#include "mdl.h"
#endif
/*======================================================================+
| |
| Function Definitions |
| |
+======================================================================*/
int mdlRMatrix_from3Points
(
RotMatrix *rMatrix,
Dpoint3d *origin,
Dpoint3d *x_axis,
Dpoint3d *y_axis
);
void mdlRMatrix_fromAngle
(
RotMatrix *rMatrix,
double angle
);
void mdlRMatrix_fromColumnVectors
(
RotMatrix *trans,
Dpoint3d *xvec,
Dpoint3d *yvec,
Dpoint3d *zvec
);
void mdlRMatrix_fromNormalVector
(
RotMatrix *rotMatrixP,
Dpoint3d *normalP
);
void mdlRMatrix_fromQuat
(
RotMatrix *rMatrix,
long quat[]
);
void mdlRMatrix_fromRowVectors
(
RotMatrix *trans,
Dpoint3d *xvec,
Dpoint3d *yvec,
Dpoint3d *zvec
);
void mdlRMatrix_fromTMatrix
(
RotMatrix *out,
Transform *t
);
void mdlRMatrix_fromView
(
RotMatrix *rMatrix,
int view,
int allowConstruction
);
void mdlRMatrix_getColumnVector
(
Dpoint3d *vec,
RotMatrix *trans,
int col
);
void mdlRMatrix_getIdentity
(
RotMatrix *t
);
void mdlRMatrix_getInverse
(
RotMatrix *out,
RotMatrix *in
);
void mdlRMatrix_getRowVector
(
Dpoint3d *vec,
RotMatrix *trans,
int row
);
void mdlRMatrix_invert
(
RotMatrix *outputP,
RotMatrix *inputP
);
void mdlRMatrix_multiply
(
RotMatrix *out,
RotMatrix *rMatrix1,
RotMatrix *rMatrix2
);
void mdlRMatrix_multiplyByTMatrix
(
RotMatrix *out,
Transform *trans,
RotMatrix *rot
);
void mdlRMatrix_normalize
(
RotMatrix *out,
RotMatrix *in
);
void mdlRMatrix_rotate
(
RotMatrix *out,
RotMatrix *rMatrix,
double xrot,
double yrot,
double zrot
);
void mdlRMatrix_rotatePoint
(
Dpoint3d *point,
RotMatrix *rmatrix
);
void mdlRMatrix_rotatePointArray
(
Dpoint3d *rotate_point,
RotMatrix *transformation,
int numverts
);
double mdlRMatrix_toAngle
(
RotMatrix *rmatrix
);
void mdlRMatrix_toQuat
(
long quat[],
RotMatrix *rMatrix
);
void mdlRMatrix_unrotatePoint
(
Dpoint3d *point,
RotMatrix *rmatrix
);
void mdlRMatrix_unrotatePointArray
(
Dpoint3d *rotate_point,
RotMatrix *transformation,
int numverts
);
int mdlRMatrix_determinant
(
double *determ, /* <= determinant */
RotMatrix *rP, /* => matrix */
int dimension /* => matrix dimension (2 or 3) */
);
int mdlRMatrix_isIdentity
(
RotMatrix *rotMatrixP, /* => rotation matrix */
int dimension /* => dimensin (2 or 3) */
);
void mdlRMatrix_rotateRange
(
Dpoint3d *low,
Dpoint3d *high,
RotMatrix *rotMatrixP
);
#endif