public AlphaSplatTerrainConfig(string title, AutoSplatRules autoSplatRules, MosaicDescription srcdesc)
        {
            InitTextureNames();
            // Override texture names from rules, if applicable
            for (int i = 0; i < autoSplatRules.layerTextureNames.Length; i++)
            {
                if (!string.IsNullOrEmpty(autoSplatRules.layerTextureNames[i]))
                {
                    layerTextureNames[i] = autoSplatRules.layerTextureNames[i];
                }
            }

            // Create alpha map texture mosaics
            for (int i = 0; i < NUM_ALPHA_MAPS; i++)
            {
                string alphaMapMosaicName = title + "AlphaMap" + i;
                MosaicDescription desc = new MosaicDescription(alphaMapMosaicName, srcdesc);

                alphaMapMosaicNames[i] = alphaMapMosaicName;
                alphaMapMosaics[i] = new TextureMosaic(alphaMapMosaicName, 0, desc);

                alphaMapMosaics[i].MosaicModificationStateChanged += Mosaic_OnMosaicModificationStateChanged;
                alphaMapMosaics[i].MosaicChanged += Mosaic_OnMosaicChanged;
            }

            AutoSplatRules = autoSplatRules;
            InitializeAutoSplatRules(srcdesc);
        }
        public AlphaSplatTerrainConfig(string title, AutoSplatRules autoSplatRules, MosaicDescription srcdesc)
        {
            InitTextureNames();
            // Override texture names from rules, if applicable
            for (int i = 0; i < autoSplatRules.layerTextureNames.Length; i++)
            {
                if (!string.IsNullOrEmpty(autoSplatRules.layerTextureNames[i]))
                {
                    layerTextureNames[i] = autoSplatRules.layerTextureNames[i];
                }
            }

            // Create alpha map texture mosaics
            for (int i = 0; i < NUM_ALPHA_MAPS; i++)
            {
                string            alphaMapMosaicName = title + "AlphaMap" + i;
                MosaicDescription desc = new MosaicDescription(alphaMapMosaicName, srcdesc);

                alphaMapMosaicNames[i] = alphaMapMosaicName;
                alphaMapMosaics[i]     = new TextureMosaic(alphaMapMosaicName, 0, desc);

                alphaMapMosaics[i].MosaicModificationStateChanged += Mosaic_OnMosaicModificationStateChanged;
                alphaMapMosaics[i].MosaicChanged += Mosaic_OnMosaicChanged;
            }

            AutoSplatRules = autoSplatRules;
            InitializeAutoSplatRules(srcdesc);
        }
 public MosaicDescription(string newName, MosaicDescription src)
     : this(newName, src.MosaicType, src.DefaultTerrainSaveDirectory, src.FileExt, 
          src.SizeXPixels, src.SizeZPixels, src.SizeXTiles, src.SizeZTiles, src.TileSizeSamples,
          src.MetersPerSample, src.WrapFlag, src.UnifiedScale, 
          src.GlobalMinHeightMeters, src.GlobalMaxHeightMeters,
          0, false)
 {
 }
