31class VENOM_COMMON_API ModelImpl :
public PluginObjectImpl,
public GraphicsPluginObject,
public GraphicsCachedResourceHolder
37 vc::Error ImportModel(
const char * path);
38 virtual void Draw() = 0;
40 const vc::Vector<vc::Mesh> & GetMeshes()
const;
41 const vc::Vector<vc::Material> & GetMaterials()
const;
42 vc::Vector<vc::Material> & GetMaterials();
54class VENOM_COMMON_API Model :
public Component,
public PluginObjectImplWrapper
58 Model(
const char * path);
61 void Init(Entity entity)
override;
62 void Update(Entity entity)
override;
63 void _GUI(
const Entity entity)
override;
64 vc::String _GetComponentTitle()
override;
65 bool CanRemove(Entity entity)
override;
67 inline void Draw() { _impl->As<
ModelImpl>()->Draw(); }
68 inline vc::Error ImportModel(
const char * path) {
return _impl->As<
ModelImpl>()->ImportModel(path); }
69 inline const vc::Vector<vc::Mesh> & GetMeshes()
const {
return _impl->As<
ModelImpl>()->GetMeshes(); }
70 inline const vc::Vector<vc::Material> & GetMaterials()
const {
return _impl->As<
ModelImpl>()->GetMaterials(); }
71 inline vc::Vector<vc::Material> & GetMaterials() {
return _impl->As<
ModelImpl>()->GetMaterials(); }
72 inline const vc::String & GetName() {
return _impl->As<
ModelImpl>()->GetResourceName(); }
73 inline const vc::String & GetShortName() {
return _impl->As<
ModelImpl>()->GetResourceShortName(); }