Panda3D
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Friends | List of all members
BoundingLine Class Reference

This funny bounding volume is an infinite line with no thickness and extending to infinity in both directions. More...

#include "boundingLine.h"

Inheritance diagram for BoundingLine:
GeometricBoundingVolume BoundingVolume TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase

Public Member Functions

 BoundingLine (const LPoint3 &a, const LPoint3 &b)
 
virtual const BoundingLineas_bounding_line () const
 Virtual downcast method.
 
virtual TypeHandle force_init_type ()
 
virtual LPoint3 get_approx_center () const
 
const LPoint3 & get_point_a () const
 Returns the first point that defines the line.
 
LPoint3 get_point_b () const
 Returns the second point that defines the line.
 
virtual TypeHandle get_type () const
 
virtual BoundingVolumemake_copy () const
 
virtual void output (std::ostream &out) const
 
virtual void xform (const LMatrix4 &mat)
 
- Public Member Functions inherited from GeometricBoundingVolume
bool around (const GeometricBoundingVolume **first, const GeometricBoundingVolume **last)
 Resets the volume to enclose only the volumes indicated.
 
bool around (const LPoint3 *first, const LPoint3 *last)
 Resets the volume to enclose only the points indicated.
 
virtual const GeometricBoundingVolumeas_geometric_bounding_volume () const final
 Virtual downcast method.
 
virtual GeometricBoundingVolumeas_geometric_bounding_volume () final
 Virtual downcast method.
 
int contains (const GeometricBoundingVolume *vol) const
 Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume.
 
int contains (const LPoint3 &a, const LPoint3 &b) const
 Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated line segment.
 
int contains (const LPoint3 &point) const
 Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated point.
 
bool extend_by (const GeometricBoundingVolume *vol)
 Increases the size of the volume to include the given volume.
 
bool extend_by (const LPoint3 &point)
 Increases the size of the volume to include the given point.
 
- Public Member Functions inherited from BoundingVolume
bool around (const BoundingVolume **first, const BoundingVolume **last)
 Resets the volume to enclose only the volumes indicated.
 
virtual const BoundingBoxas_bounding_box () const
 Virtual downcast method.
 
virtual const BoundingHexahedronas_bounding_hexahedron () const
 Virtual downcast method.
 
virtual const BoundingPlaneas_bounding_plane () const
 Virtual downcast method.
 
virtual const BoundingSphereas_bounding_sphere () const
 Virtual downcast method.
 
virtual const FiniteBoundingVolumeas_finite_bounding_volume () const
 Virtual downcast method.
 
int contains (const BoundingVolume *vol) const
 Returns the appropriate set of IntersectionFlags to indicate the amount of intersection with the indicated volume.
 
bool extend_by (const BoundingVolume *vol)
 Increases the size of the volume to include the given volume.
 
bool is_empty () const
 Any kind of volume might be empty.
 
bool is_infinite () const
 The other side of the empty coin is an infinite volume.
 
void set_infinite ()
 Marks the volume as infinite, even if it is normally finite.
 
virtual void write (std::ostream &out, int indent_level=0) const
 
