41 Ntilda(0, 0) = Ntilda(1, 1) = Ntilda(2, 2) = 0.0f;
51 const real sinAngle = (
real)sin((iAngle / 180.0f) *
M_PI);
55 Matrix33r NC(Ntilda2 * (1.0f - cosAngle));
64 for (
int i = 0; i < 3; i++) {
65 for (
int j = 0; j < 3; j++) {
72 _Matrix = mat_tmp * R4;
87 _Matrix = mat_tmp * iMatrix;
100 v.visitNodeTransform(*
this);
102 v.visitNodeTransformBefore(*
this);
103 for (vector<Node *>::iterator node =
_Children.begin(), end =
_Children.end(); node != end;
108 v.visitNodeTransformAfter(*
this);
119 box[1] =
HVec3r(oldMax[0], oldMin[1], oldMin[2]);
120 box[2] =
HVec3r(oldMax[0], oldMax[1], oldMin[2]);
121 box[3] =
HVec3r(oldMin[0], oldMax[1], oldMin[2]);
122 box[4] =
HVec3r(oldMin[0], oldMin[1], oldMax[2]);
123 box[5] =
HVec3r(oldMax[0], oldMin[1], oldMax[2]);
124 box[6] =
HVec3r(oldMax[0], oldMax[1], oldMax[2]);
125 box[7] =
HVec3r(oldMin[0], oldMax[1], oldMax[2]);
130 for (i = 0; i < 8; i++) {
131 tbox[i] = _Matrix * box[i];
134 Vec3r newMin(tbox[0]);
135 Vec3r newMax(tbox[0]);
136 for (i = 0; i < 8; i++) {
137 for (
uint j = 0; j < 3; j++) {
138 if (newMin[j] > tbox[i][j]) {
139 newMin[j] = tbox[i][j];
141 if (newMax[j] < tbox[i][j]) {
142 newMax[j] = tbox[i][j];
154 for (
uint j = 0; j < 3; j++) {
156 for (
uint i = 0; i < 3; i++) {
157 norm +=
M(i, j) *
M(i, j);
159 if ((
norm > 1.01) || (
norm < 0.99)) {
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE btScalar norm() const
Return the norm (length) of the vector.
const Point & getMin() const
const Point & getMax() const
vector< Node * > _Children
virtual void AddBBox(const BBox< Vec3r > &iBox)
static SquareMatrix< T, N > identity()
ccl_device_inline float3 cos(float3 v)
VecMat::HVec3< real > HVec3r