Log of /trunk/geom/geompainter/src/TGeoPainter.cxx
Parent Directory
Revision
47228 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 13 17:09:38 2012 UTC (2 years, 2 months ago) by
agheata
File length: 67048 byte(s)
Diff to
previous 39625
Added possibility to prevent known overlaps produced by misalignment by assignig priority to one of the candidates. This is not using the error prone AddNodeOverlap method, but composite shapes. One has to create the unprioritized shape as the subtraction of the original one and the shape of the node to prioritize, then position this composite shape colume with identity matrix. The prioritized volume should be added as node using the same local matrix as the one used in the subtraction operation. The matrix itself has to be declared shared via SetShared() method. Added few parameters to the RandomRays method.
Revision
39018 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 09:38:31 2011 UTC (3 years, 9 months ago) by
agheata
File length: 66956 byte(s)
Diff to
previous 38043
New generic method to check shape navigation methods TGeoShape::CheckShape that can run a given test number from a test suite. Currently a single test implemented (see desctiption in TGeoShape::CheckShape). Fixed TGeoArb8::DistToPlane with respect to boundary crossing. Added possibility to divide assemblies according a pattern (still under development). This is the first step in being able to gave generic divided-like volumes without being forced to have a container shape - particularly useful in describing calorimeters.
Revision
31454 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 30 07:39:14 2009 UTC (5 years, 1 month ago) by
brun
File length: 66176 byte(s)
Diff to
previous 27749
From Andrei:
new class TGeoIterPlugin.
This is an ABC for user plugins that need to call some arbitrary code during
geometry hierarchy iteration. The first use case (requested in Savannah #57591)
is to dynamically change the color of volumes in selected paths, but not the
color of the same volume in other paths. This use case is already implemented
in TGeoPainter and an example of usage is given in the tutorials files
$ROOTSYS/tutorials/geom/iterplugin.cxx and runplugin.C.
Revision
27749 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 10 15:23:52 2009 UTC (5 years, 10 months ago) by
brun
File length: 65168 byte(s)
Diff to
previous 25123
From Andrei:
New method void TGeoManager::CheckBoundaryErrors(Int_t ntracks, Double_t radius). Checks how much the point propagated from a random position and direction to the boundary given by FindNextBoundary() has to be pushed forward or pulled backward to numerically cross (or not cross) the boundary. The optional radius can be used to limit the search volume. The method generates a reference with the points with pushes/pulls lower than 1E-5. This can be played back using the method: void TGeoManager::CheckBoundaryReference(Int_t icheck). If icheck is non-negative, the shape for which the crossing failed is drawn with the starting point in red and the extrapolated point to boundary (+/- failing push/pull) in yellow.
Currently the method gives a distribution with tails at ~1E-5. Investigating these I could not find other than truncation errors effects (that can get surprisingly big) in very rare cases and which need further in-depth investigation to see if they can be due to flaws in shape algorithms or they are just numerical "accidents". There is no obvious error left (at least in case of ALICE geometry)
Revision
25123 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 12 09:59:46 2008 UTC (6 years, 5 months ago) by
brun
File length: 64340 byte(s)
Diff to
previous 22923
From Andrei:
- outline sampling points used for overlap checking were wrongly generated in case navigation/drawing methods were invoked before CheckOverlaps()
- new method TGeoManager::SetNmeshPoints(npoints) can be used to modify the number of mesh points used in overlap checking. Default value is 1000.
- prototype of TGeoPhysicalNode::Align(TGeoMatrix *, TGeoShape *, Bool_t check, Double_t ovlp) changed - last parameter added. Representing the overlap tolerance in case the physical node is aligned with check=true option. Default value 0.001 (10 microns). In this case only the overlaps of the aligned object (or daughters if an assembly) are reported.
- Checking only overlaps of a single node possible by calling: TGeoManager::SetCheckedNode(TGeoNode *node). User responsibility to restore checked node to NULL after the check.
Revision
20104 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 26 14:45:55 2007 UTC (7 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 63146 byte(s)
Diff to
previous 19826
From Andrei:
Fix a problem reported by Alberto Colla:
I am working on the implementation of caching the Grid OCDB data set, using TFile functionality ("CACHEREAD" option). I have found a problem in TGeoManager::Import(). Here the local cache folder is overwritten:
// in case a web file is specified, use the cacheread option to cache
// this file in the local directory
--> TFile::SetCacheFileDir(".");
TFile *f = 0;
if (strstr(filename,"http://")) f = TFile::Open(filename,"CACHEREAD");
else f = TFile::Open(filename);
Revision
19652 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 20 14:00:56 2007 UTC (7 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 62747 byte(s)
Diff to
previous 18989
From Andrei:
Extend functionality of overlap checker and performance analyzer by introducing a new function:
void CheckGeometryFull(Int_t ntracks=10000, Double_t vx=0., Double_t vy=0., Double_t vz=0., Option_t *option="ob")
The method is doing a 4 stage check:
- if option contains 'o': Optional overlap checkings (by sampling and by mesh).
- if option contains 'b': Optional boundary crossing check + timing per volume.
STAGE 1: extensive overlap checking by sampling per volume. Stdout need to be checked by user to get report, then TGeoVolume::CheckOverlaps(0.01, "s") can be called for the suspicious volumes.
STAGE2 : normal overlap checking using the shapes mesh - fills the list of overlaps.
STAGE3 : shooting NRAYS rays from VERTEX and counting the total number of crossings per volume (rays propagated from boundary to boundary until
geometry exit). Timing computed and results stored in a histo.
STAGE4 : shooting 1 mil. random rays inside EACH volume and calling FindNextBoundary() + Safety() for each call. The timing is normalized by the number of crossings computed at stage 2 and presented as percentage.
One can get a picture on which are the most "burned" volumes during
transportation from geometry point of view. Another plot of the timing per volume vs. number of daughters is produced.
All histos are saved in the file statistics.root
Revision
18989 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 8 15:46:30 2007 UTC (7 years, 7 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 62396 byte(s)
Diff to
previous 18630
From Andrei & Mihaela:
I managed together with Mihaela to split out all navigation functionality out of TGeoManager into a new class TGeoNavigator (attached diff, .h and .cxx). The changes are fully backward compatible and did not require modifying the streamer of TGeoManager. We have tested with:
- /roottest/root/io/geo - the reference changes a bit (name of a class)
- aliroot with G3
- /test/stressGeometry
New feature: one has a default navigator for a geometry but may add several others for parallel navigation:
TGeoNavigator *navig = new TGeoNavigator(gGeoManager);
Int_t inav = gGeoManager->AddNavigator(navig);
gGeoManager->SetCurrentNavigator(inav);
.... and then switch back to the default navigator:
gGeoManager->SetCurrentNavigator(0);
One may also derive from TGeoNavigator and implement its own navigation (I doubt that this will ever happen but you never know...)
Revision
16573 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 20 08:38:43 2006 UTC (8 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 62196 byte(s)
Diff to
previous 16285
From Andrei:
a big chunk of modifications that mainly allow converting a geometry
containing reflection matrices into a reflection-free one.
This is done via a mechanism implemented in TGeoManager/TGeoVolume/TGeoScaledShape
classes which can be invoked using:
TGeoManager::ConvertReflections() method once the geometry is closed.
This is required for normal GEANT4 operation and is to be used only
in G4 navigation context.
Besides that, I made some changes which allow now controlling visibility
of nodes/volumes directly from the TBrowser (check-boxes).
This was not really working before.
Revision
15395 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jun 11 12:56:48 2006 UTC (8 years, 7 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 59553 byte(s)
Diff to
previous 15328
From Andrei:
1. Mixtures components can now also be other materials/mixtures:
TGeoMixture::AddElement(TGeoMaterial *mat, Double_t weight);
2. When elements are added via TGeoMixture::AddElement(TGeoElement *elem,...), the list of elements is kept.
3. Some fixes related to visualization within TGeoPainter
Revision
14832 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 25 09:38:27 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 59869 byte(s)
Diff to
previous 14635
From Andrei:
few modifications including a fix to a serious problem: in my last patch
for TGeoPatternFinder.cxx class I removed by mistake a line resulting in the fact that
no division on Z axis is seen anymore by tracking!!
Few other modifications:
- TGeoManager::Edit() to invoke the geometry builder plugin if existing (Mihaela)
- few fixes in the painter for the case when the geometry is not closed
- a small correction in TGeoManager related to MANY's
Revision
14534 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 3 16:19:32 2006 UTC (8 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 56522 byte(s)
Diff to
previous 14438
From Andrei:
- TGeoXtru shapes with polygone vertices defined counter-clockwise in XY
plane were not valid (Andreas) - fixed
- TGeoVolume::SaveAs() works now correctly even in case of assemblies
(Ivana) - fixed by Mihaela
- Some minor precision problems fixed in divisions
- minor fix in navigation in assemblies; assemblies defined as overlapping
now forbidden
- fix for automatic re-voxelization after un-alignment
Revision
14409 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 24 15:11:23 2006 UTC (8 years, 10 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 56987 byte(s)
Diff to
previous 14240
From Andrei:
a big chunk of modifications. The class most affected is TGeoPainter, but
also some external methods (e.g.in TGeoVolume).
Currently all internal loops are working with TGeoIterator. The main advantages are
that: the painter does not need to change the top volume for TGeoManager and the loops
are not longer recursive. This makes painting a process that does not affect any more
(almost) the manager class. It makes possible having parallel views of different parts
of a geometry (or different geometries)
There are also few new features:
- visualisation options can be set at the level of volumes and there are new methods
accessible from the context menu of TGeoVolume:
SetVisContainers: draw all containers
SetVisLeaves : draw only leaves
SetVisOnly : draw only this volume
These options are operational only for the current drawn volume, which is accesible
even from the pad when approaching the right edge with the mouse. The manager class
can also be accessed from the pad approaching the top right corner.
Revision
13960 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jan 31 14:02:36 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53610 byte(s)
Diff to
previous 13864
From Andrei:
1. TGeoManager::SetNodeSelectable(flag); - allows user to make nodes selected in the
pad rather that volumes(default)
2. TGeoManager::ReplaceVolume(TGeoVolume *vorig, TGeoVolume *vnew); - allows
replacement of all occurances of VORIG with VNEW in the geometry tree. VORIG is not
removed from the list of volumes, but all nodes referencing it as their volume or
mother will reference instead VNEW.
3. static TGeoVolumeAssembly::MakeAssemblyFromVolume(TGeoVolume *vorig); - creates a
sort of clone of a normal volume (same daughters inside), but this will be an
assembly. This method can be used togeather with ReplaceVolume() to change some
virtual conainers in a closed geometry with assemblies.
4. TGeoVolume::RemoveNode(TGeoNode *node) - will safely remove a daughter node of a
volume, even if the geometry is closed. Geometry is valid for navigation afterwards.
Revision
12669 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 6 12:34:57 2005 UTC (9 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 52861 byte(s)
Diff to
previous 12627
From Andrei:
a small patch that:
- fixes new method TGeoManager::FindNextBoundaryAndStep() in case of assemblies
and adds computation of safety as option
- fixes initialization of a data member in TGeoPhysicalNode
The new raytracing is a bit faster and much less error-prone due to fixes in the
navigation related to MANY's.
Revision
12592 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 2 13:54:38 2005 UTC (9 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 54147 byte(s)
Diff to
previous 12201
From Andrei:
a rather big patch containing a fix for the sphere mesh from Mihaela
as well as several other small fixes related to navigation + new methods. Before
doing it I included your code checker-related changes.
Mihaela:
- all sphere types (according rmin,rmax,theta1,theta2,phi1,phi2) have now the
minimum needed set of points/segments/polygons. For instance, the spheres with
rmin=0 does not have anymore the mesh for the inner sphere. Also, if there is no
phi segmentation, you do not have anymore the polygons related to the phi
slices.
- ongoing work for the same for cones (not in this patch)
Andrei:
- memory leak in TGeoPhysicalNode::Align() (hopefully) fixed. Original (ideal)
matrix now kept.
- several fixes in TGeoManager::Safety, TGeoManager::SearchNode for properly
checking all extrusions types MANY->ONLY or ONLY->MANY for all current branch.
- fix for overlapping flag bookkeeping when moving up from a divided node. The
number of MANY's in the current branch is now kept as data member of
TGeoManager. Changes in TGeoCache according to this
- Prototype for TGeoManager::FindNextDaughterBoundary() changed to return
crossed daughter index
- new method TGeoManager::FindNextBoundaryAndStep() that in addition to
computing the distance to next boundary propagates current point and finds the
new location. Changes in the raytracing algorithm to use this - seem to work
properly, but I still have to double-check some geometries.
Revision
12201 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 27 13:09:47 2005 UTC (9 years, 6 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53983 byte(s)
Diff to
previous 12180
From Andrei Gheata & Peter Hristov
- The previous patch was still not working properly when one of of the
overlapping partners did not required raw tessalization. The attached patch
definitely fixes the problem: The preference of the viewer (local) is preserved
at TGeoPainter level, but the correct matrix is injected in
TGeoShape::FillBuffer3D. Everything works now.
- Memory leak fix (severe) found by Peter in defining some names in TGeoVolume
class !!!
Revision
11866 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 25 14:25:17 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53984 byte(s)
Diff to
previous 11664
From Richard Maunder:
Major changes to GL viewer to support:
i) Logical/Physical shape pairings
ii) Level of detail (LOD) scheme (TGLSphere only using at present)
iii) Common display list cache
iv) Scene rebuilds for large geometries
v) Some basic interactivity improvements - draw timeouts, drop low LOD
shapes etc
vi) New camara interactions:
Left Mouse: Rotate
Middle Mouse: Truck (pan parallel to camera film plane)
Right Mouse: Side-side drag dolly/zoom
Double click any button to reset the camera.
The previous pan with arrow keys, and zoom on mouse wheel are still
supported.
Camera interaction is default in viewer. These extra camera modes mean
there are not enough mouse buttons for previous right context/select.
To select / invoke context menu use Shift+Left Button and Shift+Right
Button respectively.
Revision
11664 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 25 07:53:27 2005 UTC (9 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53682 byte(s)
Diff to
previous 11646
Implement changes in the TGeoPainter and TGeoChecker such that one
can draw geometries from several TGeoManagers.
The following mods have been made:
-new data member fGeoManager in TGeoVolume.
When a volume is created fGeoManager is set to the current gGeoManager.
When a volume is drawn, a TGeoPainter object is created in its own fGeoManager.
- new function TGeoVolume::GetGeoManager() const
-The TVirtualGeoPainter and TGeoPainter have now a constructor with:
TVirtualGeoPainter(TGeoManager *manager)
TGeoPainter(TGeoManager *manager)
-The TGeoManager::GetGeoPainter is now calling directly the plugin manager
to create a TGeoPainter if necessary.
-In TGeoVolume, all occurences of gGeoManager replaced by fGeoManager.
-In TGeoChecker and TGeoPainter, the existing member fGeom has been
renamed fGeoManager and all occurences of gGeoManager replaced by fGeoManager.
-In TGeoOverlap all occurences of gGeoManager are creplaced by
fVolume->GetGeoManager.
-In rootrc.in mod for calling TGeoPainter with the new argument TGeoManager*.
Revision
11356 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 16 17:18:13 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 51552 byte(s)
Diff to
previous 11336
From Richard Maunder:
More fixes to the external viewer creation/closedown. We now:
i) Always call Modified() and Update() we create an external viewer 3D
(non-pad tyep - x3d or ogl) so that an externally spwaned viewer is
painted automcatically when created. For an internal TViewer3DPad we
asssume this was
ii) No longer paint the pad when the external viewer is closed. This
leaves the pad blank - but this is preferable to causing a double redraw
of the pad as the external viewer is closed - very slow....
This all needs to be revisited as part of supporting multiple viewers
properly on the pad.
Revision
11272 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 9 18:19:27 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50110 byte(s)
Diff to
previous 11076
From Richard Maunder:
Changes to viewer infrastructure (TBuffer3D,TVirtualViewer3D) to
support:
i) Proper shape specific (sphere, tube, etc) descriptions in TBuffer3D
derived classes - c.f. abuse of raw tesselation blocks before.
ii) On demand filling of buffer sections as required by viewer.
iii) Support for local/master frame shapes descriptions & child object
rejection.
iv) Template/placed shapes ids - enabling viewer to detect/receive
common shapes once and just obtain the new position and id of the
duplicate.
Cleans up all producer (g3d/geom) code so no longer has an viewer
specific knowledge - Paint() methods replaced with
GetBuffer3D/FillBuffer3D methods which complete requested sections of
the buffer.
All viewer specific code now sits on the viewer implementation side of
TVirtualViewer3D. Added a TViewer3DPad class for performing the 3D draws
into pad. In future this should be merged with TView/TView3D possibly.
TBuffer3D is now stripped of functional code (aside from memory
management) and various viewer passback options there previously.
Enforced one way passing a const & to viewer.
Buffers (various types) are held as single static inside producer
function e.g. TGeoShape::GetBuffer3D (c.f. single generic buffer type
fetched from pad previously).
For g3d and geom shapes the top level geometry painter (TNode /
TGeoPainter) controlls painting process, requesting shapes to fill
buffer and passing to 3D viewer.
Exceptions are g3d's TPolyLine3D, TPolyMarker3D & TMarker3DBox. These
are 'standalone' shapes - no controlling 'painter' object. They still
implement Paint(), fill buffer and add to viewer directly.
3D viewer still held / created by pad - and pad has it's own viewer
object (TViewer3DPad).
NOTE:
1. Current scheme supports one 3D viewer only - pad, x3d or OpenGL. This
means that pad goes blank when x3d/OGL is spawned, and is updated again
when it is closed. To be revisited - need to support multiple viewers,
of multiple types - which implies explicit naming or pad controlling
enumeration.
2. OGL viewer now responds correct to modifications in pad, without
having to be reinvoked (as previously). x3d is still decoupled (as
previously) so does not rebuild - too difficult to get working.
Revision
11076 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 9 13:30:27 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50883 byte(s)
Diff to
previous 11002
From Mihaela Gheata;
- divisions supporting SavePrimitive
- main SavePrimitive loop implemented at level of TGeoVolume
- user interface: TGeoVolume::SaveAs(const char *filename); having *MENU*
- can be called from the browser for any volume:
the resulting file will have a geometry starting with the selected
volume as TOP.
- should work with TPad::SavePrimitive(ofstream out, Option_t *option)
- not tested however
From Andrei:
I did some changes in TGeoCombiTrans to support a shared rotation matrix.
I also fixed a bug in TGeoTube::GetMakeRuntimeShape (and tube segment)
that produced wrong shapes in case one of the initial parameters was negative.
Revision
11002 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 28 10:01:04 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50931 byte(s)
Diff to
previous 10699
From Andrei:
I attached the first big chunk of changes.
The methods changed are mostly the implementations of TGeoShape::DistFromInside/DistFromOutside for some specific shapes. The new algorithms are boundary error tolerant, giving the correct distance even if the point is on the wrong side of the boundary. The calling sequence remains un-changed. The affected shapes for now are: box, trd1, trd2, tube, tube seg, cone, cone seg, pcon, pgon. I will complete few remaining for the full description of ALICE next week (para + arb8 family: trap,gtra).
Revision
10699 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 7 14:24:57 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50862 byte(s)
Diff to
previous 10670
From Andrei Gheata:
I attached some diffs as proposed by Matevz and Alja which made their
own GL-based TGeo viewer in GLED. The changes are just structural:
- lines/polygons filling splitted out from TGeoShape::Paint() as
TGeoShape::SetLinesAndPols(TBuffer3D *buff).
- Shapes can create and fill a new TBuffer3D with the new method:
TGeoShape::Make3DBuffer() in the local frame
They need this since they have their own geometry tree parsing algorithm
(not the same as in TGeoPainter::PaintNode()) with another
structure/matrix handling system. Basically they just need one buffer
per volume, reusing them since they attach them to TGeoVolume as user
data. Not quite bad idea: they create only once a limited number of
buffers that they re-use without re-filling...
Revision
10669 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 2 15:21:02 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 51028 byte(s)
Diff to
previous 10626
From Andrei Gheata:
few modifications in order to be able to handle geometry
files as any other root file. For instance, you want to be able to open
them from a browser, get the geometry in memory (and in the browser too)
by just clicking. You can also open several files one after another, but
the previous opened geometry will be deleted (and browser refreshed).
Revision
10626 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 26 11:08:05 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50748 byte(s)
Diff to
previous 10621
From Andrei Gheata:
I have turned back on the modifications by Timur in TGeoTube, but with
the correct rotation matrix now. The problem is still that with this on,
reflected tubes are wrong. In this case the reflection bit has to be
ignored by TGLTube since it is not a FaceSet representation (where the
order of segments matter). Just commenting out 2 lines in TGLTube I get
the correct behavior.
Revision
10621 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 25 12:10:01 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50472 byte(s)
Diff to
previous 10498
From Andrei and Mihaela Gheata:
New shape TGeoHype from Mihaela.
This patch contains all modifications in TGeo, additions in
g2root to adjust format of MakeHype(...) and a fix in TBuffer3D.cxx
(Paint("SAME")). Also Mihaela modified geodemo.C
The modifications (made by Timur probably) TGeoTube::Paint() for making
GL-like tubes are wrong so I temporary disabled them. The global matrix
filled to GL is wrongly retreived (+ it may come from other sources in
case of overlap drawing).
Revision
10342 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 18 15:28:24 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 54688 byte(s)
Diff to
previous 10313
From Andrei Gheata:
- new TGeoManager::SetVisDensity() to set treshold for invisible volumes
by density. By default is 0, meaning the feature is disabled (one sees
everything)
- additional cleanup in TGeoPainter. 3D viewing is now possible in
parallel with raytracing.
- minor fixes in automatic visible depth computation
Revision
10313 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 15 15:30:50 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 59133 byte(s)
Diff to
previous 10264
From Andrei Gheata;
- cleanup of all obsolete methods related to the old 3D visualization in
TGeoPainter
- fix in color settings for TGeoPhysicalNode - minor, but touches most
shape.cxx files
- improved visible node counting - it is now automatic and verbose. By
default the visible depth is automatized for 10000 nodes (as before) but
calling gGeoManager->SetVisLevel(n) disables this and switches to old
style. It can be turned on to automatic state by calling
gGeoManager->SetMaxVisNodes(n) (which also updates the current view).
Limitation : nodes are not recount after setting volumes or branches
invisible unless a new Draw() is called.
Revision
10264 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 8 15:09:55 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 105657 byte(s)
Diff to
previous 9928
Add a new member in TGeoManager
fMaxVisNodes; //maximum number of visible nodes.
with the corresponding Getter and Setter (in menu).
The default value is 10000.
Based on this value, the maximum number of visible levels is computed
when drawing a volume.
Revision
9928 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 6 16:42:33 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 104949 byte(s)
Diff to
previous 9751
From Andrei
-SetBit(kIsReflection) in TGeoShape::paint when the object has a reflection matrix.
-Exploded view works again.
-Set TGeoVolume instead of TGeoShape when filling TBuffer3D
-Modify rootgeom.C ("R" problem). TGeoArb8 allowing definition of vertices in any order.
Revision
9751 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 13 07:38:11 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 104517 byte(s)
Diff to
previous 9665
From Andrei Gheata:
- TGeoHalfSpace - we needed half-spaces for FLUKA example from Alfredo,
so Mihaela implemented this shape. It can be used only as component of a
composite shape, in combination with a finite shape. Defined by:
- a point lying on the plane
- normal to the plane at this point, pointing outwards the half-space
Revision
9665 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 3 16:01:19 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 104260 byte(s)
Diff to
previous 9313
From Olivier, Timur Pocheptsov , Andrei Gheata and Rene
Mega patch to introduce the new 3-d interface (to be described later).
The new interface has been tested with both X3D and OpenGL under Linux.
Being tested under Windows.
Note that several changes are expected in these classes (OpenGL in particular)
in the coming days.
Revision
8648 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 22 14:07:15 2004 UTC (10 years, 9 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 99780 byte(s)
Diff to
previous 8258
From Andrei Gheata:
- TGeoXtru navigation now fully implemented by Mihaela
- Improvements in the ray-tracing algorithm
- Added TGeoShape::GetNmeshVertices() to be used by visualization and by
the overlap checker in case of composite shapes (currently the checker
does not work with composites)
- I have created a new demo macro (see /tutorials/geodemo.C in the
attachment) to replace /tutorials/geoshapes.C. Functionality:
- all previous functionality of geoshapes.C
- new shapes examples added: TGeoTorus, TGeoXtru, TGeoCompositeShape
- can call rootgeom.C
- ray-tracing can be switched on/off
- comments can be switched on/off
- demonstrates alignment
Revision
8258 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 19 12:58:30 2004 UTC (10 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 99464 byte(s)
Diff to
previous 8163
From Andrei Gheata:
modifications for the inclusion of the new class
TGeoPhysicalNode (new files TGeoPhysicalNode.h/.cxx). This represents a
branch of the geometry tree (represented by a path) and can be
visualized in addition to the default visualization. They will be used
also for aligning the geometry, but this is not yet implemented.
Revision
8163 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 9 14:03:34 2004 UTC (10 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 96447 byte(s)
Diff to
previous 7724
From Andrei Gheata:
I have attached the new files and all modifications done by Mihaela to
include the new shape TGeoXtru representing the old TXTRU shape.
Currently she implemented the Contains() method. The shape can be also
visualized in the pad or x3d (see atached macro). The only limitation in
x3d is that the end-polygons are not decomposed into convex polygons, so
in case the section of the TGeoXtru is concave the drawing is not well
handled.
I also included a minor modification in TGeoManager.h needed by FLUKA
(that now can perform tracking and completers gAlice->Run() with TGeo!!!)
Revision
7172 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 29 09:55:29 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 89669 byte(s)
Diff to
previous 7170
New considerable speed-up of the ray tracing algorithm.
Alice can be drawn in 14.5s instead of 1400s.
-Add bit kVisOnScreen in TGeoAtt.
-Replace calls to TGeoPainter::IsOnScreen by calls to TGeoAtt::TestBit(TGeoAtt::kVisOnScreen)
-delete function TVirtualGeoPainter::IsOnScreen and TGeoPainter::IsOnScreen
-In TGeoNode replace call to TGeoPainter::IsOnScreen by TGeoAtt::TestBit(TGeoAtt::kVisOnScreen)
Revision
7170 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 29 07:03:25 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 89307 byte(s)
Diff to
previous 7168
Fix by Philippe to a problem reported by Maarten
TFormula::TFormula(TFormula const &) was indirecly accessing uninitialized memory.
This is fixed by initializing the value in it.
TF1::Copy was leaking memory (not deleting existing arrays), once this was fixed,
this required to add the proper initialization in TF1::TF1(TF1 const &).
Revision
7168 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 28 14:09:08 2003 UTC (11 years, 4 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 89059 byte(s)
Diff to
previous 7141
Optimize TGeoPainter::IsOnScreen, calling TObjArray::IndexOf instead of an implicit
loop on all array elements. This gives a factor 10 when drawing Alice in ray-tracing mode.
Yet a better solution would be to build a sorted table of pointers to visible volumes
followed by a binary search.
Revision
7121 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 21 08:27:34 2003 UTC (11 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 89046 byte(s)
Diff to
previous 7022
From Andrei Gheata:
- computation of normals to all primitive shapes, except TGeoCompositeShape
- improved TGeoTorus algorithms
- ray tracing feature : works as TGeoVolume::Draw() except that the
volume is ray-traced according to current visualization settings. All
features from a normal drawing are preserved : picking, zooming,
rotating,... The time for producing the ray-traced image scales with the
surface of the current pad (in pixels) and to the number of visible
nodes on screen. The current image can be clipped with any other shape,
defined in the reference frame of the current drawn volume. It works like:
TGeoTubeSeg *clip = new TGeoTubeSeg(params...);
gGeoManager->SetClippingShape(clip);
someVolume->Raytrace();
...
gGeoManager->SetClipping(kFALSE/kTRUE); to disable/enable clipping.
If the clipping shape is changed, the old one is automatically deleted.
Revision
7022 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 31 20:19:33 2003 UTC (11 years, 5 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 79073 byte(s)
Diff to
previous 6725
From Andrei GHeata:
- TGeoManager::FindNormal(Bool_t forward=kTRUE) = global algorithm for
finding the normal to the next/previous crossed surface, from the
current global point/direction. The current point does not necessary
need to be close to the surface, and the normal direction is always
returned so that its dot product with the current direction is positive
defined. One can get the normal after its computation with:
Double_t *TGeoManager::GetNormal()
- Normal computation algorithms for box, arb8, trap, gtra, cone in the
corresponding shape classes.
- New primitive shape fully implemented, from visualization to
computation of distances (except the normal computation, missing also
for several other shapes). Class name: TGeoTorus, representing a torus
segment with :
- R - radius of the circle representing the torus axis
- Rmin - inner radius (like a donut having a hole in the middle)
- Rmax - outer radius (Rmin < Rmax < R)
- Phi1 - start phi
- Dphi - phi range
- Some unused obsolete methods removed from the TGeoShape class.
- modifications in TGeoIdentity default ctor to initialize gGeoIdentity
- TGeoMaterial::IsMixture(),
TGeoMaterial::FindDuplicateMaterial(const TGeoMaterial *mat)
- several other minor changes
Revision
6725 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 17 09:13:56 2003 UTC (11 years, 7 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 68989 byte(s)
Diff to
previous 6563
New version of the geometry package from Andrei/Mihaela
TGeoArb8 - pictures added
TGeoBBox - doc, pictures
TGeoCache - id array for physical nodes
TGeoCompositeShape - doc added
TGeoCone - pictures, bug fiz in Z divisions, correction in 'safety'
TGeoEltu - pict. added
TGeoManager - registration of matrices, unique volume id's
TGeoMatrix - copy ctors., = and * operators, improvements, extensive doc.
TGeoNode - doc added
TGeoPara - pictures
TGeoPatternFinder - registration of pattern matrices
TGeoPcon - fix in Z divisions, fix in 'safety', pictures
TGeoPgon - same as Pcon
TGeoShape - doc added
TGeoSphere, Trd1,2, Tube - pictures added
TGeoVolume - doc updated
TGeoChecker - doc., improvement of extrusions checker by Mihaela
TGeoPainter - does not create polygons array in X3dBuffers when drawing
in pad
TGeoTrack - compilation warnings fixed
Revision
6563 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 7 13:32:39 2003 UTC (11 years, 8 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 66995 byte(s)
Diff to
previous 6136
New version of the geometry package from Andrei:
4 new files:
geom/inc/TVirtualGeoTrack.h
geom/src/TVirtualGeoTrack.cxx
geompainter/inc/TGeoTrack.h
geompainter/src/TGeoTrack.cxx
This new version adds support for track visualization. Adding tracks is a user task
and can be done using :
TGeoManager::AddTrack() for primary tracks. The manager class knows
about the current primary and provides utility methods to
retreive/change this. Users has to handle only TVirtualGeoTracks.
Secondaries can be added to their primary :
TVirtualGeoTrack::AddDaughter()
Points (x,y,z,tof) can be associated with a track :
TVirtualGeoTrack::AddPoint()
Providing tracks to the modeller and adding points are users tasks.
Track names should be supplied by users after creation :
TVirtualGeoTrack::SetName() - note that tracks are not tnamed
objects, but their names are globally handled by the TGeoManager. The
usage of ROOT default particle names are recommended for tracks since it
triggers special colors/line attributes.
Tracks are drawable/pickable objects. Drawing options are :
- default - only current track drawn
- /D - track and first level daughters
- /* - track and all descendents
- /N<name> - only tracks from particles with given <name>
If points with time of flight are supplied, the drawing range tmin,tmax
can be specified :
TGeoManager::SetTminTmax() (if no arguments time cut is supressed)
Tracks can be animated individually or global :
TVirtualGeoTrack::AnimateTrack(tmin,tmax,nframes,option)
TGeoManager::AnimateTrack(tmin,tmax,nframes,option)
Animation otions are :
/G - animate also geometry in the given time interval
/S - save all frames as .gif files
drawing options act as well in animation. Options can be concatenated
and should be upper case (due to /N<name>)
If tracks are defined, the geometry I/O takes them into account.
However, when loading a geometry file containing tracks, libGeomPainter
has to be loaded since it contains the class implementation definition :
gSystem->Load("libGeom")
gSystem->Load("libGeomPainter")
TGeoManager::Import("mygeom.root")
Revision
6136 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 17 11:57:31 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 64221 byte(s)
Diff to
previous 6122
m andrei;
TGeoManager :
- added TGeoManager::Safety() that computes the global safety for the
current point. This is just the first implementation, since it does not
use yet voxelization. This will be needed for the VMC because for the
time being safety is computed just for the crossed volumes along the
current direction plus the current volume, which of course is not enough
- finding the closest neighbour for a given point has to use a different
algorithm.
- added weight estimation for the top volume
TGeoMaterial :
- material index in the list of materials added as data member (as for
volumes) - I needed this for weight computation, but it will be helpfull
for any other analysis based on material indexing.
TGeoVolume :
- weight estimation method in the context menu of volumes : can be
verbose (default) or not and takes as argument the desired precision.
Prints error (1 x SIGMA)
TGeoChecker:
- implementation of weight estimation based on sampling random points
in the bounding box of a volume. Materials with rho<0.01 g/cm3 (mostly
gases) ignored due to the fact that we generally do not want to weight
the air in the top volume container (it can have quite significant mass)
other modified classes just provide redirection of Weight() method to
the geopainter package.
Revision
6083 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 10 17:23:14 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 56948 byte(s)
Diff to
previous 6068
From Andrei:
- new files TGeoOverlap.h/cxx in geompainter directory. Contains one
base class and 2 derived, describing overlaps. The CheckOverlaps()
methods in TGeoManager and TGeoVolume fills a list of these objects
which is held by TGeoManager class and appears in the browser as
"Illegal overlaps". The elements in this list are ordered according the
overlapping distance, big comes first and extrusions before node
overlaps. Double-clicking triggers drawing. Points in the
overlapping/extruding region are paint in red, while the 2 candidates in
bleu/green. The list of overlaps is dynamic and changes whenever a check
is done per volume.
- volumes with invalid shapes post a warning (see ATLAS)
Revision
6068 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 7 13:46:48 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 56931 byte(s)
Diff to
previous 6038
New version from Andrei and Mihaela:
- several implementations of method Safety for shapes
- few bug fixes in safety computation (phi segmented shapes)
- volumes have now an unique ID that you can get with GetNumber()
- Mihaela implemented an overlap checker that can be called either for
all geometry :
TGeoManager::CheckOverlaps(Double_t ovlp=0.1) or just for a given
volume. OVLP is the lower overlapping limit. The checker looks for the
following errors in the geometry definition :
1 - nodes extruding their mother - can be visualised with
TGeoManager::DrawExtrusion(char *mother, char *node) which draws mother
in blue and extruding daughter in red
2 - ONLY brothers overlapping to each other - can be visualized with
TGeoManager::DrawOverlap(char *volume, char *node1, char *node2) - node1
will appear in red and node2 in blue.
These methods can be called only after CheckOverlaps() that prints the
list of overlaps. They are all in the context menu of both TGeoVolume
and TGeoManager.
Revision
6038 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 31 16:38:23 2003 UTC (11 years, 11 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53779 byte(s)
Diff to
previous 5848
New version of the geometry package from Andrei:
- new algorithms for computing safety for tubes, cones, pcon
- TGeoChecker::CheckPoint() modified so that a "safety ball" is drawn
when one uses it. - global tracking modified such that the distances for most of the
shapes (except pgon and arb8) are computed only if the safety to these
shapes is smaller than a refference value.
There is one limitation in case global safety is computed : the value
fSafety hold by TGeoManager does not represent the real safety, but the
minimum safety value among those calculated for the checked nodes.
Therefore if some node is "backwards" w.r.t the current direction, it
will be ignored in safety computation. I do not know if this affects
tracking, but I guess not. In short words, the global safety depends on
the current direction - for instance after just exiting a volume it
might happen that safety is not a very small value.
Revision
5621 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 20 08:55:11 2002 UTC (12 years, 2 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 53376 byte(s)
Diff to
previous 5454
Following improvements by Andrei Gheata:
1. gpad - containing a modified src/TPad.cxx (notification to TView
class when resizing the pad and having perspective view)
2. base - containing modified TView.h/.cxx
3. geom, geompainter - modifications to geometry classes (perspective
view support + some bug fixes in shape algorithms)
New features :
- First implementation of TGeoChecker::CheckGeometry() by Mihaela : it
can be called from the volume context menu and for the time being just
draws the boundary intersections not matching on the way back and forth
(no histogram generated). Anyway, we discovered by using it that we have
to correct several bugs in the shapes DistToIn/Out algorithms ... :-(
- Perspective view fully implemented. Activated with TView(11) - this is
the default now for the new geometry classes. For all other views
(instantiated usually with TView(1)) one can switch parralel/perspective
from TView context menu.
- Navigation inside geometries based on perspective view : just draw
some geometry, then double-click on volumes in the pad - you will get a
nice grab-focus effect (specially if the number of volumes on screen is
relatively small)
- navigation keys : zoom in/out, move left/right/up/down exactly like in x3d
- resizing of pad and drawing of axes in TView supported - aspect ratio
always kept.
Revision
5443 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 21 15:21:13 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50947 byte(s)
Diff to
previous 5407
Upgrade of the geom classes by Andrei:
- improvements in the drawing mechanism (nodes can also be made
invisible, having higher priority than volumes;
- possibility of simple phi cut in TGeoManager::SetPhiRange(phimin, phimax)
- by default the phi range is (0, 360) - no cut performed
- setting different values for phimin, phimax will make invisible the
nodes having the origin in this range;
- documentation updated for TGeoArb8 class (picture in /gif directory)
Revision
5367 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 30 20:44:36 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 50106 byte(s)
Diff to
previous 5354
A few changes in several classes in order to restore a TGeoManager.
Implement two new functions in TGeoManager
Int_t TGeoManager::Export(const char *filename, const char *name, Option_t *option)
{
// Export this geometry on filename with a key=name
// By default the geometry is saved without the voxelisation info.
// Use option 'v" to save the voxelisation info.
TGeoManager *TGeoManager::Import(const char *filename, const char *name, Option_t *option)
{
//static function
//Import in memory from filename the geometry with key=name.
//if name="" (default), the first TGeoManager object in the file is returned.
//Note that this function deletes the current gGeoManager (if one)
//before importing the new object.
Revision
5354 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 27 16:16:06 2002 UTC (12 years, 3 months ago) by
brun
Original Path:
trunk/geompainter/src/TGeoPainter.cxx
File length: 49202 byte(s)
Diff to
previous 4956
New version of the geometry package by Andrea & Mihaela Gheata
New features:
-I/O for all geometry classes. For example, to save/restore a geometry structure,
TFile f("mygeom.root","recreate");
gGeoManager->Write("mygeom");
and to read it back;
TFile f("mygeom.root");
f.Get("myGeom");
gGeoManager->CloseGeometry();
-Composite shapes fully implemented (no visualisation yet).
A composite shape is built out of basic shapes and transformations via
a simple formula mechanism, eg assuming a TGeoTube "tub1" and a TGeoMatrix "r1",
we can build a composite shape with:
TGeoCompositeShape *comp = new TGeoCompositeShape("comp",formula); where
char* formula="tub1+tub1:r1"
This will create the union of a tube with itself rotated.
The operators recognized by the geometry formula parser are "+","-","*"
for union, subtraction and intersection respectively. The colon ":" can be
used to specify a transformation for a given component.
-The voxelisation in cylindrical coordinates added as an optional optimisation
algorithm.
-Some bug fixes and several improvements in the tracking-related algorithms.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.