Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

CollisionPolygon Class Reference

#include <collisionPolygon.h>

Inheritance diagram for CollisionPolygon:

CollisionPlane CollisionSolid TypedWritableReferenceCount BoundedObject TypedWritable ReferenceCount TypedObject List of all members.

Public Member Functions

 CollisionPolygon (const CollisionPolygon &copy)
virtual CollisionSolidmake_copy ()
virtual void xform (const LMatrix4f &mat)
virtual LPoint3f get_collision_origin () const
virtual void output (ostream &out) const
virtual void write_datagram (BamWriter *manager, Datagram &me)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

INLINE bool verify_points (const LPoint3f &a, const LPoint3f &b, const LPoint3f &c)
INLINE bool verify_points (const LPoint3f &a, const LPoint3f &b, const LPoint3f &c, const LPoint3f &d)
bool verify_points (const LPoint3f *begin, const LPoint3f *end)
void register_with_read_factory (void)
TypedWritablemake_CollisionPolygon (const FactoryParams &params)
TypeHandle get_class_type ()
void init_type ()

Protected Member Functions

INLINE CollisionPolygon (void)
virtual BoundingVolumerecompute_bound ()
virtual PT (CollisionEntry) test_intersection_from_sphere(const CollisionEn &entry) const
virtual PT (CollisionEntry) test_intersection_from_ray(const CollisionEn &entry) const
virtual PT (CollisionEntry) test_intersection_from_segment(const CollisionEn &entry) const
virtual void fill_viz_geom ()
void fillin (DatagramIterator &scan, BamReader *manager)

Private Types

typedef vector_LPoint2f Points
enum  AxisType { AT_x, AT_y, AT_z }

Private Member Functions

INLINE CollisionPolygon (const LPoint3f &a, const LPoint3f &b, const LPoint3f &c, const LPoint3f &d)
INLINE CollisionPolygon (const LPoint3f *begin, const LPoint3f *end)
bool is_inside (const LPoint2f &p) const
bool is_concave () const
void setup_points (const LPoint3f *begin, const LPoint3f *end)
LPoint2f to_2d (const LPoint3f &point3d) const
LPoint3f to_3d (const LPoint2f &point2d) const

Private Attributes

PUBLISHED __pad0__: INLINE CollisionPolygon(const LPoint3f &a
PUBLISHED const LPoint3f & b
PUBLISHED const LPoint3f const
LPoint3f & 
c
Points _points
LPoint2f _median
AxisType _axis
bool _reversed

Static Private Attributes

TypeHandle _type_handle

Member Typedef Documentation

typedef vector_LPoint2f CollisionPolygon::Points [private]
 

Definition at line 80 of file collisionPolygon.h.


Member Enumeration Documentation

enum CollisionPolygon::AxisType [private]
 

Enumeration values:
AT_x 
AT_y 
AT_z 

Definition at line 84 of file collisionPolygon.h.

Referenced by fillin().


Constructor & Destructor Documentation

INLINE CollisionPolygon::CollisionPolygon const LPoint3f &  a,
const LPoint3f &  b,
const LPoint3f &  c,
const LPoint3f &  d
[private]
 

INLINE CollisionPolygon::CollisionPolygon const LPoint3f *  begin,
const LPoint3f *  end
[private]
 

CollisionPolygon::CollisionPolygon const CollisionPolygon &  copy  ) 
 

Definition at line 60 of file collisionPolygon.cxx.

INLINE CollisionPolygon::CollisionPolygon void   )  [protected]
 

Referenced by make_copy().


Member Function Documentation

void CollisionPolygon::fill_viz_geom  )  [protected, virtual]
 

Reimplemented from CollisionPlane.

Definition at line 479 of file collisionPolygon.cxx.

References _points, PointerToArray< Vertexf >::begin(), PointerToArray< Vertexf >::end(), PointerToArray< int >::push_back(), PointerToArray< Vertexf >::push_back(), Geom::set_coords(), Geom::set_lengths(), Geom::set_num_prims(), and to_3d().

void CollisionPolygon::fillin DatagramIterator scan,
BamReader manager
[protected]
 

Reimplemented from CollisionPlane.

Definition at line 804 of file collisionPolygon.cxx.

References _axis, _median, _points, _reversed, AxisType, CollisionPlane::fillin(), DatagramIterator::get_uint16(), and DatagramIterator::get_uint8().

Referenced by make_CollisionPolygon().

virtual TypeHandle CollisionPolygon::force_init_type void   )  [inline, virtual]
 

Reimplemented from CollisionPlane.

Definition at line 111 of file collisionPolygon.h.

References CollisionPlane::get_class_type(), and CollisionPlane::init_type().

TypeHandle CollisionPolygon::get_class_type void   )  [inline, static]
 

Reimplemented from CollisionPlane.

Definition at line 100 of file collisionPolygon.h.

Referenced by CollisionHandlerPusher::handle_entries(), and register_with_read_factory().

LPoint3f CollisionPolygon::get_collision_origin  )  const [virtual]
 

Reimplemented from CollisionPlane.

Definition at line 172 of file collisionPolygon.cxx.

References _median, and to_3d().

Referenced by CollisionHandlerPusher::handle_entries().

virtual TypeHandle CollisionPolygon::get_type void   )  const [inline, virtual]
 

Reimplemented from CollisionPlane.

Definition at line 108 of file collisionPolygon.h.

References CollisionPlane::get_class_type().

void CollisionPolygon::init_type void   )  [inline, static]
 

Reimplemented from CollisionPlane.

Definition at line 103 of file collisionPolygon.h.

References CollisionPlane::get_class_type(), CollisionPlane::init_type(), and register_type().

