[root] / trunk / geom / geompainter / inc / TGeoPainter.h Repository:
ViewVC logotype

Log of /trunk/geom/geompainter/inc/TGeoPainter.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

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: 10587 byte(s)
Diff to previous 39018
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: 10535 byte(s)
Diff to previous 35698
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 35698 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 24 07:37:08 2010 UTC (4 years, 4 months ago) by agheata
File length: 10435 byte(s)
Diff to previous 31454
Replaced sprintf with TString manip.

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: 10435 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: 10209 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: 10058 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 22923 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 1 12:34:14 2008 UTC (6 years, 9 months ago) by rdm
File length: 9951 byte(s)
Diff to previous 21425
move geom, geombuilder, geompainter and gdml to geom meta directory.

Revision 21425 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 17 15:59:27 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9951 byte(s)
Diff to previous 20882
From Andrei:
Improve the documentation layout such that THtml makes a better rendering.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9876 byte(s)
Diff to previous 20416
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 20416 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 19 14:56:15 2007 UTC (7 years, 3 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9876 byte(s)
Diff to previous 19652
From Andrei:
some modifications to the progress bar and included it when calling gGeoManager->CheckOverlaps()

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/inc/TGeoPainter.h
File length: 9725 byte(s)
Diff to previous 16573
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 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/inc/TGeoPainter.h
File length: 9579 byte(s)
Diff to previous 16276
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 16276 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 15 10:23:07 2006 UTC (8 years, 4 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9559 byte(s)
Diff to previous 15523
From Mihaela:
Fix problem with the reference to TF1 by moving the graphics code to TGeoPainter

Revision 15523 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 23 11:55:15 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9457 byte(s)
Diff to previous 15403
From Andrei and matevz Tadel:
a patch allowing to paint volumes/nodes with a pre-defined global transformation.

Revision 15403 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 13 12:28:44 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9413 byte(s)
Diff to previous 15395
I forgot to check-in these files from last Andrei's patch

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/inc/TGeoPainter.h
File length: 9303 byte(s)
Diff to previous 14832
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/inc/TGeoPainter.h
File length: 9236 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 14635 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 11 11:21:45 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9179 byte(s)
Diff to previous 14438
From Andrei:
diff needed by Mihaela for the geometry builder: possibility to draw a
shape.

Revision 14438 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 28 12:47:19 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 8800 byte(s)
Diff to previous 14409
From Andrei:
a patch that provides a fix for my latest modifications in the painter.
Drawing overlaps produced a crash in some particular cases.

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/inc/TGeoPainter.h
File length: 8816 byte(s)
Diff to previous 13282
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 13282 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 18 16:07:59 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 8112 byte(s)
Diff to previous 12640
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

Revision 12640 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 4 19:24:00 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 8111 byte(s)
Diff to previous 11664
Remove unused structure X3DPoints.

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/inc/TGeoPainter.h
File length: 8237 byte(s)
Diff to previous 11272
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 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/inc/TGeoPainter.h
File length: 8211 byte(s)
Diff to previous 10621
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 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/inc/TGeoPainter.h
File length: 8151 byte(s)
Diff to previous 10342
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/inc/TGeoPainter.h
File length: 8663 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/inc/TGeoPainter.h
File length: 8724 byte(s)
Diff to previous 9313
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 9313 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 25 12:13:44 2004 UTC (10 years, 7 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9285 byte(s)
Diff to previous 8565
From Andrei Gheata:

Remove all PaintNext functions.

Revision 8565 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 13 07:04:42 2004 UTC (10 years, 9 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9312 byte(s)
Diff to previous 8258
From Andrei Gheata:

- All shapes.cxx - added shape name in InspectShape() + some corrections
in error messages (Bjorn requirement)
- TGeoAtt.cxx - activity flag added (not yet taken into account by tracking)
- TGeoMaterial/Medium - added Cerenkov properties by Andreas (for FLUKA)
- TGeoVolume.h, TGeoManager.k - added *TOGGLE* 's
- TGeoPhysicalNode - possibility to align a physical node. One can
define a physical node according a path, then change its local
transformation matrix OR shape - the corresponding branch is decoupled
from the logical tree and a new trackable branch is created. A
post-alignment check for overlaps can be perfomed for the aligned node.

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/inc/TGeoPainter.h
File length: 9245 byte(s)
Diff to previous 8195
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 8195 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 13 14:27:00 2004 UTC (10 years, 11 months ago) by rdm
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 9164 byte(s)
Diff to previous 8163
added missing cvs "// @(#)..." ident lines.

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/inc/TGeoPainter.h
File length: 9135 byte(s)
Diff to previous 7570
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 7570 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 11 16:01:48 2003 UTC (11 years, 2 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 8978 byte(s)
Diff to previous 7172
Forgot to add these changes from Andrei in the previous check-in

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/inc/TGeoPainter.h
File length: 8931 byte(s)
Diff to previous 7121
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 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/inc/TGeoPainter.h
File length: 8936 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/inc/TGeoPainter.h
File length: 8339 byte(s)
Diff to previous 6563
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 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/inc/TGeoPainter.h
File length: 8180 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/inc/TGeoPainter.h
File length: 7666 byte(s)
Diff to previous 6114
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 6114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 12 17:20:55 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 7594 byte(s)
Diff to previous 6085
From Andrei:
"I managed to change completely the way to draw overlaps. Now class
TGeoOverlap has line and 3D attributes and paints by itself without
affecting the geometry at all. It prints the object stats when activated
in the pad."

Revision 6085 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 11 08:48:21 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 7226 byte(s)
Diff to previous 6068
From Andrei;
add method TGeoManager::PrintOverlaps
fix compilation warnings

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/inc/TGeoPainter.h
File length: 7181 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/inc/TGeoPainter.h
File length: 6633 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 5848 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 6 17:05:44 2003 UTC (12 years ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 6511 byte(s)
Diff to previous 5621
many changes in the geometry package.
Addition of the new class TGeoMedium

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/inc/TGeoPainter.h
File length: 6499 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 5454 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 22 07:43:12 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 6165 byte(s)
Diff to previous 5407
A few fixes to avoid compiler warnings

Revision 5407 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 9 12:57:40 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 6166 byte(s)
Diff to previous 5367
Add a tentative prototype for producing the lego plot of radiation length
in function of theta and phi.

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/inc/TGeoPainter.h
File length: 5888 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/inc/TGeoPainter.h
File length: 5903 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.

Revision 4956 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 17 13:27:59 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 5617 byte(s)
Diff to previous 4918
New version of the geometry package from Andrei. Many comments changed.

Revision 4918 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 15 15:32:25 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 5521 byte(s)
Diff to previous 4874
New version of the geometry package by Andrei.
All graphics moved to geompainter (hopefully)

Revision 4874 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 10 19:24:17 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 2701 byte(s)
Diff to previous 4840
A new iteration to port the geometry package on different systems.
Progress towards ROOT naming and style conventions
Add constness in most classes (work not yet completed).

Revision 4840 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue Jul 9 13:04:32 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geompainter/inc/TGeoPainter.h
File length: 2486 byte(s)
Add new geompainter package

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9