Add Geometries

This commit is contained in:
AndreaRigoni
2026-03-21 19:43:56 +00:00
parent 0bff36f8ba
commit add9d37aea
3 changed files with 122 additions and 12 deletions

View File

@@ -164,13 +164,12 @@ int main()
{ // test parent-child relationship
ContainerBox Parent;
Parent.SetOrigin(Vector3f(1,1,1));
Parent.SetSize(Vector3f(2,2,2));
Parent.SetPosition(Vector3f(1,1,1));
Parent.Scale(Vector3f(2,2,2));
ContainerBox Child;
Child.SetParent(&Parent);
Child.SetOrigin(Vector3f(1,1,1));
Child.SetSize(Vector3f(2,2,2));
Child.SetPosition(Vector3f(0,0,0));
HPoint3f pt = Child.GetLocalPoint(HPoint3f(0,0,0));
HPoint3f wp = Child.GetWorldPoint(pt);
@@ -178,16 +177,18 @@ int main()
pt = HPoint3f(1,1,1);
wp = Child.GetWorldPoint(pt);
TEST0( Vector4f0(wp - HPoint3f(2,2,2)) );
TEST0( Vector4f0(wp - HPoint3f(3,3,3)) );
pt = HPoint3f(1,2,3);
Parent.Rotate(Vector3f(M_PI,0,0));
pt = HPoint3f(1,1,1);
wp = Child.GetWorldPoint(pt);
std::cout << "Child.GetWorldPoint(HPoint3f(1,2,3)): " << wp << std::endl;
TEST0( Vector4f0(wp - HPoint3f(2,3,4)) );
TEST0( Vector4f0(wp - HPoint3f(3,-1,-1)) );
pt = HPoint3f(1,2,3);
Child.Rotate(Vector3f(M_PI,0,0));
pt = HPoint3f(1,1,1);
wp = Child.GetWorldPoint(pt);
TEST0( Vector4f0(wp - HPoint3f(2,3,4)) );
TEST0( Vector4f0(wp - HPoint3f(3,3,3)) );
}

View File

@@ -92,6 +92,36 @@ int main()
// CYLINDRICAL GEOMETRY TESTING
{
CylindricalGeometry cyl;
Vector3f cyl_pt(5.0f, M_PI_2, 3.0f);
Vector3f lin = cyl.ToLinear(cyl_pt);
TEST0( Vector4f0(lin.homogeneous() - HPoint3f(0.0f, 5.0f, 3.0f)) );
Vector3f recovered = cyl.FromLinear(lin);
TEST0( Vector4f0(recovered.homogeneous() - cyl_pt.homogeneous()) );
}
// SPHERICAL GEOMETRY TESTING
{
SphericalGeometry sph;
Vector3f sph_pt(5.0f, M_PI_2, M_PI);
Vector3f lin = sph.ToLinear(sph_pt);
TEST0( Vector4f0(lin.homogeneous() - HPoint3f(-5.0f, 0.0f, 0.0f)) );
Vector3f recovered = sph.FromLinear(Vector3f(-5.0f, 0.0f, 0.0f));
TEST0( Vector4f0(recovered.homogeneous() - sph_pt.homogeneous()) );
}
// TOROIDAL GEOMETRY TESTING
{
ToroidalGeometry tor(10.0f);
Vector3f tor_pt(1.0f, M_PI_2, M_PI);
Vector3f lin = tor.ToLinear(tor_pt);
TEST0( Vector4f0(lin.homogeneous() - HPoint3f(-10.0f, 0.0f, 1.0f)) );
Vector3f recovered = tor.FromLinear(Vector3f(-10.0f, 0.0f, 1.0f));
TEST0( Vector4f0(recovered.homogeneous() - tor_pt.homogeneous()) );
}
END_TESTING;
}