Referenced by init_libcollide().

bool CollisionPolygon::is_concave  )  const [private]
 

Definition at line 548 of file collisionPolygon.cxx.

References _points.

bool CollisionPolygon::is_inside const LPoint2f &  p  )  const [private]
 

Definition at line 520 of file collisionPolygon.cxx.

References _points, is_right(), and p.

TypedWritable * CollisionPolygon::make_CollisionPolygon const FactoryParams params  )  [static]
 

Definition at line 829 of file collisionPolygon.cxx.

References fillin(), params, and parse_params().

Referenced by register_with_read_factory().

CollisionSolid * CollisionPolygon::make_copy  )  [virtual]
 

Reimplemented from CollisionPlane.

Definition at line 75 of file collisionPolygon.cxx.

References CollisionPolygon().

void CollisionPolygon::output ostream &  out  )  const [virtual]
 

Reimplemented from CollisionPlane.

Definition at line 182 of file collisionPolygon.cxx.

virtual CollisionPolygon::PT CollisionEntry   )  const [protected, virtual]
 

Reimplemented from CollisionPlane.

virtual CollisionPolygon::PT CollisionEntry   )  const [protected, virtual]
 

Reimplemented from CollisionPlane.

virtual CollisionPolygon::PT CollisionEntry   )  const [protected, virtual]
 

Reimplemented from CollisionPlane.

BoundingVolume * CollisionPolygon::recompute_bound  )  [protected, virtual]
 

Reimplemented from CollisionPlane.

Definition at line 192 of file collisionPolygon.cxx.

References _points, GeometricBoundingVolume::around(), DCAST, BoundedObject::recompute_bound(), and to_3d().

void CollisionPolygon::register_with_read_factory void   )  [static]
 

Reimplemented from CollisionPlane.

Definition at line 846 of file collisionPolygon.cxx.

References get_class_type(), BamReader::get_factory(), make_CollisionPolygon(), and Factory< TypedWritable >::register_factory().

Referenced by init_libcollide().

void CollisionPolygon::setup_points const LPoint3f *  begin,
const LPoint3f *  end
[private]
 

Definition at line 588 of file collisionPolygon.cxx.

References _axis, _median, _points, _reversed, AT_x, AT_y, AT_z, end, is_right(), n, CollisionPlane::set_plane(), and verify_points().

Referenced by xform().

LPoint2f CollisionPolygon::to_2d const LPoint3f &  point3d  )  const [private]
 

Definition at line 717 of file collisionPolygon.cxx.

References AT_x, AT_y, and AT_z.

LPoint3f CollisionPolygon::to_3d const LPoint2f &  point2d  )  const [private]
 

Definition at line 745 of file collisionPolygon.cxx.

References AT_x, AT_y, AT_z, cnan(), and CollisionPlane::get_plane().

Referenced by fill_viz_geom(), get_collision_origin(), recompute_bound(), and xform().

bool CollisionPolygon::verify_points const LPoint3f *  begin,
const LPoint3f *  end
[static]
 

Definition at line 92 of file collisionPolygon.cxx.

References end, and IS_THRESHOLD_EQUAL.

INLINE bool CollisionPolygon::verify_points const LPoint3f &  a,
const LPoint3f &  b,
const LPoint3f &  c,
const LPoint3f &  d
[static]
 

INLINE bool CollisionPolygon::verify_points const LPoint3f &  a,
const LPoint3f &  b,
const LPoint3f &  c
[static]
 

Referenced by CollisionTraverser::compare_collider_to_geom(), and setup_points().

void CollisionPolygon::write_datagram BamWriter manager,
Datagram me
[virtual]
 

Reimplemented from CollisionPlane.

Definition at line 780 of file collisionPolygon.cxx.

References _axis, _median, _points, _reversed, Datagram::add_uint16(), Datagram::add_uint8(), and CollisionPlane::write_datagram().

void CollisionPolygon::xform const LMatrix4f &  mat  )  [virtual]
 

Reimplemented from CollisionPlane.

Definition at line 129 of file collisionPolygon.cxx.

References _points, BoundedObject::mark_bound_stale(), CollisionSolid::mark_viz_stale(), setup_points(), and to_3d().


Member Data Documentation

PUBLISHED CollisionPolygon::__pad0__ [private]
 

Reimplemented from CollisionPlane.

Definition at line 34 of file collisionPolygon.h.

AxisType CollisionPolygon::_axis [private]
 

Definition at line 87 of file collisionPolygon.h.

Referenced by fillin(), setup_points(), and write_datagram().

LPoint2f CollisionPolygon::_median [private]
 

Definition at line 82 of file collisionPolygon.h.

Referenced by fillin(), get_collision_origin(), setup_points(), and write_datagram().

Points CollisionPolygon::_points [private]
 

Definition at line 81 of file collisionPolygon.h.

Referenced by fill_viz_geom(), fillin(), is_concave(), is_inside(), recompute_bound(), setup_points(), write_datagram(), and xform().

bool CollisionPolygon::_reversed [private]
 

Definition at line 88 of file collisionPolygon.h.

Referenced by fillin(), setup_points(), and write_datagram().

TypeHandle CollisionPolygon::_type_handle [static, private]
 

Reimplemented from CollisionPlane.

Definition at line 40 of file collisionPolygon.cxx.

PUBLISHED const LPoint3f& CollisionPolygon::b [private]
 

Definition at line 34 of file collisionPolygon.h.

PUBLISHED const LPoint3f const LPoint3f& CollisionPolygon::c [private]
 

Definition at line 34 of file collisionPolygon.h.


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:11:37 2003 for Panda by doxygen1.3