89 lines
2.3 KiB
C++
89 lines
2.3 KiB
C++
// Copyright (C) 2002-2006 Nikolaus Gebhardt
|
|
// This file is part of the "Irrlicht Engine".
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
#include "IAnimatedMeshSceneNode.h"
|
|
|
|
|
|
namespace Irrlicht
|
|
{
|
|
namespace Scene
|
|
{
|
|
|
|
IAnimatedMeshSceneNode::IAnimatedMeshSceneNode(irr::scene::IAnimatedMeshSceneNode* realSceneNode)
|
|
: ISceneNode(realSceneNode)
|
|
{
|
|
}
|
|
|
|
void IAnimatedMeshSceneNode::set_CurrentFrame(int frame)
|
|
{
|
|
getAnimatedMeshSceneNode()->setCurrentFrame(frame);
|
|
}
|
|
|
|
int IAnimatedMeshSceneNode::get_CurrentFrame()
|
|
{
|
|
return getAnimatedMeshSceneNode()->getFrameNr();
|
|
}
|
|
|
|
bool IAnimatedMeshSceneNode::SetFrameLoop(int begin, int end)
|
|
{
|
|
return getAnimatedMeshSceneNode()->setFrameLoop(begin, end);
|
|
}
|
|
|
|
void IAnimatedMeshSceneNode::set_AnimationSpeed(float framesPerSecond)
|
|
{
|
|
getAnimatedMeshSceneNode()->setAnimationSpeed(framesPerSecond);
|
|
}
|
|
|
|
ISceneNode* IAnimatedMeshSceneNode::AddShadowVolumeSceneNode(int id,
|
|
bool zfailmethod, float infinity)
|
|
{
|
|
irr::scene::ISceneNode* shadow =
|
|
getAnimatedMeshSceneNode()->addShadowVolumeSceneNode(id, zfailmethod, infinity);
|
|
|
|
if ( shadow )
|
|
return new ISceneNode(shadow);
|
|
|
|
return 0;
|
|
}
|
|
|
|
ISceneNode* IAnimatedMeshSceneNode::AddShadowVolumeSceneNode()
|
|
{
|
|
return AddShadowVolumeSceneNode(-1, true, 10000);
|
|
}
|
|
|
|
ISceneNode* IAnimatedMeshSceneNode::GetMS3DJointNode(System::String* jointName)
|
|
{
|
|
char* str = (char*)(void*)
|
|
System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(jointName);
|
|
|
|
irr::scene::ISceneNode* node =
|
|
getAnimatedMeshSceneNode()->getMS3DJointNode(str);
|
|
|
|
System::Runtime::InteropServices::Marshal::FreeHGlobal(str);
|
|
|
|
if (!node)
|
|
return 0;
|
|
|
|
return new ISceneNode(node);
|
|
}
|
|
|
|
bool IAnimatedMeshSceneNode::SetMD2Animation(MD2AnimationType anim)
|
|
{
|
|
return getAnimatedMeshSceneNode()->setMD2Animation((irr::scene::EMD2_ANIMATION_TYPE)anim);
|
|
}
|
|
|
|
bool IAnimatedMeshSceneNode::SetMD2Animation(System::String* animationName)
|
|
{
|
|
char* str = (char*)(void*)
|
|
System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(animationName);
|
|
bool ret = getAnimatedMeshSceneNode()->setMD2Animation(str);
|
|
|
|
System::Runtime::InteropServices::Marshal::FreeHGlobal(str);
|
|
|
|
return ret;
|
|
}
|
|
|
|
}
|
|
}
|