1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-20 07:23:51 +00:00

Trying to animate creatures

This commit is contained in:
Jason Hooks 2011-04-13 20:35:44 -04:00
parent 2ac1cc8aee
commit 92509d3b70
6 changed files with 39 additions and 1 deletions

View file

@ -34,7 +34,7 @@ namespace MWClass
if (!model.empty()) if (!model.empty())
{ {
MWRender::Rendering rendering (cellRender, ref->ref); MWRender::Rendering rendering (cellRender, ref->ref);
cellRender.insertMesh ("meshes\\" + model); cellRender.insertMesh("meshes\\" + model);
cellRender.insertActorPhysics(); cellRender.insertActorPhysics();
ref->mData.setHandle (rendering.end (ref->mData.isEnabled())); ref->mData.setHandle (rendering.end (ref->mData.isEnabled()));
} }

View file

@ -7,6 +7,7 @@
#include "../mwworld/refdata.hpp" #include "../mwworld/refdata.hpp"
#include <OgreMath.h> #include <OgreMath.h>
#include <Ogre.h>
namespace Ogre namespace Ogre
{ {
@ -42,6 +43,7 @@ namespace MWRender
virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst) = 0; virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst) = 0;
virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements) = 0; virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements) = 0;
virtual void insertMesh(const std::string &mesh) = 0; virtual void insertMesh(const std::string &mesh) = 0;
//virtual Ogre::Entity* insertAndDeliverMesh(const std::string &mesh) = 0;
virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements) = 0; virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements) = 0;

View file

@ -273,6 +273,21 @@ std::string ExteriorCellRender::insertEnd (bool enable)
return handle; return handle;
} }
/*
Ogre::Entity* ExteriorCellRender::insertAndDeliverMesh(const std::string &mesh)
{
assert (insert);
NIFLoader::load(mesh);
Entity *ent = mScene.getMgr()->createEntity(mesh);
ent->setDisplaySkeleton(true);
mInsert->attachObject(ent);
return ent;
}*/
// configure lighting according to cell // configure lighting according to cell
void ExteriorCellRender::configureAmbient() void ExteriorCellRender::configureAmbient()

View file

@ -6,6 +6,7 @@
#include "OgreColourValue.h" #include "OgreColourValue.h"
#include <OgreMath.h> #include <OgreMath.h>
#include <Ogre.h>
namespace Ogre namespace Ogre
{ {
@ -70,6 +71,7 @@ namespace MWRender
virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst); virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst);
virtual void insertMesh(const std::string &mesh); virtual void insertMesh(const std::string &mesh);
//virtual Ogre::Entity* insertAndDeliverMesh(const std::string &mesh);
virtual void rotateMesh(Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName[], int elements); virtual void rotateMesh(Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName[], int elements);
virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements); virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements);

View file

@ -180,6 +180,23 @@ void InteriorCellRender::insertMesh(const std::string &mesh, Ogre::Vector3 vec,
} }
} }
/*
Ogre::Entity* InteriorCellRender::insertAndDeliverMesh(const std::string &mesh)
{
assert (insert);
NIFLoader::load(mesh);
Entity *ent = scene.getMgr()->createEntity(mesh);
ent->setDisplaySkeleton(true);
insert->attachObject(ent);
return ent;
}*/
void InteriorCellRender::insertMesh(const std::string &mesh) void InteriorCellRender::insertMesh(const std::string &mesh)
{ {
assert (insert); assert (insert);

View file

@ -6,6 +6,7 @@
#include "OgreColourValue.h" #include "OgreColourValue.h"
#include <OgreSceneNode.h> #include <OgreSceneNode.h>
#include <Ogre.h>
namespace Ogre namespace Ogre
{ {
@ -67,6 +68,7 @@ namespace MWRender
virtual void rotateMesh(Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName[], int elements); virtual void rotateMesh(Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName[], int elements);
virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements); virtual void scaleMesh(Ogre::Vector3 axis, std::string sceneNodeName[], int elements);
/// insert a mesh related to the most recent insertBegin call. /// insert a mesh related to the most recent insertBegin call.
//virtual Ogre::Entity* insertAndDeliverMesh(const std::string &mesh);
virtual void insertMesh(const std::string &mesh); virtual void insertMesh(const std::string &mesh);
virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements); virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements);
virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst); virtual void insertMesh(const std::string &mesh, Ogre::Vector3 vec, Ogre::Vector3 axis, Ogre::Radian angle, std::string sceneNodeName, std::string sceneParent[], int elements, bool translateFirst);