Panda3D
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes

CullBin Class Reference

A collection of Geoms and their associated state, for a particular scene. More...

#include "cullBin.h"

Inheritance diagram for CullBin:
TypedReferenceCount CullBinEnums TypedObject ReferenceCount MemoryBase MemoryBase CullBinBackToFront CullBinFixed CullBinFrontToBack CullBinStateSorted CullBinUnsorted

List of all members.

Classes

class  ResultGraphBuilder

Public Member Functions

 CullBin (const string &name, BinType bin_type, GraphicsStateGuardianBase *gsg, const PStatCollector &draw_region_pcollector)
virtual void add_object (CullableObject *object, Thread *current_thread)=0
virtual void draw (bool force, Thread *current_thread)=0
virtual void finish_cull (SceneSetup *scene_setup, Thread *current_thread)
 Called after all the geoms have been added, this indicates that the cull process is finished for this frame and gives the bins a chance to do any post-processing (like sorting) before moving on to draw.
virtual TypeHandle force_init_type ()
BinType get_bin_type () const
const LColorget_flash_color () const
 If has_flash_color returns true, this returns the color specified.
const string & get_name () const
virtual TypeHandle get_type () const
bool has_flash_color () const
 Returns true if this bin has a flash color configured via the flash-bin-binname config directive, or false otherwise.
virtual PT (CullBin) make_next() const
 PT (PandaNode) make_result_graph()

Static Public Member Functions

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.

Protected Member Functions

 CullBin (const CullBin &copy)
virtual void fill_result_graph (ResultGraphBuilder &builder)=0

Protected Attributes

BinType _bin_type
PStatCollector _cull_this_pcollector
PStatCollector _draw_this_pcollector
LColor _flash_color
GraphicsStateGuardianBase_gsg
bool _has_flash_color
string _name

Static Protected Attributes

static PStatCollector _cull_bin_pcollector

Detailed Description

A collection of Geoms and their associated state, for a particular scene.

The cull traversal (and the BinCullHandler) assigns Geoms to bins as it comes across them.

This is an abstract base class; derived classes like CullBinStateSorted and CullBinBackToFront provide the actual implementation.

Definition at line 44 of file cullBin.h.


Member Function Documentation

void CullBin::finish_cull ( SceneSetup scene_setup,
Thread current_thread 
) [virtual]

Called after all the geoms have been added, this indicates that the cull process is finished for this frame and gives the bins a chance to do any post-processing (like sorting) before moving on to draw.

Reimplemented in CullBinBackToFront, CullBinFixed, CullBinFrontToBack, and CullBinStateSorted.

Definition at line 64 of file cullBin.cxx.

Referenced by CullResult::finish_cull().

const LColor & CullBin::get_flash_color ( ) const [inline]

If has_flash_color returns true, this returns the color specified.

Definition at line 89 of file cullBin.I.

bool CullBin::has_flash_color ( ) const [inline]

Returns true if this bin has a flash color configured via the flash-bin-binname config directive, or false otherwise.

Definition at line 78 of file cullBin.I.

static void CullBin::init_type ( ) [inline, static]

This function is declared non-inline to work around a compiler bug in g++ 2.96.

Making it inline seems to cause problems in the optimizer.

Reimplemented from TypedReferenceCount.

Reimplemented in CullBinBackToFront, CullBinFixed, CullBinFrontToBack, CullBinStateSorted, and CullBinUnsorted.

Definition at line 108 of file cullBin.h.

References TypedReferenceCount::init_type().

Referenced by CullBinUnsorted::init_type(), CullBinStateSorted::init_type(), CullBinFrontToBack::init_type(), CullBinFixed::init_type(), and CullBinBackToFront::init_type().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations