#include <Cylinder.h>
Inheritance diagram for Cylinder:
Public Member Functions | |
Cylinder () | |
Cylinder (const Vector3 &point1, const Vector3 &normal1, const Vector3 &point2, const Vector3 &normal2, double radius) | |
virtual | ~Cylinder () |
virtual void | rayIntersection (PointEnv *pPE, int mask, const Vector3 &origin, const Vector3 &direction, float maxD=MAXFLOAT) |
virtual bool | mapToUV (const Vector3 &v, Vector2 &uv) |
virtual void | randomSample (int mask, PointEnv &pe, double *pdf) |
virtual bool | randomDirection (const Vector3 &pov, Vector3 &dir, double *pdf) |
virtual Interval | extent (const Vector3 &direction) const |
virtual Vector3 | centroid (void) const |
virtual double | radius (const Vector3 ¢roid) const |
virtual double | radius (void) const |
virtual Geometry * | clone (const Matrix4 *pTrMat) const |
virtual bool | separation (Geometry &geom, Vector3 *pDir) |
virtual double | distance (const Geometry &geom, Vector3 *pDir) |
virtual void | dump (const char *intent, const char *tab) |
double | getRadius () const |
void | setRadius (double radius) |
void | setFirstCap (const Vector3 ¢er, const Vector3 &normal) |
void | setSecondCap (const Vector3 ¢er, const Vector3 &normal) |
void | insideOut (bool b) |
Interval | extent (float x, float y, float z) const |
Geometry * | clone (void) const |
Mesh * | mesh (int density=0) const |
virtual void | __debug () |
Static Public Attributes | |
static const float | EPS = 1e-03 |
epsilon variation (tolerance) of zero | |
Protected Member Functions | |
virtual Mesh * | _mesh (int) const |
virtual void | _duplicate_attributes (const Geometry &) |
virtual void | _rotateX (float) |
virtual void | _rotateY (float) |
virtual void | _rotateZ (float) |
virtual void | _rotate (float, const Vector3 &) |
virtual void | _rotate (const Matrix3 &) |
virtual void | _translate (float, float, float) |
virtual void | _transform (const Matrix4 &) |
virtual void | _scale (float) |
void | _translate (const Vector3 &v) |
Protected Attributes | |
double | _radius |
radius | |
double | _radiusSqr |
radius^2 | |
Vector3 | _cap1Point |
center of the end-cap plane | |
Vector3 | _cap1Normal |
normal of the end-cap plane | |
Vector3 | _cap2Point |
center of the end-cap plane | |
Vector3 | _cap2Normal |
normal of the end-cap plane | |
Vector3 | _axis |
norm(_cap2Point - _cap1Point) | |
bool | _insideOut |
Definition at line 15 of file Cylinder.h.
|
Implicit constructor. Cylinder has centre of the base plane at (0,0,0), is oriented upward (axis is parallel with y coord), radius and height are 1.0 Definition at line 106 of file Cylinder.cc. Referenced by Cylinder::clone(). |
|
Constructor.
Definition at line 117 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Point, and Cylinder::_cap2Point. |
|
Destructor. Definition at line 68 of file Cylinder.h. |
|
Reimplemented in _Surface, FDH, Polygon, Sphere, and Surface. Definition at line 211 of file Geometry.h. Referenced by BVH::__debug(). |
|
Reimplemented from Geometry. Definition at line 6 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, Cylinder::_cap2Point, Geometry::_duplicate_attributes(), Cylinder::_radius, and Cylinder::_radiusSqr. Referenced by Cylinder::clone(). |
|
Implements Geometry. Definition at line 26 of file Cylinder.h. |
|
Implements Geometry. Definition at line 62 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 51 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 18 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 29 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 40 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 95 of file Cylinder.cc. References Cylinder::_cap1Point, Cylinder::_cap2Point, Cylinder::_radius, and Cylinder::_radiusSqr. |
|
Implements Geometry. Definition at line 77 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, Cylinder::_cap2Point, Cylinder::_radius, and Cylinder::_radiusSqr. Referenced by Cylinder::clone(). |
|
Definition at line 38 of file Geometry.h. |
|
Implements Geometry. Definition at line 71 of file Cylinder.cc. References Cylinder::_cap1Point, and Cylinder::_cap2Point. |
|
Implements Geometry. Definition at line 297 of file Cylinder.cc. References Cylinder::_cap1Point, and Cylinder::_cap2Point. Referenced by Cylinder::distance(). |
|
Duplicates geometry
Reimplemented in _Surface, and OSGPolygon. Definition at line 155 of file Geometry.h. Referenced by BVH::__get_edges(), BVH::__get_meshes(), ObjsInAreaExplorer::_accept_new_transformation(), SphereTree::_enlarge_bv(), FDHTree::_enlarge_bv(), BVExplorer::_iterate(), BVDistRot::BVDistRot(), and ObjsInAreaExplorer::ObjsInAreaExplorer(). |
|
Duplicates and transforms geometry
Implements Geometry. Definition at line 324 of file Cylinder.cc. References Cylinder::_duplicate_attributes(), Cylinder::_transform(), and Cylinder::Cylinder(). |
|
Computes approximate distance between this and given geometries (lower bound of distance)
Implements Geometry. Definition at line 368 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Point, Cylinder::_cap2Point, Cylinder::_radius, Cylinder::centroid(), Geometry::centroid(), Sphere::distance(), Geometry::extent(), MAXDOUBLE, and Cylinder::radius(). |
|
Writes information about this geometry to std. out.
Implements Geometry. Definition at line 430 of file Cylinder.cc. |
|
Returns extent occupied by the geometry in given direction
Definition at line 124 of file Geometry.h. |
|
Returns extent occupied by the geometry in given direction
Implements Geometry. Definition at line 269 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Point, and Cylinder::_radius. |
|
Definition at line 107 of file Cylinder.h. References Cylinder::_radius. |
|
Inverts facet normals (turns the object inside-out)
Definition at line 56 of file Geometry.h. |
|
Maps 3D point from surface to the UV surface representation
Implements Geometry. Definition at line 257 of file Cylinder.cc. |
|
Returns polygonal mesh computed from this geometry
Definition at line 24 of file Geometry.cc. References Geometry::_insideOut, Geometry::_mesh(), and Mesh::turnInsideOut(). Referenced by BVH::__get_edges(), BVH::__get_meshes(), NurbsSurface::_mesh(), and POVRayExporter::_process_leaf(). |
|
Returns radius of minimal packing sphere with center in the ceontroid of the geometry
Reimplemented from Geometry. Definition at line 316 of file Cylinder.cc. References Cylinder::_cap1Point, Cylinder::_cap2Point, and Cylinder::_radiusSqr. Referenced by Cylinder::distance(). |
|
Returns radius of minimal packing sphere having given center
Implements Geometry. Definition at line 305 of file Cylinder.cc. References Cylinder::_cap1Point, Cylinder::_cap2Point, and Cylinder::_radius. |
|
Computes random direction towards the surface in accord to the point of view.
Implements Geometry. Definition at line 80 of file Cylinder.h. |
|
Computes random point on the surface
Implements Geometry. Definition at line 263 of file Cylinder.cc. References ENV_HAVE_NOTHING, and PointEnv::mask. |
|
Computes point of intersection of ray with this geometry
Implements Geometry. Definition at line 134 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, Cylinder::_cap2Normal, Cylinder::_cap2Point, Cylinder::_radius, Cylinder::_radiusSqr, PointEnv::distance, ENV_HAVE_DISTANCE, ENV_HAVE_INTERFERENCE, ENV_HAVE_INTERSECTION, ENV_HAVE_NORMAL, ENV_HAVE_NOTHING, ENV_WANT_DISTANCE, ENV_WANT_INTERSECTION, ENV_WANT_NORMAL, PointEnv::intersection, PointEnv::mask, MAXDOUBLE, PointEnv::normal, PointEnv::normalOrientation, and PointEnv::OUTWARDS_NORMAL. |
|
Checks if there is separation between this and given geometries
Implements Geometry. Definition at line 332 of file Cylinder.cc. References Cylinder::_axis, Cylinder::_cap1Point, Cylinder::_cap2Point, Cylinder::_radius, Geometry::centroid(), and Geometry::extent(). |
|
Definition at line 121 of file Cylinder.h. References Cylinder::_axis, Cylinder::_cap1Normal, Cylinder::_cap1Point, and Cylinder::_cap2Point. |
|
Definition at line 112 of file Cylinder.h. References Cylinder::_radius, and Cylinder::_radiusSqr. |
|
Definition at line 133 of file Cylinder.h. References Cylinder::_axis, Cylinder::_cap1Point, Cylinder::_cap2Normal, and Cylinder::_cap2Point. |
|
norm(_cap2Point - _cap1Point)
Definition at line 23 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_rotate(), Cylinder::_rotateX(), Cylinder::_rotateY(), Cylinder::_rotateZ(), Cylinder::_transform(), Cylinder::Cylinder(), Cylinder::distance(), Cylinder::extent(), Cylinder::rayIntersection(), Cylinder::separation(), Cylinder::setFirstCap(), and Cylinder::setSecondCap(). |
|
normal of the end-cap plane
Definition at line 20 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_rotate(), Cylinder::_rotateX(), Cylinder::_rotateY(), Cylinder::_rotateZ(), Cylinder::_transform(), Cylinder::rayIntersection(), and Cylinder::setFirstCap(). |
|
center of the end-cap plane
Definition at line 19 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_rotate(), Cylinder::_rotateX(), Cylinder::_rotateY(), Cylinder::_rotateZ(), Cylinder::_scale(), Cylinder::_transform(), Cylinder::_translate(), Cylinder::centroid(), Cylinder::Cylinder(), Cylinder::distance(), Cylinder::extent(), Cylinder::radius(), Cylinder::rayIntersection(), Cylinder::separation(), Cylinder::setFirstCap(), and Cylinder::setSecondCap(). |
|
normal of the end-cap plane
Definition at line 22 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_rotate(), Cylinder::_rotateX(), Cylinder::_rotateY(), Cylinder::_rotateZ(), Cylinder::_transform(), Cylinder::rayIntersection(), and Cylinder::setSecondCap(). |
|
center of the end-cap plane
Definition at line 21 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_rotate(), Cylinder::_rotateX(), Cylinder::_rotateY(), Cylinder::_rotateZ(), Cylinder::_scale(), Cylinder::_transform(), Cylinder::_translate(), Cylinder::centroid(), Cylinder::Cylinder(), Cylinder::distance(), Cylinder::radius(), Cylinder::rayIntersection(), Cylinder::separation(), Cylinder::setFirstCap(), and Cylinder::setSecondCap(). |
|
Definition at line 23 of file Geometry.h. Referenced by Geometry::_duplicate_attributes(), and Geometry::mesh(). |
|
radius
Definition at line 17 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_scale(), Cylinder::_transform(), Cylinder::distance(), Cylinder::extent(), Cylinder::getRadius(), Cylinder::radius(), Cylinder::rayIntersection(), Cylinder::separation(), and Cylinder::setRadius(). |
|
radius^2
Definition at line 18 of file Cylinder.h. Referenced by Cylinder::_duplicate_attributes(), Cylinder::_scale(), Cylinder::_transform(), Cylinder::radius(), Cylinder::rayIntersection(), and Cylinder::setRadius(). |
|
epsilon variation (tolerance) of zero
Definition at line 20 of file Geometry.h. Referenced by FDH::_cut_line(), Sphere::_duplicate_attributes(), FDH::_get_corners(), FDH::_mesh(), Sphere::_scale(), Polygon::_triTriCollision(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), Sphere::setRadius(), and Sphere::Sphere(). |