Panda3D
|
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"
Classes | |
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. More... | |
AsyncTaskManager * | get_task_manager () const |
Returns the task manager that is used for asynchronous loads. More... | |
virtual TypeHandle | get_type () const |
void | load_async (AsyncTask *request) |
virtual void | output (ostream &out) const |
PT (PandaNode) load_sync(const Filename &filename | |
PT (AsyncTask) make_async_request(const Filename &filename | |
PT (AsyncTask) make_async_save_request(const Filename &filename | |
PT (PandaNode) load_bam_stream(istream &in) | |
bool | remove (AsyncTask *task) |
Removes a pending asynchronous load request. More... | |
void | save_async (AsyncTask *request) |
Begins an asynchronous save request. More... | |
bool | save_sync (const Filename &filename, const LoaderOptions &options, PandaNode *node) const |
Saves the file immediately, waiting for it to complete. More... | |
void | set_task_chain (const string &task_chain) |
Specifies the task chain that is used for asynchronous loads. More... | |
void | set_task_manager (AsyncTaskManager *task_manager) |
Specifies the task manager that is used for asynchronous loads. More... | |
void | stop_threads () |
Stop any threads used for asynchronous loads. More... | |
![]() | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
![]() | |
TypedObject (const TypedObject ©) | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
void | operator= (const TypedObject ©) |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
![]() | |
Namable (const string &initial_name="") | |
Namable (const Namable ©) | |
void | clear_name () |
Resets the Namable's name to empty. More... | |
const string & | get_name () const |
bool | has_name () const |
Returns true if the Namable has a nonempty name set, false if the name is empty. More... | |
Namable & | operator= (const Namable &other) |
void | output (ostream &out) const |
Outputs the Namable. More... | |
void | set_name (const string &name) |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static Loader * | get_global_ptr () |
Returns a pointer to the global Loader. More... | |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
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. More... | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
Public Attributes | |
const LoaderOptions PandaNode * | node |
const LoaderOptions & | options = LoaderOptions()) const |
Friends | |
class | ModelLoadRequest |
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.
|
inlinestatic |
Returns a pointer to the global Loader.
This is the Loader that most code should use for loading models.
Definition at line 267 of file loader.I.
Referenced by SpeedTreeNode::add_from_stf(), SpeedTreeNode::InstanceList::fillin(), save_async(), FontPool::write(), and ModelPool::write().
|
inline |
Returns the task chain that is used for asynchronous loads.
Definition at line 153 of file loader.I.
References stop_threads().
Referenced by set_task_chain().
|
inline |
Returns the task manager that is used for asynchronous loads.
Definition at line 130 of file loader.I.
References set_task_chain().
Referenced by set_task_manager().
|
inline |
Removes a pending asynchronous load request.
Returns true if successful, false otherwise.
Definition at line 177 of file loader.I.
References save_sync(), and AsyncTask::set_task_chain().
Referenced by stop_threads().
|
inline |
Begins an asynchronous save request.
To use this call, first call make_async_save_request() to create a new ModelSaveRequest object with the filename you wish to load, and then add that object to the Loader with save_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 request is ready, you may retrieve the success or failure via request->get_success().
Definition at line 255 of file loader.I.
References get_global_ptr(), and AsyncTask::set_task_chain().
Referenced by save_sync().
|
inline |
Saves the file immediately, waiting for it to complete.
Definition at line 228 of file loader.I.
References save_async().
Referenced by remove().
|
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.
References get_task_chain().
Referenced by get_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.
References get_task_manager().
Referenced by Loader::Results::add_file().
|
inline |
Stop any threads used for asynchronous loads.
Definition at line 163 of file loader.I.
References remove().
Referenced by get_task_chain().