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); }
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); }
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; }
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; }