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/TranslationLightInstance.h"
00027 #include "Graphics/Light/LightManager.h"
00028 #include "Graphics/SceneNode/SceneNodeManager.h"
00029
00030 namespace LampForMaya{
00031
00032
00033
00034 TranslationLightInstance::TranslationLightInstance(
00035 const MDagPath& initializePath, const String& initializeName) :
00036 TranslationInstance(initializePath, initializeName),
00037 source_(NULL), destination_(NULL){
00038 }
00039
00040
00041 TranslationLightInstance::~TranslationLightInstance(){
00042 }
00043
00044
00045 bool TranslationLightInstance::convertToLamp(Scene* scene){
00046
00047 SceneNodeManager* sceneNodeManager = scene->getSceneNodeManager();
00048 SceneNode* target = sceneNodeManager->search(parentSceneNodeName_);
00049 if(target == NULL){
00050 MayaErrorOut(String("TranslationLightInstance::convertToLamp() "
00051 "インスタンス先のシーンノードが見つかりません ") +
00052 parentSceneNodeName_);
00053 return false;
00054 }
00055
00056
00057 LightManager* lightManager = scene->getLightManager();
00058 Light* light = lightManager->search(name_);
00059 if(light == NULL){
00060 MayaErrorOut(String("TranslationLightInstance::convertToLamp() "
00061 "インスタンス元のモデル" + name_ + "が見つかりません ") +
00062 parentSceneNodeName_);
00063 return false;
00064 }
00065 source_ = light;
00066 Light* copyLight = light->copyLight();
00067 destination_ = copyLight;
00068
00069
00070 copyLight->setEnabled(visibility_);
00071 target->addSceneLeaf(copyLight);
00072 return true;
00073 }
00074
00075
00076 bool TranslationLightInstance::convertAnimation(
00077 AnimationManager* animationManager, AnimationSet* animationSet){
00078 return convertSceneLeafAnimation(
00079 animationManager, animationSet, source_, destination_);
00080 }
00081
00082 }
00083