Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | List of all members
Assets Class Referenceabstract

#include <assets.h>

Public Member Functions

 LM_COMPONENT_INTERFACE_DEF ("assets")
 
virtual bool Load (const ConfigNode &node)=0
 
virtual AssetGetAssetByName (const std::string &name) const =0
 
virtual boost::signals2::connection Connect_ReportProgress (const std::function< void(double, bool)> &func)=0
 
virtual bool RegisterInterface (const std::string &interfaceName, const std::string &interfaceGroupName, const std::vector< std::string > &dependencies)=0
 
template<typename AssetInterfaceType >
bool RegisterInterface ()
 
LM_PUBLIC_API AssetResolveReferenceToAsset (const ConfigNode &node, const std::string &type) const
 
template<typename AssetInterfaceType >
AssetInterfaceType * ResolveReferenceToAsset (const ConfigNode &node) const
 
template<typename AssetInterfaceType >
LM_NAMESPACE_BEGIN bool RegisterInterface ()
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Detailed Description

Collection of assets. The asset collection class for the asset management.

Inheritance diagram for Assets:
Component SIMDAlignedType AssetsImpl StubAssets

Member Function Documentation

virtual boost::signals2::connection Assets::Connect_ReportProgress ( const std::function< void(double, bool)> &  func)
pure virtual

Connect to ReportProgress signal. The signal is emitted when the progress of asset loading is changed.

Parameters
funcSlot function.

Implemented in AssetsImpl.

virtual Asset* Assets::GetAssetByName ( const std::string &  name) const
pure virtual

Get an asset by name. Returns nullptr if not found.

Parameters
nameName of the asset.
Returns
Asset instance.

Implemented in AssetsImpl, and StubAssets.

virtual bool Assets::Load ( const ConfigNode node)
pure virtual

Load assets from XML element. Parse the element #node and register assets.

Parameters
nodeA XML element which consists of the assets element.
Return values
trueSucceeded to load assets.
falseFailed to load assets.

Implemented in AssetsImpl, and StubAssets.

virtual bool Assets::RegisterInterface ( const std::string &  interfaceName,
const std::string &  interfaceGroupName,
const std::vector< std::string > &  dependencies 
)
pure virtual

Register an interface for assets. Register an component interface class for assets creation. The class must inherit Assets and specify dependencies to the other asset types with LM_ASSET_DEPENDENCIES macro. Fails if the factory with same name is already registered.

Parameters
interfaceNameName of component interface class which is inherited from Asset.
interfaceGroupNameName of interface group. e.g. triangle_meshes for triangle_mesh type.
dependenciesDependent asset interface names.
Return values
trueSucceeded to register.
falseFailed to register.
See also
LM_ASSET_DEPENDENCIES

Implemented in AssetsImpl, and StubAssets.

template<typename AssetInterfaceType >
bool Assets::RegisterInterface ( )

Register an interface for assets. Register an component interface class for assets creation. This template version statically checks the requirement for types.

Template Parameters
AssetInterfaceTypeType of component interface class which is inherited from Asset.
Return values
trueSucceeded to register.
falseFailed to register.
See also
LM_ASSET_DEPENDENCIES
Asset * Assets::ResolveReferenceToAsset ( const ConfigNode node,
const std::string &  type 
) const

Resolve reference to the asset. Resolve reference to an asset using ref attribute. Returns nullptr if ref attribute is not found.

Parameters
nodeA XML element which consists of the ref attribute.
typeTarget asset type, e.g. triangle_mesh.
Returns
Resolved asset.
template<typename AssetInterfaceType >
AssetInterfaceType * Assets::ResolveReferenceToAsset ( const ConfigNode node) const

Resolve reference to the asset. Template version of ResolveReferenceToAsset.

Template Parameters
AssetInterfaceTypeAsset interface type.
Parameters
nodeA XML element which consists of the ref attribute.
Returns
Resolved asset.

The documentation for this class was generated from the following files: