00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "System/stdafx.h"
00026 #include "Translator/Instance/TranslationModelInstance.h"
00027 #include "Graphics/Model/ModelManager.h"
00028 #include "Graphics/SceneNode/SceneNodeManager.h"
00029
00030 namespace LampForMaya{
00031
00032
00033
00034 TranslationModelInstance::TranslationModelInstance(
00035 const MDagPath& initializePath, const String& initializeName) :
00036 TranslationInstance(initializePath, initializeName),
00037 source_(NULL), destination_(NULL){
00038 }
00039
00040
00041 TranslationModelInstance::~TranslationModelInstance(){
00042 }
00043
00044
00045 bool TranslationModelInstance::convertToLamp(Scene* scene){
00046
00047 SceneNodeManager* sceneNodeManager = scene->getSceneNodeManager();
00048 SceneNode* target = sceneNodeManager->search(parentSceneNodeName_);
00049 if(target == NULL){
00050 MayaErrorOut(String("TranslationModelInstance::convertToLamp() "
00051 "インスタンス先のシーンノードが見つかりません ") +
00052 parentSceneNodeName_);
00053 return false;
00054 }
00055
00056
00057 ModelManager* modelManager = scene->getModelManager();
00058 Model* model = modelManager->search(name_);
00059 if(model == NULL){
00060 MayaErrorOut(String("TranslationModelInstance::convertToLamp() "
00061 "インスタンス元のモデル" + name_ + "が見つかりません ") +
00062 parentSceneNodeName_);
00063 return false;
00064 }
00065 source_ = model;
00066 Model* copyModel = model->copyModel(0);
00067 destination_ = copyModel;
00068
00069
00070 copyModel->setEnabled(visibility_);
00071 target->addSceneLeaf(copyModel);
00072 return true;
00073 }
00074
00075
00076 bool TranslationModelInstance::convertAnimation(
00077 AnimationManager* animationManager, AnimationSet* animationSet){
00078 return convertSceneLeafAnimation(
00079 animationManager, animationSet, source_, destination_);
00080 }
00081
00082 }
00083