Panda3D
Classes | Public Member Functions | Static Public Member Functions

PandaLoader Class Reference

A convenient class for loading models from disk, in bam or egg format (or any of a number of other formats implemented by a LoaderFileType, such as ptloader). More...

Inheritance diagram for PandaLoader:
TypedReferenceCount Namable TypedObject ReferenceCount MemoryBase MemoryBase

List of all members.

Classes

class  Results

Public Member Functions

 PandaLoader (string name)
 PandaLoader ()
 clearName ()
 Resets the Namable's name to empty.
string getName ()
int getRefCount ()
 Returns the current reference count.
string getTaskChain ()
 Returns the task chain that is used for asynchronous loads.
AsyncTaskManager getTaskManager ()
 Returns the task manager that is used for asynchronous loads.
TypeHandle getType ()
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool hasName ()
 Returns true if the Namable has a nonempty name set, false if the name is empty.
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly.
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type.
 loadAsync (AsyncTask request)
 Begins an asynchronous load request.
PandaNode loadBamStream (istream in)
 Attempts to read a bam file from the indicated stream and return the scene graph defined there.
PandaNode loadSync (Filename const filename, LoaderOptions const options)
 Loads the file immediately, waiting for it to complete.
PandaNode loadSync (Filename const filename)
 Loads the file immediately, waiting for it to complete.
AsyncTask makeAsyncRequest (Filename const filename, LoaderOptions const options)
 Returns a new AsyncTask object suitable for adding to load_async() to start an asynchronous model load.
AsyncTask makeAsyncRequest (Filename const filename)
 Returns a new AsyncTask object suitable for adding to load_async() to start an asynchronous model load.
 output (ostream out)
 Outputs the Namable.
 ref ()
 Explicitly increments the reference count.
bool remove (AsyncTask task)
 Removes a pending asynchronous load request.
 setName (string name)
 setTaskChain (string task_chain)
 Specifies the task chain that is used for asynchronous loads.
 setTaskManager (AsyncTaskManager task_manager)
 Specifies the task manager that is used for asynchronous loads.
 stopThreads ()
 Stop any threads used for asynchronous loads.
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus.
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
bool unref ()
 Explicitly decrements the reference count.

Static Public Member Functions

static TypeHandle getClassType ()
static PandaLoader getGlobalPtr ()
 Returns a pointer to the global Loader.

Detailed Description

A convenient class for loading models from disk, in bam or egg format (or any of a number of other formats implemented by a LoaderFileType, such as ptloader).

This class supports synchronous as well as asynchronous loading. In asynchronous loading, the model is loaded in the background by a thread, and an event will be generated when the model is available. If threading is not available, the asynchronous loading interface may be used, but it loads synchronously.


Constructor & Destructor Documentation

PandaLoader ( string  name)

Member Function Documentation

clearName ( ) [inherited]

Resets the Namable's name to empty.

Reimplemented in AsyncTask.

static TypeHandle getClassType ( ) [static]

Reimplemented from TypedReferenceCount.

static PandaLoader getGlobalPtr ( ) [static]

Returns a pointer to the global Loader.

This is the Loader that most code should use for loading models.

string getName ( ) [inherited]

Reimplemented in DynamicTextFont.

int getRefCount ( ) [inherited]

Returns the current reference count.

string getTaskChain ( )

Returns the task chain that is used for asynchronous loads.

AsyncTaskManager getTaskManager ( )

Returns the task manager that is used for asynchronous loads.

TypeHandle getType ( ) [inherited]

Reimplemented in AnimChannelBase.

int getTypeIndex ( ) [inherited]

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().

bool hasName ( ) [inherited]

Returns true if the Namable has a nonempty name set, false if the name is empty.

bool isExactType ( TypeHandle  handle) [inherited]

Returns true if the current object is the indicated type exactly.

bool isOfType ( TypeHandle  handle) [inherited]

Returns true if the current object is or derives from the indicated type.

loadAsync ( AsyncTask  request)

Begins an asynchronous load request.

To use this call, first create a new ModelLoadRequest object with the filename you wish to load, and then add that object to the Loader with load_async. This function will return immediately, and the model will be loaded in the background.

To determine when the model has completely loaded, you may poll request->is_ready() from time to time, or set the done_event on the request object and listen for that event. When the model is ready, you may retrieve it via request->get_model().

PandaNode loadBamStream ( istream  in)

Attempts to read a bam file from the indicated stream and return the scene graph defined there.

PandaNode loadSync ( Filename const  filename)

Loads the file immediately, waiting for it to complete.

If search is true, the file is searched for along the model path; otherwise, only the exact filename is loaded.

PandaNode loadSync ( Filename const  filename,
LoaderOptions const  options 
)

Loads the file immediately, waiting for it to complete.

If search is true, the file is searched for along the model path; otherwise, only the exact filename is loaded.

AsyncTask makeAsyncRequest ( Filename const  filename,
LoaderOptions const  options 
)

Returns a new AsyncTask object suitable for adding to load_async() to start an asynchronous model load.

AsyncTask makeAsyncRequest ( Filename const  filename)

Returns a new AsyncTask object suitable for adding to load_async() to start an asynchronous model load.

output ( ostream  out)

Outputs the Namable.

This function simply writes the name to the output stream; most Namable derivatives will probably redefine this.

Reimplemented from Namable.

ref ( ) [inherited]

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.

bool remove ( AsyncTask  task)

Removes a pending asynchronous load request.

Returns true if successful, false otherwise.

setName ( string  name) [inherited]

Reimplemented in PGItem, and AsyncTask.

setTaskChain ( string  task_chain)

Specifies the task chain that is used for asynchronous loads.

The default is the initial name of the Loader object.

setTaskManager ( AsyncTaskManager  task_manager)

Specifies the task manager that is used for asynchronous loads.

The default is the global task manager.

stopThreads ( )

Stop any threads used for asynchronous loads.

bool testRefCountIntegrity ( ) [inherited]

Does some easy checks to make sure that the reference count isn't completely bogus.

Returns true if ok, false otherwise.

Reimplemented in NodeReferenceCount, CachedTypedWritableReferenceCount, and NodeCachedReferenceCount.

bool testRefCountNonzero ( ) [inherited]

Does some easy checks to make sure that the reference count isn't zero, or completely bogus.

Returns true if ok, false otherwise.

bool unref ( ) [inherited]

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.) 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.

Reimplemented in GeomVertexArrayFormat, and GeomVertexFormat.

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties