Version: 6.3.1
Public Member Functions | Private Types | Private Member Functions

INTERP_TEST.TransformedTriangleIntersectTest Class Reference

Class testing the intersection detection methods of TransformedTriangle. More...

#include <TransformedTriangleIntersectTest.hxx>

Inheritance diagram for INTERP_TEST.TransformedTriangleIntersectTest:
Inheritance graph

Public Member Functions

void testTriangle1 ()
 Key to triangle descriptions : CI = Triangle corner contained in tetrahedron COH = Triangle corner on h = 0 face of tetrahedron CAH = Triangle corner above h = 0 face of tetrahedron in z-direction SF = Segment - facet intersection SE = Segment - edge intersection SC = Segment - corner intersection SHS = Segment - halfstrip intersection SR = Segment - ray intersection TE = Tetrahedron edge intersects triangle (surface - edge intersection) TR = Surface - ray intersection.
void testTriangle2 ()
 Triangle 2 has the following intersections.
void testTriangle3 ()
 Triangle 3 has the following intersections.
void testTriangle4 ()
 Triangle 4 has the following intersections.
void testTriangle5 ()
 Triangle 5 has the following intersections.
void testTriangle6 ()
 Triangle 6 has the following intersections.
void testTriangle7 ()
 Triangle 7 has the following intersections.
void testTriangle8 ()
 Triangle 8 has the following intersections.
void testTriangle9 ()
 Triangle 9 has the following intersections.
void testTriangle10 ()
 Triangle 10 has the following intersections.
void testTriangle11 ()
 Triangle 11 has the following intersections.
void testTriangle12 ()
 Triangle 12 has the following intersections.
void testTriangle13 ()
 Triangle 13 has the following intersections.

Private Types

typedef
INTERP_KERNEL::TransformedTriangle::TriSegment 
TriSegment
typedef
INTERP_KERNEL::TransformedTriangle::DoubleProduct 
DoubleProduct

Private Member Functions

 CPPUNIT_TEST_SUITE (TransformedTriangleIntersectTest)
 CPPUNIT_TEST (testTriangle1)
 CPPUNIT_TEST (testTriangle2)
 CPPUNIT_TEST (testTriangle3)
 CPPUNIT_TEST (testTriangle4)
 CPPUNIT_TEST (testTriangle5)
 CPPUNIT_TEST (testTriangle6)
 CPPUNIT_TEST (testTriangle7)
 CPPUNIT_TEST (testTriangle8)
 CPPUNIT_TEST (testTriangle9)
 CPPUNIT_TEST (testTriangle10)
 CPPUNIT_TEST (testTriangle11)
 CPPUNIT_TEST (testTriangle12)
 CPPUNIT_TEST (testTriangle13)
 CPPUNIT_TEST_SUITE_END ()

Detailed Description

Class testing the intersection detection methods of TransformedTriangle.

This class contains unit tests for the intersection methods of the TransformedTriangle class.

Each method in the class runs all the intersection tests with some triangle. The goal is to cover all the different types of intersections between a triangle and a tetrahedron. The table below gives a a summary of what is being tested. Before each method, there is also a summary of what how the triangle in the method intersects the unit tetrahedron.

Since performing all tests would require a large number of triangles, we have limited our coverage to be such that each column and each row in the table below has at least one entry for each type of intersection. The intersection forumlae are totally symmetric with respect to changing the segment (PQ, QR, or RP) of the triangle, so they only enter in a very simple way in the code. Testing all these cases is therefore of low priority.

