Ejemplo n.º 1
0
        static void OnDrawGeometryProc(Guid am_id, IntPtr pConstRhinoObject, IntPtr pConstGeometry, IntPtr pRhinoDisplayPipeline)
        {
            VisualAnalysisMode mode = FindLocal(am_id);

            if (mode != null)
            {
                var rhobj = Pixel.Rhino.DocObjects.RhinoObject.CreateRhinoObjectHelper(pConstRhinoObject);
                var geom  = Pixel.Rhino.Geometry.GeometryBase.CreateGeometryHelper(pConstGeometry, null);
                if (geom != null)
                {
                    geom.DoNotDestructOnDispose();
                }
                DisplayPipeline           dp   = new DisplayPipeline(pRhinoDisplayPipeline);
                Pixel.Rhino.Geometry.Mesh mesh = geom as Pixel.Rhino.Geometry.Mesh;
                try
                {
                    if (mesh != null)
                    {
                        mode.DrawMesh(rhobj, mesh, dp);
                        return;
                    }
                    Pixel.Rhino.Geometry.NurbsCurve nurbscurve = geom as Pixel.Rhino.Geometry.NurbsCurve;
                    if (nurbscurve != null)
                    {
                        mode.DrawNurbsCurve(rhobj, nurbscurve, dp);
                        return;
                    }
                    Pixel.Rhino.Geometry.NurbsSurface nurbssurf = geom as Pixel.Rhino.Geometry.NurbsSurface;
                    if (nurbssurf != null)
                    {
                        mode.DrawNurbsSurface(rhobj, nurbssurf, dp);
                        return;
                    }
                }
                catch (Exception) { }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Draws a NURBS curve. This is a good function to override for
 /// analysis modes like curvature hair display.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="obj">A Rhino object corresponding to the curve.</param>
 /// <param name="curve">The curve geometry.</param>
 /// <param name="pipeline">The current display pipeline.</param>
 protected virtual void DrawNurbsCurve(Pixel.Rhino.DocObjects.RhinoObject obj, Pixel.Rhino.Geometry.NurbsCurve curve, DisplayPipeline pipeline)
 {
 }