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