public static GRing2PatchesCreator CreateRing2PatchesCreator(UltraUpdatableContainer updatableContainer, Dictionary <int, float> intensityPatternPixelsPerUnit)
        {
            TextureConcieverUTProxy conciever = new TextureConcieverUTProxy();

            updatableContainer.Add(conciever);

            Ring2RandomFieldFigureGenerator figureGenerator = new Ring2RandomFieldFigureGenerator(new TextureRenderer(),
                                                                                                  new Ring2RandomFieldFigureGeneratorConfiguration()
            {
                PixelsPerUnit = new Vector2(1, 1)
            });
            var utFigureGenerator = new RandomFieldFigureGeneratorUTProxy(figureGenerator);

            updatableContainer.Add(utFigureGenerator);

            var randomFieldFigureRepository = new Ring2RandomFieldFigureRepository(utFigureGenerator,
                                                                                   new Ring2RandomFieldFigureRepositoryConfiguration(2, new Vector2(20, 20)));

            Quadtree <Ring2Region> regionsTree = Ring2TestUtils.CreateRegionsTreeWithPath3(randomFieldFigureRepository);

            return(new GRing2PatchesCreator(
                       new MonoliticRing2RegionsDatabase(regionsTree),
                       new GRing2RegionsToPatchTemplateConventer(),
                       new Ring2PatchTemplateCombiner(),
                       new Ring2PatchCreator(),
                       new Ring2IntensityPatternProvider(conciever),
                       new GRing2Deviser(),
                       new Ring2PatchesOverseerConfiguration()
            {
                IntensityPatternPixelsPerUnit = intensityPatternPixelsPerUnit
            }
                       ));
        }
예제 #2
0
        private GRing2PatchesCreator CreateRing2PatchesCreator()
        {
            var ring2ShaderRepository = Ring2PlateShaderRepository.Create();

            TextureConcieverUTProxy conciever = new TextureConcieverUTProxy();

            _updatableContainer.AddUpdatableElement(conciever);

            _ring2PatchesPainterUtProxy = new Ring2PatchesPainterUTProxy(
                new Ring2PatchesPainter(
                    new Ring2MultishaderMaterialRepository(ring2ShaderRepository, Ring2ShaderNames.ShaderNames)));
            _updatableContainer.AddUpdatableElement(_ring2PatchesPainterUtProxy);

            Ring2RandomFieldFigureGenerator figureGenerator = new Ring2RandomFieldFigureGenerator(new TextureRenderer(),
                                                                                                  new Ring2RandomFieldFigureGeneratorConfiguration()
            {
                PixelsPerUnit = new Vector2(2, 2)
            });
            var utFigureGenerator = new RandomFieldFigureGeneratorUTProxy(figureGenerator);

            _updatableContainer.AddUpdatableElement(utFigureGenerator);

            var randomFieldFigureRepository = new Ring2RandomFieldFigureRepository(utFigureGenerator,
                                                                                   new Ring2RandomFieldFigureRepositoryConfiguration(2, new Vector2(20, 20)));

            Quadtree <Ring2Region> regionsTree = Ring2TestUtils.CreateRegionsTreeWithPath3(randomFieldFigureRepository);

            return(new GRing2PatchesCreator(
                       new MonoliticRing2RegionsDatabase(regionsTree),
                       new GRing2RegionsToPatchTemplateConventer(),
                       new Ring2PatchTemplateCombiner(),
                       new Ring2PatchCreator(),
                       new Ring2IntensityPatternProvider(conciever),
                       new GRing2Deviser(),
                       new Ring2PatchesOverseerConfiguration()
            {
                IntensityPatternPixelsPerUnit = new Dictionary <int, float>()
                {
                    { 1, 1 }
                }
                //PatchSize = new Vector2(90, 90)
            }
                       ));
        }