예제 #1
0
파일: R3Triangle.C 프로젝트: acplus/peptalk
void R3TriangleVertex::
Transform (const R3Transformation& transformation)
{
  // Transform position and normal
  transformation.Apply(position);
  transformation.ApplyInverseTranspose(normal);
}
예제 #2
0
void R3Circle::
Transform (const R3Transformation& transformation)
{
    // Transform circle ???
    center.Transform(transformation);
    plane.Transform(transformation);
    if (!transformation.IsIsotropic()) RNWarning("Circle transformed by anisotropic transformation");
    radius *= transformation.ScaleFactor();
}
예제 #3
0
파일: R3Sphere.C 프로젝트: acplus/peptalk
void R3Sphere::
Transform (const R3Transformation& transformation)
{
    // Transform center 
    center.Transform(transformation);

    // Scale radius 
    if (!transformation.IsIsotropic()) RNWarning("Sphere transformed by anisotropic transformation");
    radius *= transformation.ScaleFactor();
}
예제 #4
0
void R3Plane::
InverseTransform (const R3Transformation& transformation)
{
    // Transform plane ???
    R3Point p = Point();
    p.InverseTransform(transformation);
    transformation.ApplyTranspose(v);
    v.Normalize();
    Reposition(p);
}
예제 #5
0
void R3Point::
InverseTransform(const R3Transformation& transformation)
{
    // Transform vector
    transformation.ApplyInverse(*this);
}
예제 #6
0
void R3Point::
Transform(const R3Transformation& transformation)
{
    // Transform point
    transformation.Apply(*this);
}