Exemplo n.º 1
0
/*
 *              Scientrace.CircularFresnelPrism cprism = new Scientrace.CircularFresnelPrism(env, air,
 *                      new Location(0, 0, 0), new NonzeroVector(prismradius, 0, 0).rotateAboutY(prismAngleRadians),
 *                      new NonzeroVector(0,0, prismradius).rotateAboutY(prismAngleRadians), new NonzeroVector(0, -0.5E-2, 0),
 *                      this.prism_angle*Math.PI/180, (Math.PI/2)-(this.prism_angle*Math.PI/180), dentalcount, pmma);
 *?/
 *
 *      /* Prism and Mirror data from configfile */
        public Scientrace.ParabolicMirror parseXParabolicMirror(XElement xmir)
        {
            Scientrace.UnitVector miraxis = this.X.getXNzVector(xmir.Element("MirrorAxis")).toUnitVector();

            /*string materialid = this.X.getXString(xmir.Attribute("Material"));
             * Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid);*/
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xmir);
            XMLBorderParser xbp = new XMLBorderParser();

            Scientrace.AbstractGridBorder border = xbp.getXBorder(xmir.Element("Border"));
            Scientrace.ParabolicMirror    tretpmir;
            if (xmir.Attribute("DistanceToMirror") == null)
            {
                double parabolic_constant    = this.X.getXDouble(xmir.Attribute("ParabolicConstant"));
                Scientrace.Location location = this.X.getXLocation(xmir.Element("Location"));
                tretpmir = new Scientrace.ParabolicMirror(
                    this.parentcollection, material, location, miraxis, parabolic_constant, border);
            }
            else
            {
                double distance_to_mirror      = this.X.getXDouble(xmir.Attribute("DistanceToMirror"));
                Scientrace.Location focuspoint = this.X.getXLocation(xmir.Element("FocusPoint"));
//				Console.WriteLine("-->"+focuspoint.tricoshort()+ " / "+ distance_to_mirror+miraxis.tricon()+ " / <---");
                tretpmir = Scientrace.ParabolicMirror.CreateAtFocus(this.parentcollection, material,
                                                                    focuspoint, distance_to_mirror, miraxis, border);
                tretpmir.exportX3Dgridsteps = 64;
            }
            return(tretpmir);
        }
Exemplo n.º 2
0
        /*
        Scientrace.CircularFresnelPrism cprism = new Scientrace.CircularFresnelPrism(env, air,
            new Location(0, 0, 0), new NonzeroVector(prismradius, 0, 0).rotateAboutY(prismAngleRadians),
            new NonzeroVector(0,0, prismradius).rotateAboutY(prismAngleRadians), new NonzeroVector(0, -0.5E-2, 0),
            this.prism_angle*Math.PI/180, (Math.PI/2)-(this.prism_angle*Math.PI/180), dentalcount, pmma);
         *?/

        /* Prism and Mirror data from configfile */
        public Scientrace.ParabolicMirror parseXParabolicMirror(XElement xmir)
        {
            Scientrace.UnitVector miraxis = this.X.getXNzVector(xmir.Element("MirrorAxis")).toUnitVector();

            /*string materialid = this.X.getXString(xmir.Attribute("Material"));
            Scientrace.MaterialProperties material = Scientrace.MaterialProperties.FromIdentifier(materialid);*/
            Scientrace.MaterialProperties material = new ShadowClassConstruct(this.parentcollection).getXMaterial(xmir);
            XMLBorderParser xbp = new XMLBorderParser();
            Scientrace.AbstractGridBorder border = xbp.getXBorder(xmir.Element("Border"));
            Scientrace.ParabolicMirror tretpmir;
            if (xmir.Attribute("DistanceToMirror") == null) {
                double parabolic_constant = this.X.getXDouble(xmir.Attribute("ParabolicConstant"));
                Scientrace.Location location = this.X.getXLocation(xmir.Element("Location"));
                tretpmir = new Scientrace.ParabolicMirror(
                    this.parentcollection, material, location, miraxis, parabolic_constant, border);
                } else {
                double distance_to_mirror = this.X.getXDouble(xmir.Attribute("DistanceToMirror"));
                Scientrace.Location focuspoint = this.X.getXLocation(xmir.Element("FocusPoint"));
            //				Console.WriteLine("-->"+focuspoint.tricoshort()+ " / "+ distance_to_mirror+miraxis.tricon()+ " / <---");
                tretpmir = Scientrace.ParabolicMirror.CreateAtFocus(this.parentcollection, material,
                                focuspoint, distance_to_mirror, miraxis, border);
                tretpmir.exportX3Dgridsteps = 64;
                }
            return tretpmir;
        }