// Copyright 2000, FreeHEP.
package hep.graphics.heprep.test;
import hep.graphics.heprep.HepRep;
import hep.graphics.heprep.HepRepAttribute;
import hep.graphics.heprep.HepRepFactory;
import hep.graphics.heprep.HepRepInstance;
import hep.graphics.heprep.HepRepInstanceTree;
import hep.graphics.heprep.HepRepPoint;
import hep.graphics.heprep.HepRepTreeID;
import hep.graphics.heprep.HepRepType;
import hep.graphics.heprep.HepRepTypeTree;
import hep.graphics.heprep.HepRepWriter;
import hep.graphics.heprep.ref.DefaultHepRepFactory;
import hep.graphics.heprep.xml.XMLHepRepFactory;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* @author duns
* @version $Id: CreateTest.java 8584 2006-08-10 23:06:37Z duns $
*/
public class CreateTest {
/**
* @param args
* @throws Exception
*/
public static void main(String args[]) throws Exception {
System.out.println("Finding Factory...");
HepRepFactory factory = DefaultHepRepFactory.create();
System.out.println("Creating HepRep...");
HepRep root = factory.createHepRep();
System.out.println("Creating Layer...");
String layer = "Detector";
root.addLayer(layer);
System.out.println("Creating HepRepTreeID...");
HepRepTreeID treeID = factory.createHepRepTreeID("CylinderType", "1.0");
// <heprep:typetree name="CylinderType" version="1.0">
System.out.println("Creating HepRepTypeTree...");
HepRepTypeTree typeTree = factory.createHepRepTypeTree(treeID);
root.addTypeTree(typeTree);
System.out.println("Creating HepRepType...");
HepRepType type = factory.createHepRepType(typeTree, "Cylinder");
// <heprep:attvalue name="banner" value="true" />
// <heprep:attvalue name="framed" value="true" />
// <heprep:attvalue name="drawAs" value="Cylinder" />
// <heprep:attvalue name="radius1" value="2" />
// <heprep:attvalue name="radius2" value="2" />
type.addAttValue("layer", layer);
type.addAttValue("banner", "true");
type.addAttValue("framed", "true");
type.addAttValue("drawAs", "Cylinder");
type.addAttValue("radius", "2", HepRepAttribute.SHOW_VALUE + HepRepAttribute.SHOW_NAME + 0x0400);
System.out.println("Creating HepRepInstanceTree...");
// <heprep:instancetree name="TestCylinder" version="CPlusPlus Generated" typename="CylinderType" typeversion="1.0">
HepRepInstanceTree instanceTree = factory.createHepRepInstanceTree("TestCylinder", "CPlusPlus Generated", typeTree);
root.addInstanceTree(instanceTree);
System.out.println("Creating HepRepInstance...");
// <heprep:instance type="Cylinder">
HepRepInstance instance1 = factory.createHepRepInstance(instanceTree, type);
// <heprep:attvalue name="color" value="cyan" />
// <heprep:attvalue name="label" value="x-axis" showLabel="VALUE" />
instance1.addAttValue("color", Color.CYAN);
instance1.addAttValue("label", "x-axis", HepRepAttribute.SHOW_VALUE);
// <heprep:point x="0.0" y="0.0" z="0.0" />
// <heprep:point x="4.0" y="0.0" z="0.0" />
factory.createHepRepPoint(instance1, 0, 0, 0);
factory.createHepRepPoint(instance1, 4, 0, 0);
// <heprep:instance type="Cylinder">
HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
// <heprep:attvalue name="color" value="orange" />
// <heprep:attvalue name="label" value="y-axis" showLabel="VALUE" />
instance2.addAttValue("color", Color.ORANGE, 0);
instance2.addAttValue("label", "y-axis", HepRepAttribute.SHOW_VALUE);
// <heprep:point x="0.0" y="0.0" z="0.0" />
// <heprep:point x="0.0" y="4.0" z="0.0" />
factory.createHepRepPoint(instance2, 0, 0, 0);
factory.createHepRepPoint(instance2, 0, 4, 0);
// <heprep:instance type="Cylinder">
HepRepInstance instance3 = factory.createHepRepInstance(instanceTree, type);
// <heprep:attvalue name="color" value="green" />
// <heprep:attvalue name="label" value="z-axis" showLabel="VALUE" />
instance3.addAttValue("color", Color.GREEN, 0);
instance3.addAttValue("label", "z-axis", HepRepAttribute.SHOW_VALUE);
// <heprep:point x="0.0" y="0.0" z="0.0" />
// <heprep:point x="0.0" y="0.0" z="4.0" />
factory.createHepRepPoint(instance3, 0, 0, 0);
factory.createHepRepPoint(instance3, 0, 0, 4);
// <heprep:instance type="Cylinder">
HepRepInstance instance4 = factory.createHepRepInstance(instanceTree, type);
// <heprep:point x="10.0" y="10.0" z="10.0">
// <heprep:attvalue name="Phi" value="0.2" showLabel="false" />
// </heprep:point>
// <heprep:point x="12.3" y="12.3" z="12.3">
// <heprep:attvalue name="Phi" value="0.3" showLabel="false" />
// </heprep:point>
HepRepPoint p1 = factory.createHepRepPoint(instance4, 10, 10, 10);
p1.addAttValue("Phi", "0.2", 0);
HepRepPoint p2 = factory.createHepRepPoint(instance4, 12.3, 12.3, 12.3);
p2.addAttValue("Phi", "0.3", 0);
System.out.println("Saving HepRep as ser ...");
try {
OutputStream out = new FileOutputStream("HepRepTest.ser");
HepRepWriter writer = factory.createHepRepWriter(out, false, false);
writer.write(root, null);
writer.close();
} catch (IOException ioe) {
System.err.println("Could not write ser file "+ioe);
}
System.out.println("Saving HepRep as ser.gz ...");
try {
OutputStream out = new FileOutputStream("HepRepTest.ser.gz");
HepRepWriter writer = factory.createHepRepWriter(out, false, true);
writer.write(root, null);
writer.close();
} catch (IOException ioe) {
System.err.println("Could not write ser.gz file "+ioe);
}
System.out.println("Saving HepRep as xml ...");
try {
OutputStream out = new FileOutputStream("HepRepTest.xml");
HepRepWriter writer = new XMLHepRepFactory().createHepRepWriter(out, false, false);
writer.write(root, null);
writer.close();
} catch (IOException ioe) {
System.err.println("Could not write xml file "+ioe);
}
System.out.println("Saving HepRep as xml.gz ...");
try {
OutputStream out = new FileOutputStream("HepRepTest.xml.gz");
HepRepWriter writer = new XMLHepRepFactory().createHepRepWriter(out, false, true);
writer.write(root, null);
writer.close();
} catch (IOException ioe) {
System.err.println("Could not write xml.gz file "+ioe);
}
System.out.println("Test finished ok.");
}
}