internal override IntPtr _InternalGetConstPointer()
        {
#if RHINO_SDK
            Rhino.DocObjects.RhinoObject parent_object = m__parent as Rhino.DocObjects.RhinoObject;
            if (null == parent_object)
            {
                Rhino.FileIO.File3dmObject parent_model_object = m__parent as Rhino.FileIO.File3dmObject;
                if (parent_model_object != null)
                {
                    return(parent_model_object.GetAttributesConstPointer());
                }
            }
            IntPtr pConstParent = IntPtr.Zero;
            if (null != parent_object)
            {
                pConstParent = parent_object.ConstPointer();
            }
            return(UnsafeNativeMethods.CRhinoObject_Attributes(pConstParent));
#else
            Rhino.FileIO.File3dmObject parent_model_object = m__parent as Rhino.FileIO.File3dmObject;
            if (parent_model_object != null)
            {
                return(parent_model_object.GetAttributesConstPointer());
            }
            return(IntPtr.Zero);
#endif
        }
Example #2
0
        internal override IntPtr _InternalGetConstPointer()
        {
            if (null != m_shallow_parent)
            {
                return(m_shallow_parent.ConstPointer());
            }

#if RHINO_SDK
            Rhino.DocObjects.ObjRef obj_ref = m__parent as Rhino.DocObjects.ObjRef;
            if (null != obj_ref)
            {
                return(obj_ref.GetGeometryConstPointer(this));
            }

            Rhino.DocObjects.RhinoObject parent_object = ParentRhinoObject();
            if (parent_object == null)
            {
                Rhino.FileIO.File3dmObject fileobject = m__parent as Rhino.FileIO.File3dmObject;
                if (null != fileobject)
                {
                    return(fileobject.GetGeometryConstPointer());
                }
            }

            uint   serial_number      = 0;
            IntPtr pParentRhinoObject = IntPtr.Zero;
            if (null != parent_object)
            {
                serial_number      = parent_object.m_rhinoobject_serial_number;
                pParentRhinoObject = parent_object.m_pRhinoObject;
            }
            ComponentIndex ci = new ComponentIndex();
            // There are a few cases (like in ReplaceObject callback) where the parent
            // rhino object temporarily holds onto the CRhinoObject* because the object
            // is not officially in the document yet.
            if (pParentRhinoObject != IntPtr.Zero)
            {
                return(UnsafeNativeMethods.CRhinoObject_Geometry(pParentRhinoObject, ci));
            }
            return(UnsafeNativeMethods.CRhinoObject_Geometry2(serial_number, ci));
#else
            Rhino.FileIO.File3dmObject fileobject = m__parent as Rhino.FileIO.File3dmObject;
            if (null != fileobject)
            {
                return(fileobject.GetGeometryConstPointer());
            }
            return(IntPtr.Zero);
#endif
        }
Example #3
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            if (m_f3dm != null)
            {
                //    //foreach (object o in m_f3dm.Objects)
                //    //{
                //    //    rtb3dmReport.AppendText(o.ToString());
                //    //}

                Rhino.FileIO.File3dmObjectTable table  = m_f3dm.Objects;
                Rhino.FileIO.File3dmObject[]    f3dmo0 = table.FindByLayer("material");

                List <Rhino.FileIO.File3dmObject> list_objects = table.ToList <Rhino.FileIO.File3dmObject>();

                Rhino.FileIO.File3dmObject[] array_objects = table.ToArray <Rhino.FileIO.File3dmObject>();

                IEnumerator <Rhino.FileIO.File3dmObject> enu = table.GetEnumerator();

                //    //rtb3dmReport.AppendText(list_objects.Count.ToString());
                //    //rtb3dmReport.AppendText(list_objects[1970].ToString());
                //    //rtb3dmReport.AppendText(list_objects[100].Geometry.ToString());

                Rhino.FileIO.File3dmObject f3dmo = table.ElementAt <Rhino.FileIO.File3dmObject>(0);

                Rhino.Geometry.Extrusion ge = new Rhino.Geometry.Extrusion();


                //    foreach (Rhino.FileIO.File3dmObject f3dmo in list_objects)
                //    {
                //        try
                //        {
                //            //Rhino.Geometry.Extrusion eo = (Rhino.Geometry.Extrusion)f3dmo.Geometry;
                //            //rtb3dmReport.AppendText(eo.ToString());

                //            //Rhino.DocObjects.RhinoObject ro = (Rhino.DocObjects.RhinoObject)f3dmo;
                //        }
                //        catch (Exception ex)
                //        {
                //            //rtb3dmReport.AppendText(ex.ToString());
                //            //rtb3dmReport.AppendText("object " + f3dmo.Id.ToString() + " is not ON_Extrusion\n");
                //        }
                //    }
            }
        }
 internal ObjectAttributes(Rhino.FileIO.File3dmObject parent)
 {
     ConstructConstObject(parent, -1);
 }