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/Model/TranslationModel.h"
00027 #include "Translator/Mesh/TranslationMesh.h"
00028
00029 namespace LampForMaya{
00030
00031
00032
00033 TranslationModel::TranslationModel(
00034 const MObject& initializeObject, const String& initializeName) :
00035 object_(initializeObject), name_(initializeName), visibility_(false){
00036 }
00037
00038
00039 TranslationModel::~TranslationModel(){
00040 }
00041
00042
00043 void TranslationModel::compilePivot(const Vector3& pivot){
00044 int meshCount = meshes_.getCount();
00045 for(int i = 0; i < meshCount; i++){
00046 TranslationMesh* mesh = meshes_.get(i);
00047 mesh->compilePivot(pivot);
00048 }
00049 }
00050
00051
00052 bool TranslationModel::analyzeModel(){
00053 visibility_ = MayaAttributeUtility::getBool(object_, "visibility");
00054 return true;
00055 }
00056
00057
00058 String TranslationModel::getShaderName(const MObject& shadingEngine){
00059 MStatus result;
00060 if(!shadingEngine.hasFn(MFn::kShadingEngine)){
00061 MayaErrorOut(String("TranslationModel::getShaderName() ") +
00062 name_ + "にシェーディングエンジンが接続されていません");
00063 return "";
00064 }
00065
00066 MPlug surfaceShaderPlug = MayaNodeUtility::getPlug(
00067 shadingEngine, "surfaceShader");
00068 MPlugArray shaderArray;
00069 surfaceShaderPlug.connectedTo(shaderArray, true, false, &result);
00070 MayaStatusCheck(result);
00071 if(shaderArray.length() == 0){
00072 MayaErrorOut(String("TranslationStandardModel::analyze() ") +
00073 name_ + "にサーフェースシェーダが接続されていません");
00074 return "";
00075 }
00076 return MayaNodeUtility::getName(shaderArray[0].node());
00077 }
00078
00079 }
00080