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

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

#include "loader.h"

Inheritance diagram for Loader:
TypedReferenceCount Namable TypedObject ReferenceCount MemoryBase MemoryBase MemoryBase

List of all members.

Classes

class  ConsiderFile
class  Results

Public Member Functions

 Loader (const string &name="loader")
virtual TypeHandle force_init_type ()
const string & get_task_chain () const
 Returns the task chain that is used for asynchronous loads.
AsyncTaskManagerget_task_manager () const
 Returns the task manager that is used for asynchronous loads.
virtual TypeHandle get_type () const
void load_async (AsyncTask *request)
 Begins an asynchronous load request.
virtual void output (ostream &out) const
 Outputs the Namable.
 PT (AsyncTask) make_async_request(const Filename &filename
 PT (PandaNode) load_sync(const Filename &filename
 PT (PandaNode) load_bam_stream(istream &in)
bool remove (AsyncTask *task)
 Removes a pending asynchronous load request.
void set_task_chain (const string &task_chain)
 Specifies the task chain that is used for asynchronous loads.
void set_task_manager (AsyncTaskManager *task_manager)
 Specifies the task manager that is used for asynchronous loads.
void stop_threads ()
 Stop any threads used for asynchronous loads.

Static Public Member Functions

static TypeHandle get_class_type ()
static Loaderget_global_ptr ()
 Returns a pointer to the global Loader.
static void init_type ()

Public Attributes

const LoaderOptionsoptions = LoaderOptions()) const

Friends

class ModelLoadRequest

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.

Definition at line 47 of file loader.h.


Member Function Documentation

Loader * Loader::get_global_ptr ( ) [inline, static]

Returns a pointer to the global Loader.

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

Definition at line 228 of file loader.I.

Referenced by SpeedTreeNode::add_from_stf(), and SpeedTreeNode::InstanceList::fillin().

const string & Loader::get_task_chain ( ) const [inline]

Returns the task chain that is used for asynchronous loads.

Definition at line 153 of file loader.I.

AsyncTaskManager * Loader::get_task_manager ( ) const [inline]

Returns the task manager that is used for asynchronous loads.

Definition at line 130 of file loader.I.

void Loader::load_async ( AsyncTask request) [inline]

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

Definition at line 216 of file loader.I.

References AsyncTask::set_task_chain().

void Loader::output ( ostream &  out) const [virtual]

Outputs the Namable.

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

Reimplemented from Namable.

Definition at line 109 of file loader.cxx.

bool Loader::remove ( AsyncTask task) [inline]

Removes a pending asynchronous load request.

Returns true if successful, false otherwise.

Definition at line 177 of file loader.I.

void Loader::set_task_chain ( const string &  task_chain) [inline]

Specifies the task chain that is used for asynchronous loads.

The default is the initial name of the Loader object.

Definition at line 142 of file loader.I.

void Loader::set_task_manager ( AsyncTaskManager task_manager) [inline]

Specifies the task manager that is used for asynchronous loads.

The default is the global task manager.

Definition at line 119 of file loader.I.

void Loader::stop_threads ( ) [inline]

Stop any threads used for asynchronous loads.

Definition at line 163 of file loader.I.


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