/// <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)); }