Changeset 5430 in orxonox.OLD for trunk/src/lib/collision_detection
- Timestamp:
- Oct 24, 2005, 9:21:15 PM (19 years ago)
- Location:
- trunk/src/lib/collision_detection
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/collision_detection/obb_tree_node.cc
r5429 r5430 37 37 OBBTree* OBBTreeNode::obbTree = NULL; 38 38 39 float** OBBTreeNode::coMat = NULL; 40 float** OBBTreeNode::eigvMat = NULL; 41 float* OBBTreeNode::eigvlMat = NULL; 42 int* OBBTreeNode::rotCount = NULL; 39 float** OBBTreeNode_coMat = NULL; 40 float** OBBTreeNode_eigvMat = NULL; 41 float* OBBTreeNode_eigvlMat = NULL; 42 int* OBBTreeNode_rotCount = NULL; 43 GLUquadricObj* OBBTreeNode_sphereObj = NULL; 43 44 44 45 /** … … 52 53 this->bvElement = NULL; 53 54 54 if( coMat == NULL)55 { 56 coMat = new float*[4];55 if(OBBTreeNode_coMat == NULL) 56 { 57 OBBTreeNode_coMat = new float*[4]; 57 58 for(int i = 0; i < 4; i++) 58 coMat[i] = new float[4];59 } 60 if( eigvMat == NULL)61 { 62 eigvMat = new float*[4];59 OBBTreeNode_coMat[i] = new float[4]; 60 } 61 if(OBBTreeNode_eigvMat == NULL) 62 { 63 OBBTreeNode_eigvMat = new float*[4]; 63 64 for(int i = 0; i < 4; i++) 64 eigvMat[i] = new float[4]; 65 } 66 if( eigvlMat == NULL) 67 { 68 eigvlMat = new float[4]; 69 } 70 if( rotCount == NULL) 71 rotCount = new int; 72 73 this->sphereObj = gluNewQuadric(); 65 OBBTreeNode_eigvMat[i] = new float[4]; 66 } 67 if( OBBTreeNode_eigvlMat == NULL) 68 { 69 OBBTreeNode_eigvlMat = new float[4]; 70 } 71 if( OBBTreeNode_rotCount == NULL) 72 OBBTreeNode_rotCount = new int; 73 74 if (OBBTreeNode_sphereObj == NULL) 75 OBBTreeNode_sphereObj = gluNewQuadric(); 74 76 } 75 77 … … 358 360 Vector* axis = new Vector[3]; //!< the references to the obb axis 359 361 360 coMat[1][1] = box->covarianceMatrix[0][0]; coMat[1][2] = box->covarianceMatrix[0][1];coMat[1][3] = box->covarianceMatrix[0][2];361 coMat[2][1] = box->covarianceMatrix[1][0]; coMat[2][2] = box->covarianceMatrix[1][1];coMat[2][3] = box->covarianceMatrix[1][2];362 coMat[3][1] = box->covarianceMatrix[2][0]; coMat[3][2] = box->covarianceMatrix[2][1];coMat[3][3] = box->covarianceMatrix[2][2];362 OBBTreeNode_coMat[1][1] = box->covarianceMatrix[0][0]; OBBTreeNode_coMat[1][2] = box->covarianceMatrix[0][1]; OBBTreeNode_coMat[1][3] = box->covarianceMatrix[0][2]; 363 OBBTreeNode_coMat[2][1] = box->covarianceMatrix[1][0]; OBBTreeNode_coMat[2][2] = box->covarianceMatrix[1][1]; OBBTreeNode_coMat[2][3] = box->covarianceMatrix[1][2]; 364 OBBTreeNode_coMat[3][1] = box->covarianceMatrix[2][0]; OBBTreeNode_coMat[3][2] = box->covarianceMatrix[2][1]; OBBTreeNode_coMat[3][3] = box->covarianceMatrix[2][2]; 363 365 364 366 // OBBTreeNode::coMat[0][0] = box->covarianceMatrix[0][0]; … … 376 378 377 379 /* new jacobi tests */ 378 JacobI(OBBTreeNode ::coMat, 3, eigvlMat, eigvMat,rotCount);380 JacobI(OBBTreeNode_coMat, 3, OBBTreeNode_eigvlMat, OBBTreeNode_eigvMat, OBBTreeNode_rotCount); 379 381 PRINTF(3)("-- Done Jacobi Decomposition\n"); 380 382 … … 386 388 // for(int k = 1; k < 4; ++k) 387 389 // { 388 // PRINTF(3)(" \b%f ", eigvMat[j][k]);390 // PRINTF(3)(" \b%f ", OBBTreeNode_OBBTreeNode_eigvMat[j][k]); 389 391 // } 390 392 // PRINTF(3)(" |\n"); 391 393 // } 392 394 393 axis[0].x = eigvMat[1][1]; axis[0].y = eigvMat[2][1]; axis[0].z =eigvMat[3][1];394 axis[1].x = eigvMat[1][2]; axis[1].y = eigvMat[2][2]; axis[1].z =eigvMat[3][2];395 axis[2].x = eigvMat[1][3]; axis[2].y = eigvMat[2][3]; axis[2].z =eigvMat[3][3];395 axis[0].x = OBBTreeNode_eigvMat[1][1]; axis[0].y = OBBTreeNode_eigvMat[2][1]; axis[0].z = OBBTreeNode_eigvMat[3][1]; 396 axis[1].x = OBBTreeNode_eigvMat[1][2]; axis[1].y = OBBTreeNode_eigvMat[2][2]; axis[1].z = OBBTreeNode_eigvMat[3][2]; 397 axis[2].x = OBBTreeNode_eigvMat[1][3]; axis[2].y = OBBTreeNode_eigvMat[2][3]; axis[2].z = OBBTreeNode_eigvMat[3][3]; 396 398 axis[0].normalize(); 397 399 axis[1].normalize(); … … 815 817 glPushMatrix(); 816 818 glTranslatef(this->bvElement->vertices[i][0], this->bvElement->vertices[i][1], this->bvElement->vertices[i][2]); 817 gluSphere( this->sphereObj, 0.1, 10, 10);819 gluSphere(OBBTreeNode_sphereObj, 0.1, 10, 10); 818 820 glPopMatrix(); 819 821 } -
trunk/src/lib/collision_detection/obb_tree_node.h
r5427 r5430 69 69 int tmpLen1; //!< len vert data obbox1 70 70 int tmpLen2; //!< len vert data obbox2 71 72 static float** coMat; //!< temp covariance matrice save place - consumes less mem73 static float** eigvMat; //!< temp eigenvector matrice save place74 static float* eigvlMat; //!< temp eigenvalue vector save place75 static int* rotCount; //!< temp rotations count save place: how many givens-rotations where needed to transform the matrix :)76 77 GLUquadricObj* sphereObj;78 71 }; 79 72
Note: See TracChangeset
for help on using the changeset viewer.