//IOpsCommand public void Run(OpsContext context, OpsStatement statement) { string[] paths = OpsHelpers.ResolvePathToMany(statement.Arguments as string); foreach (string path in paths) { OpsConsole.WriteLine("Loading model from file: \"{0}\"", path); OpsModel model = OpsModel.FromFile(context.Device, path); context.AddModel(model); } }
//IOpsCommand public void Run(OpsContext context, OpsStatement statement) { string[] paths = OpsHelpers.ResolvePathToMany( statement.Arguments as string ); foreach(string path in paths ) { OpsConsole.WriteLine("Loading model from file: \"{0}\"", path ); OpsModel model = OpsModel.FromFile(context.Device, path); context.AddModel(model); } }
//IOpsCommand public void Run(OpsContext context, OpsStatement statement) { FlattenArguments arguments = statement.Arguments as FlattenArguments; ArrayList models = statement.GetContent(context); OpsConsole.WriteLine("Flattening models into '{0}'", arguments.NewModel); Mesh[] meshes; Matrix[] localToWorlds; int[][] adjacencies; ExtendedMaterial[] materials; EffectInstance[] effectInstances; GetLists(models, out meshes, out localToWorlds, out adjacencies, out materials, out effectInstances); Mesh newMesh = PrtEngine.ConcatenateMeshes( meshes, MeshFlags.SystemMemory | MeshFlags.Use32Bit, localToWorlds, null, null, context.Device); int[] newAdj = ConcatenateAdjacency(newMesh, meshes, adjacencies); OpsMeshContainer newMC = new OpsMeshContainer(); newMC.Name = arguments.NewModel; newMC.ReplaceMesh(newMesh); newMC.SetMaterials(materials); newMC.SetEffectInstances(effectInstances); newMC.SetAdjacency(newAdj); OpsFrame newFrame = new OpsFrame(); newFrame.Name = arguments.NewModel; newFrame.MeshContainer = newMC; OpsModel newModel = new OpsModel(); newModel.Name = arguments.NewModel; newModel.HierarchyRoot = newFrame; context.AddModel(newModel); }
//IOpsCommand public void Run(OpsContext context, OpsStatement statement) { FlattenArguments arguments = statement.Arguments as FlattenArguments; ArrayList models = statement.GetContent(context); OpsConsole.WriteLine( "Flattening models into '{0}'", arguments.NewModel); Mesh[] meshes; Matrix[] localToWorlds; int[][] adjacencies; ExtendedMaterial[] materials; EffectInstance[] effectInstances; GetLists( models, out meshes, out localToWorlds, out adjacencies, out materials, out effectInstances); Mesh newMesh = PrtEngine.ConcatenateMeshes( meshes, MeshFlags.SystemMemory|MeshFlags.Use32Bit, localToWorlds, null, null, context.Device); int[] newAdj = ConcatenateAdjacency( newMesh, meshes, adjacencies); OpsMeshContainer newMC = new OpsMeshContainer(); newMC.Name = arguments.NewModel; newMC.ReplaceMesh( newMesh ); newMC.SetMaterials( materials ); newMC.SetEffectInstances( effectInstances ); newMC.SetAdjacency( newAdj ); OpsFrame newFrame = new OpsFrame(); newFrame.Name = arguments.NewModel; newFrame.MeshContainer = newMC; OpsModel newModel = new OpsModel(); newModel.Name = arguments.NewModel; newModel.HierarchyRoot = newFrame; context.AddModel(newModel); }