public void Dispose() { if (mTexCoordVertexBuffer != null) { mTexCoordVertexBuffer.Dispose(); mTexCoordVertexBuffer = null; } if (mPositionVertexBuffer != null) { mPositionVertexBuffer.Dispose(); mPositionVertexBuffer = null; } if (mInputLayout != null) { mInputLayout.Dispose(); mInputLayout = null; } if (mEffect != null) { mEffect.Dispose(); mEffect = null; } //if ( mTinyTextContext != null ) //{ // mTinyTextContext.Dispose(); // mTinyTextContext = null; //} if (mTileManager != null) { mTileManager.Dispose(); mTileManager = null; } if (mDebugRenderer != null) { mDebugRenderer.Dispose(); mDebugRenderer = null; } }
public MergeSegmentationRenderingStrategy(SlimDX.Direct3D11.Device device, DeviceContext deviceContext, TileManager tileManager) { mTileManager = tileManager; mDebugRenderer = new DebugRenderer(device); mEffect = EffectUtil.CompileEffect(device, @"Shaders\MergeRenderer2D.fx"); var positionTexcoordInputElements = new[] { new InputElement("POSITION", 0, POSITION_FORMAT, POSITION_SLOT), new InputElement("TEXCOORD", 0, TEXCOORD_FORMAT, TEXCOORD_SLOT) }; EffectTechnique effectTechnique = mEffect.GetTechniqueByName("TileManager2D"); mPass = effectTechnique.GetPassByName("TileManager2D"); mInputLayout = new InputLayout(device, mPass.Description.Signature, positionTexcoordInputElements); mPositionVertexBuffer = new Buffer(device, null, QUAD_NUM_VERTICES * POSITION_NUM_COMPONENTS_PER_VERTEX * POSITION_NUM_BYTES_PER_COMPONENT, ResourceUsage.Dynamic, BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0); mTexCoordVertexBuffer = new Buffer(device, null, QUAD_NUM_VERTICES * TEXCOORD_NUM_COMPONENTS_PER_VERTEX * TEXCOORD_NUM_BYTES_PER_COMPONENT, ResourceUsage.Dynamic, BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0); //bool result; //mTinyTextContext = new Context( device, deviceContext, Constants.MAX_NUM_TINY_TEXT_CHARACTERS, out result ); //Release.Assert( result ); mStopwatch.Start(); }
public AdjustSegmentationRenderingStrategy( SlimDX.Direct3D11.Device device, DeviceContext deviceContext, TileManager tileManager ) { mTileManager = tileManager; mDebugRenderer = new DebugRenderer( device ); mEffect = EffectUtil.CompileEffect( device, @"Shaders\AdjustRenderer2D.fx" ); var positionTexcoordInputElements = new[] { new InputElement( "POSITION", 0, POSITION_FORMAT, POSITION_SLOT ), new InputElement( "TEXCOORD", 0, TEXCOORD_FORMAT, TEXCOORD_SLOT ) }; EffectTechnique effectTechnique = mEffect.GetTechniqueByName( "TileManager2D" ); mPass = effectTechnique.GetPassByName( "TileManager2D" ); mInputLayout = new InputLayout( device, mPass.Description.Signature, positionTexcoordInputElements ); mPositionVertexBuffer = new Buffer( device, null, QUAD_NUM_VERTICES * POSITION_NUM_COMPONENTS_PER_VERTEX * POSITION_NUM_BYTES_PER_COMPONENT, ResourceUsage.Dynamic, BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0 ); mTexCoordVertexBuffer = new Buffer( device, null, QUAD_NUM_VERTICES * TEXCOORD_NUM_COMPONENTS_PER_VERTEX * TEXCOORD_NUM_BYTES_PER_COMPONENT, ResourceUsage.Dynamic, BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0 ); //bool result; //mTinyTextContext = new Context( device, deviceContext, Constants.MAX_NUM_TINY_TEXT_CHARACTERS, out result ); //Release.Assert( result ); mStopwatch.Start(); }
public void NextImage() { var centerDataSpace = TileManager.TiledDatasetView.CenterDataSpace; if (centerDataSpace.Z < TileManager.TiledDatasetDescription.TiledVolumeDescriptions.Get("SourceMap").NumVoxelsZ - 1) { if (CurrentToolMode == ToolMode.SplitSegmentation && TileManager.JoinSplits3D) { // // Record split state for 3D splitting // TileManager.Internal.RecordSplitState(TileManager.SelectedSegmentId, centerDataSpace); } centerDataSpace.Z += 1f; TileManager.TiledDatasetView.CenterDataSpace = centerDataSpace; CurrentToolMoveZ(); TileManager.UpdateZ(); UpdateOneTile(); } }
public void PreviousImage() { var centerDataSpace = TileManager.TiledDatasetView.CenterDataSpace; if (centerDataSpace.Z > 0) { if (CurrentToolMode == ToolMode.SplitSegmentation && TileManager.JoinSplits3D) { // // Record split state for 3D splitting // TileManager.Internal.RecordSplitState(TileManager.SelectedSegmentId, centerDataSpace); } centerDataSpace.Z -= 1f; TileManager.TiledDatasetView.CenterDataSpace = centerDataSpace; CurrentToolMoveZ(); TileManager.UpdateZ(); UpdateOneTile(); } }
public void ZoomIn() { var extentDataSpace = TileManager.TiledDatasetView.ExtentDataSpace; if (extentDataSpace.X > 1e-3 && extentDataSpace.Y > 1e-3) { var changeBy = (float)Constants.MAGNIFICATION_STEP; // // Decrease the view extent // extentDataSpace.X /= changeBy; extentDataSpace.Y /= changeBy; TileManager.TiledDatasetView.ExtentDataSpace = extentDataSpace; CheckBounds(); QuickRender(); TileManager.UpdateXYZ(); } }
public void ZoomOut() { var extentDataSpace = TileManager.TiledDatasetView.ExtentDataSpace; var tiledVolumeDescription = TileManager.TiledDatasetDescription.TiledVolumeDescriptions.Get("SourceMap"); if (extentDataSpace.X < tiledVolumeDescription.NumTilesX * 10 && extentDataSpace.Y < tiledVolumeDescription.NumTilesY * 10) { var changeBy = (float)Constants.MAGNIFICATION_STEP; // // Increase the view extent // extentDataSpace.X *= changeBy; extentDataSpace.Y *= changeBy; TileManager.TiledDatasetView.ExtentDataSpace = extentDataSpace; CheckBounds(); QuickRender(); TileManager.UpdateXYZ(); } }
public void PanToSegmentCentroid3D(uint segId) { var centerDataSpace = TileManager.TiledDatasetView.CenterDataSpace; var pointTileSpace = TileManager.Internal.GetSegmentCentralTileLocation(segId); if (centerDataSpace.Z != pointTileSpace.Z && CurrentToolMode == ToolMode.SplitSegmentation && TileManager.JoinSplits3D) { // // Record split state for 3D splitting // TileManager.Internal.RecordSplitState(TileManager.SelectedSegmentId, centerDataSpace); } centerDataSpace.X = 0.5f + pointTileSpace.X; centerDataSpace.Y = 0.5f + pointTileSpace.Y; centerDataSpace.Z = pointTileSpace.Z; TileManager.TiledDatasetView.CenterDataSpace = centerDataSpace; Tools.Get(ViewerMode.TileManager2D).Get(CurrentToolMode).Select(); TileManager.UpdateXYZ(); Update(); }
public void Dispose() { if ( mTexCoordVertexBuffer != null ) { mTexCoordVertexBuffer.Dispose(); mTexCoordVertexBuffer = null; } if ( mPositionVertexBuffer != null ) { mPositionVertexBuffer.Dispose(); mPositionVertexBuffer = null; } if ( mInputLayout != null ) { mInputLayout.Dispose(); mInputLayout = null; } if ( mEffect != null ) { mEffect.Dispose(); mEffect = null; } //if ( mTinyTextContext != null ) //{ // mTinyTextContext.Dispose(); // mTinyTextContext = null; //} if ( mTileManager != null ) { mTileManager.Dispose(); mTileManager = null; } if ( mDebugRenderer != null ) { mDebugRenderer.Dispose(); mDebugRenderer = null; } }
public DrawMergeSegmentationTool( TileManager tileManager, Engine engine ) : base(tileManager, engine) { mTileManager = tileManager; mEngine = engine; }
public MergeSegmentationTool( TileManager tileManager, Engine engine ) : base(tileManager, engine) { mTileManager = tileManager; }
public DrawMergeSegmentationTool(TileManager tileManager, Engine engine) : base(tileManager, engine) { mTileManager = tileManager; mEngine = engine; }
public Engine(ObservableDictionary <string, D3D11HwndDescription> d3d11HwndDescriptions) { Console.WriteLine("\nMojo initializing...\n"); try { D3D11.Initialize(out mDxgiFactory, out mD3D11Device); //Cuda.Initialize( mD3D11Device ); //Thrust.Initialize(); TileManager = new TileManager(new Interop.TileManager(mD3D11Device, mD3D11Device.ImmediateContext, Constants.ConstParameters)); Tools = new ObservableDictionary <ViewerMode, ObservableDictionary <ToolMode, ITool> > { { ViewerMode.TileManager2D, new ObservableDictionary <ToolMode, ITool> { { ToolMode.Null, new NullTool() }, { ToolMode.AdjustSegmentation, new AdjustSegmentationTool(TileManager, this) }, { ToolMode.MergeSegmentation, new MergeSegmentationTool(TileManager, this) }, { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationTool(TileManager, this) }, { ToolMode.SplitSegmentation, new SplitSegmentationTool(TileManager, this) } } } }; RenderingStrategies = new ObservableDictionary <ViewerMode, ObservableDictionary <ToolMode, IRenderingStrategy> > { { ViewerMode.TileManager2D, new ObservableDictionary <ToolMode, IRenderingStrategy> { { ToolMode.Null, new NullRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext) }, { ToolMode.AdjustSegmentation, new AdjustSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) }, { ToolMode.MergeSegmentation, new MergeSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) }, { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) }, { ToolMode.SplitSegmentation, new SplitSegmentationRenderingStrategy(mD3D11Device, mD3D11Device.ImmediateContext, TileManager) } } } }; Viewers = new ObservableDictionary <ViewerMode, Viewer> { { ViewerMode.TileManager2D, new Viewer { D3D11RenderingPane = new D3D11RenderingPane(mDxgiFactory, mD3D11Device, mD3D11Device.ImmediateContext, d3d11HwndDescriptions.Get("TileManager2D")) { RenderingStrategy = RenderingStrategies.Internal[ViewerMode.TileManager2D].Internal[ToolMode.Null] }, UserInputHandler = Tools.Internal[ViewerMode.TileManager2D].Internal[ToolMode.Null] } } }; } catch (Exception e) { String errorMessage = "Error opening main window:\n\n" + e.Message + "\n\nYou might want to try one of the following:\n - Install the \"DirectX End-User Runtime\" (from the Microsoft website).\n - Install the latest graphics drivers for your graphics card.\n - Reinstall the latest Mojo release."; MessageBox.Show(errorMessage, "Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error); Console.WriteLine(errorMessage); Application.Current.Shutdown(1); } }
public MergeSegmentationTool(TileManager tileManager, Engine engine) : base(tileManager, engine) { mTileManager = tileManager; }
public SplitSegmentationTool(TileManager tileManager, Engine engine) : base(tileManager, engine) { mTileManager = tileManager; mEngine = engine; }
public ToolBase( TileManager tileImageManager, Engine engine ) { mTileManager = tileImageManager; mEngine = engine; }
public AdjustSegmentationTool( TileManager tileManager, Engine engine ) : base(tileManager, engine) { mTileManager = tileManager; mEngine = engine; }
public Engine( ObservableDictionary<string, D3D11HwndDescription> d3d11HwndDescriptions ) { Console.WriteLine( "\nMojo initializing...\n" ); try { D3D11.Initialize( out mDxgiFactory, out mD3D11Device ); //Cuda.Initialize( mD3D11Device ); //Thrust.Initialize(); TileManager = new TileManager( new Interop.TileManager( mD3D11Device, mD3D11Device.ImmediateContext, Constants.ConstParameters ) ); Tools = new ObservableDictionary<ViewerMode, ObservableDictionary<ToolMode, ITool>> { { ViewerMode.TileManager2D, new ObservableDictionary< ToolMode, ITool > { { ToolMode.Null, new NullTool() }, { ToolMode.AdjustSegmentation, new AdjustSegmentationTool( TileManager, this ) }, { ToolMode.MergeSegmentation, new MergeSegmentationTool( TileManager, this ) }, { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationTool( TileManager, this ) }, { ToolMode.SplitSegmentation, new SplitSegmentationTool( TileManager, this ) } } } }; RenderingStrategies = new ObservableDictionary<ViewerMode, ObservableDictionary<ToolMode, IRenderingStrategy>> { { ViewerMode.TileManager2D, new ObservableDictionary< ToolMode, IRenderingStrategy > { { ToolMode.Null, new NullRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext ) }, { ToolMode.AdjustSegmentation, new AdjustSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) }, { ToolMode.MergeSegmentation, new MergeSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) }, { ToolMode.DrawMergeSegmentation, new DrawMergeSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) }, { ToolMode.SplitSegmentation, new SplitSegmentationRenderingStrategy( mD3D11Device, mD3D11Device.ImmediateContext, TileManager ) } } } }; Viewers = new ObservableDictionary<ViewerMode, Viewer> { { ViewerMode.TileManager2D, new Viewer { D3D11RenderingPane = new D3D11RenderingPane( mDxgiFactory, mD3D11Device, mD3D11Device.ImmediateContext, d3d11HwndDescriptions.Get( "TileManager2D" ) ) { RenderingStrategy = RenderingStrategies.Internal[ ViewerMode.TileManager2D ].Internal[ ToolMode.Null ] }, UserInputHandler = Tools.Internal[ ViewerMode.TileManager2D ].Internal[ ToolMode.Null ] } } }; } catch ( Exception e ) { String errorMessage = "Error opening main window:\n\n" + e.Message + "\n\nYou might want to try one of the following:\n - Install the \"DirectX End-User Runtime\" (from the Microsoft website).\n - Install the latest graphics drivers for your graphics card.\n - Reinstall the latest Mojo release."; MessageBox.Show( errorMessage, "Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error ); Console.WriteLine( errorMessage ); Application.Current.Shutdown( 1 ); } }
public void UpdateOneTile() { mSkipUpdate = true; TileManager.UpdateOneTile(); Viewers.Internal.ToList().ForEach(viewer => viewer.Value.D3D11RenderingPane.Render()); }
public ToolBase(TileManager tileImageManager, Engine engine) { mTileManager = tileImageManager; mEngine = engine; }