Esempio n. 1
0
        internal static GEOM[] ToArray <GEOM, ENTITY>(this ENTITY[] hosts, bool persist = true, DSGeometry context = null)
            where GEOM : DSGeometry
            where ENTITY : IGeometryEntity
        {
            if (null == hosts)
            {
                return(null);
            }

            List <GEOM> objects = new List <GEOM>();

            foreach (var item in hosts)
            {
                if (null == item)
                {
                    continue;
                }

                GEOM obj = DSGeometry.ToGeometry(item, persist, context) as GEOM;
                if (obj == null)
                {
                    continue;
                }

                objects.Add(obj);
            }

            return(objects.ToArray());
        }
Esempio n. 2
0
        protected override DSGeometry GetGeometryCore(out bool autodispose)
        {
            ISolidEntity solid = ShellEntity.GetSolidGeometry();

            autodispose = true;
            return(DSGeometry.ToGeometry(solid));
        }
Esempio n. 3
0
        protected override DSGeometry GetGeometryCore(out bool autodispose)
        {
            IGeometryEntity entity = MeshEntity.Geometry;

            autodispose = true;
            return(DSGeometry.ToGeometry(entity, true));
        }
Esempio n. 4
0
        protected override DSGeometry GetGeometryCore(out bool autodispose)
        {
            ISurfaceEntity surf = FaceEntity.GetSurfaceGeometry();

            autodispose = true;
            return(DSGeometry.ToGeometry(surf));
        }
Esempio n. 5
0
        /// <summary>
        /// Extracts the geometries contained in the block reference
        /// </summary>
        /// <returns></returns>
        public DSGeometry[] ExtractGeometry()
        {
            List <DSGeometry> geometries = new List <DSGeometry>();

            IGeometryEntity[] entities = BlockEntity.ExtractGeometry();
            foreach (var entity in entities)
            {
                if (null != entity)
                {
                    geometries.Add(DSGeometry.ToGeometry(entity, true, this));
                }
            }
            return(geometries.ToArray());
        }
Esempio n. 6
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public DSGeometry SelectNearest(DSGeometry[] contextGeometries)
        {
            if (contextGeometries == null)
            {
                throw new System.ArgumentNullException("contextGeometries");
            }
            IGeometryEntity[] hostentities = contextGeometries.ConvertAll(DSGeometryExtension.ToEntity <DSGeometry, IGeometryEntity>);
            if (hostentities == null)
            {
                throw new System.ArgumentException(string.Format(Properties.Resources.InvalidInput, "contextGeometries", "SelectNearest"), "contextGeometries");
            }
            int             nearestIndex = GetIndexOfNearestGeometry(hostentities, PointEntity);
            IGeometryEntity nearestGeom  = hostentities[nearestIndex];

            return(DSGeometry.ToGeometry(nearestGeom, false)); //returning one of the existing geometry, so persist is no-op.
        }
        /// <summary>
        /// Creates geometry from given set of data
        /// </summary>
        /// <param name="geomType">Geometry type</param>
        /// <param name="data">Collection of input data to create geometry from</param>
        /// <returns>Collection of Geometry created using the given data</returns>
        public static DSGeometry[] CreateGeometryFromData(string geomType, Array data)
        {
            Func <GeometryDataSerializer, IDesignScriptEntity> reader = mSerializers.GetReader(geomType);

            if (reader == null)
            {
                return(null);
            }

            List <DSGeometry>      geometry = new List <DSGeometry>();
            GeometryDataSerializer stream   = new GeometryDataSerializer(data);

            while (!stream.DoneReading())
            {
                IGeometryEntity entity = reader(stream) as IGeometryEntity;
                geometry.Add(DSGeometry.ToGeometry(entity, true));
            }

            return(geometry.ToArray());
        }
Esempio n. 8
0
 private static GeomClass ToGeometry <GeomClass, GeomEntity>(this GeomEntity host, bool persist = false, DSGeometry context = null)
     where GeomClass : DSGeometry
     where GeomEntity : IGeometryEntity
 {
     return(DSGeometry.ToGeometry(host, persist, context) as GeomClass);
 }