/*----------------------------------------------------------------------------*/ /* Scenome 1.0 Group Node Scripts */ /* */ /* GROUP_SCRIPTS.SSL */ /* */ /* Copyright (c) 2007 Scenomics. All Rights Reserved. */ /*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/ /* ToggleVisible */ /*----------------------------------------------------------------------------*/ macro ToggleVisible() [Category="Group Commands", Guid="{1F91F995-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\toggle_visible.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.Visible = !group.Visible; } } } /*----------------------------------------------------------------------------*/ /* ToggleCollisions */ /*----------------------------------------------------------------------------*/ macro ToggleCollisions() [Category="Group Commands", Guid="{1F91F996-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\toggle_collisions.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.Collisions = !group.Collisions; } } } /*----------------------------------------------------------------------------*/ /* ToggleCulling */ /*----------------------------------------------------------------------------*/ macro ToggleCulling() [Category="Group Commands", Guid="{1F91F997-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\toggle_culling.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.Cull = !group.Cull; } } } /*----------------------------------------------------------------------------*/ /* ToggleBoundingBoxFrozen */ /*----------------------------------------------------------------------------*/ macro ToggleBoundingBoxFrozen() [ Category="Group Commands", Guid="{1F91FABD-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\toggle_bounding_box_frozen.bmp" ] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.BoundFrozen = !group.BoundFrozen; } } } /*----------------------------------------------------------------------------*/ /* ToggleTransformLocked */ /*----------------------------------------------------------------------------*/ macro ToggleTransformLocked() [Category="Group Commands", Guid="{1F91F99E-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\unlock_transform.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.Locked = !group.Locked; } } } /*----------------------------------------------------------------------------*/ /* RemovePositionTransformation */ /*----------------------------------------------------------------------------*/ macro RemovePositionTransformation() [Category="Group Commands", Guid="{1F91F999-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\reset_position.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); Matrix editTransform = group.GetTransform(); editTransform.Position[0] = 0; editTransform.Position[1] = 0; editTransform.Position[2] = 0; group.SetTransform( editTransform ); if ( (editTransform.Scale[0] == 1) && (editTransform.Scale[1] == 1) && (editTransform.Scale[2] == 1) && (editTransform.Orientation[0] == 0) && (editTransform.Orientation[1] == 0) && (editTransform.Orientation[2] == 0 ) ) { group.ClearTransform(); } } } } /*----------------------------------------------------------------------------*/ /* RemoveOrientationTransformation */ /*----------------------------------------------------------------------------*/ macro RemoveOrientationTransformation() [Category="Group Commands", Guid="{1F91F99A-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\reset_orientation.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); Matrix editTransform = group.GetTransform(); editTransform.Orientation[0] = 0; editTransform.Orientation[1] = 0; editTransform.Orientation[2] = 0; group.SetTransform( editTransform ); if ( (editTransform.Scale[0] == 1) && (editTransform.Scale[1] == 1) && (editTransform.Scale[2] == 1) && (editTransform.Position[0] == 0) && (editTransform.Position[1] == 0) && (editTransform.Position[2] == 0 ) ) { group.ClearTransform(); } } } } /*----------------------------------------------------------------------------*/ /* RemoveScaleTransformation */ /*----------------------------------------------------------------------------*/ macro RemoveScaleTransformation() [Category="Group Commands", Guid="{1F91F99B-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\reset_scale.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); Matrix editTransform = group.GetTransform(); editTransform.Scale[0] = 1; editTransform.Scale[1] = 1; editTransform.Scale[2] = 1; group.SetTransform( editTransform ); if ( (editTransform.Orientation[0] == 0) && (editTransform.Orientation[1] == 0) && (editTransform.Orientation[2] == 0) && (editTransform.Position[0] == 0) && (editTransform.Position[1] == 0) && (editTransform.Position[2] == 0 ) ) { group.ClearTransform(); } } } } /*----------------------------------------------------------------------------*/ /* RemoveAllTransformation */ /*----------------------------------------------------------------------------*/ macro RemoveAllTransformation() [Category="Group Commands", Guid="{1F91F99C-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\reset_all.bmp"] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); group.ClearTransform(); } } } /*----------------------------------------------------------------------------*/ /* PositionAtCamera */ /*----------------------------------------------------------------------------*/ macro PositionAtCamera() [ Category="Group Commands", Guid="{1F91FA70-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\group_position_at_camera.bmp" ] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); ModelView a_oView = Model.ActiveView; Matrix editTransform = group.GetTransform(); editTransform.Position[0] = a_oView.Position.X; editTransform.Position[1] = a_oView.Position.Y; editTransform.Position[2] = a_oView.Position.Z; editTransform.Orientation[0] = a_oView.Orientation.X; editTransform.Orientation[1] = a_oView.Orientation.Y; editTransform.Orientation[2] = a_oView.Orientation.Z; group.SetTransform( editTransform ); } } } /*----------------------------------------------------------------------------*/ /* PositionAtGrid */ /*----------------------------------------------------------------------------*/ macro PositionAtGrid() [ Category="Group Commands", Guid="{1F91FA71-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\group_position_at_grid.bmp" ] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); ModelView a_oView = Model.ActiveView; Matrix editTransform = Model.Grid.GetTransform(); Matrix groupTransform = new Matrix; groupTransform.Position[0] = editTransform.Position[0]; groupTransform.Position[1] = editTransform.Position[1]; groupTransform.Position[2] = editTransform.Position[2]; groupTransform.Orientation[0] = editTransform.Orientation[0]; groupTransform.Orientation[1] = editTransform.Orientation[1]; groupTransform.Orientation[2] = editTransform.Orientation[2]; group.SetTransform( editTransform ); } } } /*----------------------------------------------------------------------------*/ /* PositionAtManipulator */ /*----------------------------------------------------------------------------*/ macro PositionAtManipulator() [ Category="Group Commands", Guid="{1F91FA72-F612-46D4-A453-4B81096121A9}", Image=".\\icons\\group_position_at_manipulator.bmp" ] { for( int i = 0; i < Model.GetSelectCount(); ++i ) { Node node = Model.GetSelectedNode( i ).GetNode(); if( node.IsDerived( Group ) ) { Group group = (Group)Model.EditNode( node ); ModelView a_oView = Model.ActiveView; Matrix editTransform = Model.Grid.GetManipulatorTransform(); Matrix groupTransform = new Matrix; groupTransform.Position[0] = editTransform.Position[0]; groupTransform.Position[1] = editTransform.Position[1]; groupTransform.Position[2] = editTransform.Position[2]; groupTransform.Orientation[0] = editTransform.Orientation[0]; groupTransform.Orientation[1] = editTransform.Orientation[1]; groupTransform.Orientation[2] = editTransform.Orientation[2]; group.SetTransform( editTransform ); } } }