irrlicht/source/Irrlicht.NET/IAnimatedMeshSceneNode.cpp

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;
}
}
}