mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-16 15:29:55 +00:00
Move skinning code to SceneUtil
This commit is contained in:
parent
9246a668b9
commit
eaa4316ff8
7 changed files with 15 additions and 15 deletions
|
@ -39,7 +39,7 @@ add_component_dir (resource
|
|||
)
|
||||
|
||||
add_component_dir (sceneutil
|
||||
clone attach lightmanager visitor util statesetupdater controller
|
||||
clone attach lightmanager visitor util statesetupdater controller skeleton riggeometry
|
||||
)
|
||||
|
||||
add_component_dir (nif
|
||||
|
@ -47,7 +47,7 @@ add_component_dir (nif
|
|||
)
|
||||
|
||||
add_component_dir (nifosg
|
||||
nifloader controller particle userdata skeleton riggeometry
|
||||
nifloader controller particle userdata
|
||||
)
|
||||
|
||||
#add_component_dir (nifcache
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
|
||||
#include <components/nif/node.hpp>
|
||||
#include <components/sceneutil/util.hpp>
|
||||
#include <components/sceneutil/skeleton.hpp>
|
||||
#include <components/sceneutil/riggeometry.hpp>
|
||||
|
||||
#include "particle.hpp"
|
||||
#include "userdata.hpp"
|
||||
#include "skeleton.hpp"
|
||||
#include "riggeometry.hpp"
|
||||
|
||||
namespace
|
||||
{
|
||||
|
@ -279,7 +279,7 @@ namespace
|
|||
|
||||
for (osg::NodePath::iterator it = path.begin(); it != path.end(); ++it)
|
||||
{
|
||||
if (dynamic_cast<NifOsg::Skeleton*>(*it))
|
||||
if (dynamic_cast<SceneUtil::Skeleton*>(*it))
|
||||
{
|
||||
path.erase(path.begin(), it+1);
|
||||
// the bone's transform in skeleton space
|
||||
|
@ -535,7 +535,7 @@ namespace NifOsg
|
|||
|
||||
osg::ref_ptr<TextKeyMapHolder> textkeys (new TextKeyMapHolder);
|
||||
|
||||
osg::ref_ptr<Skeleton> skel = new Skeleton;
|
||||
osg::ref_ptr<SceneUtil::Skeleton> skel = new SceneUtil::Skeleton;
|
||||
handleNode(nifNode, skel, textureManager, true, std::map<int, int>(), 0, 0, false, &textkeys->mTextKeys);
|
||||
|
||||
skel->getOrCreateUserDataContainer()->addUserObject(textkeys);
|
||||
|
@ -1168,13 +1168,13 @@ namespace NifOsg
|
|||
osg::ref_ptr<osg::Geometry> geometry (new osg::Geometry);
|
||||
triShapeToGeometry(triShape, geometry, geode, boundTextures, animflags);
|
||||
|
||||
osg::ref_ptr<RigGeometry> rig(new RigGeometry);
|
||||
osg::ref_ptr<SceneUtil::RigGeometry> rig(new SceneUtil::RigGeometry);
|
||||
rig->setSourceGeometry(geometry);
|
||||
|
||||
const Nif::NiSkinInstance *skin = triShape->skin.getPtr();
|
||||
|
||||
// Assign bone weights
|
||||
osg::ref_ptr<RigGeometry::InfluenceMap> map (new RigGeometry::InfluenceMap);
|
||||
osg::ref_ptr<SceneUtil::RigGeometry::InfluenceMap> map (new SceneUtil::RigGeometry::InfluenceMap);
|
||||
|
||||
const Nif::NiSkinData *data = skin->data.getPtr();
|
||||
const Nif::NodeList &bones = skin->bones;
|
||||
|
@ -1182,7 +1182,7 @@ namespace NifOsg
|
|||
{
|
||||
std::string boneName = bones[i].getPtr()->name;
|
||||
|
||||
RigGeometry::BoneInfluence influence;
|
||||
SceneUtil::RigGeometry::BoneInfluence influence;
|
||||
const std::vector<Nif::NiSkinData::VertWeight> &weights = data->bones[i].weights;
|
||||
//influence.mWeights.reserve(weights.size());
|
||||
for(size_t j = 0;j < weights.size();j++)
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#include <components/misc/stringops.hpp>
|
||||
|
||||
#include <components/nifosg/skeleton.hpp>
|
||||
#include <components/sceneutil/skeleton.hpp>
|
||||
|
||||
#include "visitor.hpp"
|
||||
|
||||
|
@ -47,7 +47,7 @@ namespace SceneUtil
|
|||
|
||||
osg::ref_ptr<osg::Node> attach(osg::ref_ptr<osg::Node> toAttach, osg::Node *master, const std::string &filter, const std::string &attachNode)
|
||||
{
|
||||
if (dynamic_cast<NifOsg::Skeleton*>(toAttach.get()))
|
||||
if (dynamic_cast<SceneUtil::Skeleton*>(toAttach.get()))
|
||||
{
|
||||
osg::ref_ptr<osg::Group> handle = new osg::Group;
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include <osg/io_utils>
|
||||
|
||||
namespace NifOsg
|
||||
namespace SceneUtil
|
||||
{
|
||||
|
||||
// TODO: make threadsafe for multiple cull threads
|
|
@ -4,7 +4,7 @@
|
|||
#include <osg/Geometry>
|
||||
#include <osg/Matrixf>
|
||||
|
||||
namespace NifOsg
|
||||
namespace SceneUtil
|
||||
{
|
||||
|
||||
class Skeleton;
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include <iostream>
|
||||
|
||||
namespace NifOsg
|
||||
namespace SceneUtil
|
||||
{
|
||||
|
||||
class InitBoneCacheVisitor : public osg::NodeVisitor
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
namespace NifOsg
|
||||
namespace SceneUtil
|
||||
{
|
||||
|
||||
// Defines a Bone hierarchy, used for updating of skeleton-space bone matrices.
|
Loading…
Reference in a new issue