Beispiel #4
0
 public MosaicDescription(string newName, MosaicDescription src) :
     this(newName, src.MosaicType, src.DefaultTerrainSaveDirectory, src.FileExt,
          src.SizeXPixels, src.SizeZPixels, src.SizeXTiles, src.SizeZTiles, src.TileSizeSamples,
          src.MetersPerSample, src.WrapFlag, src.UnifiedScale,
          src.GlobalMinHeightMeters, src.GlobalMaxHeightMeters,
          0, false)
 {
 }
        protected Mosaic(string baseName, int preloadRadius, MosaicDescription desc)
        {
            this.desc = desc;
            //todo: save description into MMF file using baseName

            BaseName           = baseName;
            this.preloadRadius = preloadRadius;

            Init();
        }
        protected Mosaic(string baseName, int preloadRadius, MosaicDescription desc)
        {
            this.desc = desc;
            //todo: save description into MMF file using baseName

            BaseName = baseName;
            this.preloadRadius = preloadRadius;

            Init();
        }
        public HeightfieldTerrainGenerator(string heightfieldName, int preloadRadius, float outsideHeight, MosaicDescription desc)
        {
            this.heightfieldName = heightfieldName;
            this.preloadRadius = preloadRadius;
            this.outsideHeight = outsideHeight;

            Mosaic = new HeightfieldMosaic(heightfieldName, preloadRadius, outsideHeight, desc);
            Mosaic.MosaicModificationStateChanged += Mosaic_OnMosaicModificationStateChanged;
            Mosaic.MosaicChanged += Mosaic_OnMosaicChanged;
        }
        protected Mosaic(string baseName, int preloadRadius)
        {
            Stream s = ResourceManager.FindCommonResourceData(string.Format("{0}.mmf", baseName));

            desc = new MosaicDescription(s);

            BaseName           = baseName;
            this.preloadRadius = preloadRadius;

            Init();
        }
        protected MosaicTile(Mosaic parent, int tileSizeSamples, float metersPerSample, int tileX, int tileZ, Vector3 worldLoc)
        {
            this.parent          = parent;
            this.tileSizeSamples = tileSizeSamples;
            this.metersPerSample = metersPerSample;
            this.tileX           = tileX;
            this.tileZ           = tileZ;
            this.worldLoc        = worldLoc;

            MosaicDescription desc = parent.MosaicDesc;

            available = desc.TileAvailable(tileX, tileZ);
        }
        private void InitializeAutoSplatRules(MosaicDescription desc)
        {
            if (AutoSplatRules != null)
            {
                return;
            }

            long minHeightMM;
            long maxHeightMM;

            if (desc == null)
            {
                // Set arbitrary min/max heights
                minHeightMM = -10000 * (long)TerrainManager.oneMeter;
                maxHeightMM = 10000 * (long)TerrainManager.oneMeter;
            }
            else
            {
                minHeightMM = (long)(desc.GlobalMinHeightMeters * TerrainManager.oneMeter);
                maxHeightMM = (long)(desc.GlobalMaxHeightMeters * TerrainManager.oneMeter);
            }
            AutoSplatRules = new AutoSplatRules(minHeightMM, maxHeightMM, new AutoSplatConfig());
        }
        private void InitializeAutoSplatRules(MosaicDescription desc)
        {
            if (AutoSplatRules != null)
            {
                return;
            }

            long minHeightMM;
            long maxHeightMM;

            if (desc == null)
            {
                // Set arbitrary min/max heights
                minHeightMM = -10000 * (long) TerrainManager.oneMeter;
                maxHeightMM = 10000*(long) TerrainManager.oneMeter;
            }
            else
            {
                minHeightMM = (long) (desc.GlobalMinHeightMeters * TerrainManager.oneMeter);
                maxHeightMM = (long) (desc.GlobalMaxHeightMeters * TerrainManager.oneMeter);
            }
            AutoSplatRules = new AutoSplatRules(minHeightMM, maxHeightMM, new AutoSplatConfig());
        }
Beispiel #12
0
 public HeightfieldMosaic(string baseName, int preloadRadius, float defaultHeightMM, MosaicDescription desc) :
     base(baseName, preloadRadius, 0, desc)
 {
     Init(defaultHeightMM);
 }
 public HeightfieldMosaic(string baseName, int preloadRadius, float defaultHeightMM, MosaicDescription desc)
     : base(baseName, preloadRadius, 0, desc)
 {
     Init(defaultHeightMM);
 }
 public AlphaSplatTerrainConfig(XmlReader r, MosaicDescription heightfieldMosaic)
 {
     InitTextureNames();
     FromXml(r);
     InitializeAutoSplatRules(heightfieldMosaic);
 }
        protected Mosaic(string baseName, int preloadRadius)
        {
            Stream s = ResourceManager.FindCommonResourceData(string.Format("{0}.mmf", baseName));
            desc = new MosaicDescription(s);

            BaseName = baseName;
            this.preloadRadius = preloadRadius;

            Init();
        }
Beispiel #16
0
 public TextureMosaic(string baseName, int preloadRadius, MosaicDescription desc)
     : base(baseName, preloadRadius, desc)
 {
 }
 public AlphaSplatTerrainConfig( XmlReader r, MosaicDescription heightfieldMosaic )
 {
     InitTextureNames();
     FromXml( r );
     InitializeAutoSplatRules( heightfieldMosaic );
 }
 public DataMosaic(string baseName, int preloadRadius, int defaultValue, MosaicDescription desc)
     : base(baseName, preloadRadius, desc)
 {
     this.defaultValue = defaultValue;
 }
 public DataMosaic(string baseName, int preloadRadius, int defaultValue, MosaicDescription desc)
     : base(baseName, preloadRadius, desc)
 {
     this.defaultValue = defaultValue;
 }