Changes in src/unittests/PlaneUnittest.cpp [407782:3dcb1f]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/unittests/PlaneUnittest.cpp
r407782 r3dcb1f 24 24 25 25 void PlaneUnittest::setUp(){ 26 p1 = new Plane( unitVec[0],unitVec[1],unitVec[2]);27 p2 = new Plane( unitVec[0],unitVec[1],zeroVec);28 p3 = new Plane( unitVec[0],zeroVec,unitVec[2]);29 p4 = new Plane(zeroVec, unitVec[1],unitVec[2]);26 p1 = new Plane(e1,e2,e3); 27 p2 = new Plane(e1,e2,zeroVec); 28 p3 = new Plane(e1,zeroVec,e3); 29 p4 = new Plane(zeroVec,e2,e3); 30 30 } 31 31 … … 42 42 43 43 // three points 44 CPPUNIT_ASSERT_NO_THROW(Plane( unitVec[0],unitVec[1],unitVec[2]));44 CPPUNIT_ASSERT_NO_THROW(Plane(e1,e2,e3)); 45 45 // when only two points are differnt this gives an error 46 CPPUNIT_ASSERT_THROW(Plane( unitVec[0],unitVec[1],unitVec[1]),LinearDependenceException);46 CPPUNIT_ASSERT_THROW(Plane(e1,e2,e2),LinearDependenceException); 47 47 // same with only one point 48 CPPUNIT_ASSERT_THROW(Plane( unitVec[0],unitVec[0],unitVec[0]),LinearDependenceException);48 CPPUNIT_ASSERT_THROW(Plane(e1,e1,e1),LinearDependenceException); 49 49 50 50 // use two vector giving two directions 51 CPPUNIT_ASSERT_NO_THROW(Plane( unitVec[0],unitVec[1],0));51 CPPUNIT_ASSERT_NO_THROW(Plane(e1,e2,0)); 52 52 // and again this is actually only one vector 53 CPPUNIT_ASSERT_THROW(Plane( unitVec[0],unitVec[0],0),LinearDependenceException);53 CPPUNIT_ASSERT_THROW(Plane(e1,e1,0),LinearDependenceException); 54 54 // Zero vector does not give a good direction 55 CPPUNIT_ASSERT_THROW(Plane( unitVec[0],zeroVec,0),ZeroVectorException);55 CPPUNIT_ASSERT_THROW(Plane(e1,zeroVec,0),ZeroVectorException); 56 56 57 57 // use a normalvector and an scalar offset 58 CPPUNIT_ASSERT_NO_THROW(Plane( unitVec[0],0));58 CPPUNIT_ASSERT_NO_THROW(Plane(e1,0)); 59 59 // The zero vector is no good as a normalvector 60 60 CPPUNIT_ASSERT_THROW(Plane(zeroVec,0),ZeroVectorException); 61 61 62 62 // use a normalvector and an offset vector 63 CPPUNIT_ASSERT_NO_THROW(Plane( unitVec[0],zeroVec));63 CPPUNIT_ASSERT_NO_THROW(Plane(e1,zeroVec)); 64 64 // and the bad zeroVector again 65 65 CPPUNIT_ASSERT_THROW(Plane(zeroVec,zeroVec),ZeroVectorException); … … 75 75 { 76 76 // construct with three points on plane 77 Plane p1( unitVec[0],unitVec[1],zeroVec);78 CPPUNIT_ASSERT(testNormal( unitVec[2],p1.getNormal()));77 Plane p1(e1,e2,zeroVec); 78 CPPUNIT_ASSERT(testNormal(e3,p1.getNormal())); 79 79 CPPUNIT_ASSERT_EQUAL(0.,p1.getOffset()); 80 80 81 Plane p2( unitVec[0],unitVec[2],zeroVec);82 CPPUNIT_ASSERT(testNormal( unitVec[1],p2.getNormal()));81 Plane p2(e1,e3,zeroVec); 82 CPPUNIT_ASSERT(testNormal(e2,p2.getNormal())); 83 83 CPPUNIT_ASSERT_EQUAL(0.,p2.getOffset()); 84 84 85 Plane p3( unitVec[1],unitVec[2],zeroVec);86 CPPUNIT_ASSERT(testNormal( unitVec[0],p3.getNormal()));85 Plane p3(e2,e3,zeroVec); 86 CPPUNIT_ASSERT(testNormal(e1,p3.getNormal())); 87 87 CPPUNIT_ASSERT_EQUAL(0.,p3.getOffset()); 88 88 } 89 89 { 90 90 // construct with two directions + offset 91 Plane p1( unitVec[0],unitVec[1],0);92 CPPUNIT_ASSERT(testNormal( unitVec[2],p1.getNormal()));91 Plane p1(e1,e2,0); 92 CPPUNIT_ASSERT(testNormal(e3,p1.getNormal())); 93 93 CPPUNIT_ASSERT_EQUAL(0.,p1.getOffset()); 94 94 95 Plane p2( unitVec[0],unitVec[2],0);96 CPPUNIT_ASSERT(testNormal( unitVec[1],p2.getNormal()));95 Plane p2(e1,e3,0); 96 CPPUNIT_ASSERT(testNormal(e2,p2.getNormal())); 97 97 CPPUNIT_ASSERT_EQUAL(0.,p2.getOffset()); 98 98 99 Plane p3( unitVec[1],unitVec[2],0);100 CPPUNIT_ASSERT(testNormal( unitVec[0],p3.getNormal()));99 Plane p3(e2,e3,0); 100 CPPUNIT_ASSERT(testNormal(e1,p3.getNormal())); 101 101 CPPUNIT_ASSERT_EQUAL(0.,p3.getOffset()); 102 102 } … … 145 145 void PlaneUnittest::operationsTest(){ 146 146 { 147 Vector t = (1./3.)*( unitVec[0]+unitVec[1]+unitVec[2]);147 Vector t = (1./3.)*(e1+e2+e3); 148 148 CPPUNIT_ASSERT(fabs(p1->distance(zeroVec)-t.Norm()) < MYEPSILON); 149 149 CPPUNIT_ASSERT_EQUAL(t,p1->getClosestPoint(zeroVec)); 150 150 } 151 151 152 CPPUNIT_ASSERT(fabs(p2->distance( unitVec[2])-1) < MYEPSILON);153 CPPUNIT_ASSERT_EQUAL(zeroVec,p2->getClosestPoint( unitVec[2]));154 CPPUNIT_ASSERT(fabs(p3->distance( unitVec[1])-1) < MYEPSILON);155 CPPUNIT_ASSERT_EQUAL(zeroVec,p3->getClosestPoint( unitVec[1]));156 CPPUNIT_ASSERT(fabs(p4->distance( unitVec[0])-1) < MYEPSILON);157 CPPUNIT_ASSERT_EQUAL(zeroVec,p4->getClosestPoint( unitVec[0]));152 CPPUNIT_ASSERT(fabs(p2->distance(e3)-1) < MYEPSILON); 153 CPPUNIT_ASSERT_EQUAL(zeroVec,p2->getClosestPoint(e3)); 154 CPPUNIT_ASSERT(fabs(p3->distance(e2)-1) < MYEPSILON); 155 CPPUNIT_ASSERT_EQUAL(zeroVec,p3->getClosestPoint(e2)); 156 CPPUNIT_ASSERT(fabs(p4->distance(e1)-1) < MYEPSILON); 157 CPPUNIT_ASSERT_EQUAL(zeroVec,p4->getClosestPoint(e1)); 158 158 } 159 159 … … 162 162 163 163 // some Vectors that lie on the planes 164 fixture = p1->mirrorVector( unitVec[0]);165 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[0]);166 fixture = p1->mirrorVector( unitVec[1]);167 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[1]);168 fixture = p1->mirrorVector( unitVec[2]);169 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[2]);164 fixture = p1->mirrorVector(e1); 165 CPPUNIT_ASSERT_EQUAL(fixture,e1); 166 fixture = p1->mirrorVector(e2); 167 CPPUNIT_ASSERT_EQUAL(fixture,e2); 168 fixture = p1->mirrorVector(e3); 169 CPPUNIT_ASSERT_EQUAL(fixture,e3); 170 170 171 171 fixture = p2->mirrorVector(zeroVec); 172 172 CPPUNIT_ASSERT_EQUAL(fixture,zeroVec); 173 fixture = p2->mirrorVector( unitVec[0]);174 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[0]);175 fixture = p2->mirrorVector( unitVec[1]);176 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[1]);173 fixture = p2->mirrorVector(e1); 174 CPPUNIT_ASSERT_EQUAL(fixture,e1); 175 fixture = p2->mirrorVector(e2); 176 CPPUNIT_ASSERT_EQUAL(fixture,e2); 177 177 178 178 fixture = p3->mirrorVector(zeroVec); 179 179 CPPUNIT_ASSERT_EQUAL(fixture,zeroVec); 180 fixture = p3->mirrorVector( unitVec[0]);181 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[0]);182 fixture = p3->mirrorVector( unitVec[2]);183 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[2]);180 fixture = p3->mirrorVector(e1); 181 CPPUNIT_ASSERT_EQUAL(fixture,e1); 182 fixture = p3->mirrorVector(e3); 183 CPPUNIT_ASSERT_EQUAL(fixture,e3); 184 184 185 185 fixture = p4->mirrorVector(zeroVec); 186 186 CPPUNIT_ASSERT_EQUAL(fixture,zeroVec); 187 fixture = p4->mirrorVector( unitVec[1]);188 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[1]);189 fixture = p4->mirrorVector( unitVec[2]);190 CPPUNIT_ASSERT_EQUAL(fixture, unitVec[2]);187 fixture = p4->mirrorVector(e2); 188 CPPUNIT_ASSERT_EQUAL(fixture,e2); 189 fixture = p4->mirrorVector(e3); 190 CPPUNIT_ASSERT_EQUAL(fixture,e3); 191 191 192 192 // some Vectors outside of the planes 193 193 { 194 Vector t = (2./3.)*( unitVec[0]+unitVec[1]+unitVec[2]);194 Vector t = (2./3.)*(e1+e2+e3); 195 195 fixture = p1->mirrorVector(zeroVec); 196 196 CPPUNIT_ASSERT_EQUAL(fixture,t); 197 197 } 198 198 199 fixture = p2->mirrorVector( unitVec[2]);200 CPPUNIT_ASSERT_EQUAL(fixture,-1* unitVec[2]);201 fixture = p3->mirrorVector( unitVec[1]);202 CPPUNIT_ASSERT_EQUAL(fixture,-1* unitVec[1]);203 fixture = p4->mirrorVector( unitVec[0]);204 CPPUNIT_ASSERT_EQUAL(fixture,-1* unitVec[0]);199 fixture = p2->mirrorVector(e3); 200 CPPUNIT_ASSERT_EQUAL(fixture,-1*e3); 201 fixture = p3->mirrorVector(e2); 202 CPPUNIT_ASSERT_EQUAL(fixture,-1*e2); 203 fixture = p4->mirrorVector(e1); 204 CPPUNIT_ASSERT_EQUAL(fixture,-1*e1); 205 205 } 206 206 … … 209 209 // plane at (0,0,0) normal to (1,0,0) cuts line from (0,0,0) to (2,1,0) at ??? 210 210 Line l1 = makeLineThrough(zeroVec,Vector(2,1,0)); 211 CPPUNIT_ASSERT_NO_THROW(fixture = Plane( unitVec[0], zeroVec).GetIntersection(l1) );211 CPPUNIT_ASSERT_NO_THROW(fixture = Plane(e1, zeroVec).GetIntersection(l1) ); 212 212 CPPUNIT_ASSERT_EQUAL( zeroVec, fixture ); 213 213 214 214 // plane at (2,1,0) normal to (0,1,0) cuts line from (1,0,0) to (0,1,1) at ??? 215 Line l2 = makeLineThrough( unitVec[0],Vector(0,1,1));216 CPPUNIT_ASSERT_NO_THROW(fixture = Plane( unitVec[1], Vector(2,1,0)).GetIntersection(l2) );215 Line l2 = makeLineThrough(e1,Vector(0,1,1)); 216 CPPUNIT_ASSERT_NO_THROW(fixture = Plane(e2, Vector(2,1,0)).GetIntersection(l2) ); 217 217 CPPUNIT_ASSERT_EQUAL( Vector(0., 1., 1.), fixture ); 218 218 }
Note:
See TracChangeset
for help on using the changeset viewer.