Exemple #1
0
        /// <summary>
        /// Add an ObjRef to this list. Use this to add polyedges so the references are properly counted
        /// </summary>
        /// <param name="objref"></param>
        /// <since>5.10</since>
        public void Add(DocObjects.ObjRef objref)
        {
            IntPtr const_ptr_objref = objref.ConstPointer();
            IntPtr ptr_this         = NonConstPointer();

            UnsafeNativeMethods.CRhinoXformObjectList_AddObject(ptr_this, const_ptr_objref);
        }
        public DocObjects.ObjRef[] Objects()
        {
            int count = ObjectCount;

            if (count < 1)
            {
                return(null);
            }
            Rhino.Collections.RhinoList <DocObjects.ObjRef> objrefs = new Rhino.Collections.RhinoList <Rhino.DocObjects.ObjRef>(count);
            for (int i = 0; i < count; i++)
            {
                DocObjects.ObjRef objref = Object(i);
                objrefs.Add(objref);
            }
            return(objrefs.ToArray());
        }
        internal Geometry.Mesh[] ToConstArray(Rhino.DocObjects.RhinoObject parent)
        {
            int count = Count;

            if (count < 1)
            {
                return(new Geometry.Mesh[0]);
            }
            IntPtr ptr = ConstPointer();

            Mesh[] rc = new Mesh[count];
            for (int i = 0; i < rc.Length; i++)
            {
                IntPtr pMesh = UnsafeNativeMethods.ON_MeshArray_Get(ptr, i);
                Rhino.DocObjects.ObjRef objref = new DocObjects.ObjRef(parent, pMesh);
                rc[i] = objref.Mesh();
            }
            return(rc);
        }
        /// <summary>
        /// Copies the unmanaged array to a managed counterpart.
        /// </summary>
        /// <returns>The managed array.</returns>
        public Rhino.DocObjects.ObjRef[] ToNonConstArray()
        {
            int count = Count;

            if (count < 1)
            {
                return(new DocObjects.ObjRef[0]);
            }
            IntPtr ptr = ConstPointer();

            Rhino.DocObjects.ObjRef[] rc = new DocObjects.ObjRef[count];
            for (int i = 0; i < count; i++)
            {
                IntPtr pObjRef = UnsafeNativeMethods.ON_ClassArrayCRhinoObjRef_Get(ptr, i);
                if (IntPtr.Zero != pObjRef)
                {
                    rc[i] = new DocObjects.ObjRef(pObjRef);
                }
            }
            return(rc);
        }
Exemple #5
0
    /// <summary>
    /// Copies the unmanaged array to a managed counterpart.
    /// </summary>
    /// <returns>The managed array.</returns>
    public Rhino.DocObjects.ObjRef[] ToNonConstArray()
    {
      int count = Count;
      if (count < 1)
        return new DocObjects.ObjRef[0];
      IntPtr ptr = ConstPointer();

      Rhino.DocObjects.ObjRef[] rc = new DocObjects.ObjRef[count];
      for (int i = 0; i < count; i++)
      {
        IntPtr pObjRef = UnsafeNativeMethods.ON_ClassArrayCRhinoObjRef_Get(ptr, i);
        if (IntPtr.Zero != pObjRef)
          rc[i] = new DocObjects.ObjRef(pObjRef);
      }
      return rc;
    }
Exemple #6
0
    internal Geometry.Mesh[] ToConstArray(Rhino.DocObjects.RhinoObject parent)
    {
      int count = Count;
      if (count < 1)
        return new Geometry.Mesh[0];
      IntPtr ptr = ConstPointer();

      Mesh[] rc = new Mesh[count];
      for (int i = 0; i < rc.Length; i++)
      {
        IntPtr pMesh = UnsafeNativeMethods.ON_MeshArray_Get(ptr, i);
        Rhino.DocObjects.ObjRef objref = new DocObjects.ObjRef(parent, pMesh);
        rc[i] = objref.Mesh();
      }
      return rc;
    }
    /// <summary>
    /// Copies the unmanaged array to a managed counterpart.
    /// </summary>
    /// <returns>The managed array.</returns>
    public DocObjects.ObjRef[] ToNonConstArray()
    {
      int count = Count;
      if (count < 1)
        return new DocObjects.ObjRef[0];
      IntPtr ptr_const_this = ConstPointer();

      DocObjects.ObjRef[] rc = new DocObjects.ObjRef[count];
      for (int i = 0; i < count; i++)
      {
        IntPtr ptr_const_objref = UnsafeNativeMethods.ON_ClassArrayON_ObjRef_Get(ptr_const_this, i);
        if (IntPtr.Zero != ptr_const_objref)
          rc[i] = new DocObjects.ObjRef(ptr_const_objref, false);
      }
      return rc;
    }