home *** CD-ROM | disk | FTP | other *** search
/ DarkBasic Professional / DarkBasicPro.iso / data1.cab / Lang_Files_(English) / Help / examples / 3dmaths / 3dmaths2-example.dba < prev    next >
Encoding:
Text File  |  2004-09-22  |  7.5 KB  |  210 lines

  1. rem 3DMaths Functionality
  2.  
  3. rem Indexes for vectors
  4. Vector2Number=1
  5. Vector3Number=2
  6. Vector4Number=3
  7. Vector3Eye=4
  8. Vector3At=5
  9. Vector3Up=6
  10.  
  11. rem Indexes for matrices
  12. Matrix4Number=7
  13. Matrix4Projection=8
  14. Matrix4View=9
  15. Matrix4World=10
  16.  
  17. rem Standard values
  18. Width as float=0.0+rnd(100)
  19. Height as float=0.0+rnd(100)
  20. Near as float=rnd(100)/100.0
  21. Far as float=rnd(100)/100.0
  22. FOV as float=0.0+rnd(90)
  23. Aspect as float=rnd(100)/100.0
  24. PlaneA as float=rnd(100)/100.0
  25. PlaneB as float=rnd(100)/100.0
  26. PlaneC as float=rnd(100)/100.0
  27. PlaneD as float=rnd(100)/100.0
  28. Angle as float=0.0+rnd(359)
  29. Value as float=0.0+rnd(100)
  30. FValue as float=0.0+rnd(100)
  31. GValue as float=0.0+rnd(100)
  32. SValue as float=0.0+rnd(100)
  33. X as float=rnd(200)-100.0
  34. Y as float=rnd(200)-100.0
  35. Z as float=rnd(200)-100.0
  36. W as float=rnd(100)/100.0
  37. Yaw as float=0.0+rnd(359)
  38. Pitch as float=0.0+rnd(359)
  39. Roll as float=0.0+rnd(359)
  40.  
  41. rem Create math vectors
  42. ReturnFlag = make vector2(Vector2Number)
  43. ReturnFlag = make vector3(Vector3Number)
  44. ReturnFlag = make vector4(Vector4Number)
  45. ReturnFlag = make vector3(Vector3Eye)
  46. ReturnFlag = make vector3(Vector3At)
  47. ReturnFlag = make vector3(Vector3Up)
  48.  
  49. rem Create math matrix
  50. ReturnFlag = make matrix4(Matrix4Number)
  51.  
  52. rem Create projection, view and world matrices
  53. ReturnFlag = make matrix4(Matrix4Projection)
  54. PROJECTION MATRIX4 Matrix4Projection
  55. ReturnFlag = make matrix4(Matrix4View)
  56. VIEW MATRIX4 Matrix4View
  57. ReturnFlag = make matrix4(Matrix4World)
  58. WORLD MATRIX4 Matrix4World
  59.  
  60. rem All maths for Vector2
  61. Vector=Vector2Number
  62. VectorA=Vector2Number
  63. VectorB=Vector2Number
  64. VectorC=Vector2Number
  65. VectorD=Vector2Number
  66. VectorResult=Vector2Number
  67. VectorSource=Vector2Number
  68. Matrix4Source=Matrix4Number
  69.  
  70. ADD VECTOR2 VectorResult, VectorA, VectorB
  71. CATMULLROM VECTOR2 VectorResult, VectorA, VectorB, VectorC, VectorD, Value
  72. COPY VECTOR2 VectorResult, VectorSource
  73. DIVIDE VECTOR2 VectorResult, Value
  74. ReturnFloat = DOT PRODUCT VECTOR2(VectorA, VectorB)
  75. BCC VECTOR2 VectorResult, VectorA, VectorB, VectorC, FValue, GValue
  76. ReturnFloat = CCW VECTOR2(VectorA, VectorB)
  77. ReturnFloat = SQUARED LENGTH VECTOR2(Vector)
  78. ReturnFloat = LENGTH VECTOR2(Vector)
  79. ReturnFloat = X VECTOR2(Vector)
  80. ReturnFloat = Y VECTOR2(Vector)
  81. HERMITE VECTOR2 VectorResult, VectorA, VectorB, VectorC, VectorD, SValue
  82. ReturnFlag = IS EQUAL VECTOR2(VectorA, VectorB)
  83. LINEAR INTERPOLATE VECTOR2 VectorResult, VectorA, VectorB, SValue
  84. MAXIMIZE VECTOR2 VectorResult, VectorA, VectorB
  85. MINIMIZE VECTOR2 VectorResult, VectorA, VectorB
  86. MULTIPLY VECTOR2 VectorResult, Value
  87. NORMALIZE VECTOR2 VectorResult, VectorSource
  88. SCALE VECTOR2 VectorResult, VectorSource, Value
  89. SET VECTOR2 VectorResult, X, Y
  90. SUBTRACT VECTOR2 VectorResult, VectorA, VectorB
  91. TRANSFORM COORDS VECTOR2 VectorResult, VectorSource, Matrix4Source
  92.  
  93. rem All maths for Vector3
  94. Vector=Vector3Number
  95. VectorA=Vector3Number
  96. VectorB=Vector3Number
  97. VectorC=Vector3Number
  98. VectorD=Vector3Number
  99. VectorResult=Vector3Number
  100. VectorSource=Vector3Number
  101.  
  102. ADD VECTOR3 VectorResult, VectorA, VectorB
  103. CATMULLROM VECTOR3 VectorResult, VectorA, VectorB, VectorC, VectorD, Value
  104. COPY VECTOR3 VectorResult, VectorSource
  105. CROSS PRODUCT VECTOR3 VectorResult, VectorA, VectorB
  106. DIVIDE VECTOR3 VectorResult, Value
  107. ReturnFloat = DOT PRODUCT VECTOR3(VectorA, VectorB)
  108. BCC VECTOR3 VectorResult, VectorA, VectorB, VectorC, FValue, GValue
  109. ReturnFloat = SQUARED LENGTH VECTOR3(Vector)
  110. ReturnFloat = LENGTH VECTOR3(Vector)
  111. ReturnFloat = X VECTOR3(Vector)
  112. ReturnFloat = Y VECTOR3(Vector)
  113. ReturnFloat = Z VECTOR3(Vector)
  114. HERMITE VECTOR3 VectorResult, VectorA, VectorB, VectorC, VectorD, SValue
  115. ReturnFlag = IS EQUAL VECTOR3(VectorA, VectorB)
  116. LINEAR INTERPOLATE VECTOR3 VectorResult, VectorA, VectorB, SValue
  117. MAXIMIZE VECTOR3 VectorResult, VectorA, VectorB
  118. MINIMIZE VECTOR3 VectorResult, VectorA, VectorB
  119. MULTIPLY VECTOR3 VectorResult, Value
  120. NORMALIZE VECTOR3 VectorResult, VectorSource
  121. PROJECT VECTOR3 VectorResult, VectorSource, Matrix4Projection, Matrix4View, Matrix4World
  122. SCALE VECTOR3 VectorResult, VectorSource, Value
  123. SET VECTOR3 VectorResult, X, Y, Z
  124. SUBTRACT VECTOR3 VectorResult, VectorA, VectorB
  125. TRANSFORM COORDS VECTOR3 VectorResult, VectorSource, Matrix4Source
  126. TRANSFORM NORMALS VECTOR3 VectorResult, VectorSource, Matrix4Source
  127.  
  128. rem All maths for Vector4
  129. Vector=Vector4Number
  130. VectorA=Vector4Number
  131. VectorB=Vector4Number
  132. VectorC=Vector4Number
  133. VectorD=Vector4Number
  134. VectorResult=Vector4Number
  135. VectorSource=Vector4Number
  136.  
  137. ADD VECTOR4 VectorResult, VectorA, VectorB
  138. CATMULLROM VECTOR4 VectorResult, VectorA, VectorB, VectorC, VectorD, Value
  139. COPY VECTOR4 VectorResult, VectorSource
  140. DIVIDE VECTOR4 VectorResult, Value
  141. BCC VECTOR4 VectorResult, VectorA, VectorB, VectorC, FValue, GValue
  142. ReturnFloat = SQUARED LENGTH VECTOR4(Vector)
  143. ReturnFloat = LENGTH VECTOR4(Vector)
  144. ReturnFloat = X VECTOR4(Vector)
  145. ReturnFloat = Y VECTOR4(Vector)
  146. ReturnFloat = Z VECTOR4(Vector)
  147. ReturnFloat = W VECTOR4(Vector)
  148. HERMITE VECTOR4 VectorResult, VectorA, VectorB, VectorC, VectorD, SValue
  149. ReturnFlag = IS EQUAL VECTOR4(VectorA, VectorB)
  150. LINEAR INTERPOLATE VECTOR4 VectorResult, VectorA, VectorB, SValue
  151. MAXIMIZE VECTOR4 VectorResult, VectorA, VectorB
  152. MINIMIZE VECTOR4 VectorResult, VectorA, VectorB
  153. MULTIPLY VECTOR4 VectorResult, Value
  154. NORMALIZE VECTOR4 VectorResult, VectorSource
  155. SCALE VECTOR4 VectorResult, VectorSource, Value
  156. SET VECTOR4 VectorResult, X, Y, Z, W
  157. SUBTRACT VECTOR4 VectorResult, VectorA, VectorB
  158. TRANSFORM VECTOR4 VectorResult, VectorSource, Matrix4Source
  159. TRANSFORM NORMALS VECTOR3 VectorResult, VectorSource, Matrix4Source
  160.  
  161. rem All maths for Matrix4
  162. Matrix4Result=Matrix4Number
  163. Matrix4A=Matrix4Number
  164. Matrix4B=Matrix4Number
  165. Matrix4=Matrix4Number
  166. Vector3Axis=Vector3Number
  167.  
  168. ADD MATRIX4 Matrix4Result, Matrix4A, Matrix4B
  169. BUILD LOOKAT LHMATRIX4 Matrix4Result, Vector3Eye, Vector3At, Vector3Up
  170. BUILD LOOKAT RHMATRIX4 Matrix4Result, Vector3Eye, Vector3At, Vector3Up
  171. BUILD ORTHO LHMATRIX4 Matrix4Result, Width, Height, Near, Far
  172. BUILD ORTHO RHMATRIX4 Matrix4Result, Width, Height, Near, Far
  173. BUILD FOV LHMATRIX4 Matrix4Result, FOV, Aspect, Near, Far
  174. BUILD FOV RHMATRIX4 Matrix4Result, FOV, Aspect, Near, Far
  175. BUILD PERSPECTIVE LHMATRIX4 Matrix4Result, Width, Height, Near, Far
  176. BUILD PERSPECTIVE RHMATRIX4 Matrix4Result, Width, Height, Near, Far
  177. BUILD REFLECTION MATRIX4 Matrix4Result, PlaneA, PlaneB, PlaneC, PlaneD
  178. BUILD ROTATION AXIS MATRIX4 Matrix4Result, Vector3Axis, Angle
  179. COPY MATRIX4 Matrix4Result, Matrix4Source
  180. DIVIDE MATRIX4 Matrix4Result, Value
  181. ReturnFloat = INVERSE MATRIX4(Matrix4Result, Matrix4Source)
  182. ReturnFlag = IS EQUAL MATRIX4(Matrix4A, Matrix4B)
  183. ReturnFlag = IS IDENTITY MATRIX4(Matrix4Result)
  184. MULTIPLY MATRIX4 Matrix4Result, Matrix4A, Matrix4B
  185. MULTIPLY MATRIX4 Matrix4Result, Value
  186. ROTATE X MATRIX4 Matrix4Result, Angle
  187. ROTATE Y MATRIX4 Matrix4Result, Angle
  188. ROTATE YPR MATRIX4 Matrix4Result, Yaw, Pitch, Roll
  189. ROTATE Z MATRIX4 Matrix4Result, Angle
  190. SCALE MATRIX4 Matrix4Result, X, Y, Z
  191. SET IDENTITY MATRIX4 Matrix4Result
  192. SUBTRACT MATRIX4 Matrix4Result, Matrix4A, Matrix4B
  193. TRANSLATE MATRIX4 Matrix4Result, X, Y, Z
  194. TRANSPOSE MATRIX4 Matrix4Result, Matrix4Source
  195.  
  196. rem Delete vectors and matrix
  197. ReturnFlag = delete vector2(Vector2Number)
  198. ReturnFlag = delete vector3(Vector3Number)
  199. ReturnFlag = delete vector4(Vector4Number)
  200. ReturnFlag = delete vector3(Vector3Eye)
  201. ReturnFlag = delete vector3(Vector3At)
  202. ReturnFlag = delete vector3(Vector3Up)
  203. ReturnFlag = delete matrix4(Matrix4Number)
  204. ReturnFlag = delete matrix4(Matrix4Projection)
  205. ReturnFlag = delete matrix4(Matrix4View)
  206. ReturnFlag = delete matrix4(Matrix4World)
  207.  
  208. rem End program
  209. end
  210.