- Public Member Functions inherited from TypedReferenceCount
 TypedReferenceCount (const TypedReferenceCount &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
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.
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from MemoryBase
void operator delete (void *, void *)
 
void operator delete (void *ptr)
 
void operator delete[] (void *, void *)
 
void operator delete[] (void *ptr)
 
void * operator new (size_t size)
 
void * operator new (size_t size, void *ptr)
 
void * operator new[] (size_t size)
 
void * operator new[] (size_t size, void *ptr)
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_weak_list () const
 Returns the WeakReferenceList associated with this ReferenceCount object.
 
bool has_weak_list () const
 Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
 
void local_object ()
 This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
 
void ref () const
 Explicitly increments the reference count.
 
bool ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero.
 
bool test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus.
 
bool test_ref_count_nonzero () const
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
 
virtual bool unref () const
 Explicitly decrements the reference count.
 
bool unref_if_one () const
 Atomically decreases the reference count of this object if it is one.
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object.
 
void weak_unref ()
 Removes the indicated PointerToVoid as a weak reference to this object.
 

Static Public Member Functions

static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from GeometricBoundingVolume
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from BoundingVolume
static TypeHandle get_class_type ()
 
static void init_type ()
 
static BoundsType string_bounds_type (const std::string &str)
 Returns the BoundsType corresponding to the indicated string.
 
- Static Public Member Functions inherited from TypedReferenceCount
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.
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 

Friends

class BoundingBox
 
class BoundingSphere
 

Additional Inherited Members

- Public Types inherited from BoundingVolume
enum  BoundsType {
  BT_default , BT_best , BT_sphere , BT_box ,
  BT_fastest
}
 
enum  IntersectionFlags {
  IF_no_intersection = 0 , IF_possible = 0x01 , IF_some = 0x02 , IF_all = 0x04 ,
  IF_dont_understand = 0x08
}
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count.
 

Detailed Description

This funny bounding volume is an infinite line with no thickness and extending to infinity in both directions.

Note that it *always* extends in both directions, despite the fact that you specify two points to the constructor. These are not endpoints, they are two arbitrary points on the line.

Definition at line 29 of file boundingLine.h.

Constructor & Destructor Documentation

◆ BoundingLine() [1/2]

BoundingLine::BoundingLine ( )
inline

Definition at line 17 of file boundingLine.I.

◆ BoundingLine() [2/2]

BoundingLine::BoundingLine ( const LPoint3 & a,
const LPoint3 & b )
inlineexplicit

Definition at line 24 of file boundingLine.I.

Member Function Documentation

◆ as_bounding_line()

const BoundingLine * BoundingLine::as_bounding_line ( ) const
virtual

Virtual downcast method.

Returns this object as a pointer of the indicated type, if it is in fact that type. Returns NULL if it is not that type.

Reimplemented from BoundingVolume.

Definition at line 77 of file boundingLine.cxx.

◆ force_init_type()

virtual TypeHandle BoundingLine::force_init_type ( )
inlinevirtual

Reimplemented from GeometricBoundingVolume.

Definition at line 83 of file boundingLine.h.

◆ get_approx_center()

LPoint3 BoundingLine::get_approx_center ( ) const
virtual

Implements GeometricBoundingVolume.

Definition at line 34 of file boundingLine.cxx.

◆ get_class_type()

static TypeHandle BoundingLine::get_class_type ( )
inlinestatic

Definition at line 72 of file boundingLine.h.

◆ get_point_a()

const LPoint3 & BoundingLine::get_point_a ( ) const
inline

Returns the first point that defines the line.

Definition at line 38 of file boundingLine.I.

References BoundingVolume::is_empty(), and BoundingVolume::is_infinite().

◆ get_point_b()

LPoint3 BoundingLine::get_point_b ( ) const
inline

Returns the second point that defines the line.

Definition at line 48 of file boundingLine.I.

References BoundingVolume::is_empty(), and BoundingVolume::is_infinite().

◆ get_type()

virtual TypeHandle BoundingLine::get_type ( ) const
inlinevirtual

Reimplemented from GeometricBoundingVolume.

Definition at line 80 of file boundingLine.h.

◆ init_type()

static void BoundingLine::init_type ( )
inlinestatic

Definition at line 75 of file boundingLine.h.

◆ make_copy()

BoundingVolume * BoundingLine::make_copy ( ) const
virtual

Implements BoundingVolume.

Definition at line 26 of file boundingLine.cxx.

◆ output()

void BoundingLine::output ( std::ostream & out) const
virtual

Implements BoundingVolume.

Definition at line 62 of file boundingLine.cxx.

◆ xform()

void BoundingLine::xform ( const LMatrix4 & mat)
virtual

Implements GeometricBoundingVolume.

Definition at line 44 of file boundingLine.cxx.

Friends And Related Symbol Documentation

◆ BoundingBox

friend class BoundingBox
friend

Definition at line 89 of file boundingLine.h.

◆ BoundingSphere

friend class BoundingSphere
friend

Definition at line 88 of file boundingLine.h.


The documentation for this class was generated from the following files: