public void ProduceOfferReturnsCorrectResult(
            string locationName,
            string currentTime)
        {
            // Arrange
            var moqRepo = new MockRepository(MockBehavior.Default);

            var sut = new DateAndLocationMortgageApplicationProcessor
            {
                LocationProvider = moqRepo.Create<ILocationProvider>().Object,
                TimeProvider = moqRepo.Create<ITimeProvider>().Object
            };

            Mock.Get(sut.LocationProvider)
                .Setup(lp => lp.GetCurrentLocationName())
                .Returns(locationName);
            Mock.Get(sut.TimeProvider)
                .Setup(tp => tp.GetCurrentTime())
                .Returns(DateTimeOffset.Parse(currentTime));

            // Act
            var dummyApplication = new MortgageApplication();
            var actual = sut.ProduceOffer(dummyApplication);

            // Assert
            var expected = new IRendering[]
            {
                new TextRendering(
                    locationName +
                    ", " +
                    DateTimeOffset.Parse(currentTime).ToString("D")),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(
            string street,
            string postalCode,
            string country,
            int price,
            int size)
        {
            var sut = new CurrentPropertyMortgageApplicationProcessor();
            var application = new MortgageApplication
            {
                CurrentProperty = new Property
                {
                    Address = new Address
                    {
                        Street = street,
                        PostalCode = postalCode,
                        Country = country
                    },
                    Price = price,
                    Size = size
                }
            };

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new TextRendering("Current property will be sold to finance new property."),
                new LineBreakRendering(),
            }
            .Concat(new PropertyProcessor { PriceText = "Estimated sales price" }.ProduceRenderings(application.CurrentProperty));
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(
            LoanType loanType,
            int term,
            PaymentFrequency frequency)
        {
            var sut = new DesiredLoanMortgageApplicationProcessor();
            var application = new MortgageApplication
            {
                DesiredLoanType = loanType,
                DesiredTerm = term,
                DesiredFrequency = frequency
            };

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new Heading2Rendering("Desired loan"),
                new BoldRendering("Loan type:"),
                new TextRendering(" " + loanType),
                new LineBreakRendering(),
                new BoldRendering("Term:"),
                new TextRendering(" " + term + " years."),
                new LineBreakRendering(),
                new BoldRendering("Frequency:"),
                new TextRendering(" " + frequency),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(
            int initialRate,
            string term)
        {
            var application = new MortgageApplication();
            var offer = new AdjustableRateAnnuityOffer
            {
                InitialRate = initialRate,
                Term = DateTimeOffset.Parse(term)
            };
            var sut = new AdjustableRateAnnuityOfferMortgageApplicationProcessor
            {
                OfferService = new Mock<IOfferService>().Object
            };
            Mock.Get(sut.OfferService)
                .Setup(o => o.GetAdjustableRateAnnuityOffer(application))
                .Returns(offer);

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new Heading2Rendering("Adjustable rate offer"),
                new BoldRendering("Initial interest rate:"),
                new TextRendering(" " + offer.InitialRate / 10m + " %"),
                new LineBreakRendering(),
                new BoldRendering("Term:"),
                new TextRendering(" " + offer.Term.ToString("D")),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
Exemplo n.º 5
0
        public dPovrayCommand(TestClient testClient)
        {
            Name = "dpovray";
            Description = "Exports sim contents to a povray file. " + usage;
            Category = CommandCategory.Objects;

            List<string> renderers = RenderingLoader.ListRenderers(".");
            if (renderers.Count > 0)
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
            else
                Logger.Log(Name + ": No prim mesher loaded, prim rendering will be disabled", Helpers.LogLevel.Info);
        }
        public void ProduceOfferReturnsCorrectResult()
        {
            var sut = new OfferIntroductionMortgageApplicationProcessor();

            var dummyApplication = new MortgageApplication();
            var actual = sut.ProduceOffer(dummyApplication);

            var expected = new IRendering[]
            {
                new Heading1Rendering("Loan offer"),
                new TextRendering("It gives us great pleasure to extend to you the following loan offer, lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(int selfPayment)
        {
            var sut = new SelfPaymentMortgageApplicationProcessor();
            var application = new MortgageApplication
            {
                SelfPayment = selfPayment
            };

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new BoldRendering("Self payment:"),
                new TextRendering(" " + application.SelfPayment),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
Exemplo n.º 8
0
        public void ProduceRenderingsReturnsCorrectResult(
            string street,
            string postalCode,
            string country,
            int price,
            int size,
            string priceText)
        {
            var sut = new PropertyProcessor
            {
                PriceText = priceText
            };
            var property = new Property
            {
                Address = new Address
                {
                    Street = street,
                    PostalCode = postalCode,
                    Country = country
                },
                Price = price,
                Size = size
            };

            IEnumerable<IRendering> actual = sut.ProduceRenderings(property);

            var expected = new IRendering[]
            {
                new BoldRendering("Address:"),
                new TextRendering(
                    " " +
                    street + ", " +
                    postalCode + ", " +
                    country + ". "),
                new LineBreakRendering(),
                new BoldRendering(priceText + ":"),
                new TextRendering(" " + price),
                new LineBreakRendering(),
                new BoldRendering("Size:"),
                new TextRendering(" " + size + " square meters"),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
Exemplo n.º 9
0
        public void ProduceRenderingsReturnsCorrectResult(
            string name,
            string street,
            string postalCode,
            string country,
            int yearlyIncome,
            string taxAuthority)
        {
            var sut = new ApplicantProcessor();
            var applicant = new Applicant
            {
                Contact = new Contact
                {
                    Name = name,
                    Address = new Address
                    {
                        Street = street,
                        PostalCode = postalCode,
                        Country = country
                    }
                },
                YearlyIncome = yearlyIncome,
                TaxationAuthority = taxAuthority
            };

            IEnumerable<IRendering> actual = sut.ProduceRenderings(applicant);

            var expected = new IRendering[]
            {
                new TextRendering(
                    " " +
                    name + ", " +
                    street + ", " +
                    postalCode + ", " +
                    country + ". "),
                new BoldRendering("Yearly income:"),
                new TextRendering(" " + yearlyIncome + ". "),
                new BoldRendering("Tax authority:"),
                new TextRendering(" " + taxAuthority + "."),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(
            string name,
            string street,
            string postalCode,
            string country)
        {
            var sut = new GreetingMortgageApplicationProcessor();
            var application = new MortgageApplication
            {
                PrimaryApplicant = new Applicant
                {
                    Contact = new Contact
                    {
                        Name = name,
                        Address = new Address
                        {
                            Street = street,
                            PostalCode = postalCode,
                            Country = country
                        }
                    }
                }
            };

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new TextRendering(
                    "Dear " +
                    name + ", " +
                    street + ", " +
                    postalCode + ", " +
                    country),
                new LineBreakRendering(),
                new TextRendering("It gives us great pleasure to lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."),
                new LineBreakRendering()
            };
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResult(
            string name,
            string street,
            string postalCode,
            string country,
            int yearlyIncome,
            string taxAuthority)
        {
            var sut = new PrimaryApplicantMortgageApplicationProcessor();
            var application = new MortgageApplication
            {
                PrimaryApplicant = new Applicant
                {
                    Contact = new Contact
                    {
                        Name = name,
                        Address = new Address
                        {
                            Street = street,
                            PostalCode = postalCode,
                            Country = country
                        }
                    },
                    YearlyIncome = yearlyIncome,
                    TaxationAuthority = taxAuthority
                }
            };

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new BoldRendering("Primary applicant:")
            }
            .Concat(new ApplicantProcessor().ProduceRenderings(
                application.PrimaryApplicant));
            Assert.Equal(expected, actual);
        }
        public void ProduceOfferReturnsCorrectResultWithOneAdditionalApplicant(
            string name,
            string street,
            string postalCode,
            string country,
            int yearlyIncome,
            string taxAuthority)
        {
            var applicant = new Applicant
            {
                Contact = new Contact
                {
                    Name = name,
                    Address = new Address
                    {
                        Street = street,
                        PostalCode = postalCode,
                        Country = country
                    }
                },
                YearlyIncome = yearlyIncome,
                TaxationAuthority = taxAuthority
            };
            var application = new MortgageApplication();
            application.AdditionalApplicants.Add(applicant);
            var sut = new AdditionalApplicantsMortgageApplicationProcessor();

            var actual = sut.ProduceOffer(application);

            var expected = new IRendering[]
            {
                new BoldRendering("Additional applicants:"),
                new LineBreakRendering(),
                new BulletRendering("")
            }
            .Concat(new ApplicantProcessor().ProduceRenderings(applicant));
            Assert.Equal(expected, actual);
        }
Exemplo n.º 13
0
        public void AddRegion(Scene scene)
        {
            if (!m_Enabled)
                return;

            m_scene = scene;

            List<string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                m_log.Debug("[MAPTILE]: Loaded prim mesher " + m_primMesher.ToString());
            }
            else
            {
                m_log.Debug("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            m_scene.RegisterModuleInterface<IMapImageGenerator>(this);
        }
Exemplo n.º 14
0
        public Bitmap TerrainToBitmap(System.Drawing.Bitmap mapbmp)
        {
            mapbmp = new Bitmap (m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);
            List<string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                m_log.Info("[MAPTILE]: Loaded prim mesher " + m_primMesher.ToString());
            }
            else
            {
                m_log.Info("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            bool drawPrimVolume = true;
            bool textureTerrain = true;

            try
            {
                IConfig startupConfig = m_config.Configs["Startup"];
                drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume);
                textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain);
            }
            catch
            {
                m_log.Warn("[MAPTILE]: Failed to load StartupConfig");
            }

            m_colors.Clear();

            Vector3 camPos = new Vector3 (m_scene.RegionInfo.RegionSizeX / 2, m_scene.RegionInfo.RegionSizeY / 2, 221.7025033688163f);
            Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f, m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY, m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);

            int width = viewport.Width;
            int height = viewport.Height;

            if (m_useAntiAliasing)
            {
                width *= 2;
                height *= 2;
            }

            WarpRenderer renderer = new WarpRenderer();
            renderer.CreateScene(width, height);
            renderer.Scene.autoCalcNormals = false;

            #region Camera

            warp_Vector pos = ConvertVector(viewport.Position);
            pos.z -= 0.001f; // Works around an issue with the Warp3D camera
            warp_Vector lookat = warp_Vector.add(ConvertVector(viewport.Position), ConvertVector(viewport.LookDirection));

            renderer.Scene.defaultCamera.setPos(pos);
            renderer.Scene.defaultCamera.lookAt(lookat);

            if (viewport.Orthographic)
            {
                renderer.Scene.defaultCamera.isOrthographic = true;
                renderer.Scene.defaultCamera.orthoViewWidth = viewport.OrthoWindowWidth;
                renderer.Scene.defaultCamera.orthoViewHeight = viewport.OrthoWindowHeight;
            }
            else
            {
                float fov = viewport.FieldOfView;
                fov *= 1.75f; // FIXME: ???
                renderer.Scene.defaultCamera.setFov(fov);
            }

            #endregion Camera

            renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(0.2f, 0.2f, 1f), 0xffffff, 320, 80));
            renderer.Scene.addLight("Light2", new warp_Light(new warp_Vector(-1f, -1f, 1f), 0xffffff, 100, 40));

            CreateWater(renderer);
            CreateTerrain(renderer, textureTerrain);
            if (drawPrimVolume && m_primMesher != null)
                m_scene.ForEachSOG(delegate (SceneObjectGroup group)
                {
                    group.ForEachPart(delegate(SceneObjectPart part) { CreatePrim(renderer, part); });
                });

            renderer.Render();
            Bitmap bitmap = renderer.Scene.getImage();

            renderer.Scene.removeAllObjects();
            renderer = null;
            viewport = null;
            m_primMesher = null;
            m_colors.Clear();

            //Force GC to try to clean this mess up
            GC.GetTotalMemory(true);

            if (m_useAntiAliasing)
                bitmap = ImageUtils.ResizeImage(bitmap, width / 2, height / 2);

            return bitmap;
        }
Exemplo n.º 15
0
        public void StartTrace(TraceSession parent)
        {
            mParent = parent;

            // For initial startup info
            mParent.Client.Network.OnSimConnected +=
            new NetworkManager.SimConnectedCallback(this.SimConnectedHandler);

            string renderer_name = "OpenMetaverse.Rendering.Meshmerizer.dll";
            string renderer_path = System.IO.Path.Combine(parent.Config.BinaryPath, renderer_name);
            mRenderer = OpenMetaverse.Rendering.RenderingLoader.LoadRenderer(renderer_path);

            mObjectsByLocalID = new Dictionary<uint, Primitive>();
            mObjectsByID = new Dictionary<UUID, Primitive>();
            mObjectParents = new Dictionary<UUID, uint>();

            mParent.Client.Objects.OnObjectDataBlockUpdate +=
            new ObjectManager.ObjectDataBlockUpdateCallback(this.ObjectDataBlockUpdateHandler);

            mParent.Client.Objects.OnNewAvatar +=
            new ObjectManager.NewAvatarCallback(this.NewAvatarHandler);

            mParent.Client.Objects.OnNewPrim +=
            new ObjectManager.NewPrimCallback(this.NewPrimHandler);

            mParent.Client.Objects.OnNewAttachment +=
            new ObjectManager.NewAttachmentCallback(this.NewAttachmentHandler);

            // Note: We only do OnObjectTerseUpdate because OnObjectUpdate
            // is redundant and less informative.
            mParent.Client.Objects.OnObjectTerseUpdate +=
            new ObjectManager.ObjectUpdatedTerseCallback(this.ObjectUpdatedTerseHandler);

            mParent.Client.Objects.OnObjectKilled +=
            new ObjectManager.KillObjectCallback(this.ObjectKilledHandler);

            mParent.Client.Objects.OnObjectProperties +=
            new ObjectManager.ObjectPropertiesCallback(this.ObjectPropertiesHandler);

            mParent.Client.Self.Movement.Camera.Far = 512.0f;

            // We output JSON, one giant list of events
            System.IO.TextWriter streamWriter =
            new System.IO.StreamWriter(mTraceFilename);
            mJSON = new JSON(streamWriter);
            mJSON.BeginArray();

            mStartTime = DateTime.Now;
        }
Exemplo n.º 16
0
        public Bitmap TerrainToBitmap (System.Drawing.Bitmap mapbmp)
        {
            List<string> renderers = RenderingLoader.ListRenderers (Util.ExecutingDirectory ());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer (renderers[0]);
                m_log.Debug ("[MAPTILE]: Loaded prim mesher " + m_primMesher.ToString ());
            }
            else
            {
                m_log.Info ("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            bool drawPrimVolume = true;
            bool textureTerrain = true;

            try
            {
                IConfig startupConfig = m_config.Configs["Startup"];
                drawPrimVolume = startupConfig.GetBoolean ("DrawPrimOnMapTile", drawPrimVolume);
                textureTerrain = startupConfig.GetBoolean ("TextureOnMapTile", textureTerrain);
            }
            catch
            {
                m_log.Warn ("[MAPTILE]: Failed to load StartupConfig");
            }

            m_texturePrims = m_config.Configs["MapModule"].GetBoolean("WarpTexturePrims", false);
            m_colors.Clear ();

            int scaledRemovalFactor = m_scene.RegionInfo.RegionSizeX / (Constants.RegionSize / 2);
            Vector3 camPos = new Vector3 (m_scene.RegionInfo.RegionSizeX / 2 - 0.5f, m_scene.RegionInfo.RegionSizeY / 2 - 0.5f, 221.7025033688163f);
            Viewport viewport = new Viewport (camPos, -Vector3.UnitZ, 1024f, 0.1f, m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor, m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor, m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor, m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor);

            int width = viewport.Width;
            int height = viewport.Height;

            if (m_useAntiAliasing)
            {
                width *= 2;
                height *= 2;
            }

            WarpRenderer renderer = new WarpRenderer ();
            warp_Object terrainObj = null;
            renderer.CreateScene (width, height);
            renderer.Scene.autoCalcNormals = false;

            #region Camera

            warp_Vector pos = ConvertVector (viewport.Position);
            pos.z -= 0.001f; // Works around an issue with the Warp3D camera
            warp_Vector lookat = warp_Vector.add (ConvertVector (viewport.Position), ConvertVector (viewport.LookDirection));

            renderer.Scene.defaultCamera.setPos (pos);
            renderer.Scene.defaultCamera.lookAt (lookat);

            if (viewport.Orthographic)
            {
                renderer.Scene.defaultCamera.isOrthographic = true;
                renderer.Scene.defaultCamera.orthoViewWidth = viewport.OrthoWindowWidth;
                renderer.Scene.defaultCamera.orthoViewHeight = viewport.OrthoWindowHeight;
            }
            else
            {
                viewport.Orthographic = false;
                float fov = 256;
                //fov *= 1.75f; // FIXME: ???
                renderer.Scene.defaultCamera.setFov (fov);
            }

            #endregion Camera

            renderer.Scene.addLight ("Light1", new warp_Light (new warp_Vector (1.0f, 0.5f, 1f), 0xffffff, 0, 320, 40));
            renderer.Scene.addLight ("Light2", new warp_Light (new warp_Vector (-1f, -1f, 1f), 0xffffff, 0, 100, 40));

            try
            {
                CreateWater (renderer);
                terrainObj = CreateTerrain (renderer, textureTerrain);
                if (drawPrimVolume && m_primMesher != null)
                    foreach (ISceneEntity ent in m_scene.Entities.GetEntities ())
                        foreach (ISceneChildEntity part in ent.ChildrenEntities ())
                            CreatePrim (renderer, part);
            }
            catch(Exception ex)
            {
                m_log.Warn ("[Warp3D]: Exception in the map generation, " + ex.ToString ());
            }

            renderer.Render ();
            Bitmap bitmap = renderer.Scene.getImage ();
            bitmap = ImageUtils.ResizeImage (bitmap, Constants.RegionSize, Constants.RegionSize);

            renderer.Scene.removeAllObjects ();
            renderer = null;
            viewport = null;
            m_primMesher = null;
            terrainObj.fastvertex = null;
            terrainObj.fasttriangle = null;
            terrainObj = null;
            m_colors.Clear ();

            //Force GC to try to clean this mess up
            GC.GetTotalMemory (true);

            return bitmap;
        }
Exemplo n.º 17
0
        public Bitmap TerrainToBitmap(Bitmap mapbmp)
        {
            List <string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());

            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                MainConsole.Instance.Debug("[MAPTILE]: Loaded prim mesher " + m_primMesher);
            }
            else
            {
                MainConsole.Instance.Info("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            bool drawPrimVolume = true;
            bool textureTerrain = true;

            try
            {
                IConfig startupConfig = m_config.Configs["Startup"];
                drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume);
                textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain);
            }
            catch
            {
                MainConsole.Instance.Warn("[MAPTILE]: Failed to load StartupConfig");
            }

            m_texturePrims = m_config.Configs["MapModule"].GetBoolean("WarpTexturePrims", false);
            m_colors.Clear();

            int     scaledRemovalFactor = m_scene.RegionInfo.RegionSizeX / (Constants.RegionSize / 2);
            Vector3 camPos = new Vector3(m_scene.RegionInfo.RegionSizeX / 2 - 0.5f,
                                         m_scene.RegionInfo.RegionSizeY / 2 - 0.5f, 221.7025033688163f);
            Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f,
                                             m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor);

            int width  = viewport.Width;
            int height = viewport.Height;

            if (m_useAntiAliasing)
            {
                width  *= 2;
                height *= 2;
            }

            WarpRenderer renderer   = new WarpRenderer();
            warp_Object  terrainObj = null;

            renderer.CreateScene(width, height);
            renderer.Scene.autoCalcNormals = false;

            #region Camera

            warp_Vector pos = ConvertVector(viewport.Position);
            pos.z -= 0.001f; // Works around an issue with the Warp3D camera
            warp_Vector lookat = warp_Vector.add(ConvertVector(viewport.Position), ConvertVector(viewport.LookDirection));

            renderer.Scene.defaultCamera.setPos(pos);
            renderer.Scene.defaultCamera.lookAt(lookat);

            if (viewport.Orthographic)
            {
                renderer.Scene.defaultCamera.isOrthographic  = true;
                renderer.Scene.defaultCamera.orthoViewWidth  = viewport.OrthoWindowWidth;
                renderer.Scene.defaultCamera.orthoViewHeight = viewport.OrthoWindowHeight;
            }
            else
            {
                viewport.Orthographic = false;
                float fov = 256;
                //fov *= 1.75f; // FIXME: ???
                renderer.Scene.defaultCamera.setFov(fov);
            }

            #endregion Camera

            renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(1.0f, 0.5f, 1f), 0xffffff, 0, 320, 40));
            renderer.Scene.addLight("Light2", new warp_Light(new warp_Vector(-1f, -1f, 1f), 0xffffff, 0, 100, 40));

            try
            {
                CreateWater(renderer);
                terrainObj = CreateTerrain(renderer, textureTerrain);
                if (drawPrimVolume && m_primMesher != null)
                {
#if (!ISWIN)
                    foreach (ISceneEntity ent in m_scene.Entities.GetEntities())
                    {
                        foreach (ISceneChildEntity part in ent.ChildrenEntities())
                        {
                            CreatePrim(renderer, part);
                        }
                    }
#else
                    foreach (ISceneChildEntity part in m_scene.Entities.GetEntities().SelectMany(ent => ent.ChildrenEntities()))
                    {
                        CreatePrim(renderer, part);
                    }
#endif
                }
            }
            catch (Exception ex)
            {
                MainConsole.Instance.Warn("[Warp3D]: Exception in the map generation, " + ex);
            }

            renderer.Render();
            Bitmap bitmap = renderer.Scene.getImage();
            bitmap = ImageUtils.ResizeImage(bitmap, Constants.RegionSize, Constants.RegionSize);
            foreach (var o in renderer.Scene.objectData.Values)
            {
                warp_Object obj = (warp_Object)o;
                obj.vertexData   = null;
                obj.triangleData = null;
            }
            renderer.Scene.removeAllObjects();
            renderer                = null;
            viewport                = null;
            m_primMesher            = null;
            terrainObj.fastvertex   = null;
            terrainObj.fasttriangle = null;
            terrainObj              = null;
            m_colors.Clear();

            //Force GC to try to clean this mess up
            GC.GetTotalMemory(true);

            return(bitmap);
        }
Exemplo n.º 18
0
 public ParentedRendering(IRendering parent, Stack<IRendering> children)
 {
     Parent = parent;
     Children = children;
     RenderLayer = RenderLayer.Gameground;
 }
Exemplo n.º 19
0
        public Bitmap CreateMapTile()
        {
            /* this must be on all map, not just its image
            if ((DateTime.Now - lastImageTime).TotalSeconds < 3600)
            {
                return (Bitmap)lastImage.Clone();
            }
            */

            List<string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
            }

            Vector3 camPos = new Vector3(
                            m_scene.RegionInfo.RegionSizeX / 2 - 0.5f,
                            m_scene.RegionInfo.RegionSizeY / 2 - 0.5f,
                            221.7025033688163f);
            // Viewport viewing down onto the region
            Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f,
                        (int)m_scene.RegionInfo.RegionSizeX, (int)m_scene.RegionInfo.RegionSizeY,
                        (float)m_scene.RegionInfo.RegionSizeX, (float)m_scene.RegionInfo.RegionSizeY);

            Bitmap tile = CreateMapTile(viewport, false);
            m_primMesher = null;
            return tile;
/*
            lastImage = tile;
            lastImageTime = DateTime.Now;
            return (Bitmap)lastImage.Clone();
 */
        }
Exemplo n.º 20
0
        public Bitmap TerrainToBitmap(System.Drawing.Bitmap mapbmp)
        {
            mapbmp = new Bitmap(m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);
            List <string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());

            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                m_log.Info("[MAPTILE]: Loaded prim mesher " + m_primMesher.ToString());
            }
            else
            {
                m_log.Info("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            bool drawPrimVolume = true;
            bool textureTerrain = true;

            try
            {
                IConfig startupConfig = m_config.Configs["Startup"];
                drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume);
                textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain);
            }
            catch
            {
                m_log.Warn("[MAPTILE]: Failed to load StartupConfig");
            }

            m_colors.Clear();

            Vector3  camPos   = new Vector3(m_scene.RegionInfo.RegionSizeX / 2, m_scene.RegionInfo.RegionSizeY / 2, 221.7025033688163f);
            Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f, m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY, m_scene.RegionInfo.RegionSizeX, m_scene.RegionInfo.RegionSizeY);

            int width  = viewport.Width;
            int height = viewport.Height;

            if (m_useAntiAliasing)
            {
                width  *= 2;
                height *= 2;
            }

            WarpRenderer renderer = new WarpRenderer();

            renderer.CreateScene(width, height);
            renderer.Scene.autoCalcNormals = false;

            #region Camera

            warp_Vector pos = ConvertVector(viewport.Position);
            pos.z -= 0.001f; // Works around an issue with the Warp3D camera
            warp_Vector lookat = warp_Vector.add(ConvertVector(viewport.Position), ConvertVector(viewport.LookDirection));

            renderer.Scene.defaultCamera.setPos(pos);
            renderer.Scene.defaultCamera.lookAt(lookat);

            if (viewport.Orthographic)
            {
                renderer.Scene.defaultCamera.isOrthographic  = true;
                renderer.Scene.defaultCamera.orthoViewWidth  = viewport.OrthoWindowWidth;
                renderer.Scene.defaultCamera.orthoViewHeight = viewport.OrthoWindowHeight;
            }
            else
            {
                float fov = viewport.FieldOfView;
                fov *= 1.75f; // FIXME: ???
                renderer.Scene.defaultCamera.setFov(fov);
            }

            #endregion Camera

            renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(0.2f, 0.2f, 1f), 0xffffff, 320, 80));
            renderer.Scene.addLight("Light2", new warp_Light(new warp_Vector(-1f, -1f, 1f), 0xffffff, 100, 40));

            CreateWater(renderer);
            CreateTerrain(renderer, textureTerrain);
            if (drawPrimVolume && m_primMesher != null)
            {
                m_scene.ForEachSOG(delegate(SceneObjectGroup group)
                {
                    group.ForEachPart(delegate(SceneObjectPart part) { CreatePrim(renderer, part); });
                });
            }

            renderer.Render();
            Bitmap bitmap = renderer.Scene.getImage();

            renderer.Scene.removeAllObjects();
            renderer     = null;
            viewport     = null;
            m_primMesher = null;
            m_colors.Clear();

            //Force GC to try to clean this mess up
            GC.GetTotalMemory(true);

            if (m_useAntiAliasing)
            {
                bitmap = ImageUtils.ResizeImage(bitmap, width / 2, height / 2);
            }

            return(bitmap);
        }
Exemplo n.º 21
0
        public void Start(IScene scene)
        {
            m_assetClient = scene.Simian.GetAppModule<IAssetClient>();
            m_meshCache = scene.Simian.GetAppModule<MeshCache>();

            List<string> rendererNames = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (rendererNames.Count == 0)
            {
                m_log.Error("PrimMesher could not find a valid OpenMetaverse.Rendering.*.dll plugin");
                return;
            }

            // TODO: Add a config option to allow a preferred renderer to be selected
            m_renderer = RenderingLoader.LoadRenderer(rendererNames[0]);
            m_log.Debug(scene.Name + " is meshing prims with " + m_renderer);
        }
        public void Initialise(IScene scene, IConfigSource config)
        {
            m_scene = scene;
            m_imgDecoder = m_scene.RequestModuleInterface<IJ2KDecoder>();
            m_config = config;
            m_assetCacheDir = m_config.Configs ["AssetCache"].GetString ("CacheDirectory",m_assetCacheDir);

            List<string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                MainConsole.Instance.Debug("[MAPTILE]: Loaded prim mesher " + m_primMesher);
            }
            else
            {
                MainConsole.Instance.Info("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            var mapConfig = m_config.Configs ["MapModule"];
            if (mapConfig != null)
            {
                m_texturePrimSize = mapConfig.GetFloat ("TexturePrimSize", m_texturePrimSize);
                m_renderMeshes = mapConfig.GetBoolean ("RenderMeshes", m_renderMeshes);
            }

            ReadCacheMap();
        }
Exemplo n.º 23
0
        public Bitmap TerrainToBitmap(Bitmap mapBmp)
        {
            mapBmp = null;
            // debug
            //var currentProcess = System.Diagnostics.Process.GetCurrentProcess();
            //long startMemory = currentProcess.WorkingSet64;

            List<string> renderers = RenderingLoader.ListRenderers(Util.ExecutingDirectory());
            if (renderers.Count > 0)
            {
                m_primMesher = RenderingLoader.LoadRenderer(renderers[0]);
                MainConsole.Instance.Debug("[MAPTILE]: Loaded prim mesher " + m_primMesher);
            }
            else
            {
                MainConsole.Instance.Info("[MAPTILE]: No prim mesher loaded, prim rendering will be disabled");
            }

            bool drawPrimVolume = true;
            bool textureTerrain = true;

            try
            {
                IConfig startupConfig = m_config.Configs["Startup"];
                drawPrimVolume = startupConfig.GetBoolean("DrawPrimOnMapTile", drawPrimVolume);
                textureTerrain = startupConfig.GetBoolean("TextureOnMapTile", textureTerrain);
            }
            catch
            {
                MainConsole.Instance.Warn("[MAPTILE]: Failed to load StartupConfig");
            }

            m_texturePrims = m_config.Configs["MapModule"].GetBoolean("WarpTexturePrims", false);

            int scaledRemovalFactor = m_scene.RegionInfo.RegionSizeX/(Constants.RegionSize/2);
            Vector3 camPos = new Vector3(m_scene.RegionInfo.RegionSizeX/2 - 0.5f,
                                         m_scene.RegionInfo.RegionSizeY/2 - 0.5f, 221.7025033688163f);
            Viewport viewport = new Viewport(camPos, -Vector3.UnitZ, 1024f, 0.1f,
                                             m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeX - scaledRemovalFactor,
                                             m_scene.RegionInfo.RegionSizeY - scaledRemovalFactor);

            int width = viewport.Width;
            int height = viewport.Height;

            WarpRenderer renderer = new WarpRenderer();
            //warp_Object terrainObj;
            renderer.CreateScene(width, height);
            renderer.Scene.autoCalcNormals = false;

            #region Camera

            warp_Vector pos = ConvertVector(viewport.Position);
            pos.z -= 0.001f; // Works around an issue with the Warp3D camera
            warp_Vector lookat = warp_Vector.add(ConvertVector(viewport.Position), ConvertVector(viewport.LookDirection));

            renderer.Scene.defaultCamera.setPos(pos);
            renderer.Scene.defaultCamera.lookAt(lookat);

            if (viewport.Orthographic)
            {
                renderer.Scene.defaultCamera.isOrthographic = true;
                renderer.Scene.defaultCamera.orthoViewWidth = viewport.OrthoWindowWidth;
                renderer.Scene.defaultCamera.orthoViewHeight = viewport.OrthoWindowHeight;
            }
            else
            {
                viewport.Orthographic = false;
                float fov = 256;
                //fov *= 1.75f; // FIXME: ???
                renderer.Scene.defaultCamera.setFov(fov);
            }

            #endregion Camera

            renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(1.0f, 0.5f, 1f), 0xffffff, 0, 320, 40));
            renderer.Scene.addLight("Light2", new warp_Light(new warp_Vector(-1f, -1f, 1f), 0xffffff, 0, 100, 40));

            try
            {
                CreateWater(renderer);

                CreateTerrain(renderer, textureTerrain);

                if (drawPrimVolume && m_primMesher != null)
                {
                    foreach (ISceneChildEntity part in m_scene.Entities.GetEntities().SelectMany(ent => ent.ChildrenEntities()))
                        CreatePrim(renderer, part);
                }

            }
            catch (Exception ex)
            {
                MainConsole.Instance.Warn("[Warp3D]: Exception in the map generation, " + ex);
            }

            renderer.Render();
            Bitmap bitmap = renderer.Scene.getImage();
            bitmap = ImageUtils.ResizeImage(bitmap, Constants.RegionSize, Constants.RegionSize);
            foreach (var o in renderer.Scene.objectData.Values)
            {
                warp_Object obj = (warp_Object) o;
                obj.vertexData = null;
                obj.triangleData = null;
            }

            renderer.Reset ();
            //renderer.Scene.removeAllObjects();
            // renderer = null;
            // viewport = null;
            m_primMesher = null;
            ///terrainObj.fastvertex = null;
            ///terrainObj.fasttriangle = null;
            ///terrainObj = null;
            SaveCache();
            m_colors.Clear();

            //Force GC to try to clean this mess up
            GC.Collect();

            // debug
            //currentProcess = System.Diagnostics.Process.GetCurrentProcess();
            //var endMemory = currentProcess.WorkingSet64;
            //MainConsole.Instance.InfoFormat ("[Warp3D]:Render:  Memory Start: {0}, end: {1}, Diff: {2}", startMemory, endMemory, (endMemory-startMemory));

            return bitmap;
        }
