/*----------------------------------------------------------------------------*/ /* Scenome 1.0 Hierarchy Scripts */ /* */ /* HIERARCHY_SCRIPTS.SSL */ /* */ /* Copyright (c) 2007 Scenomics. All Rights Reserved. */ /*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ /* HierarchySetActiveParent */ /*----------------------------------------------------------------------------*/ macro HierarchySetActiveParent() [Category="Hierarchy Commands", Guid="{1F91F9DB-F612-46d4-A453-4B81096121A9}", Image=".\\icons\\set_default_parent.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Model.SetActiveParent ( (Group)node ); } } } /*----------------------------------------------------------------------------*/ /* HierarchySetActiveMaterial */ /*----------------------------------------------------------------------------*/ macro HierarchySetActiveMaterial() [Category="Hierarchy Commands", Guid="{1F91F9DC-F612-46d4-A453-4B81096121A9}", Image=".\\icons\\set_default_material.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Material ) ) { Model.SetActiveMaterial ( (Material)node ); } } } /*----------------------------------------------------------------------------*/ /* HierarchySetActiveMesh */ /*----------------------------------------------------------------------------*/ macro HierarchySetActiveMesh() [Category="Hierarchy Commands", Guid="{1F91F9DD-F612-46d4-A453-4B81096121A9}", Image=".\\icons\\set_default_component.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( ParametricMesh ) ) { Model.SetActiveMesh ( (ParametricMesh)node ); } } } /*----------------------------------------------------------------------------*/ /* HierarchyIsolateSelection */ /*----------------------------------------------------------------------------*/ macro HierarchyIsolateSelection() [Category="Hierarchy Commands", Guid="{1F91FA86-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\isolate_selection.bmp"] { if( Model.GetSelectCount() ) { EnumerateView a_oView = (EnumerateView)Application.GetEditor( "{1F922100-F612-46D4-A453-4B81096121A9}" ); a_oView.SetRoot( Model.GetSelectedNode( 0 ).GetNode() ); a_oView.Activate(); } } /*----------------------------------------------------------------------------*/ /* HierarchyDisplayDatabasePathFromRootToSelection */ /*----------------------------------------------------------------------------*/ macro HierarchyDisplayDatabasePathFromRootToSelection() [Category="Hierarchy Commands", Guid="{1F91FAB8-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\display_database_path.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); // Construct a path to the current node. string path; Node curNode = node; while( curNode ) { path = curNode.Name + "/" + path; curNode = curNode.Parent(); } LogWindow a_oLogWindow = (LogWindow)Application.GetEditor( "{1F922109-F612-46D4-A453-4B81096121A9}" ); a_oLogWindow.Activate(); Application.Log.LogString( path ); } } /*----------------------------------------------------------------------------*/ /* HierarchyCreateExternalTextureMaterialLink */ /*----------------------------------------------------------------------------*/ macro HierarchyCreateExternalTextureMaterialLink() [ Category="Texture Commands", Guid="{1F92099D-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\create_external_texture_and_material.bmp" ] { if ( Model.Filename == "" ) { Application.MessageBox( 0, "Please save the file or references cannot resolve!", "Warning" ); return; } string textureFile = Application.BrowseFileOpen( 1, "", "", "Select a Texture File" ); if ( textureFile != "" ) { Group newParent = Model.GetActiveParent(); if ( Model.GetSelectCount() ) { Node selNode = Model.GetSelectedNode( 0 ).GetNode(); if( selNode.IsDerived( Group ) ) newParent = (Group)selNode; } Texture newTexture = new Texture; newTexture.External = 1; textureFile = Application.MakeRelativePath( textureFile, Model.Filename ); newTexture.PathToFile = textureFile; newTexture.Name = textureFile; Model.AddNode( newTexture, newParent, -1 ); Material newMaterial = new Material; newMaterial.Name = textureFile; newMaterial.TextureLink = newTexture; Model.AddNode( newMaterial, newParent, -1 ); } }