Beispiel #1
0
 static void CreateData()
 {
   using (SessionNoServer session = new SessionNoServer(s_systemDir))
   {
     bool dirExist = Directory.Exists(session.SystemDirectory);
     if (dirExist)
     {
       return;
       Directory.Delete(session.SystemDirectory, true); // remove systemDir from prior runs and all its databases.
     }
     Directory.CreateDirectory(session.SystemDirectory);
     File.Copy(s_licenseDbFile, Path.Combine(session.SystemDirectory, "4.odb"));
     SessionBase.DefaultCompressPages = PageInfo.compressionKind.LZ4;
     session.BeginUpdate();
     CompareGeoObj comparer = new CompareGeoObj();
     var btreeSet = new BTreeSet<GeoObj>(comparer, session, 1000);
     for (int i = 0; i < s_numberOfSamples; i++)
     {
       var g = new GeoObj();
       btreeSet.Add(g);
     }
     session.Persist(btreeSet);
     session.Commit();
     Console.Out.WriteLine($@"Done creating {s_numberOfSamples} GeoHashSample GeoObj ");
   }
 }
Beispiel #2
0
        public void Generate_Sier_Sponge(int n, GeoObj square)
        {
            if (n == 0)
            {
                squares.Add(square);
                return;
            }
            var next     = n - 1;
            var nextSize = square.size / 3;

            for (int z = -1; z < 2; z++)
            {
                for (int y = -1; y < 2; y++)
                {
                    for (int x = -1; x < 2; x++)
                    {
                        if (((x == 0) && (y == 0) && (z == 0)) ||
                            ((x == 0) && (y == 0)) ||
                            ((y == 0) && (z == 0)) ||
                            ((x == 0) && (z == 0))
                            )
                        {
                            continue;
                        }
                        Generate_Sier_Sponge(next,
                                             new GeoObj(square.center + new Vector3(x * nextSize, y * nextSize, z * nextSize),
                                                        nextSize));
                    }
                }
            }
        }
Beispiel #3
0
        public Vector3D GetDirection(ref ShadeRec sr)
        {
            SamplePoint  = GeoObj.Sample();
            SampleNormal = GeoObj.GetNormal(SamplePoint);
            Wi           = SamplePoint - sr.HitPoint;

            return(Wi);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            // OBJ Testing
            var objMetadataOutput = Path.Combine(Path.GetDirectoryName(objPath), "objSample.json");

            if (File.Exists(objMetadataOutput))
            {
                File.Delete(objMetadataOutput);
            }
            var objBinaryOutput = Path.Combine(Path.GetDirectoryName(objPath), "objSample.dat");

            if (File.Exists(objBinaryOutput))
            {
                File.Delete(objBinaryOutput);
            }

            var objBitmapOutput = Path.Combine(Path.GetDirectoryName(objPath), "objSample.bmp");

            if (File.Exists(objBitmapOutput))
            {
                File.Delete(objBitmapOutput);
            }

            var objConverter = new GeoObj();

            objConverter.ConvertToHeightMap(objPath, objBinaryOutput, objMetadataOutput, objBitmapOutput);

            // Save metadata
            var outputManifestPath = Path.Combine(Path.GetDirectoryName(tiffPath), "tiffSample4.json");

            if (File.Exists(outputManifestPath))
            {
                File.Delete(outputManifestPath);
            }

            // Save image
            var outputPath = Path.Combine(Path.GetDirectoryName(tiffPath), "tiffSample4.dat");

            if (File.Exists(outputPath))
            {
                File.Delete(outputPath);
            }

            var bitmapPath = Path.Combine(Path.GetDirectoryName(tiffPath), "tiffSample4.bmp");

            if (File.Exists(bitmapPath))
            {
                File.Delete(bitmapPath);
            }

            using (GeoTiff tiffConverter = new GeoTiff())
            {
                tiffConverter.ConvertToHeightMap(tiffPath, outputPath, outputManifestPath, bitmapPath);
            }
        }
Beispiel #5
0
        public bool CheckInShadow(ref Ray ShadowRay, ref ShadeRec SR)
        {
            float t = 0.0f;

            foreach (GeometryObject GeoObj in SR.World.Objects)
            {
                if (GeoObj.ShadowHit(ref ShadowRay, ref t))
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #6
0
        public GameObject CreateCube(GeoObj s)
        {
            System.Type[] types  = { typeof(MeshFilter), typeof(MeshRenderer) };
            GameObject    go     = new GameObject("cube", types);
            var           filter = go.GetComponent <MeshFilter>();

            filter.mesh = cube;
            var render = go.GetComponent <MeshRenderer>();

            render.material            = defaultMaterial;
            go.transform.parent        = transform;
            go.transform.localPosition = s.center;
            go.transform.localScale    = new Vector3(s.size, s.size, s.size);
            return(go);
        }
        public static GeoAddress ConvertGeoObjectToAddress(GeoObj geoResult)
        {
            var address = new GeoAddress
            {
                FullAddress = geoResult.Formatted_address,
                Latitude    = geoResult.Geometry.Location.Lat,
                Longitude   = geoResult.Geometry.Location.Lng
            };

            geoResult.Address_components
            .FirstOrDefault(x => x.AddressComponentTypes.Any(t => t == AddressComponentType.Street_number))
            .Maybe(x => address.StreetNumber = x.Long_name);

            var component = (from c in geoResult.Address_components
                             where
                             (c.AddressComponentTypes.Any(
                                  x => x == AddressComponentType.Route || x == AddressComponentType.Street_address) &&
                              !string.IsNullOrEmpty(c.Long_name))
                             select c).FirstOrDefault();

            component.Maybe(c => address.Street = c.Long_name);

            geoResult.Address_components
            .FirstOrDefault(x => x.AddressComponentTypes.Any(t => t == AddressComponentType.Postal_code))
            .Maybe(x => address.ZipCode = x.Long_name);

            geoResult.Address_components
            .FirstOrDefault(x => x.AddressComponentTypes.Any(t => t == AddressComponentType.Locality))
            .Maybe(x => address.City = x.Long_name);

            if (address.City == null)
            {
                // some times, the city is not set by Locality, for example in Brooklyn and Queens
                geoResult.Address_components
                .FirstOrDefault(x => x.AddressComponentTypes.Any(t => t == AddressComponentType.Sublocality))
                .Maybe(x => address.City = x.Long_name);
            }

            geoResult.Address_components
            .FirstOrDefault(x => x.AddressComponentTypes.Any(t => t == AddressComponentType.Administrative_area_level_1))
            .Maybe(x => address.State = x.Short_name);

            address.LocationType = geoResult.Geometry.Location_type;

            return(address);
        }
Beispiel #8
0
        public void Generate_Sier_Carpet(int n, GeoObj obj)
        {
            if (n == 0)
            {
                objs.Add(obj);
                return;
            }
            var next     = n - 1;
            var nextSize = obj.size / 3;

            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(-nextSize, -nextSize), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(0, -nextSize), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(nextSize, -nextSize), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(-nextSize, 0), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(nextSize, 0), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(-nextSize, nextSize), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(0, nextSize), nextSize));
            Generate_Sier_Carpet(next, new GeoObj(obj.center - new Vector3(nextSize, nextSize), nextSize));
        }
 public static bool ComplicatedFunction(GeoObj a, GeoObj b)
 {
     return(false);
 }
Beispiel #10
0
 public float PDF(ref ShadeRec sr)
 {
     return(GeoObj.PDF(ref sr));
 }