Exemplo n.º 24
0
 public RenderingEngine(IRenderer defaultRenderer, IRendering nullRendering)
 {
     _defaultRenderer = defaultRenderer;
     _nullRendering   = nullRendering;
 }
Exemplo n.º 25
0
        bool m_renderMeshes = true;     // true if to render meshes rather than just bounding boxes

        #region IMapTileTerrainRenderer Members

        public void Initialise (IScene scene, IConfigSource config)
        {
            m_scene = scene;
            m_imgDecoder = m_scene.RequestModuleInterface<IJ2KDecoder> ();
            m_config = config;
            m_assetCacheDir = m_config.Configs ["AssetCache"].GetString ("CacheDirectory", m_assetCacheDir);
            if (m_assetCacheDir == "") {
                var defpath = scene.RequestModuleInterface<ISimulationBase> ().DefaultDataPath;
                m_assetCacheDir = System.IO.Path.Combine (defpath, Constants.DEFAULT_ASSETCACHE_DIR);
            }

            List<string> renderers = RenderingLoader.ListRenderers (Util.ExecutingDirectory ());
            if (renderers.Count > 0) {
                m_primMesher = RenderingLoader.LoadRenderer (renderers [0]);
                MainConsole.Instance.Debug ("[WarpTile generator]: Loaded prim mesher " + m_primMesher);
            } else {
                MainConsole.Instance.Info ("[WarpTile generator]: No prim mesher loaded, prim rendering will be disabled");
            }

            var mapConfig = m_config.Configs ["MapModule"];
            if (mapConfig != null) {
                m_texturePrimSize = mapConfig.GetFloat ("TexturePrimSize", m_texturePrimSize);
                m_renderMeshes = mapConfig.GetBoolean ("RenderMeshes", m_renderMeshes);
            }


            ReadCacheMap ();
        }
 public OrderLineVariantRenderingModel(IStorefrontContext storefrontContext, ISearchManager searchManager, IContext context, IModelProvider modelProvider, IRendering rendering, ICurrencyFormatter currencyFormatter)
     : base(storefrontContext, searchManager, context, modelProvider, rendering, currencyFormatter)
 {
 }
 /// <summary>
 /// Initializes the specified rendering.
 /// </summary>
 /// <param name="rendering">The rendering.</param>
 public virtual void Initialize(IRendering rendering)
 {
     SampleProperty = "sample";
 }
Exemplo n.º 28
0
 public static string GetMarkupId(IRendering rendering)
 {
     return($"i{rendering.Uid:D}");
 }