From Cedric Pinson, remove unused file, fix crash for old files

This commit is contained in:
Cedric Pinson
2010-01-27 15:37:45 +00:00
parent 6af9f0819b
commit d730a6bdb5
6 changed files with 8 additions and 131 deletions

View File

@@ -1,49 +0,0 @@
/* -*-c++-*-
* Copyright (C) 2008 Cedric Pinson <mornifle@plopbyte.net>
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGANIMATION_ASSERT_H
#define OSGANIMATION_ASSERT_H
#include <string>
#include <sstream>
#include <exception>
namespace osgAnimation
{
struct ThrowAssert : public std::exception
{
virtual const char* what() const throw () { return mMsg.c_str();}
std::string mMsg;
ThrowAssert(const std::string& msg, const char* file, int line )
{
std::stringstream ss;
ss << "Assert (" << msg << ") in file " << file << " at line " << line;
mMsg = ss.str();
}
ThrowAssert() {}
virtual ~ThrowAssert() throw () {}
};
}
#ifdef OSGANIMATION_ASSERT_THROW
//#define OSGANIMATION_ASSERT(a) if (!(a)) throw osgAnimation::ThrowAssert(std::string(#a),__FILE__,__LINE__);
#else
//#define OSGANIMATION_ASSERT(a) {if (!(a)) *((int*)0) = 0;}
#endif
#endif

View File

@@ -1,42 +0,0 @@
/* -*-c++-*-
* Copyright (C) 2008 Cedric Pinson <cedric.pinson@plopbyte.net>
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef FIND_PARENT_ANIMATIONMANAGER_VISITOR_H
#define FIND_PARENT_ANIMATIONMANAGER_VISITOR_H 1
#include <osg/NodeVisitor>
#include <osgAnimation/Export>
namespace osgAnimation
{
class AnimationManagerBase;
/**
* Find the nearest AnimationManager traversing parent to parent
*/
class OSGANIMATION_EXPORT FindParentAnimationManagerVisitor : public osg::NodeVisitor
{
public:
FindParentAnimationManagerVisitor();
void apply(osg::Node& node);
osgAnimation::AnimationManagerBase* getAnimationManager();
protected:
osg::ref_ptr<osgAnimation::AnimationManagerBase> _manager;
};
}
#endif

View File

@@ -12,8 +12,8 @@
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGANIMATION_VERTEX_INFLUENCE_H
#define OSGANIMATION_VERTEX_INFLUENCE_H 1
#ifndef OSGANIMATION_VERTEX_INFLUENCE
#define OSGANIMATION_VERTEX_INFLUENCE 1
#include <osg/Object>
#include <osgAnimation/Export>

View File

@@ -20,7 +20,6 @@ SET(LIB_PUBLIC_HEADERS
${HEADER_PATH}/Animation
${HEADER_PATH}/AnimationManagerBase
${HEADER_PATH}/AnimationUpdateCallback
${HEADER_PATH}/Assert
${HEADER_PATH}/BasicAnimationManager
${HEADER_PATH}/Bone
${HEADER_PATH}/BoneMapVisitor
@@ -28,7 +27,6 @@ SET(LIB_PUBLIC_HEADERS
${HEADER_PATH}/CubicBezier
${HEADER_PATH}/EaseMotion
${HEADER_PATH}/Export
${HEADER_PATH}/FindParentAnimationManagerVisitor
${HEADER_PATH}/FrameAction
${HEADER_PATH}/Interpolator
${HEADER_PATH}/Keyframe
@@ -76,7 +74,6 @@ ADD_LIBRARY(${LIB_NAME}
Bone.cpp
BoneMapVisitor.cpp
Channel.cpp
FindParentAnimationManagerVisitor.cpp
LinkVisitor.cpp
MorphGeometry.cpp
RigGeometry.cpp

View File

@@ -1,34 +0,0 @@
/* -*-c++-*-
* Copyright (C) 2008 Cedric Pinson <cedric.pinson@plopbyte.net>
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#include <osgAnimation/FindParentAnimationManagerVisitor>
#include <osgAnimation/AnimationManagerBase>
osgAnimation::FindParentAnimationManagerVisitor::FindParentAnimationManagerVisitor() : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_PARENTS) {}
void osgAnimation::FindParentAnimationManagerVisitor::apply(osg::Node& node)
{
if (_manager.valid())
return;
osg::NodeCallback* callback = node.getUpdateCallback();
while (callback)
{
_manager = dynamic_cast<osgAnimation::AnimationManagerBase*>(callback);
if (_manager.valid())
return;
callback = callback->getNestedCallback();
}
traverse(node);
}
osgAnimation::AnimationManagerBase* osgAnimation::FindParentAnimationManagerVisitor::getAnimationManager() { return _manager.get(); }

View File

@@ -35,7 +35,8 @@ bool RigTransformSoftware::init(RigGeometry& geom)
BoneMap bm = mapVisitor.getBoneMap();
initVertexSetFromBones(bm, geom.getVertexInfluenceSet().getUniqVertexSetToBoneSetList());
geom.copyFrom(*geom.getSourceGeometry());
if (geom.getSourceGeometry())
geom.copyFrom(*geom.getSourceGeometry());
geom.setVertexArray(0);
geom.setNormalArray(0);
@@ -49,6 +50,10 @@ void RigTransformSoftware::operator()(RigGeometry& geom)
if (!init(geom))
return;
if (!geom.getSourceGeometry()) {
osg::notify(osg::WARN) << this << " RigTransformSoftware no source geometry found on RigGeometry" << std::endl;
return;
}
osg::Geometry& source = *geom.getSourceGeometry();
osg::Geometry& destination = geom;