亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? propertiesevaluator.cpp

?? 3dmax導(dǎo)出3d模型二次開(kāi)發(fā)插件
?? CPP
字號(hào):
//************************************************************************** 
//* PropertiesEvaluator.cpp	- Virtools File Exporter
//*
//* Francisco Cabrita - Copyright (c) Virtools 2001
//*
//* This file contain all the function used to evaluate
//* the Virtools Command used in User Defined Properties
//*
//***************************************************************************
#include "Precomp.h"
#include "Max2Nmo.h"

#include "PropertiesEvaluator.h"



//****************************************************************************
//*
//* Constructor / Destructor
//*
//****************************************************************************
PropertiesEvaluator::PropertiesEvaluator( Export2Virtools *VirtoolsExporter, INode *node, Max2Nmo *max2nmo, CKObjectArray* generatedArray ){

	if( !VirtoolsExporter ) return;

	// The ObjectState is a 'thing' that flows down the pipeline containing
	// all information about the object. By calling EvalWorldState() we tell
	// max to eveluate the object at end of the pipeline.
	ObjectState os = node->EvalWorldState(0); 

	// The obj member of ObjectState is the actual object we will export.
	if( !os.obj ) return;
		
	// We look at the super class ID to determine the type of the object.
	switch(os.obj->SuperClassID()) {
	case GEOMOBJECT_CLASS_ID:
	case SHAPE_CLASS_ID:
	case HELPER_CLASS_ID:
		{
			m_Ent = VirtoolsExporter->GetEntityByKey( node );
		}	break;
	case CAMERA_CLASS_ID:
		{
			m_Ent = VirtoolsExporter->GetCameraByKey( node );
		}	break;
	case LIGHT_CLASS_ID:
		{
			m_Ent = VirtoolsExporter->GetLightByKey( node );
		}	break;
	}

	if( !m_Ent ) return;
		
	m_Node = node;
	m_VirtoolsExporter = VirtoolsExporter;
	
	TSTR buf;
	m_Node->GetUserPropBuffer(buf);
	
	m_CurrentLine = 1;
	
	m_NmsPath = CKGetStartPath();
	m_NmsPath << "plugins\\Virtools AddOns\\";
	
	m_Character = m_VirtoolsExporter->GetCharacter();
	m_GlobalAnimation = m_VirtoolsExporter->GetGlobalAnimation();

	m_Max2Nmo = max2nmo;
	m_GeneratedArray = generatedArray;

	EvaluateBuffer( buf );
	
}

PropertiesEvaluator::~PropertiesEvaluator(){
}

