Exemplo n.º 1
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.GetBoundingCube ()"/>
 /// </summary>
 /// <returns></returns>
 public override BoundingCube GetBoundingCube()
 {
     if (!extent.HasValue)
     {
         extent = Flattened.GetBoundingCube();
     }
     return(extent.Value);
 }
Exemplo n.º 2
0
        public static T Inflate <T>(this Flattened <T> flattened)
            where T : class
        {
            flattened.Require("flattened");

            var serializer   = new DataContractSerializer(typeof(T));
            var sourceStream = new MemoryStream(flattened.Data);

            sourceStream.TryToRewind();

            return(serializer.ReadObject(sourceStream) as T);
        }
        private void CreateRooms()
        {
            int roomCount       = UnityEngine.Random.Range(MIN_ROOM_NUM, MAX_ROOM_NUM);
            var blocksFlattened = new Flattened <Block>(blocks);
            var blocksOfRooms   = blocksFlattened.TakeRandomN(roomCount).ToList();

            rooms = blocksOfRooms
                    .Select(block => MakeRoomInBlock(block.rect))
                    .ToList();

            foreach (var(block, room) in blocksOfRooms.Zip(rooms, System.ValueTuple.Create))
            {
                block.room = room;
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.Position (GeoPoint, GeoVector, double)"/>
 /// </summary>
 /// <param name="fromHere"></param>
 /// <param name="direction"></param>
 /// <param name="precision"></param>
 /// <returns></returns>
 public override double Position(GeoPoint fromHere, GeoVector direction, double precision)
 {
     return(Flattened.Position(fromHere, direction, precision));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.HitTest (Projection.PickArea, bool)"/>
 /// </summary>
 /// <param name="area"></param>
 /// <param name="onlyInside"></param>
 /// <returns></returns>
 public override bool HitTest(Projection.PickArea area, bool onlyInside)
 {
     return(Flattened.HitTest(area, onlyInside));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.HitTest (Projection, BoundingRect, bool)"/>
 /// </summary>
 /// <param name="projection"></param>
 /// <param name="rect"></param>
 /// <param name="onlyInside"></param>
 /// <returns></returns>
 public override bool HitTest(Projection projection, BoundingRect rect, bool onlyInside)
 {
     return(Flattened.HitTest(projection, rect, onlyInside));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.HitTest (ref BoundingCube, double)"/>
 /// </summary>
 /// <param name="cube"></param>
 /// <param name="precision"></param>
 /// <returns></returns>
 public override bool HitTest(ref BoundingCube cube, double precision)
 {
     return(Flattened.HitTest(ref cube, precision));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.GetExtent (Projection, ExtentPrecision)"/>
 /// </summary>
 /// <param name="projection"></param>
 /// <param name="extentPrecision"></param>
 /// <returns></returns>
 public override BoundingRect GetExtent(Projection projection, ExtentPrecision extentPrecision)
 {
     return(Flattened.GetExtent(projection, extentPrecision));
 }
Exemplo n.º 9
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.FindSnapPoint (SnapPointFinder)"/>
 /// </summary>
 /// <param name="spf"></param>
 public override void FindSnapPoint(SnapPointFinder spf)
 {   // besser wäre es den SnapPointFinder mit einer ModOp auszustatten, die überschrieben werden kann
     Flattened.FindSnapPoint(spf);
 }
Exemplo n.º 10
0
 /// <summary>
 /// Overrides <see cref="CADability.GeoObject.IGeoObjectImpl.PrepareDisplayList (double)"/>
 /// </summary>
 /// <param name="precision"></param>
 public override void PrepareDisplayList(double precision)
 {
     Flattened.PrepareDisplayList(precision); // kann halt wieder verloren gehen, wird wohl bis zum Paint halten???
 }