本文整理汇总了C++中Application::GetActiveProject方法的典型用法代码示例。如果您正苦于以下问题:C++ Application::GetActiveProject方法的具体用法?C++ Application::GetActiveProject怎么用?C++ Application::GetActiveProject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Application
的用法示例。
在下文中一共展示了Application::GetActiveProject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OutputHeader
void OutputHeader( std::ofstream& in_mfw)
{
//# XSI Wavefront OBJ Export v3.0
//# File Created: Mon Oct 11 15:58:17 2010
//# XSI Version: 9.1.91.0
in_mfw << "#Wavefront OBJ Export for 3D-Coat";
in_mfw << "\n";
in_mfw << "# ";
in_mfw << "\n";
in_mfw << "#XSI Version: ";
in_mfw << app.GetVersion().GetAsciiString();
in_mfw << "\n";
if(Get3DCoatParam( L"bExpMat" ).GetValue())
{
//mtllib object.mtl
Project prj = app.GetActiveProject();
Scene scn = prj.GetActiveScene();
CString string = L"mtllib " + scn.GetName() + L".mtl";
in_mfw << string.GetAsciiString();
in_mfw << "\n";
}
in_mfw << "\n";
}
示例2: InitHandler
bool PowerHandler::InitHandler(const char* prj_name, const char* case_name, double sim_time, double sim_period)
{
_instance = _api_fixture->GetInstance(); //ApiFixture is responsible for creation/destruction api instance
if (!_instance) {
//std::cout << "InitHandler, error:ApiFixture::GetInstance()" << std::endl;
return false;
}
int ret = 0;
Application* app = _instance->GetApplication();
DataObject* user = app->GetCurrentUser();
DataObject* prj = GetProject(user, prj_name);
DataObject* e_case = GetCaseObject(prj, case_name);
Value v_prj(prj);
Value v_case(e_case);
if (prj != app->GetActiveProject()){
app->Execute("Activate", &v_prj, &ret); //激活项目
if (ret > 0){
//std::cout << "InitHandler, error: Execute v_prj" << std::endl;
return false;
}
}
if (e_case != app->GetActiveStudyCase()){
app->Execute("Activate", &v_case, &ret);//激活项目
if (ret > 0){
// std::cout << "InitHandler, error: Execute v_case" << std::endl;
return false;
}
}
//delete the last EvtParam for no influencing the next simulation
Value v_ev("IntEvt");
ValueGuard int_ev(app->Execute("GetCaseObject", &v_ev));
DataObject* events = int_ev->GetDataObject();
DataObjVec folders = Utils::GetChildren(events, "EvtParam");
DataObjVec::iterator it = folders.begin();
for (; it != folders.end(); ++it) {
DataObject* folder = *it;
folder->DeleteObject();
}
_sim_time = sim_time;
_sim_period = sim_period;
//std::cout << "InitHandler, success." << std::endl;
return true;
}
示例3: OutputMaterials
XSIPLUGINCALLBACK CStatus OutputMaterials( Selection& in_sel )
{
// prepare the mtl file
Project prj = app.GetActiveProject();
Scene scn = prj.GetActiveScene();
CString tmpLocation = Get3DCoatParam( L"tempLocation" ).GetValue();
ULONG npos = tmpLocation.ReverseFindString(L".");
CString substr = tmpLocation.GetSubString(0, npos+1);
CString strOut = substr + L"mtl";
//app.LogMessage(L"strOut:" + strOut);
std::ofstream matfw;
matfw.open(strOut.GetAsciiString(), std::ios_base::out | std::ios_base::trunc);
if (matfw.is_open())
{
CRefArray tempMats;
for(int i=0; i< in_sel.GetCount(); i++)
{
X3DObject xobj(in_sel.GetItem(i));
// Get a geometry accessor from the selected object
Primitive prim = xobj.GetActivePrimitive();
PolygonMesh mesh = prim.GetGeometry();
if (!mesh.IsValid()) return CStatus::False;
CGeometryAccessor ga = mesh.GetGeometryAccessor();
// get the material objects used by the mesh
CRefArray materials = ga.GetMaterials();
for (LONG n=0; n < materials.GetCount(); n++)
{
bar.PutStatusText( L"materials" );
Material mat(materials[n]);
bool inMats = false;
//app.LogMessage(CString(n) +L" : "+ CString(i)+ L" :" + mat.GetName());
for(int m = 0; m < tempMats.GetCount(); m++)
{
Material tmat(tempMats[m]);
if(mat.GetName() == tmat.GetName())
{
inMats = true;
break;
}
}
//app.LogMessage(CString(inMats));
if(!inMats)
{
CString string = L"newmtl " + mat.GetName() + L"\n";
matfw << string.GetAsciiString();
Parameter surf = mat.GetParameters().GetItem(L"surface");
Shader lShader(surf.GetSource());
//app.LogMessage(L"shader: " + lShader.GetFullName());
//app.LogMessage(L"shader: " + lShader.GetProgID());
if ( lShader.GetProgID() == L"Softimage.material-phong.1" )
{
float r, g, b, a;
lShader.GetColorParameterValue(L"ambient", r, g, b, a );
CString ka = L"Ka " + FormatNumber(r) + L" " + FormatNumber(g) + L" " + FormatNumber(b);
lShader.GetColorParameterValue(L"diffuse", r, g, b, a );
CString kd = L"Kd " + FormatNumber(r) + L" " + FormatNumber(g) + L" " + FormatNumber(b);
lShader.GetColorParameterValue(L"specular", r, g, b, a );
CString ks = L"Ks " + FormatNumber(r) + L" " + FormatNumber(g) + L" " + FormatNumber(b);
float ns = lShader.GetParameterValue(L"shiny");
float d = 1.0f;
CValue illum = 2;
matfw << ka.GetAsciiString();
matfw << "\n";
matfw << kd.GetAsciiString();
matfw << "\n";
matfw << ks.GetAsciiString();
matfw << "\n";
matfw << "Ns ";
matfw << FormatNumber(ns).GetAsciiString();
matfw << "\n";
matfw << "d ";
matfw << FormatNumber(d).GetAsciiString();
matfw << "\n";
matfw << "illum ";
matfw << illum.GetAsText().GetAsciiString();
matfw << "\n";
Parameter diff = lShader.GetParameters().GetItem(L"diffuse");
Shader lImageD(diff.GetSource());
if (lImageD.GetProgID() == L"Softimage.txt2d-image-explicit.1")
{
Parameter tex = lImageD.GetParameters().GetItem(L"tex");
ImageClip2 lTextureD(tex.GetSource());
//.........这里部分代码省略.........
示例4: AppLink_3DCoat_PPGEvent
SICALLBACK AppLink_3DCoat_PPGEvent( const CRef& in_ctxt )
{
//Application app;
PPGEventContext ctxt( in_ctxt ) ;
CustomProperty prop = ctxt.GetSource();
PPGEventContext::PPGEvent eventID = ctxt.GetEventID() ;
//CString s_ExeLocation = prop.GetParameter(L"coatExe").GetValue();
if ( eventID == PPGEventContext::siOnInit )
{
CString s_ExportLocation = prop.GetParameter(L"tempLocation").GetValue();
CString s_CoatLocation = prop.GetParameter(L"coatLocation").GetValue();
Plugin pl(app.GetPlugins().GetItem(L"AppLink_3DCoat_Plugin"));
pluginPath = CUtils::BuildPath(app.GetInstallationPath(pl.GetOrigin()), L"AppLink_3DCoat", L"Application", L"Plugins");
if(prop.GetParameter(L"tempLocation").GetValue() == L"")
{
Project prj = app.GetActiveProject();
Scene scn = prj.GetActiveScene();
CString tempPath = CUtils::BuildPath(app.GetInstallationPath(siProjectPath), L"3DCoat", scn.GetName(), scn.GetName() + L".obj");
prop.GetParameter(L"tempLocation").PutValue(tempPath);
prop.GetParameter(L"tempLocation").PutCapabilityFlag(siReadOnly, true);
}
if(prop.GetParameter(L"coatLocation").GetValue() == L"")
{
TCHAR Path[MAX_PATH];
if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, 0, Path)))
{
CString exchPath = CUtils::BuildPath(Path, L"3D-CoatV3", L"Exchange");
prop.GetParameter(L"coatLocation").PutValue(exchPath);
}
}
//prop.GetParameter(L"bImpNorm").PutCapabilityFlag(siNotInspectable, true);
//prop.GetParameter(L"bImpNewMat").PutCapabilityFlag(siReadOnly, true);
ctxt.PutAttribute(L"Refresh",true);
}
else if ( eventID == PPGEventContext::siButtonClicked )
{
CValue buttonPressed = ctxt.GetAttribute( L"Button" );
CString tempLocation = prop.GetParameter(L"tempLocation").GetValue();
CString coatLocation = prop.GetParameter(L"coatLocation").GetValue();
if( buttonPressed.GetAsText() == L"Coat3DExport" )
{
CustomProperty in_pset = ctxt.GetSource();
if(CUtils::EnsureFolderExists(tempLocation, true))
{
CValueArray args(6);
args[0] = tempLocation;
args[1] = coatLocation;
args[2] = in_pset.GetParameterValue( L"typePaint" );
//args[3] = in_pset.GetParameterValue( L"bCopyTexE" );
args[3] = in_pset.GetParameterValue( L"bExpMat" );
args[4] = in_pset.GetParameterValue( L"bExpUV" );
args[5] = in_pset.GetParameterValue( L"bExpNorm" );
CValue retVal;
app.ExecuteCommand( L"Coat3DExport", args, retVal );
CString exeLocation = prop.GetParameter(L"exeLocation").GetValue();
bool bStart = prop.GetParameter(L"bStart").GetValue();
if(exeLocation != L"" && bStart)
{
if(!Find3DCoat())
{
if((int)::ShellExecute(NULL, TEXT("open"), exeLocation.GetAsciiString(), NULL, NULL, SW_SHOWNORMAL) <= 32)
{
app.LogMessage(L"3D-Coat.exe not found!", siWarningMsg);
}
}
else
{
app.LogMessage(L"3D-Coat.exe is run!", siWarningMsg);
}
}
}
else
{
app.LogMessage(L"Note temp path exists!", siErrorMsg);
}
}
else if( buttonPressed.GetAsText() == L"Coat3DImport" )
{
CustomProperty in_pset = ctxt.GetSource();
CString exportPath = CUtils::BuildPath(coatLocation, L"export.txt");
CString objPath;
std::ifstream mfrExportTxt;
mfrExportTxt.open (exportPath.GetAsciiString());//c:\Documents and Settings\user\My Documents\3D-CoatV3\Exchange\export.txt
//.........这里部分代码省略.........