//****************************************************************************
//*
//* Properties Evaluator
//*
//* Evaluates each lines of the buffer, and try to execute
//* the virtools commands.
//* return 0, if there are no errors.
//* return error line number, if some error occure.
//*
//****************************************************************************
int PropertiesEvaluator::EvaluateBuffer( char *buf ){
	
	int bufLen = strlen( buf );
	
	m_Ptr = buf;
	m_Ptr_final = buf + bufLen;

	XAP<char> command(new char[bufLen]);
	XAP<char> param1(new char[bufLen]);
	XAP<char> param2(new char[bufLen]);
	XAP<char> param3(new char[bufLen]);
	XAP<char> param4(new char[bufLen]);
	
	while( GetStringBetween( "CK_", command, "(") == 0){

		
		//______________________________________________________________
		//                              AttachScriptOnThis( ScriptName )

		if( !strcmp("AttachScriptOnThis", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				m_VirtoolsExporter->AttachScript( m_Ent, (m_NmsPath+(char*)param1+".nms").Str() );
			}						
		
			//______________________________________________________________
			//                         AttachScriptOnCharacter( ScriptName )

		} else if( !strcmp("AttachScriptOnCharacter", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				m_VirtoolsExporter->AttachScript( m_Character, (m_NmsPath+(char*)param1+".nms").Str() );
			}						


  		//______________________________________________________________
			//                       SetParamOnThis( ParamName, ParamValue )

		} else if( !strcmp("SetParamOnThis", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				if( !GetStringBetweenExt( "\"", param2,"\"" ) ){	// can be CK_EXPORTEDANIMATION, // can be CK_EXPORTEDCHARACTER
					m_VirtoolsExporter->SetParam( m_Ent, param1, param2 );
				}
			}
																		
  		//______________________________________________________________
			//                 SetParam( MaxObjName, ParamName, ParamValue )

		}	else if( !strcmp("SetParam", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				if( !GetStringBetween( "\"", param2,"\"" ) ){
					if( !GetStringBetweenExt( "\"", param3,"\"" ) ){ // can be CK_EXPORTEDANIMATION, // can be CK_EXPORTEDCHARACTER
						CKContext *ctx = m_Ent->GetCKContext();
						CK3dEntity *target = (CK3dEntity *)ctx->GetObjectByNameAndParentClass( param1, CKCID_3DENTITY, NULL );
						if( target ){
							m_VirtoolsExporter->SetParam( target, param2, param3 );
						}
					}
				}
			}
		
  		//_______________________________________________________________
			//    SetAttributeOnThis( AttName, AttValue, AttType, AttCatego )

		} else if( !strcmp("SetAttributeOnThis", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				if( !GetStringBetween( "\"", param2,"\"" ) ){
					if( !GetStringBetween( "\"", param3,"\"" ) ){
						if( !GetStringBetween( "\"", param4,"\"" ) ){
							m_VirtoolsExporter->SetAttribute( m_Ent, param1, param2, param3, param4 );
						}	
					}
				}
			}

			//_________________________________________________________________
			// SetAttributeOnCharacter( AttName, AttValue, AttType, AttCatego )

		} else if( !strcmp("SetAttributeOnCharacter", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				if( !GetStringBetween( "\"", param2,"\"" ) ){
					if( !GetStringBetween( "\"", param3,"\"" ) ){
						if( !GetStringBetween( "\"", param4,"\"" ) ){
							m_VirtoolsExporter->SetAttribute( m_Character, param1, param2, param3, param4 );
						}	
					}
				}
			}
  		
			//_______________________________________________________________
			//    Load( fileName )

		} else if( !strcmp("Load", command) ){
			if( !GetStringBetween( "\"", param1,"\"" ) ){
				CKBOOL loadOK = m_VirtoolsExporter->Load( m_Ent->GetCKContext(), param1, m_GeneratedArray );
				if( !loadOK ){
					m_VirtoolsExporter->Load( m_Ent->GetCKContext(), (m_NmsPath+(char *)param1+".nmo").Str(), m_GeneratedArray );
				}
			}
		}
	
	}
	
	return 0;
}


//********************************************************
//*
//* GetStringBetween                        
//*
//* Retrieve the string between two other string
//* return 1, if reach the end of the file (reset m_Ptr to
//* previous position).
//* return 0, if find a string
//* put m_Ptr after the found word
//********************************************************
int PropertiesEvaluator::GetStringBetween( const char *debut, char *str, const char *fin ){
	
  char *ptr_old = m_Ptr;
	
  char *ptr_find0 = NULL;
  char *ptr_find1 = NULL;
	
	if( debut ){
		while(1){
			ptr_find0 = strstr( m_Ptr, debut);
			if(m_Ptr > m_Ptr_final ){ m_Ptr = ptr_old; return 1;}
			if( ptr_find0 ){
				ptr_find0 += strlen( debut );
				m_Ptr = ptr_find0;
				break;
			} else {
				m_Ptr += strlen( m_Ptr ) + 1;
			}
		}
	} else {
		ptr_find0 = m_Ptr;
	}
	
  
	if( fin ){
		while(1){
			ptr_find1 = strstr( m_Ptr, fin);
			if(m_Ptr > m_Ptr_final ){ m_Ptr = ptr_old; return 1;}
			if( ptr_find1 ){
				m_Ptr = ptr_find1 + strlen( fin );
				break;
			} else {
				m_Ptr += strlen( m_Ptr ) + 1;
			}
		}
	} else {
		ptr_find1 = m_Ptr_final;
	}
	
  str[ptr_find1-ptr_find0] = 0;
  memcpy(str, ptr_find0, (ptr_find1-ptr_find0) );
	
	
  return 0;
}

//********************************************************
//*
//* GetStringBetweenExt
//*
//* Same as	GetStringBetween but test if the string
//* is "CK_EXPORTEDANIMATION" or "CK_EXPORTEDCHARACTER"
//* and replace this string by the real name
//*
//********************************************************
int PropertiesEvaluator::GetStringBetweenExt( const char *debut, char *str, const char *fin ){
	if( GetStringBetween( debut, str, fin ) ) return 1;

	if( !strcmp( str, "CK_EXPORTEDANIMATION") ){
		strcpy( str, m_Max2Nmo->GetAnimationName() );
	
	} else if( !strcmp( str, "CK_EXPORTEDCHARACTER") ){
		strcpy( str, m_Max2Nmo->GetCharacterName() );

	} else if( !strcmp( str, "CK_THIS") ){
		strcpy( str, m_Ent->GetName() );

	}

	return 0;
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美123| 日韩视频国产视频| 豆国产96在线|亚洲| 亚洲chinese男男1069| 日韩毛片视频在线看| 久久精品视频一区| 精品少妇一区二区三区在线播放| 91视频.com| 色乱码一区二区三区88| 成人国产一区二区三区精品| 国产一二精品视频| 久久国产日韩欧美精品| 性欧美大战久久久久久久久| 亚洲国产精品嫩草影院| 亚洲成a人片在线观看中文| 国产精品色婷婷久久58| 国产精品久久久久久久久动漫 | 精品一区二区三区久久久| 日韩精品成人一区二区在线| 午夜视黄欧洲亚洲| 日本少妇一区二区| 免费观看在线综合色| 久久国产精品99久久人人澡| 久久狠狠亚洲综合| 国产成人久久精品77777最新版本| 国产成人综合在线| 不卡视频在线观看| 欧美色窝79yyyycom| 欧美精品一区二区不卡| 国产精品二三区| 亚洲午夜久久久久久久久电影网 | 久久久久久97三级| 综合久久久久久| 日韩va亚洲va欧美va久久| 国产一区二区在线免费观看| 91麻豆视频网站| 日韩一区二区在线观看视频播放| 亚洲国产成人私人影院tom| 亚洲精品成人天堂一二三| 日本在线播放一区二区三区| 不卡视频在线观看| 日韩一区二区中文字幕| 亚洲最大的成人av| 国产精品影视天天线| 色狠狠一区二区| 中文字幕国产一区二区| 免费国产亚洲视频| 91福利社在线观看| 综合网在线视频| 国产一区二区三区在线观看免费视频| 972aa.com艺术欧美| 中文字幕av资源一区| 精品一区二区日韩| 欧美精品三级日韩久久| 亚洲欧美一区二区久久| 亚洲精品国产一区二区精华液 | 国产福利精品一区| 欧美白人最猛性xxxxx69交| 日本欧美久久久久免费播放网| 欧美亚洲综合在线| 夜夜操天天操亚洲| 在线观看亚洲a| 午夜精品久久久久久久久久| 91久久精品日日躁夜夜躁欧美| 国产精品久久久久影院老司| 国产成人亚洲综合a∨婷婷| 国产视频一区二区在线| 国产白丝网站精品污在线入口| 精品国产乱码久久久久久浪潮| 麻豆精品精品国产自在97香蕉| 日韩欧美在线123| 国产精品一区二区x88av| 欧美激情自拍偷拍| 91在线免费视频观看| 亚洲男人天堂av网| 51精品久久久久久久蜜臀| 秋霞国产午夜精品免费视频| 久久久久久久久99精品| 色综合激情久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美一区二区播放| 不卡视频免费播放| 亚洲成精国产精品女| 久久久噜噜噜久久中文字幕色伊伊 | 中文字幕乱码日本亚洲一区二区| 91麻豆免费观看| 日本一道高清亚洲日美韩| 国产午夜精品久久| 欧美视频在线播放| 国产激情视频一区二区三区欧美| 综合色中文字幕| 久久免费看少妇高潮| 欧美欧美欧美欧美| 成人免费视频国产在线观看| 日韩电影在线一区二区三区| 国产精品热久久久久夜色精品三区| 欧美卡1卡2卡| 99久久精品费精品国产一区二区| 日韩精品免费专区| 曰韩精品一区二区| 欧美国产综合色视频| 精品剧情v国产在线观看在线| 一本一本大道香蕉久在线精品| 国产一区视频网站| 日韩电影一区二区三区| 亚洲综合色自拍一区| 国产精品免费久久| 久久婷婷国产综合精品青草 | 国产成人综合自拍| 久草热8精品视频在线观看| 亚洲成av人在线观看| 亚洲男人天堂av网| 自拍偷拍亚洲综合| 国产精品的网站| 亚洲视频一区二区在线| 国产精品久99| 亚洲精品免费一二三区| 国产精品成人一区二区三区夜夜夜| 久久久久亚洲蜜桃| 亚洲国产精品成人综合色在线婷婷 | 国产91对白在线观看九色| 国产成人精品免费一区二区| 成人黄色国产精品网站大全在线免费观看 | 制服.丝袜.亚洲.中文.综合| 欧美视频日韩视频| 欧美一区二区三区小说| 精品女同一区二区| www国产成人| 久久九九99视频| 日韩精品一区国产麻豆| 亚洲国产综合人成综合网站| 国产亚洲成aⅴ人片在线观看| 国产亚洲自拍一区| 国产精品理论在线观看| 尤物视频一区二区| 欧美不卡视频一区| 欧美日韩一级片网站| 日韩欧美亚洲国产精品字幕久久久| 久久久久国产精品麻豆| 一区二区三区欧美日韩| 日本亚洲一区二区| 高清shemale亚洲人妖| 欧美日免费三级在线| 久久久久久久久免费| 亚洲国产成人va在线观看天堂| 久久se精品一区二区| 色又黄又爽网站www久久| 欧美videofree性高清杂交| |精品福利一区二区三区| 免费成人小视频| 色丁香久综合在线久综合在线观看| 欧美一级国产精品| 亚洲123区在线观看| 国内精品国产成人国产三级粉色| 91黄色免费看| 国产精品久久午夜夜伦鲁鲁| 日韩av在线发布| 欧美日韩一本到| 一区二区三区在线观看视频 | 九九视频精品免费| 欧美乱熟臀69xxxxxx| 亚洲午夜免费福利视频| 97久久精品人人爽人人爽蜜臀| 久久综合久久99| 国产乱人伦偷精品视频不卡| 精品国一区二区三区| 久久精品国产99久久6| 欧美大胆人体bbbb| 美腿丝袜亚洲色图| 欧美成人video| 另类小说视频一区二区| 精品国产一区二区三区av性色| 免费成人av资源网| 欧美mv日韩mv亚洲| 国产麻豆精品在线| 久久精品一区二区| 国产激情视频一区二区在线观看 | 国产欧美日韩视频一区二区| 国产成人免费网站| 国产精品国产精品国产专区不蜜 | 天天色图综合网| 欧美一区二区三区公司| 国产美女一区二区三区| 国产日韩欧美精品在线| 一本色道亚洲精品aⅴ| 亚洲丰满少妇videoshd| 欧美日韩免费电影| 久久99精品久久只有精品| 国产偷v国产偷v亚洲高清| 91九色02白丝porn| 欧美aaa在线| 亚洲青青青在线视频| 日韩一区二区三区观看| 国产999精品久久久久久绿帽| 亚洲精品伦理在线| 精品国产一区二区三区久久久蜜月| 国产成a人无v码亚洲福利| 亚洲福利国产精品| 国产欧美日韩在线视频| 91精品在线麻豆|