1 /*---------------------------------------------------------------------------*
2   Project: Matrix Vector Library
3   File:    mtxAssert.h
4 
5   Copyright 1998-2001 Nintendo.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   Change History:
14 
15 
16  *---------------------------------------------------------------------------*/
17 
18 
19 #ifndef __MTXASSERT_H__
20 #define __MTXASSERT_H__
21 
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 
28 //---------------------------------------------------------------------------------
29 
30 //     GENERAL   SECTION
31 
32 #define	MTX_IDENTITY_1			"MtxIdentity():  NULL Mtx 'm' "
33 
34 #define	MTX_COPY_1				"MTXCopy():  NULL MtxPtr 'src' "
35 #define MTX_COPY_2				"MTXCopy():  NULL MtxPtr 'dst' "
36 
37 #define	MTX_CONCAT_1			"MTXConcat():  NULL MtxPtr 'a'  "
38 #define	MTX_CONCAT_2			"MTXConcat():  NULL MtxPtr 'b'  "
39 #define	MTX_CONCAT_3			"MTXConcat():  NULL MtxPtr 'ab' "
40 
41 #define	MTX_TRANSPOSE_1			"MTXTranspose():  NULL MtxPtr 'src' "
42 #define	MTX_TRANSPOSE_2			"MTXTranspose():  NULL MtxPtr 'xPose' "
43 
44 #define	MTX_INVERSE_1			"MTXInverse():  NULL MtxPtr 'src' "
45 #define	MTX_INVERSE_2			"MTXInverse():  NULL MtxPtr 'inv' "
46 
47 #define MTX_INVXPOSE_1          "MTXInvXpose(): NULL MtxPtr 'src' "
48 #define MTX_INVXPOSE_2          "MTXInvXpose(): NULL MtxPtr 'invX' "
49 
50 
51 //  MATRIX_VECTOR SECTION
52 
53 #define	MTX_MULTVEC_1			"MTXMultVec():  NULL MtxPtr 'm' "
54 #define	MTX_MULTVEC_2			"MTXMultVec():  NULL VecPtr 'src' "
55 #define	MTX_MULTVEC_3			"MTXMultVec():  NULL VecPtr 'dst' "
56 
57 #define	MTX_MULTVECARRAY_1		"MTXMultVecArray():  NULL MtxPtr 'm' "
58 #define	MTX_MULTVECARRAY_2		"MTXMultVecArray():  NULL VecPtr 'srcBase' "
59 #define	MTX_MULTVECARRAY_3		"MTXMultVecArray():  NULL VecPtr 'dstBase' "
60 #define MTX_MULTVECARRAY_4      "MTXMultVecArray():  count must be greater than 1."
61 
62 
63 #define	MTX_MULTVECSR_1	        "MTXMultVecSR():  NULL MtxPtr 'm' "
64 #define	MTX_MULTVECSR_2	        "MTXMultVecSR():  NULL VecPtr 'src' "
65 #define	MTX_MULTVECSR_3         "MTXMultVecSR():  NULL VecPtr 'dst' "
66 
67 #define	MTX_MULTVECARRAYSR_1	"MTXMultVecArraySR():  NULL MtxPtr 'm' "
68 #define	MTX_MULTVECARRAYSR_2	"MTXMultVecArraySR():  NULL VecPtr 'srcBase' "
69 #define	MTX_MULTVECARRAYSR_3	"MTXMultVecArraySR():  NULL VecPtr 'dstBase' "
70 #define MTX_MULTVECARRAYSR_4    "MTXMultVecArraySR():  count must be greater than 1."
71 
72 
73 //  MODEL  SECTION
74 
75 #define	MTX_ROTRAD_1			"MTXRotRad():  NULL MtxPtr 'm' "
76 
77 #define	MTX_ROTTRIG_1			"MTXRotTrig():  NULL MtxPtr 'm' "
78 #define	MTX_ROTTRIG_2			"MTXRotTrig():  invalid 'axis' value "
79 
80 #define	MTX_ROTAXIS_1			"MTXRotAxisRad():  NULL MtxPtr 'm' "
81 #define	MTX_ROTAXIS_2			"MTXRotAxisRad():  NULL VecPtr 'axis' "
82 
83 #define	MTX_TRANS_1				"MTXTrans():  NULL MtxPtr 'm' "
84 
85 #define MTX_TRANSAPPLY_1        "MTXTransApply(): NULL MtxPtr 'src' "
86 #define MTX_TRANSAPPLY_2        "MTXTransApply(): NULL MtxPtr 'dst' "
87 
88 #define	MTX_SCALE_1				"MTXScale():  NULL MtxPtr 'm' "
89 
90 #define MTX_SCALEAPPLY_1        "MTXScaleApply(): NULL MtxPtr 'src' "
91 #define MTX_SCALEAPPLY_2        "MTXScaleApply(): NULL MtxPtr 'dst' "
92 
93 #define	MTX_QUAT_1				"MTXQuat():  NULL MtxPtr 'm' "
94 #define	MTX_QUAT_2				"MTXQuat():  NULL QuaternionPtr 'q' "
95 #define	MTX_QUAT_3				"MTXQuat():  zero-value quaternion "
96 
97 
98 
99 //  VIEW   SECTION
100 
101 #define	MTX_LOOKAT_1			"MTXLookAt():  NULL MtxPtr 'm' "
102 #define	MTX_LOOKAT_2			"MTXLookAt():  NULL VecPtr 'camPos' "
103 #define	MTX_LOOKAT_3			"MTXLookAt():  NULL VecPtr 'camUp' "
104 #define	MTX_LOOKAT_4			"MTXLookAt():  NULL Point3dPtr 'target' "
105 
106 
107 
108 //  PROJECTION   SECTION
109 
110 #define	MTX_FRUSTUM_1			"MTXFrustum():  NULL Mtx44Ptr 'm' "
111 #define	MTX_FRUSTUM_2			"MTXFrustum():  't' and 'b' clipping planes are equal "
112 #define	MTX_FRUSTUM_3			"MTXFrustum():  'l' and 'r' clipping planes are equal "
113 #define	MTX_FRUSTUM_4			"MTXFrustum():  'n' and 'f' clipping planes are equal "
114 
115 #define	MTX_PERSPECTIVE_1		"MTXPerspective():  NULL Mtx44Ptr 'm' "
116 #define	MTX_PERSPECTIVE_2		"MTXPerspective():  'fovY' out of range "
117 #define	MTX_PERSPECTIVE_3		"MTXPerspective():  'aspect' is 0 "
118 
119 #define	MTX_ORTHO_1				"MTXOrtho():  NULL Mtx44Ptr 'm' "
120 #define	MTX_ORTHO_2				"MTXOrtho():  't' and 'b' clipping planes are equal "
121 #define	MTX_ORTHO_3				"MTXOrtho():  'l' and 'r' clipping planes are equal "
122 #define	MTX_ORTHO_4				"MTXOrtho():  'n' and 'f' clipping planes are equal "
123 
124 
125 
126 //  STACK   SECTION
127 
128 #define	MTX_INITSTACK_1			"MTXInitStack():  NULL MtxStackPtr 'sPtr' "
129 #define	MTX_INITSTACK_2			"MTXInitStack():  'sPtr' contains a NULL ptr to stack memory "
130 #define	MTX_INITSTACK_3			"MTXInitStack():  'numMtx' is 0 "
131 
132 #define	MTX_PUSH_1				"MTXPush():  NULL MtxStackPtr 'sPtr' "
133 #define	MTX_PUSH_2				"MTXPush():  'sPtr' contains a NULL ptr to stack memory "
134 #define	MTX_PUSH_3				"MTXPush():  NULL MtxPtr 'm' "
135 #define	MTX_PUSH_4				"MTXPush():  stack overflow "
136 
137 #define	MTX_PUSHFWD_1			"MTXPushFwd():  NULL MtxStackPtr 'sPtr' "
138 #define	MTX_PUSHFWD_2			"MTXPushFwd():  'sPtr' contains a NULL ptr to stack memory "
139 #define	MTX_PUSHFWD_3			"MTXPushFwd():  NULL MtxPtr 'm' "
140 #define	MTX_PUSHFWD_4			"MTXPushFwd():  stack overflow"
141 
142 #define	MTX_PUSHINV_1			"MTXPushInv():  NULL MtxStackPtr 'sPtr' "
143 #define	MTX_PUSHINV_2			"MTXPushInv():  'sPtr' contains a NULL ptr to stack memory "
144 #define	MTX_PUSHINV_3			"MTXPushInv():  NULL MtxPtr 'm' "
145 #define	MTX_PUSHINV_4			"MTXPushInv():  stack overflow"
146 
147 #define	MTX_PUSHINVXPOSE_1		"MTXPushInvXpose():  NULL MtxStackPtr 'sPtr' "
148 #define	MTX_PUSHINVXPOSE_2		"MTXPushInvXpose():  'sPtr' contains a NULL ptr to stack memory "
149 #define	MTX_PUSHINVXPOSE_3		"MTXPushInvXpose():  NULL MtxPtr 'm' "
150 #define	MTX_PUSHINVXPOSE_4		"MTXPushInvXpose():  stack overflow "
151 
152 #define	MTX_POP_1				"MTXPop():  NULL MtxStackPtr 'sPtr' "
153 #define MTX_POP_2				"MTXPop():  'sPtr' contains a NULL ptr to stack memory "
154 
155 #define	MTX_GETSTACKPTR_1		"MTXGetStackPtr():  NULL MtxStackPtr 'sPtr' "
156 #define	MTX_GETSTACKPTR_2		"MTXGetStackPtr():  'sPtr' contains a NULL ptr to stack memory "
157 
158 
159 
160 //  VECTOR   SECTION
161 
162 #define	VEC_ADD_1				"VECAdd():  NULL VecPtr 'a' "
163 #define	VEC_ADD_2				"VECAdd():  NULL VecPtr 'b' "
164 #define	VEC_ADD_3				"VECAdd():  NULL VecPtr 'ab' "
165 
166 #define	VEC_SUBTRACT_1			"VECSubtract():  NULL VecPtr 'a' "
167 #define	VEC_SUBTRACT_2			"VECSubtract():  NULL VecPtr 'b' "
168 #define	VEC_SUBTRACT_3			"VECSubtract():  NULL VecPtr 'a_b' "
169 
170 #define	VEC_SCALE_1				"VECScale():  NULL VecPtr 'src' "
171 #define	VEC_SCALE_2				"VECScale():  NULL VecPtr 'dst' "
172 
173 #define	VEC_NORMALIZE_1			"VECNormalize():  NULL VecPtr 'src' "
174 #define	VEC_NORMALIZE_2			"VECNormalize():  NULL VecPtr 'unit' "
175 #define	VEC_NORMALIZE_3			"VECNormalize():  zero magnitude vector "
176 
177 #define	VEC_MAG_1				"VECMag():  NULL VecPtr 'v' "
178 
179 
180 #define	VEC_REFLECT_1			"VECReflect():  NULL VecPtr 'src' "
181 #define	VEC_REFLECT_2			"VECReflect():  NULL VecPtr 'normal' "
182 #define	VEC_REFLECT_3			"VECReflect():  NULL VecPtr 'dst' "
183 
184 #define	VEC_DOTPRODUCT_1		"VECDotProduct():  NULL VecPtr 'a' "
185 #define	VEC_DOTPRODUCT_2		"VECDotProduct():  NULL VecPtr 'b' "
186 
187 #define	VEC_CROSSPRODUCT_1		"VECCrossProduct():  NULL VecPtr 'a' "
188 #define	VEC_CROSSPRODUCT_2		"VECCrossProduct():  NULL VecPtr 'b' "
189 #define	VEC_CROSSPRODUCT_3		"VECCrossProduct():  NULL VecPtr 'axb' "
190 
191 #define	VEC_HALFANGLE_1			"VECHalfAngle():  NULL VecPtr 'a' "
192 #define	VEC_HALFANGLE_2			"VECHalfAngle():  NULL VecPtr 'b' "
193 #define	VEC_HALFANGLE_3			"VECHalfAngle():  NULL VecPtr 'half' "
194 
195 
196 //  QUATERNION SECTION
197 
198 #define	QUAT_ADD_1              "QUATAdd():  NULL QuaternionPtr 'p' "
199 #define	QUAT_ADD_2              "QUATAdd():  NULL QuaternionPtr 'q' "
200 #define	QUAT_ADD_3              "QUATAdd():  NULL QuaternionPtr 'r' "
201 
202 #define	QUAT_SUBTRACT_1         "QUATSubtract():  NULL QuaternionPtr 'p' "
203 #define	QUAT_SUBTRACT_2         "QUATSubtract():  NULL QuaternionPtr 'q' "
204 #define	QUAT_SUBTRACT_3         "QUATSubtract():  NULL QuaternionPtr 'r' "
205 
206 #define	QUAT_MULTIPLY_1         "QUATMultiply():  NULL QuaternionPtr 'p' "
207 #define	QUAT_MULTIPLY_2         "QUATMultiply():  NULL QuaternionPtr 'q' "
208 #define	QUAT_MULTIPLY_3         "QUATMultiply():  NULL QuaternionPtr 'pq' "
209 
210 #define	QUAT_DIVIDE_1           "QUATDivide():  NULL QuaternionPtr 'p' "
211 #define	QUAT_DIVIDE_2           "QUATDivide():  NULL QuaternionPtr 'q' "
212 #define	QUAT_DIVIDE_3           "QUATDivide():  NULL QuaternionPtr 'r' "
213 
214 #define	QUAT_SCALE_1            "QUATScale():  NULL QuaternionPtr 'q' "
215 #define	QUAT_SCALE_2            "QUATScale():  NULL QuaternionPtr 'r' "
216 
217 #define	QUAT_DOTPRODUCT_1       "QUATDotProduct():  NULL QuaternionPtr 'p' "
218 #define	QUAT_DOTPRODUCT_2       "QUATDotProduct():  NULL QuaternionPtr 'q' "
219 
220 #define	QUAT_NORMALIZE_1        "QUATNormalize():  NULL QuaternionPtr 'src' "
221 #define	QUAT_NORMALIZE_2        "QUATNormalize():  NULL QuaternionPtr 'unit' "
222 
223 #define	QUAT_INVERSE_1          "QUATInverse():  NULL QuaternionPtr 'src' "
224 #define	QUAT_INVERSE_2          "QUATInverse():  NULL QuaternionPtr 'inv' "
225 
226 #define	QUAT_EXP_1              "QUATExp():  NULL QuaternionPtr 'q' "
227 #define	QUAT_EXP_2              "QUATExp():  NULL QuaternionPtr 'r' "
228 #define	QUAT_EXP_3              "QUATExp():  'q' is not a pure quaternion. "
229 
230 #define	QUAT_LOGN_1             "QUATLogN():  NULL QuaternionPtr 'q' "
231 #define	QUAT_LOGN_2             "QUATLogN():  NULL QuaternionPtr 'r' "
232 #define	QUAT_LOGN_3             "QUATLogN():  'q' is not a unit quaternion. "
233 
234 #define	QUAT_MAKECLOSEST_1      "QUATMakeClosest():  NULL QuaternionPtr 'q' "
235 #define	QUAT_MAKECLOSEST_2      "QUATMakeClosest():  NULL QuaternionPtr 'qto' "
236 #define	QUAT_MAKECLOSEST_3      "QUATMakeClosest():  NULL QuaternionPtr 'r' "
237 
238 #define	QUAT_ROTAXISRAD_1       "QUATRotAxisRad():  NULL QuaternionPtr 'r' "
239 #define	QUAT_ROTAXISRAD_2       "QUATRotAxisRad():  NULL VecPtr 'axis' "
240 
241 #define	QUAT_MTX_1              "QUATMtx():  NULL QuaternionPtr 'r' "
242 #define	QUAT_MTX_2              "QUATMtx():  NULL MtxPtr 'm' "
243 
244 #define	QUAT_LERP_1             "QUATLerp():  NULL QuaternionPtr 'p' "
245 #define	QUAT_LERP_2             "QUATLerp():  NULL QuaternionPtr 'q' "
246 #define	QUAT_LERP_3             "QUATLerp():  NULL QuaternionPtr 'r' "
247 
248 #define	QUAT_SLERP_1            "QUATSlerp():  NULL QuaternionPtr 'p' "
249 #define	QUAT_SLERP_2            "QUATSlerp():  NULL QuaternionPtr 'q' "
250 #define	QUAT_SLERP_3            "QUATSlerp():  NULL QuaternionPtr 'r' "
251 
252 #define	QUAT_SQUAD_1            "QUATSquad():  NULL QuaternionPtr 'p' "
253 #define	QUAT_SQUAD_2            "QUATSquad():  NULL QuaternionPtr 'a' "
254 #define	QUAT_SQUAD_3            "QUATSquad():  NULL QuaternionPtr 'b' "
255 #define	QUAT_SQUAD_4            "QUATSquad():  NULL QuaternionPtr 'q' "
256 #define	QUAT_SQUAD_5            "QUATSquad():  NULL QuaternionPtr 'r' "
257 
258 #define	QUAT_COMPA_1            "QUATCompA():  NULL QuaternionPtr 'qprev' "
259 #define	QUAT_COMPA_2            "QUATCompA():  NULL QuaternionPtr 'q' "
260 #define	QUAT_COMPA_3            "QUATCompA():  NULL QuaternionPtr 'qnext' "
261 #define	QUAT_COMPA_4            "QUATCompA():  NULL QuaternionPtr 'a' "
262 
263 
264 //	Texture Projection Section
265 
266 #define	MTX_LIGHT_FRUSTUM_1		"MTXLightFrustum():  NULL MtxPtr 'm' "
267 #define	MTX_LIGHT_FRUSTUM_2		"MTXLightFrustum():  't' and 'b' clipping planes are equal "
268 #define	MTX_LIGHT_FRUSTUM_3		"MTXLightFrustum():  'l' and 'r' clipping planes are equal "
269 #define	MTX_LIGHT_FRUSTUM_4		"MTXLightFrustum():  'n' and 'f' clipping planes are equal "
270 
271 #define	MTX_LIGHT_PERSPECTIVE_1	"MTXLightPerspective():  NULL MtxPtr 'm' "
272 #define	MTX_LIGHT_PERSPECTIVE_2	"MTXLightPerspective():  'fovY' out of range "
273 #define	MTX_LIGHT_PERSPECTIVE_3	"MTXLightPerspective():  'aspect' is 0 "
274 
275 #define	MTX_LIGHT_ORTHO_1		"MTXLightOrtho():  NULL MtxPtr 'm' "
276 #define	MTX_LIGHT_ORTHO_2		"MTXLightOrtho():  't' and 'b' clipping planes are equal "
277 #define	MTX_LIGHT_ORTHO_3		"MTXLightOrtho():  'l' and 'r' clipping planes are equal "
278 
279 //---------------------------------------------------------------------------------
280 
281 #ifdef __cplusplus
282 }
283 #endif
284 
285 #endif // __MTXASSERT_H__
286 
287