Ejemplo n.º 1
0
    public VtkToUnity(Kitware.VTK.vtkAlgorithmOutput outputPort, string name)
    {
        this.name = name;
        triangleFilter = Kitware.VTK.vtkTriangleFilter.New();
        triangleFilter.SetInputConnection(outputPort);

        go = new GameObject(name);

        MeshFilter meshFilter = go.AddComponent<MeshFilter> ();
        meshFilter.sharedMesh = mesh;
        go.AddComponent<MeshRenderer> ();
    }
    private static void ErrorEvtHandler(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
    {
        ++reportCount;
        reportMessage1 = "ErrorEvtHandler";

        System.Console.Error.WriteLine(System.String.Format(
          "sender: {0}", sender));
        System.Console.Error.WriteLine(System.String.Format(
          "e: {0}", e));

        ThrowIfNonZeroReportCount();
    }
Ejemplo n.º 3
0
    public VtkToUnity(Kitware.VTK.vtkAlgorithmOutput outputPort, GameObject newGo)
    {
        name = newGo.name;
        triangleFilter = Kitware.VTK.vtkTriangleFilter.New();
        triangleFilter.SetInputConnection(outputPort);

        GameObject.DestroyImmediate(newGo.GetComponent<MeshFilter>());
        GameObject.DestroyImmediate(newGo.GetComponent<MeshRenderer>());

        go = newGo;

        MeshFilter meshFilter = go.AddComponent<MeshFilter> ();
        meshFilter.sharedMesh = mesh;
        go.AddComponent<MeshRenderer> ();
    }
    /// <summary>
    /// Handler for any vtkObject event:
    /// </summary>
    public static void ObjectModified(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
    {
        ++ObjectModifiedCallCount;

        System.Console.Error.WriteLine("//----------------------------------------------------------------------------");
        System.Console.Error.WriteLine("ObjectModified");

        System.Console.Error.WriteLine("sender:");
        System.Console.Error.WriteLine(sender.ToString());

        System.Console.Error.WriteLine("e.Caller:");
        System.Console.Error.WriteLine(e.Caller.ToString());

        System.Console.Error.WriteLine("e.EventId:");
        System.Console.Error.WriteLine(e.EventId.ToString());

        System.Console.Error.WriteLine("e.CallData:");
        System.Console.Error.WriteLine(e.CallData.ToString());

        System.Console.Error.WriteLine("");
    }
Ejemplo n.º 5
0
 void Interactor_AnyEventHandler(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
 {
     this.PrintEvent(sender, e);
 }
Ejemplo n.º 6
0
        void UserStyle_MultipleEventHandler(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
        {
            string keysym = this.Interactor.GetKeySym();

            Kitware.VTK.vtkCommand.EventIds eid = (Kitware.VTK.vtkCommand.EventIds)e.EventId;

            switch (eid)
            {
                case Kitware.VTK.vtkCommand.EventIds.KeyPressEvent:
                case Kitware.VTK.vtkCommand.EventIds.CharEvent:
                case Kitware.VTK.vtkCommand.EventIds.KeyReleaseEvent:
                    if (keysym == "f")
                    {
                        // Temporarily disable the interactor, so that the built-in 'f'
                        // handler does not get called:
                        //
                        this.Interactor.Disable();

                        // Turn on the timer, so we can re-enable the interactor
                        // after the processing of this event is over (one tenth
                        // of a second later...)
                        //
                        this.timer1.Enabled = true;
                    }
                    if (keysym.ToLower() == "j" || keysym.ToLower() == "k" || keysym.ToLower() == "l" || keysym.ToLower() == "i")
                    {
                        WanderCamera(keysym);
                    }
                    break;
            }

            this.PrintEvent(sender, e);
        }
Ejemplo n.º 7
0
        void PrintEvent(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
        {
            int[] pos = this.Interactor.GetEventPosition();
            string keysym = this.Interactor.GetKeySym();
            sbyte keycode = this.Interactor.GetKeyCode();

            string line = String.Format("{0} ({1},{2}) ('{3}',{4}) {5} data='0x{6:x8}'{7}",
              Kitware.VTK.vtkCommand.GetStringFromEventId(e.EventId),
              pos[0], pos[1],
              keysym, keycode,
              e.Caller.GetClassName(), e.CallData.ToInt32(), System.Environment.NewLine);

            System.Diagnostics.Debug.Write(line);
            this.textEvents.AppendText(line);
        }
Ejemplo n.º 8
0
        void ErrorWindow_ErrorHandler(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
        {
            string s = "unknown";
            if (e.CallData != IntPtr.Zero)
            {
                s = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(e.CallData);
            }

            System.Diagnostics.Debug.Write(System.String.Format(
              "ErrorWindow_ErrorHandler called: sender='{0}' e='{1}' s='{2}'", sender, e, s));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Recursive function that finds and 
        /// graphs Wikipedia links
        /// </summary>
        /// <param name="g">The graph</param>
        /// <param name="lookupValue">Name of orgin article</param>
        /// <param name="hops">How many degrees of separation from the original article</param>
        private void addLinks(Kitware.VTK.vtkMutableDirectedGraph g, string lookupValue, int hops)
        {
            vtkStringArray label = (vtkStringArray)g.GetVertexData().GetAbstractArray("label");
            long parent = label.LookupValue(lookupValue);
            //if lookupValue is not in the graph add it
            if (parent < 0)
            {
                rotateLogo();
                parent = g.AddVertex();
                label.InsertNextValue(lookupValue);
                arrListSmall.Add(lookupValue);
            }
            //Parse Wikipedia for the lookupValue
            string underscores = lookupValue.Replace(' ', '_');
            System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http://en.wikipedia.org/wiki/Special:Export/" + underscores);
            webRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;
            webRequest.Accept = "text/xml";
            try
            {
                System.Net.HttpWebResponse webResponse = (System.Net.HttpWebResponse)webRequest.GetResponse();
                System.IO.Stream responseStream = webResponse.GetResponseStream();
                System.Xml.XmlReader reader = new System.Xml.XmlTextReader(responseStream);
                String NS = "http://www.mediawiki.org/xml/export-0.4/";
                System.Xml.XPath.XPathDocument doc = new System.Xml.XPath.XPathDocument(reader);
                reader.Close();
                webResponse.Close();
                System.Xml.XPath.XPathNavigator myXPahtNavigator = doc.CreateNavigator();
                System.Xml.XPath.XPathNodeIterator nodesText = myXPahtNavigator.SelectDescendants("text", NS, false);

                String fullText = "";
                //Parse the wiki page for links
                while (nodesText.MoveNext())
                    fullText += nodesText.Current.InnerXml + " ";
                System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(fullText, "\\[\\[.*?\\]\\]");
                int max;
                try
                {
                    max = System.Convert.ToInt32(toolStripTextBox2.Text);
                }
                catch (Exception)
                {
                    max = -1;
                }
                int count = 0;
                while (m.Success && ((count < max) || (max < 0)))
                {
                    String s = m.ToString();
                    int index = s.IndexOf('|');
                    String substring = "";
                    if (index > 0)
                    {
                        substring = s.Substring(2, index - 2);
                    }
                    else
                    {
                        substring = s.Substring(2, s.Length - 4);
                    }
                    //if the new substring is not already there add it
                    long v = label.LookupValue(substring);
                    if (v < 0)
                    {
                        rotateLogo();
                        v = g.AddVertex();
                        label.InsertNextValue(substring);
                        arrListSmall.Add(substring);
                        if (hops > 1)
                        {
                            addLinks(g, substring, hops - 1);
                        }
                    }
                    else if (arrListSmall.IndexOf(substring) < 0)
                    {
                        arrListSmall.Add(substring);
                        if (hops > 1)
                        {
                            addLinks(g, substring, hops - 1);
                        }
                    }
                    //Make sure nothing is linked to twice by expanding the graph
                    vtkAdjacentVertexIterator avi = vtkAdjacentVertexIterator.New();
                    g.GetAdjacentVertices((int)parent, avi);
                    m = m.NextMatch();
                    ++count;

                    while (avi.HasNext())
                    {
                        long id = avi.Next();
                        if (id == v)
                        {
                            return;
                        }
                    }
                    rotateLogo();
                    g.AddGraphEdge((int)parent, (int)v);

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 对事件进行响应操作。首先在状态栏显示事件、坐标等信息,然后对LeftButtonPressEvent响应,执行pickcell获取三维坐标及cellId
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void PrintEvent(Kitware.VTK.vtkObject sender, Kitware.VTK.vtkObjectEventArgs e)
        {
            vtkRenderWindowInteractor Interactor = renderWindowControl1.RenderWindow.GetInteractor();
            int[] pos = Interactor.GetEventPosition();
            string keysym = Interactor.GetKeySym();
            sbyte keycode = Interactor.GetKeyCode();

            string line = String.Format("{0} ({1},{2}) ('{3}',{4}) {5} data='0x{6:x8}'{7}",
              Kitware.VTK.vtkCommand.GetStringFromEventId(e.EventId),
              pos[0], pos[1],
              keysym, keycode,
              e.Caller.GetClassName(), e.CallData.ToInt32(), System.Environment.NewLine);

            System.Diagnostics.Debug.Write(line);
            //this.textEvents.AppendText(line);
            state.Text = line;

            if (MousePick||拉伸工具ToolStripMenuItem.Checked)
            {
                Kitware.VTK.vtkRenderer CurrentRender = Interactor.FindPokedRenderer(pos[0], pos[1]);
                Interactor.GetPicker().Pick(pos[0], pos[1], 0.0, this.renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer());
                //Kitware.VTK.vtkAbstractPropPicker picker=Kitware.VTK.vtkAbstractPropPicker.New();
                picker = Kitware.VTK.vtkCellPicker.SafeDownCast(Interactor.GetPicker());
                Kitware.VTK.vtkAssemblyPath path = vtkAssemblyPath.New();
                path = picker.GetPath();

                if (path != null)
                {
                    pickedId = picker.GetCellId();
                    posit = picker.GetPickPosition();
                    picker.Pick(posit[0], posit[1], posit[2], CurrentRender);
                    if ((Kitware.VTK.vtkCommand.EventIds)e.EventId == Kitware.VTK.vtkCommand.EventIds.LeftButtonPressEvent)
                    {
                        label3.Text = posit[0].ToString() + "\r\n" + posit[1].ToString() + "\r\n" + posit[2].ToString() + "\r\ncellId:" + pickedId.ToString();
                        //this.AddtextActor(pos, posit);
                        //this.Interactor.EndPickCallback();
                        AddPoint(posit, pickedId);
                    }
                }
            }
        }
        private void AddConeSourceToRenderWindow(Kitware.VTK.vtkRenderWindow renWin)
        {
            Kitware.VTK.vtkConeSource source = new Kitware.VTK.vtkConeSource();

              Kitware.VTK.vtkMapper mapper = new Kitware.VTK.vtkOpenGLPolyDataMapper();
              mapper.SetInputConnection(source.GetOutputPort());

              Kitware.VTK.vtkActor actor = new Kitware.VTK.vtkActor();
              actor.SetMapper(mapper);

              Kitware.VTK.vtkRenderer ren = null; //new Kitware.VTK.vtkOpenGLRenderer();
              ren = renWin.GetRenderers().GetFirstRenderer();
              ren.AddActor(actor);

              Kitware.VTK.vtkTextActor textActor = new Kitware.VTK.vtkTextActor();
              textActor.SetInput(Kitware.VTK.vtkVersion.GetVTKSourceVersion());
              ren.AddActor(textActor);

              //int n = renWin.GetRenderers().GetNumberOfItems();
              //System.Diagnostics.Debug.WriteLine(n);
              //System.Diagnostics.Debug.WriteLine(
              //  Kitware.mummy.Runtime.Methods.Print(false)
              //  );
        }
Ejemplo n.º 12
0
 static vtkgdcm.vtkImageData ConnectActivizToSWIG(Kitware.VTK.vtkImageData imgin)
 {
     HandleRef rawCppThis = imgin.GetCppThis();
     vtkgdcm.vtkImageData imgout = new vtkgdcm.vtkImageData( rawCppThis );
     return imgout;
 }
Ejemplo n.º 13
0
 public void SaveRendererViewState(Kitware.VTK.vtkRenderer ren)
 {
     Kitware.VTK.vtkCamera cam = ren.GetActiveCamera();
       m_saved_focalpoint = cam.GetFocalPoint();
       m_saved_position = cam.GetPosition();
       m_saved_viewup = cam.GetViewUp();
 }
Ejemplo n.º 14
0
 public void RestoreRendererViewState(Kitware.VTK.vtkRenderer ren)
 {
     Kitware.VTK.vtkCamera cam = ren.GetActiveCamera();
       cam.SetFocalPoint(m_saved_focalpoint[0], m_saved_focalpoint[1], m_saved_focalpoint[2]);
       cam.SetPosition(m_saved_position[0], m_saved_position[1], m_saved_position[2]);
       cam.SetViewUp(m_saved_viewup[0], m_saved_viewup[1], m_saved_viewup[2]);
       ren.ResetCameraClippingRange();
 }