Intersections tested (number indicates first triangle which contains the intersection):

      -----------------------------------------------------------------------------------------------------
      CI  ->  P: 3      Q: 4     R: 7
      COH ->  P: 9      Q: 8     R: 10
      CAH ->  P: 4      Q: 10    R: 9
      -----------------------------------------------------------------------------------------------------
      SF  ->  (PQ, OZX) : 1   (PQ, OYZ) : 2   (PQ, OXY) : 1   (PQ, XYZ) : 3
          ->  (QR, OZX) : 8   (QR, OYZ) : -   (QR, OXY) : 4   (QR, XYZ) : 7
          ->  (RP, OZX) : 1   (RP, OYZ) : 3   (RP, OXY) : 7   (RP, XYZ) : 1
      -----------------------------------------------------------------------------------------------------
      SE  ->  (PQ, OX)  : 11  (PQ, OY)  : -   (PQ, OZ)  : 12  (PQ, XY)  : 2   (PQ, ZX)  : -  (PQ, YZ)  : 10
          ->  (QR, OX)  : -   (QR, OY)  : -   (QR, OZ)  : -   (QR, XY)  : -   (QR, ZX)  : 9  (QR, YZ)  : -
          ->  (RP, OX)  : -   (RP, OY)  : 12  (RP, OZ)  : -   (RP, XY)  : -   (RP, ZX)  : -  (RP, YZ)  : -
      -----------------------------------------------------------------------------------------------------
      SC  ->  (PQ, O)   : -   (PQ, X)   : -   (PQ, Y)   : 8   (PQ, Z)   : -
          ->  (QR, O)   : -   (QR, X)   : 2   (QR, Y)   : -   (QR, Z)   : 13
          ->  (RP, O)   : 11  (RP, X)   : -   (RP, Y)   : -   (RP, Z)   : -
      -----------------------------------------------------------------------------------------------------
      SHS ->  (PQ, XY)  : 3   (PQ, ZX)  : -   (PQ, YZ)  : 13
          ->  (QR, XY)  : 3   (QR, ZX)  : 5   (QR, YZ)  : 3
          ->  (RP, XY)  : 1   (RP, ZX)  : 4   (RP, YZ)  : -
      -----------------------------------------------------------------------------------------------------
      SR  ->  (PQ, X)   : 6   (PQ, Y)   : 5   (PQ, Z)   : -
          ->  (QR, X)   : -   (QR, Y)   : -   (QR, Z)   : 6
          ->  (RP, X)   : -   (RP, Y)   : -   (RP, Z)   : -
      -----------------------------------------------------------------------------------------------------
      TE  ->  OX : 4   OY : 7    OZ : 8     XY : 1     ZX : 4    YZ : 3
      -----------------------------------------------------------------------------------------------------
      TR  ->  X  : 7    Y : 6     Z : 5
      -----------------------------------------------------------------------------------------------------
      

Member Typedef Documentation


Member Function Documentation

INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST_SUITE ( TransformedTriangleIntersectTest  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle1  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle2  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle3  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle4  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle5  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle6  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle7  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle8  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle9  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle10  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle11  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle12  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST ( testTriangle13  ) [private]
INTERP_TEST.TransformedTriangleIntersectTest.CPPUNIT_TEST_SUITE_END ( ) [private]
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle1 ( )

Key to triangle descriptions : CI = Triangle corner contained in tetrahedron COH = Triangle corner on h = 0 face of tetrahedron CAH = Triangle corner above h = 0 face of tetrahedron in z-direction SF = Segment - facet intersection SE = Segment - edge intersection SC = Segment - corner intersection SHS = Segment - halfstrip intersection SR = Segment - ray intersection TE = Tetrahedron edge intersects triangle (surface - edge intersection) TR = Surface - ray intersection.

In the descriptions for each triangle, square brackets indicate superfluous but allowed intersections that arise as by-products of for instance segment-corner intersections. E.g. A segment - corner intersection can imply three surface - edge intersections Since these "extra" intersections arise under special circumstances, they are not counted in the table above Triangle 1 has the following intersections

      CI     -
      COH    -
      CAH    -
      SF     (PQ, OXY), (PQ, OZX), (RP, XYZ), (RP, OZX)
      SE     -
      SC     - 
      SHS    (RP, XY)
      SR     - 
      TE     XY
      TR     - 
      

Status : pass

References INTERP_KERNEL.TransformedTriangle.calcStableC(), coords, LOG, TEST_ZERO_DP_CORNER, TEST_ZERO_DP_EDGE, TEST_ZERO_DP_RAY, INTERP_KERNEL.TransformedTriangle.testCornerAboveXYZFacet(), INTERP_KERNEL.TransformedTriangle.testCornerInTetrahedron(), INTERP_KERNEL.TransformedTriangle.testCornerOnXYZFacet(), INTERP_KERNEL.TransformedTriangle.testSegmentCornerIntersection(), INTERP_KERNEL.TransformedTriangle.testSegmentEdgeIntersection(), INTERP_KERNEL.TransformedTriangle.testSegmentFacetIntersection(), INTERP_KERNEL.TransformedTriangle.testSegmentHalfstripIntersection(), INTERP_KERNEL.TransformedTriangle.testSegmentRayIntersection(), INTERP_KERNEL.TransformedTriangle.testSurfaceEdgeIntersection(), and INTERP_KERNEL.TransformedTriangle.testSurfaceRayIntersection().

void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle2 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle3 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle4 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle5 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle6 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle7 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle8 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle9 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle10 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle11 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle12 ( )
void INTERP_TEST.TransformedTriangleIntersectTest::testTriangle13 ( )
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS