Example #1
0
        /// <summary>
        /// Expects all of the items in the IEnumerable to be GeometryBase types
        /// </summary>
        /// <param name="geometry"></param>
        public SimpleArrayGeometryPointer(System.Collections.IEnumerable geometry)
        {
            m_ptr = UnsafeNativeMethods.ON_GeometryArray_New(0);

            foreach (object o in geometry)
            {
                GeometryBase gb = o as GeometryBase;
                if (gb != null)
                {
                    IntPtr geomPtr = gb.ConstPointer();
                    UnsafeNativeMethods.ON_GeometryArray_Append(m_ptr, geomPtr);
                }
            }
        }
        /// <summary>
        /// Checks geometry to see if it passes the basic GeometryAttributeFilter.
        /// </summary>
        /// <param name="rhObject">parent object being considered.</param>
        /// <param name="geometry">geometry being considered.</param>
        /// <param name="componentIndex">if >= 0, geometry is a proper sub-part of object->Geometry() with componentIndex.</param>
        /// <returns>
        /// true if the geometry passes the filter returned by GeometryAttributeFilter().
        /// </returns>
        public bool PassesGeometryAttributeFilter(RhinoObject rhObject, GeometryBase geometry, ComponentIndex componentIndex)
        {
            IntPtr const_ptr_rhino_object = IntPtr.Zero;

            if (rhObject != null)
            {
                const_ptr_rhino_object = rhObject.ConstPointer();
            }
            IntPtr const_ptr_geometry = IntPtr.Zero;

            if (geometry != null)
            {
                const_ptr_geometry = geometry.ConstPointer();
            }
            IntPtr ptr = NonConstPointer();

            return(UnsafeNativeMethods.CRhinoGetObject_PassesGeometryAttributeFilter(ptr, const_ptr_rhino_object, const_ptr_geometry, componentIndex));
        }