public void writeX3DAngles(Scientrace.Object3dEnvironment env, StringBuilder retsb) { Scientrace.Location tloc; foreach (Scientrace.Angle angle in this.angles) { tloc = angle.getLocation(); Scientrace.X3DGridPoint x3dgp = new Scientrace.X3DGridPoint(env, tloc, tloc + angle.intersection.enter.flatshape.plane.u.toUnitVector().toLocation() * (env.radius / 100), tloc + angle.intersection.enter.flatshape.plane.v.toUnitVector().toLocation() * (env.radius / 100)); //Console.WriteLine("Writing spot "+angle.ToString()+" to X3D"); if (this.drawInteractionPlanes) { retsb.Append(x3dgp.exportX3DnosphereRGB("1 1 0")); } if (this.drawInteractionNormals) { retsb.Append(X3DGridPoint.get_RGBA_Line_XML(tloc, tloc + angle.intersection.enter.flatshape.plane.getNorm().negative() * 0.125, "1 0 1 0.4")); } retsb.Append(@" <Transform scale='" + (env.radius / 1250).ToString() + " " + (env.radius / 1250).ToString() + " " + (env.radius / 1250).ToString() + @"' translation='" + angle.getLocation().trico() + @"'> <Shape> <Sphere /> <Appearance> <Material emissiveColor='0 1 0' transparency='" + (1 - angle.fromTrace.intensity) + @"' /><!--angle--> </Appearance> </Shape> </Transform> "); } }
static public string drawLinePiecesXML(List <ObjectLinePiece> linePieces) { System.Text.StringBuilder retstr = new System.Text.StringBuilder(5000); foreach (ObjectLinePiece olp in linePieces) { // Writing some helpful comments. retstr.Append("<!-- Line From: \n" + olp.lp.startingpoint + " To: \n" + olp.lp.endingpoint + " -->"); retstr.Append(X3DGridPoint.get_RGBA_Line_XML(olp.lp, olp.col)); } return(retstr.ToString()); }
public string x3DSolidRGBALineTo(Scientrace.Location aLoc, string colorRGBstring) { return(X3DGridPoint.get_RGBA_Line_XML(aLoc, this.loc, colorRGBstring)); }
public static string get_RGBA_Line_XML(LinePiece anLP, string colorRGBAstring) { return(X3DGridPoint.get_RGBA_Line_XML(anLP.startingpoint, anLP.endingpoint, colorRGBAstring)); }