Exemplo n.º 1
0
        public Scientrace.Rectangle parseXRectangleVectorBasedConstructor(XElement xsc)
        {
            Scientrace.Location location = this.X.getXLocation(xsc.Element("Location"));

            /* OLD method that caused a crashed on zerovectors.
             * Scientrace.NonzeroVector width = this.X.getXNzVector(xsc.Element("Width"));
             * Scientrace.NonzeroVector height = this.X.getXNzVector(xsc.Element("Height")); */

            Scientrace.Vector vwidth  = this.X.getXVector(xsc.Element("Width"));
            Scientrace.Vector vheight = this.X.getXVector(xsc.Element("Height"));
            if (vwidth.length * vheight.length == 0)
            {
                return(null);
            }
            Scientrace.NonzeroVector width  = vwidth.tryToNonzeroVector();
            Scientrace.NonzeroVector height = vheight.tryToNonzeroVector();

            /*string materialid = this.X
             *      .getXString(xsc.Attribute("Material"));
             * Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid); */
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xsc);
            //Console.WriteLine("MAT CELL: "+material.GetType());
            Scientrace.Rectangle retcel = new Scientrace.Rectangle(this.parentcollection,
                                                                   material, location, width, height);
            this.addCommonObjectProperties(retcel, xsc);
            this.registerObject(xsc, retcel);
            return(retcel);
        }
Exemplo n.º 2
0
        public Scientrace.Rectangle parseXRectangleCenterConstructor(XElement xsc)
        {
            Scientrace.Location center = this.X.getXLocation(xsc.Element("Center"));
            //Scientrace.Location pointingtowards = this.X.getXLocation(xsc.Element("PointingTowards"));
            Scientrace.Location pointingtowards = this.X.getXLocation(xsc, "PointingTowards", (this.X.getXLocation(xsc, "Normal") + center));

            Scientrace.UnitVector orthogonaldir = this.X.getXVector(xsc.Element("OrthogonalDirection")).tryToUnitVector();
            //double sidelength = this.X.getXDouble(xsc.Attribute("SideLength"));
            double sidelength = this.X.getXDouble(xsc, "SideLength");

            /*string materialid = this.X.getXString(xsc.Attribute("Material"));
             * Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid); */
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xsc);
            Scientrace.Rectangle          retcel   = new Scientrace.Rectangle(this.parentcollection, material, center,
                                                                              pointingtowards, orthogonaldir, sidelength);
            this.addCommonObjectProperties(retcel, xsc);
            this.registerObject(xsc, retcel);
            return(retcel);
        }
Exemplo n.º 3
0
        public Scientrace.Rectangle parseXRectangleVectorBasedConstructor(XElement xsc)
        {
            Scientrace.Location location = this.X.getXLocation(xsc.Element("Location"));
            /* OLD method that caused a crashed on zerovectors.
            Scientrace.NonzeroVector width = this.X.getXNzVector(xsc.Element("Width"));
            Scientrace.NonzeroVector height = this.X.getXNzVector(xsc.Element("Height")); */

            Scientrace.Vector vwidth = this.X.getXVector(xsc.Element("Width"));
            Scientrace.Vector vheight = this.X.getXVector(xsc.Element("Height"));
            if (vwidth.length*vheight.length == 0) {
                return null;
                }
            Scientrace.NonzeroVector width = vwidth.tryToNonzeroVector();
            Scientrace.NonzeroVector height = vheight.tryToNonzeroVector();
            /*string materialid = this.X
                .getXString(xsc.Attribute("Material"));
            Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid); */
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xsc);
            //Console.WriteLine("MAT CELL: "+material.GetType());
            Scientrace.Rectangle retcel = new Scientrace.Rectangle(this.parentcollection,
                material, location, width, height);
            this.addCommonObjectProperties(retcel, xsc);
            this.registerObject(xsc, retcel);
            return retcel;
        }
Exemplo n.º 4
0
        public Scientrace.Rectangle parseXRectangleCenterConstructor(XElement xsc)
        {
            Scientrace.Location center = this.X.getXLocation(xsc.Element("Center"));
            //Scientrace.Location pointingtowards = this.X.getXLocation(xsc.Element("PointingTowards"));
            Scientrace.Location pointingtowards = this.X.getXLocation(xsc, "PointingTowards", (this.X.getXLocation(xsc, "Normal")+center));

            Scientrace.UnitVector orthogonaldir = this.X.getXVector(xsc.Element("OrthogonalDirection")).tryToUnitVector();
            //double sidelength = this.X.getXDouble(xsc.Attribute("SideLength"));
            double sidelength = this.X.getXDouble(xsc, "SideLength");
            /*string materialid = this.X.getXString(xsc.Attribute("Material"));
            Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid); */
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xsc);
            Scientrace.Rectangle retcel = new Scientrace.Rectangle(this.parentcollection, material, center,
                                          pointingtowards, orthogonaldir, sidelength);
            this.addCommonObjectProperties(retcel, xsc);
            this.registerObject(xsc, retcel);
            return retcel;
        }