1 #include <libmesh/libmesh.h>
2 #include <libmesh/elem.h>
21 CPPUNIT_TEST( testContainsPointTri3 );
22 CPPUNIT_TEST( testContainsPointTet4 );
25 CPPUNIT_TEST_SUITE_END();
35 Point a(3,1,2), b(1,2,3), c(2,3,1);
36 containsPointTri3Helper(a, b, c, a);
39 containsPointTri3Helper(a/5000., b/5000., c/5000., c/5000.);
42 containsPointTri3Helper(
Point(0.000808805, 0.0047284, 0.),
43 Point(0.0011453, 0.00472831, 0.),
44 Point(0.000982249, 0.00508037, 0.),
45 Point(0.001, 0.005, 0.));
56 Node one (1., 0., 0., 1);
57 Node two (0., 1., 0., 2);
58 Node three (0., 0., 1., 3);
61 elem->set_node(0) = &
zero;
62 elem->set_node(1) = &one;
63 elem->set_node(2) = &two;
64 elem->set_node(3) = &three;
67 CPPUNIT_ASSERT (elem->contains_point(elem->centroid()));
70 CPPUNIT_ASSERT (elem->contains_point(
zero));
71 CPPUNIT_ASSERT (elem->contains_point(one));
72 CPPUNIT_ASSERT (elem->contains_point(two));
73 CPPUNIT_ASSERT (elem->contains_point(three));
76 CPPUNIT_ASSERT (!elem->contains_point(
Point(.34, .34, .34)));
77 CPPUNIT_ASSERT (!elem->contains_point(
Point(.33, .33, -.1)));
78 CPPUNIT_ASSERT (!elem->contains_point(
Point(0., -.1, .5)));
89 Node one (epsilon, 0., 0., 1);
90 Node two (0., epsilon, 0., 2);
91 Node three (0., 0., 1., 3);
94 elem->set_node(0) = &
zero;
95 elem->set_node(1) = &one;
96 elem->set_node(2) = &two;
97 elem->set_node(3) = &three;
100 CPPUNIT_ASSERT (elem->contains_point(elem->centroid()));
103 CPPUNIT_ASSERT (elem->contains_point(
zero));
104 CPPUNIT_ASSERT (elem->contains_point(one));
105 CPPUNIT_ASSERT (elem->contains_point(two));
106 CPPUNIT_ASSERT (elem->contains_point(three));
109 CPPUNIT_ASSERT (elem->contains_point(
Point(epsilon/2, 0, 0.5)));
112 CPPUNIT_ASSERT (!elem->contains_point(
Point(epsilon, epsilon, epsilon/2)));
113 CPPUNIT_ASSERT (!elem->contains_point(
Point(epsilon/10, epsilon/10, 1.0)));
114 CPPUNIT_ASSERT (!elem->contains_point(
Point(epsilon/2, -epsilon/10, 0.5)));
131 elem->set_node(0) = &a;
132 elem->set_node(1) = &b;
133 elem->set_node(2) = &c;
142 CPPUNIT_ASSERT (elem->contains_point(elem->centroid()));
145 CPPUNIT_ASSERT (elem->contains_point(a));
146 CPPUNIT_ASSERT (elem->contains_point(b));
147 CPPUNIT_ASSERT (elem->contains_point(c));
150 CPPUNIT_ASSERT (!elem->contains_point(elem->centroid() +
std::sqrt(
TOLERANCE) * oop_unit));
153 CPPUNIT_ASSERT (!elem->contains_point(a + va *
TOLERANCE * 10));
154 CPPUNIT_ASSERT (!elem->contains_point(b + vb *
TOLERANCE * 10));
155 CPPUNIT_ASSERT (!elem->contains_point(c - (va + vb) *
TOLERANCE * 10));
158 CPPUNIT_ASSERT (elem->contains_point(p));