40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#pragma once
|
|
#include <App/V8/Tree/PVInstance.hpp>
|
|
#include <App/BrickColor.hpp>
|
|
#include <OGRE/Ogre.h>
|
|
|
|
#define STUD_HEIGHT 1.18
|
|
|
|
namespace RNR
|
|
{
|
|
class PartInstance : public PVInstance, public Ogre::Renderable
|
|
{
|
|
protected:
|
|
int m_brickColor;
|
|
Ogre::MaterialPtr m_material;
|
|
Ogre::Matrix4 m_matrix;
|
|
Ogre::Vector3 m_position;
|
|
Ogre::LightList m_nearbyLights;
|
|
Ogre::Vector3 m_size;
|
|
Ogre::Vector4 m_color;
|
|
static Ogre::MeshPtr m_partMesh;
|
|
virtual void deserializeProperty(char* prop_name, pugi::xml_node prop);
|
|
public:
|
|
PartInstance();
|
|
|
|
void updateMatrix();
|
|
|
|
virtual std::string getClassName() { return "PartInstance"; }
|
|
void setSize(Ogre::Vector3 size) { m_size = size; }
|
|
Ogre::Vector3 getSize() { return m_size; }
|
|
Ogre::Vector4 getColor() { return m_color; }
|
|
|
|
void setBrickColor(int brickcolor) { m_brickColor = brickcolor; }
|
|
int getBrickColor() { return m_brickColor; }
|
|
virtual const Ogre::MaterialPtr& getMaterial() const;
|
|
virtual void getRenderOperation(Ogre::RenderOperation& op);
|
|
virtual Ogre::Real getSquaredViewDepth(const Ogre::Camera* cam) const;
|
|
virtual const Ogre::LightList& getLights() const;
|
|
virtual void getWorldTransforms(Ogre::Matrix4* xform) const;
|
|
};
|
|
} |