# SelectionRay

from direct.directtools.DirectSelection import SelectionRay

## Inheritance:

SelectionRay: SelectionQueue
SelectionQueue: CollisionHandlerQueue
CollisionHandlerQueue: CollisionHandler
CollisionHandler: TypedReferenceCount
TypedReferenceCount: TypedObject ReferenceCount
TypedObject:
ReferenceCount:

## Methods of SelectionRay:

__init__
pick
pick3D
pickBitMask
pickBitMask3D
pickGeom
pickGeom3D
pickWidget

## Methods of SelectionQueue:

__init__
addCollider
addUnpickable
collideWithBitMask
collideWithGeom
collideWithWidget
findCollisionEntry
findNextCollisionEntry
getCurrentEntry
isEntryBackfacing
removeUnpickable
setCurrentEntry
setCurrentIndex
setParentNP

## Methods of CollisionHandlerQueue:

clearEntries
getClassType
getEntry
getNumEntries
sortEntries

## Methods of CollisionHandler:

getClassType

## Methods of TypedReferenceCount:

getClassType

## Methods of TypedObject:

getBestParentFromSet
getClassType
getType
getTypeIndex
isExactType
isOfType

## Methods of ReferenceCount:

getClassType
getRefCount
ref
testRefCountIntegrity
unref

__init__ def __init__(self, parentNP=render) Undocumented function.

pick def pick(self, targetNodePath, xy=None) Undocumented function.

pick3D def pick3D(self, targetNodePath, origin, dir) Undocumented function.

pickBitMask def pickBitMask(self, bitMask=BitMask32.allOff(), targetNodePath=render, skipFlags=SKIP_ALL) Undocumented function.

pickBitMask3D def pickBitMask3D(self, bitMask=BitMask32.allOff(), targetNodePath=render, origin=Point3(0), dir=Vec3(0, 0, -1), skipFlags=SKIP_ALL) Undocumented function.

pickGeom def pickGeom(self, targetNodePath=render, skipFlags=SKIP_ALL, xy=None) Undocumented function.

pickGeom3D def pickGeom3D(self, targetNodePath=render, origin=Point3(0), dir=Vec3(0, 0, -1), skipFlags=SKIP_HIDDEN|SKIP_CAMERA) Undocumented function.

pickWidget def pickWidget(self, targetNodePath=render, skipFlags=SKIP_NONE) Undocumented function.

__init__ def __init__(self, parentNP=render) Undocumented function.

addCollider def addCollider(self, collider) Undocumented function.

addUnpickable def addUnpickable(self, item) Undocumented function.

collideWithBitMask def collideWithBitMask(self, bitMask) Undocumented function.

collideWithGeom def collideWithGeom(self) Undocumented function.

collideWithWidget def collideWithWidget(self) Undocumented function.

findCollisionEntry def findCollisionEntry(self, skipFlags=SKIP_NONE, startIndex=0) Undocumented function.

findNextCollisionEntry def findNextCollisionEntry(self, skipFlags=SKIP_NONE) Undocumented function.

getCurrentEntry def getCurrentEntry(self) Undocumented function.

isEntryBackfacing def isEntryBackfacing(self, entry) Undocumented function.

removeUnpickable def removeUnpickable(self, item) Undocumented function.

setCurrentEntry def setCurrentEntry(self, entry) Undocumented function.

setCurrentIndex def setCurrentIndex(self, index) Undocumented function.

setParentNP def setParentNP(self, parentNP) Undocumented function.

clearEntries void CollisionHandlerQueue::clear_entries(void); Description: Removes all the entries from the queue.

getClassType static TypeHandle CollisionHandlerQueue::get_class_type(void); Undocumented function.

getEntry CollisionEntry *CollisionHandlerQueue::get_entry(int n) const; Description: Returns the nth CollisionEntry detected last pass.

getNumEntries int CollisionHandlerQueue::get_num_entries(void) const; Description: Returns the number of CollisionEntries detected last pass.

sortEntries void CollisionHandlerQueue::sort_entries(void); Description: Sorts all the detected collisions front-to-back by from_intersection_point() so that those intersection points closest to the collider's origin (e.g., the center of the CollisionSphere, or the point_a of a CollisionSegment) appear first.

getClassType static TypeHandle CollisionHandler::get_class_type(void); Undocumented function.

getClassType static TypeHandle TypedReferenceCount::get_class_type(void); Undocumented function.

getBestParentFromSet int TypedObject::get_best_parent_from_Set(set< int > const &) const; Description: Returns true if the current object is the indicated type exactly.

getClassType static TypeHandle TypedObject::get_class_type(void); Undocumented function.

getType virtual TypeHandle TypedObject::get_type(void) const = 0; Derived classes should override this function to return get_class_type().

getTypeIndex int TypedObject::get_type_index(void) const; Description: Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. This is equivalent to get_type().get_index().

isExactType bool TypedObject::is_exact_type(TypeHandle handle) const; Description: Returns true if the current object is the indicated type exactly.

isOfType bool TypedObject::is_of_type(TypeHandle handle) const; Description: Returns true if the current object is or derives from the indicated type.

getClassType static TypeHandle ReferenceCount::get_class_type(void); Undocumented function.

getRefCount int ReferenceCount::get_ref_count(void) const; Description: Returns the current reference count.

ref void ReferenceCount::ref(void) const; Description: Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

testRefCountIntegrity bool ReferenceCount::test_ref_count_integrity(void) const; Description: Does some easy checks to make sure that the reference count isn't completely bogus. Returns true if ok, false otherwise.

unref bool ReferenceCount::unref(void) const; Description: Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete(). User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is true if the new reference count is nonzero, false if it is zero.