protected override void Start()
        {
            this.visualization = VisualizationService.GetVisualizations().Single(p => p.Id == VisualizationId);
            this.text          = this.visualization.Name;

            base.Start();
        }
        public MainWindowViewModel()
        {
            SelectedDpi = 300;

            var visualizationService = new VisualizationService(
                new TestModelServiceFactory(),
                new TestDiagramServiceFactory(),
                new TestUiServiceFactory(),
                new DiagramPluginFactory(new TestLayoutPriorityProvider(), new TestDiagramShapeFactory()),
                new[]
            {
                DiagramPluginId.AutoLayoutDiagramPlugin,
                DiagramPluginId.ConnectorHandlerDiagramPlugin,
                DiagramPluginId.ModelTrackingDiagramPlugin
            }
                );

            _testModelService = (ITestModelService)visualizationService.GetModelService();
            var diagramId = visualizationService.CreateDiagram(minZoom: 0.2, maxZoom: 5, initialZoom: 1);

            _diagramService = visualizationService.GetDiagramService(diagramId);
            _uiService      = (IWpfUiService)visualizationService.GetUiService(diagramId);

            _uiService.DiagramNodeInvoked      += i => Debug.WriteLine($"DiagramNodeInvoked: {i}");
            _uiService.ShowModelItemsRequested += OnShowModelItemsRequested;

            AddCommand             = new DelegateCommand(AddShapes);
            RemoveCommand          = new DelegateCommand(RemoveShapes);
            ZoomToContentCommand   = new DelegateCommand(ZoomToContent);
            CopyToClipboardCommand = new DelegateCommand(CopyToClipboardAsync);

            PopulateModel(_testModelService);
        }
예제 #3
0
 public override void Cleanup()
 {
     VisualizationService.Stop();
     TrackerService.Destroy();
     CameraService.Destroy();
     Messenger.Default.Send(new RemoveCameraMessage(Camera));
     // todo remove after message with feedback?
     SimpleIoc.Default.Unregister<CameraViewModel>(Camera.GUID);
         
     base.Cleanup();
 }
예제 #4
0
        public static void OpenVectorVisualizer(int visualizationId)
        {
            Guard.IsNotNull(visualizationId);

            var lastScene  = Instance.currentScene;
            var visualizer = new Visualizer();

            visualizer.Vizualization = VisualizationService.GetVisualizations().Single(visualization => visualization.Id == visualizationId);
            visualizer.Load();
            Instance.currentScene     = visualizer;
            Instance.vectorVisualizer = visualizer;

            SceneManager.LoadSceneAsync("Scenes/VectorVisualizer");

            CloseScene(lastScene);
        }
        public HttpResponseMessage GetSourceCodeisualization(string originalId)
        {
            try
            {
                VisualizationService visualizationService = new VisualizationService();
                var view3dData = visualizationService.GetView3dSourceCode(originalId);

                var data = new JavaScriptSerializer().Serialize(view3dData);

                var response = Request.CreateResponse(HttpStatusCode.OK);
                response.Content = new StringContent(data, Encoding.UTF8, "application/json");
                return(response);
            }
            catch (Exception ex)
            {
                throw InternalError.ThrowError(ex);
            }
        }
        public HttpResponseMessage GetView3UserFilterVisualization(TaskProjectModel filter)
        {
            try
            {
                VisualizationService visualizationService = new VisualizationService();
                var view3dData = visualizationService.GetView3dUserDataFilter(filter);

                var data = new JavaScriptSerializer().Serialize(view3dData);

                var response = Request.CreateResponse(HttpStatusCode.OK);
                response.Content = new StringContent(data, Encoding.UTF8, "application/json");
                return(response);
            }
            catch (Exception ex)
            {
                throw InternalError.ThrowError(ex);
            }
        }
예제 #7
0
        public static bool TryOpenVectorVisualizer(String uri)
        {
            // Parse URI
            // Definition
            // Case 1: "https://vr-vektoren.ch/app/VrVektoren/[section]/[id]"
            //      2: "vrvektoren://[section]/[id]"
            //
            // Example "https://vr-vektoren.ch/app/VrVektoren/tutorial/1"
            // Config:
            string[] avaliableSections = { "tutorial" };

            if (string.IsNullOrWhiteSpace(uri))
            {
                LogDebug("uri is null or size = 0");
                return(false);
            }

            Uri unparsedUrl;

            if (!Uri.TryCreate(uri, UriKind.Absolute, out unparsedUrl))
            {
                LogDebug("Not a valid uri. URI:" + uri);
                return(false);
            }

            if (unparsedUrl.Scheme != "vrvektoren" &&
                !(unparsedUrl.Scheme == "https" && unparsedUrl.Authority == "vr-vektoren.ch"))
            {
                LogDebug("not a valid scheme according to definition. URI:" + uri + ", Scheme:" + unparsedUrl.Scheme + ", Authority:" + unparsedUrl.Authority);
                return(false);
            }

            string relativePath;

            if (unparsedUrl.AbsolutePath.Contains("VrVektoren"))
            {
                relativePath = unparsedUrl.AbsolutePath.Split(new string[] { "VrVektoren" }, 2, StringSplitOptions.None)[1];
            }
            else
            {
                relativePath = unparsedUrl.Authority + unparsedUrl.AbsolutePath;
            }

            string[] path = relativePath.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
            if (path.Length != 2) // "[section]" / "[id]"
            {
                LogDebug("not a valid path according to definition. URI:" + uri);
                return(false);
            }

            string section  = path[0];
            string idString = path[1];

            if (!avaliableSections.Contains(section))
            {
                LogDebug("not a valid section according to definition. URI:" + uri);
                return(false);
            }

            if (!int.TryParse(idString, out int id))
            {
                LogDebug("not a valid id according to definition. URI:" + uri);
                return(false);
            }

            if (!VisualizationService.GetVisualizations().Any(p => p.Id == id))
            {
                LogDebug("not a existing id:" + idString);
                return(false);
            }

            OpenVectorVisualizer(id);

            // Todo: Remove
            LogDebug(idString);

            return(true);
        }
예제 #8
0
 public void DoToggleVisualization(bool enabled)
 {
     if (enabled) VisualizationService.Start();
     else VisualizationService.Stop();
 }