Panda3D
Public Member Functions | Public Attributes | Static Public Attributes

PhasedObject Class Reference

Inheritance diagram for PhasedObject:
AnfaPhasedObject

List of all members.

Public Member Functions

def __init__
def __repr__
def __str__
def cleanup
def getAliasPhase
def getPhase
def getPhaseAlias
def setAlias
def setPhase

Public Attributes

 aliasPhaseMap
 phase
 phaseAliasMap

Static Public Attributes

tuple notify = directNotify.newCategory("PhasedObject")

Detailed Description

This class is governs the loading and unloading of successive
phases in an ordered and automatic manner.

An object can only have one phase at any given moment. At the
completion of setPhase() the current and all previous phases are
guaranteed to be loaded, while all later phases are guaranteed
to be unloaded.

In order to define a phase, simply define the functions:
loadPhase<#> and unloadPhase<#> where # corresponds to the number
of the phase to be defined and # >= 0.

You also have the ability to define alias for phases so that
your function definitions are more descriptive.  The way to do
this is to provide an aliasMap to __init__().  The aliasMap is
of the form {'alias':#, ...}. You can then call setPhase() with
this alias as well.

So for example, if you wanted to alias phase 0 to 'Far' you
would define loadPhaseFar() and unloadPhaseFar(). Upon calling
setPhase(0), setPhase('Far'), setPhase(<any phase greater than 0>),
or setPhase(<any alias greater than 'Far'>), loadPhaseFar() will
be invoked.

For a skeleton example class, see the AnfaPhasedObject class
definition lower in this file.

Constructor & Destructor Documentation

def __init__ (   self,
  aliasMap = {} 
)

Member Function Documentation

def __repr__ (   self)
def __str__ (   self)
def cleanup (   self)
Will force the unloading, in correct order, of all currently
loaded phases.
def getAliasPhase (   self,
  alias 
)
Returns the phase number of an alias, if it exists.
Otherwise, returns the alias.
def getPhase (   self)
Returns the current phase (or alias, if defined)
this object is currently in.
def getPhaseAlias (   self,
  phase 
)
Returns the alias of a phase number, if it exists.
Otherwise, returns the phase number.
def setAlias (   self,
  phase,
  alias 
)
Map an alias to a phase number.

phase must be >= 0 and alias must be a string
of characters suitable for python variable names.

The mapping must be one-to-one.        
def setPhase (   self,
  aPhase 
)
aPhase can be either a phase number or a predefined alias.

Will invoke a sequence of loadPhase*() or unloadPhase*()
functions corresponding to the difference between the current
phase and aPhase, starting at the current phase.

Member Data Documentation

tuple notify = directNotify.newCategory("PhasedObject") [static]
 All Classes Namespaces Functions Variables Properties