home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 January / Chip_1997-01_cd.bin / ms95 / disk22 / dir08 / f012190.re_ / f012190.re
Text File  |  1996-04-02  |  4KB  |  218 lines

  1. /*----------------------------------------------------------------------+
  2. |                                    |
  3. |  Copyright (c) 1985-93;  Bentley Systems, Inc., All rights reserved.    |
  4. |                                    |
  5. | "MicroStation", "MDL", and "MicroCSL" are trademarks of Bentley    |
  6. |  Systems, Inc.                            |
  7. |                                    |
  8. |  Limited permission is hereby granted to reproduce and modify this    |
  9. |  copyrighted material provided that the resulting code is used only     |
  10. |  in conjunction with Bentley Systems products under the terms of the    |
  11. |  license agreement provided therein, and that this notice is retained    |
  12. |  in its entirety in any such reproduction or modification.        |
  13. |                                    |
  14. +----------------------------------------------------------------------*/
  15. /*----------------------------------------------------------------------+
  16. |                                    |
  17. |   $Workfile:   msrmatrx.fdf  $
  18. |   $Revision:   6.6  $
  19. |          $Date:   25 Oct 1995 08:30:10  $
  20. |                                    |
  21. +----------------------------------------------------------------------*/
  22. #if !defined (__msrmatrxFDF__)
  23. #define __msrmatrxFDF__
  24.  
  25. /*----------------------------------------------------------------------+
  26. |                                    |
  27. |   Header File Dependencies                        |
  28. |                                    |
  29. +----------------------------------------------------------------------*/
  30.  
  31. #if !defined (__dloadlibH__)
  32. #include "dloadlib.h"
  33. #endif
  34.  
  35. #if !defined (__mdlH__)
  36. #include "mdl.h"
  37. #endif
  38.  
  39. /*======================================================================+
  40. |                                    |
  41. |   Function Definitions                        |
  42. |                                    |
  43. +======================================================================*/
  44.  
  45. int     mdlRMatrix_from3Points
  46. (
  47. RotMatrix   *rMatrix,
  48. Dpoint3d    *origin,
  49. Dpoint3d    *x_axis,
  50. Dpoint3d    *y_axis
  51. );
  52.  
  53. void mdlRMatrix_fromAngle
  54. (
  55. RotMatrix   *rMatrix,
  56. double        angle
  57. );
  58.  
  59. void    mdlRMatrix_fromColumnVectors
  60. (
  61. RotMatrix        *trans,
  62. Dpoint3d        *xvec,
  63. Dpoint3d        *yvec,
  64. Dpoint3d        *zvec
  65. );
  66.  
  67. void mdlRMatrix_fromNormalVector
  68. (
  69. RotMatrix   *rotMatrixP,
  70. Dpoint3d    *normalP
  71. );
  72.  
  73. void mdlRMatrix_fromQuat
  74. (
  75. RotMatrix   *rMatrix,
  76. long        quat[]
  77. );
  78.  
  79. void    mdlRMatrix_fromRowVectors
  80. (
  81. RotMatrix        *trans,
  82. Dpoint3d        *xvec,
  83. Dpoint3d        *yvec,
  84. Dpoint3d        *zvec
  85. );
  86.  
  87. void    mdlRMatrix_fromTMatrix
  88. (
  89. RotMatrix   *out,
  90. Transform   *t
  91. );
  92.  
  93. void    mdlRMatrix_fromView
  94. (
  95. RotMatrix   *rMatrix,
  96. int        view,
  97. int        allowConstruction
  98. );
  99.  
  100. void    mdlRMatrix_getColumnVector
  101. (
  102. Dpoint3d    *vec,
  103. RotMatrix   *trans,
  104. int        col
  105. );
  106.  
  107. void    mdlRMatrix_getIdentity
  108. (
  109. RotMatrix    *t
  110. );
  111.  
  112. void    mdlRMatrix_getInverse
  113. (
  114. RotMatrix   *out,
  115. RotMatrix   *in
  116. );
  117.  
  118. void    mdlRMatrix_getRowVector
  119. (
  120. Dpoint3d    *vec,
  121. RotMatrix    *trans,
  122. int        row
  123. );
  124.  
  125. void    mdlRMatrix_invert
  126. (
  127. RotMatrix    *outputP,
  128. RotMatrix    *inputP
  129. );
  130.  
  131. void    mdlRMatrix_multiply
  132. (
  133. RotMatrix   *out,
  134. RotMatrix   *rMatrix1,
  135. RotMatrix   *rMatrix2
  136. );
  137.  
  138. void    mdlRMatrix_multiplyByTMatrix
  139. (
  140. RotMatrix   *out,
  141. Transform   *trans,
  142. RotMatrix   *rot
  143. );
  144.  
  145. void    mdlRMatrix_normalize
  146. (
  147. RotMatrix        *out,
  148. RotMatrix        *in
  149. );
  150.  
  151. void    mdlRMatrix_rotate
  152. (
  153. RotMatrix   *out,
  154. RotMatrix   *rMatrix,
  155. double        xrot,
  156. double        yrot,
  157. double        zrot
  158. );
  159.  
  160. void    mdlRMatrix_rotatePoint
  161. (
  162. Dpoint3d        *point,
  163. RotMatrix        *rmatrix
  164. );
  165.  
  166. void    mdlRMatrix_rotatePointArray
  167. (
  168. Dpoint3d    *rotate_point,
  169. RotMatrix   *transformation,
  170. int        numverts
  171. );
  172.  
  173. double mdlRMatrix_toAngle
  174. (
  175. RotMatrix   *rmatrix
  176. );
  177.  
  178. void mdlRMatrix_toQuat
  179. (
  180. long        quat[],
  181. RotMatrix   *rMatrix
  182. );
  183.  
  184. void    mdlRMatrix_unrotatePoint
  185. (
  186. Dpoint3d    *point,
  187. RotMatrix   *rmatrix
  188. );
  189.  
  190. void    mdlRMatrix_unrotatePointArray
  191. (
  192. Dpoint3d    *rotate_point,
  193. RotMatrix   *transformation,
  194. int        numverts
  195. );
  196.  
  197. int mdlRMatrix_determinant
  198. (
  199. double        *determ,        /* <= determinant */
  200. RotMatrix   *rP,        /* => matrix */
  201. int        dimension        /* => matrix dimension (2 or 3) */
  202. );
  203.  
  204. int mdlRMatrix_isIdentity
  205. (
  206. RotMatrix   *rotMatrixP,        /* => rotation matrix */
  207. int        dimension            /* => dimensin (2 or 3) */
  208. );
  209.  
  210. void mdlRMatrix_rotateRange
  211. (
  212. Dpoint3d    *low,
  213. Dpoint3d    *high,
  214. RotMatrix   *rotMatrixP
  215. );
  216.  
  217. #endif
  218.