A special CollisionPolygon created just for the purpose of detecting collision against geometry. More...
#include "collisionGeom.h"
Public Member Functions | |
| virtual TypeHandle | force_init_type () |
| virtual PStatCollector & | get_test_pcollector () |
| Returns a PStatCollector that is used to count the number of intersection tests made against a solid of this type in a given frame. More... | |
| virtual TypeHandle | get_type () const |
| virtual PStatCollector & | get_volume_pcollector () |
| Returns a PStatCollector that is used to count the number of bounding volume tests made against a solid of this type in a given frame. More... | |
| virtual CollisionSolid * | make_copy () |
| virtual void | output (std::ostream &out) const |
Public Member Functions inherited from CollisionPolygon | |
| CollisionPolygon (const LVecBase3 &a, const LVecBase3 &b, const LVecBase3 &c) | |
| CollisionPolygon (const LVecBase3 &a, const LVecBase3 &b, const LVecBase3 &c, const LVecBase3 &d) | |
| CollisionPolygon (const LPoint3 *begin, const LPoint3 *end) | |
| CollisionPolygon (const CollisionPolygon ©) | |
| virtual LPoint3 | get_collision_origin () const |
| Returns the point in space deemed to be the "origin" of the solid for collision purposes. More... | |
| size_t | get_num_points () const |
| LPoint3 | get_point (size_t n) const |
| bool | is_concave () const |
| bool | is_valid () const |
| virtual | PT (PandaNode) get_viz(const CullTraverser *trav |
| virtual void | write (std::ostream &out, int indent_level=0) const |
| virtual void | write_datagram (BamWriter *manager, Datagram &me) |
| Function to write the important information in the particular object to a Datagram. More... | |
| virtual void | xform (const LMatrix4 &mat) |
| Transforms the solid by the indicated matrix. More... | |
Public Member Functions inherited from CollisionPlane | |
| CollisionPlane (const LPlane &plane) | |
| CollisionPlane (const CollisionPlane ©) | |
| PN_stdfloat | dist_to_plane (const LPoint3 &point) const |
| void | flip () |
| Convenience method to flip the plane in-place. More... | |
| LVector3 | get_normal () const |
| const LPlane & | get_plane () const |
| void | set_plane (const LPlane &plane) |
Public Member Functions inherited from CollisionSolid | |
| CollisionSolid (const CollisionSolid ©) | |
| void | clear_effective_normal () |
| Removes the normal previously set by set_effective_normal(). More... | |
| CPT (BoundingVolume) get_bounds() const | |
| const LVector3 & | get_effective_normal () const |
| Returns the normal that was set by set_effective_normal(). More... | |
| bool | get_respect_effective_normal () const |
| bool | has_effective_normal () const |
| Returns true if a special normal was set by set_effective_normal(), false otherwise. More... | |
| bool | is_tangible () const |
| void | set_bounds (const BoundingVolume &bounding_volume) |
| void | set_effective_normal (const LVector3 &effective_normal) |
| Records a false normal for this CollisionSolid that will be reported by the collision system with all collisions into it, instead of its actual normal. More... | |
| void | set_respect_effective_normal (bool respect_effective_normal) |
| void | set_tangible (bool tangible) |
Public Member Functions inherited from CopyOnWriteObject | |
| CopyOnWriteObject (const CopyOnWriteObject ©) | |
| void | operator= (const CopyOnWriteObject ©) |
Public Member Functions inherited from CachedTypedWritableReferenceCount | |
| void | cache_ref () const |
| Explicitly increments the cache reference count and the normal reference count simultaneously. More... | |
| void | cache_ref_only () const |
| Decrements the cache reference count without affecting the normal reference count. More... | |
| bool | cache_unref () const |
| Explicitly decrements the cache reference count and the normal reference count simultaneously. More... | |
| int | get_cache_ref_count () const |
| bool | test_ref_count_integrity () const |
| Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
Public Member Functions inherited from TypedWritableReferenceCount | |
| TypedWritableReferenceCount (const TypedWritableReferenceCount ©) | |
| virtual ReferenceCount * | as_reference_count () |
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More... | |
| void | operator= (const TypedWritableReferenceCount ©) |
Public Member Functions inherited from TypedWritable | |
| TypedWritable (const TypedWritable ©) | |
| virtual int | complete_pointers (TypedWritable **p_list, BamReader *manager) |
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). More... | |
| vector_uchar | encode_to_bam_stream () const |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More... | |
| bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const |
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More... | |
| virtual void | finalize (BamReader *manager) |
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed. More... | |
| UpdateSeq | get_bam_modified () const |
| Returns the current bam_modified counter. More... | |
| void | mark_bam_modified () |
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More... | |
| void | operator= (const TypedWritable ©) |
| virtual bool | require_fully_complete () const |
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed. More... | |
| virtual void | update_bam_nested (BamWriter *manager) |
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates. More... | |
Public Member Functions inherited from TypedObject | |
| TypedObject (const TypedObject ©)=default | |
| TypedObject * | as_typed_object () |
| Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
| const TypedObject * | as_typed_object () const |
| Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
| int | get_best_parent_from_Set (const std::set< int > &) const |
| int | get_type_index () const |
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
| bool | is_exact_type (TypeHandle handle) const |
| Returns true if the current object is the indicated type exactly. More... | |
| bool | is_of_type (TypeHandle handle) const |
| Returns true if the current object is or derives from the indicated type. More... | |
| TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from ReferenceCount | |
| int | get_ref_count () const |
| WeakReferenceList * | get_weak_list () const |
| Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
| bool | has_weak_list () const |
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
| void | local_object () |
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
| void | ref () const |
| Explicitly increments the reference count. More... | |
| bool | ref_if_nonzero () const |
| Atomically increases the reference count of this object if it is not zero. More... | |
| bool | test_ref_count_integrity () const |
| Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
| bool | test_ref_count_nonzero () const |
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
| virtual bool | unref () const |
| Explicitly decrements the reference count. More... | |
| WeakReferenceList * | weak_ref () |
| Adds the indicated PointerToVoid as a weak reference to this object. More... | |
| void | weak_unref () |
| Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from CollisionPolygon | |
| static void | flush_level () |
| Flushes the PStatCollectors used during traversal. More... | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| static TypedWritable * | make_CollisionPolygon (const FactoryParams ¶ms) |
| Factory method to generate a CollisionPolygon object. More... | |
| static void | register_with_read_factory () |
| Factory method to generate a CollisionPolygon object. More... | |
| static bool | verify_points (const LPoint3 &a, const LPoint3 &b, const LPoint3 &c) |
| Verifies that the indicated set of points will define a valid CollisionPolygon: that is, at least three non-collinear points, with no points repeated. More... | |
| static bool | verify_points (const LPoint3 &a, const LPoint3 &b, const LPoint3 &c, const LPoint3 &d) |
| Verifies that the indicated set of points will define a valid CollisionPolygon: that is, at least three non-collinear points, with no points repeated. More... | |
| static bool | verify_points (const LPoint3 *begin, const LPoint3 *end) |
| Verifies that the indicated set of points will define a valid CollisionPolygon: that is, at least three non-collinear points, with no points repeated. More... | |
Static Public Member Functions inherited from CollisionPlane | |
| static void | flush_level () |
| Flushes the PStatCollectors used during traversal. More... | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| static TypedWritable * | make_CollisionPlane (const FactoryParams ¶ms) |
| Factory method to generate a CollisionPlane object. More... | |
| static void | register_with_read_factory () |
| Factory method to generate a CollisionPlane object. More... | |
Static Public Member Functions inherited from CollisionSolid | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from CopyOnWriteObject | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from CachedTypedWritableReferenceCount | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from TypedWritableReferenceCount | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data |
Static Public Member Functions inherited from TypedWritable | |
| static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr) |
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes. More... | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Static Public Member Functions inherited from TypedObject | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
| This function is declared non-inline to work around a compiler bug in g++ 2.96. More... | |
Static Public Member Functions inherited from ReferenceCount | |
| static TypeHandle | get_class_type () |
| static void | init_type () |
Friends | |
| class | CollisionTraverser |
Additional Inherited Members | |
Public Attributes inherited from CollisionPolygon | |
| virtual const CullTraverserData bool bounds_only | const |
| virtual const CullTraverserData & | data |
| get_num_points | |
| Returns the number of vertices of the CollisionPolygon. More... | |
| get_point | |
| Returns the nth vertex of the CollisionPolygon, expressed in 3-D space. More... | |
| is_concave | |
| Returns true if the CollisionPolygon appears to be concave, or false if it is safely convex. More... | |
| is_valid | |
| Returns true if the CollisionPolygon is valid (that is, it has at least three vertices), or false otherwise. More... | |
Public Attributes inherited from CollisionPlane | |
| get_normal | |
| get_plane | |
| set_plane | |
Public Attributes inherited from CollisionSolid | |
| virtual const CullTraverserData bool bounds_only | const |
| virtual const CullTraverserData & | data |
| get_bounds | |
| get_collision_origin | |
| get_respect_effective_normal | |
| See set_respect_effective_normal(). More... | |
| is_tangible | |
| Returns whether the solid is considered 'tangible' or not. More... | |
| set_bounds | |
| set_respect_effective_normal | |
| This is only meaningful for CollisionSolids that will be added to a traverser as colliders. More... | |
| set_tangible | |
| Sets the current state of the 'tangible' flag. More... | |
Public Attributes inherited from CachedTypedWritableReferenceCount | |
| get_cache_ref_count | |
| Returns the current reference count. More... | |
Public Attributes inherited from TypedWritableReferenceCount | |
| static BamReader * | reader = nullptr) |
Public Attributes inherited from TypedObject | |
| get_type | |
Public Attributes inherited from ReferenceCount | |
| get_ref_count | |
| Returns the current reference count. More... | |
Static Public Attributes inherited from TypedWritable | |
| static TypedWritable *const | Null = nullptr |
A special CollisionPolygon created just for the purpose of detecting collision against geometry.
This kind of object does not have any persistance in the scene graph; it is created on-the-fly.
You should not attempt to create one of these directly; it is created only by the CollisionTraverser, as needed.
Definition at line 29 of file collisionGeom.h.
|
virtual |
Returns a PStatCollector that is used to count the number of intersection tests made against a solid of this type in a given frame.
Reimplemented from CollisionPolygon.
Definition at line 42 of file collisionGeom.cxx.
|
virtual |
Returns a PStatCollector that is used to count the number of bounding volume tests made against a solid of this type in a given frame.
Reimplemented from CollisionPolygon.
Definition at line 33 of file collisionGeom.cxx.
1.8.15