Print

Print


Commit in GeomConverter/src/org/lcsim/detector/converter/heprep on MAIN
DetectorElementToHepRepConverter.java+111-1071.1 -> 1.2


GeomConverter/src/org/lcsim/detector/converter/heprep
DetectorElementToHepRepConverter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DetectorElementToHepRepConverter.java	15 Mar 2007 02:09:15 -0000	1.1
+++ DetectorElementToHepRepConverter.java	27 Mar 2007 20:40:54 -0000	1.2
@@ -17,79 +17,82 @@
 
 public class DetectorElementToHepRepConverter
 {
-	public void convert(IDetectorElement detelem, HepRepFactory factory, HepRep heprep)
-	{
-		HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
-		HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
-		
-		IGeometryInfo geo = detelem.getGeometry();
-		
-		ISolid solid = geo.getLogicalVolume().getSolid();
-		
-		if ( solid instanceof Box )
-		{
-			Box box = (Box)geo.getLogicalVolume().getSolid();
-			
-			HepRepType ec = typeTree.getType("Barrel");
-			HepRepType type = factory.createHepRepType(ec, detelem.getName());		
-			type.addAttValue("drawAs","Prism");
-			
-			HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
-			
-			Hep3Vector points[] = new BasicHep3Vector[8];
-			
-			double x1 = box.getXHalfLength();
-			double x2 = -box.getXHalfLength();
-
-			double y1 = box.getYHalfLength();
-			double y2 = -box.getYHalfLength();
-
-			double z1 = box.getZHalfLength();
-			double z2 = -box.getZHalfLength();		
-			
-			points[0] = new BasicHep3Vector(x1,y1,z1);
-			points[1] = new BasicHep3Vector(x1,y2,z1);
-			points[2] = new BasicHep3Vector(x2,y2,z1);
-			points[3] = new BasicHep3Vector(x2,y1,z1);
-			points[4] = new BasicHep3Vector(x1,y1,z2);
-			points[5] = new BasicHep3Vector(x1,y2,z2);
-			points[6] = new BasicHep3Vector(x2,y2,z2);
-			points[7] = new BasicHep3Vector(x2,y1,z2);
-
-			// DEBUG
-			//HepRepInstance debugInstance = factory.createHepRepInstance(instanceTree, type);
-			// END DEBUG
-			
-			for (int i=0; i<points.length; i++)
-			{
-				// DEBUG
-				//factory.createHepRepPoint(
-				//		debugInstance,
-				//		points[i].x(),
-				//		points[i].y(),
-				//		points[i].z()
-				//		);
-				// END DEBUG
-				
-				System.out.println("original pnt : " + points[i]);
-				Hep3Vector vec = geo.transformLocalToGlobal(points[i]);
-				System.out.println("transformed pnt : " + vec);
-				System.out.println();
-				points[i] = vec;				
-			}
-			
-			for (int i=0; i<points.length; i++)
-			{
-				Hep3Vector vec = points[i];
-				factory.createHepRepPoint(
-						instance, 
-						vec.x(), 
-						vec.y(), 
-						vec.z()
-						);
-			}
-									
-			/*
+    public void convert(IDetectorElement detelem, HepRepFactory factory, HepRep heprep)
+    {
+        HepRepInstanceTree instanceTree = heprep.getInstanceTreeTop("Detector","1.0");
+        HepRepTypeTree typeTree = heprep.getTypeTree("DetectorType","1.0");
+
+        if ( detelem.hasGeometryInfo() )
+        {
+
+            IGeometryInfo geo = detelem.getGeometry();				
+
+            ISolid solid = geo.getLogicalVolume().getSolid();
+
+            if ( solid instanceof Box )
+            {
+                Box box = (Box)geo.getLogicalVolume().getSolid();
+
+                HepRepType ec = typeTree.getType("Barrel");
+                HepRepType type = factory.createHepRepType(ec, detelem.getName());		
+                type.addAttValue("drawAs","Prism");
+
+                HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
+
+                Hep3Vector points[] = new BasicHep3Vector[8];
+
+                double x1 = box.getXHalfLength();
+                double x2 = -box.getXHalfLength();
+
+                double y1 = box.getYHalfLength();
+                double y2 = -box.getYHalfLength();
+
+                double z1 = box.getZHalfLength();
+                double z2 = -box.getZHalfLength();		
+
+                points[0] = new BasicHep3Vector(x1,y1,z1);
+                points[1] = new BasicHep3Vector(x1,y2,z1);
+                points[2] = new BasicHep3Vector(x2,y2,z1);
+                points[3] = new BasicHep3Vector(x2,y1,z1);
+                points[4] = new BasicHep3Vector(x1,y1,z2);
+                points[5] = new BasicHep3Vector(x1,y2,z2);
+                points[6] = new BasicHep3Vector(x2,y2,z2);
+                points[7] = new BasicHep3Vector(x2,y1,z2);
+
+                // DEBUG
+                //HepRepInstance debugInstance = factory.createHepRepInstance(instanceTree, type);
+                // END DEBUG
+
+                for (int i=0; i<points.length; i++)
+                {
+                    // DEBUG
+                    //factory.createHepRepPoint(
+                    //		debugInstance,
+                    //		points[i].x(),
+                    //		points[i].y(),
+                    //		points[i].z()
+                    //		);
+                    // END DEBUG
+
+                    System.out.println("original pnt : " + points[i]);
+                    Hep3Vector vec = geo.transformLocalToGlobal(points[i]);
+                    System.out.println("transformed pnt : " + vec);
+                    System.out.println();
+                    points[i] = vec;				
+                }
+
+                for (int i=0; i<points.length; i++)
+                {
+                    Hep3Vector vec = points[i];
+                    factory.createHepRepPoint(
+                            instance, 
+                            vec.x(), 
+                            vec.y(), 
+                            vec.z()
+                    );
+                }
+
+                /*
 			factory.createHepRepPoint(instance, x1, y1, z1);
 			factory.createHepRepPoint(instance, x1, y2, z1);
 			factory.createHepRepPoint(instance, x2, y2, z1);
@@ -99,38 +102,39 @@
 			factory.createHepRepPoint(instance, x1, y2, z2);
 			factory.createHepRepPoint(instance, x2, y2, z2);
 			factory.createHepRepPoint(instance, x2, y1, z2);
-			*/
-		}	
-		else if ( solid instanceof Tube ) 
-		{			
-			Tube tube = (Tube)geo.getLogicalVolume().getSolid();
-			
-			HepRepType barrel = typeTree.getType("Barrel");
-	        
-	        HepRepType type = factory.createHepRepType(barrel, detelem.getName());
-	        type.addAttValue("drawAs","Cylinder");        
-	        
-	        double zmin = -tube.getZHalfLength();
-	        double zmax = tube.getZHalfLength();
-	        
-	        Hep3Vector point1 = new BasicHep3Vector(0,0,zmin);
-	        Hep3Vector point2 = new BasicHep3Vector(0,0,zmax);
-	        
-	        point1 = geo.transformGlobalToLocal(point1);
-	        point2 = geo.transformGlobalToLocal(point2);
-	        
-	        HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
-	        instance.addAttValue("radius",tube.getInnerRadius());
-	        factory.createHepRepPoint(instance,point1.x(),point1.y(),point1.z());
-	        factory.createHepRepPoint(instance,point2.x(),point2.y(),point2.z());
-	        
-	        HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
-	        instance2.addAttValue("radius",tube.getOuterRadius());
-	        factory.createHepRepPoint(instance2,point1.x(),point1.y(),point1.z());
-	        factory.createHepRepPoint(instance2,point2.x(),point2.y(),point2.z());
-		}				
-		else {
-			System.err.println("IDetectorElementToHepRepConverter - Don't know how to convert shape : " + solid.getName());
-		}
-	}
+                 */
+            }	
+            else if ( solid instanceof Tube ) 
+            {			
+                Tube tube = (Tube)geo.getLogicalVolume().getSolid();
+
+                HepRepType barrel = typeTree.getType("Barrel");
+
+                HepRepType type = factory.createHepRepType(barrel, detelem.getName());
+                type.addAttValue("drawAs","Cylinder");        
+
+                double zmin = -tube.getZHalfLength();
+                double zmax = tube.getZHalfLength();
+
+                Hep3Vector point1 = new BasicHep3Vector(0,0,zmin);
+                Hep3Vector point2 = new BasicHep3Vector(0,0,zmax);
+
+                point1 = geo.transformGlobalToLocal(point1);
+                point2 = geo.transformGlobalToLocal(point2);
+
+                HepRepInstance instance = factory.createHepRepInstance(instanceTree, type);
+                instance.addAttValue("radius",tube.getInnerRadius());
+                factory.createHepRepPoint(instance,point1.x(),point1.y(),point1.z());
+                factory.createHepRepPoint(instance,point2.x(),point2.y(),point2.z());
+
+                HepRepInstance instance2 = factory.createHepRepInstance(instanceTree, type);
+                instance2.addAttValue("radius",tube.getOuterRadius());
+                factory.createHepRepPoint(instance2,point1.x(),point1.y(),point1.z());
+                factory.createHepRepPoint(instance2,point2.x(),point2.y(),point2.z());
+            }				
+            else {
+                System.err.println("IDetectorElementToHepRepConverter - Don't know how to convert shape : " + solid.getName());
+            }
+        }
+    }
 }
CVSspam 0.2.8