Lines Matching refs:vec
116 static inline void matrix4_mulVec(float* mat, float* vec) {
117 float x = vec[0] * mat[M00] + vec[1] * mat[M01] + vec[2] * mat[M02] + mat[M03];
118 float y = vec[0] * mat[M10] + vec[1] * mat[M11] + vec[2] * mat[M12] + mat[M13];
119 float z = vec[0] * mat[M20] + vec[1] * mat[M21] + vec[2] * mat[M22] + mat[M23];
120 vec[0] = x;
121 vec[1] = y;
122 vec[2] = z;
125 static inline void matrix4_proj(float* mat, float* vec) {
126 float inv_w = 1.0f / (vec[0] * mat[M30] + vec[1] * mat[M31] + vec[2] * mat[M32] + mat[M33]);
127 float x = (vec[0] * mat[M00] + vec[1] * mat[M01] + vec[2] * mat[M02] + mat[M03]) * inv_w;
128 float y = (vec[0] * mat[M10] + vec[1] * mat[M11] + vec[2] * mat[M12] + mat[M13]) * inv_w;
129 float z = (vec[0] * mat[M20] + vec[1] * mat[M21] + vec[2] * mat[M22] + mat[M23]) * inv_w;
130 vec[0] = x;
131 vec[1] = y;
132 vec[2] = z;
135 static inline void matrix4_rot(float* mat, float* vec) {
136 float x = vec[0] * mat[M00] + vec[1] * mat[M01] + vec[2] * mat[M02];
137 float y = vec[0] * mat[M10] + vec[1] * mat[M11] + vec[2] * mat[M12];
138 float z = vec[0] * mat[M20] + vec[1] * mat[M21] + vec[2] * mat[M22];
139 vec[0] = x;
140 vec[1] = y;
141 vec[2] = z;
159 float* vec = (float*)env->GetPrimitiveArrayCritical(obj_vec, 0);
164 matrix4_mulVec(mat, vec);
167 env->ReleasePrimitiveArrayCritical(obj_vec, vec, 0);
191 float* vec = (float*)env->GetPrimitiveArrayCritical(obj_vec, 0);
196 matrix4_proj(mat, vec);
199 env->ReleasePrimitiveArrayCritical(obj_vec, vec, 0);
223 float* vec = (float*)env->GetPrimitiveArrayCritical(obj_vec, 0);
228 matrix4_rot(mat, vec);
231 env->ReleasePrimitiveArrayCritical(obj_vec, vec, 0);