[root] / trunk / geom / geompainter / src / TGeoPainter.cxx Repository:
ViewVC logotype

Log of /trunk/geom/geompainter/src/TGeoPainter.cxx

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: 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 39625 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 9 08:17:13 2011 UTC (3 years, 7 months ago) by agheata
File length: 66981 byte(s)
Diff to previous 39018
Random generator is not recreated anymore

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 38043 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 11 08:15:40 2011 UTC (3 years, 11 months ago) by rdm
File length: 66400 byte(s)
Diff to previous 38032
fix compiler warning:
TGeoPainter.cxx:1194: warning: 'transparency' may be used uninitialized in this function

Revision 38032 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 10 13:10:16 2011 UTC (3 years, 11 months ago) by agheata
File length: 66397 byte(s)
Diff to previous 36535
handle also transparency for the iterator plugin

Revision 36535 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 8 14:41:54 2010 UTC (4 years, 2 months ago) by agheata
File length: 66189 byte(s)
Diff to previous 35698
Changed Form() to TString::Format() everywhere

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: 66123 byte(s)
Diff to previous 35668
Replaced sprintf with TString manip.

Revision 35668 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 14:53:47 2010 UTC (4 years, 4 months ago) by agheata
File length: 66150 byte(s)
Diff to previous 35637
Fixed deadcode issue.

Revision 35637 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 23 09:53:24 2010 UTC (4 years, 4 months ago) by agheata
File length: 66178 byte(s)
Diff to previous 31454
Fixed unused variable

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 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: 63807 byte(s)
Diff to previous 21972
move geom, geombuilder, geompainter and gdml to geom meta directory.

Revision 21972 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 4 15:30:32 2008 UTC (6 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 63807 byte(s)
Diff to previous 21494
From Andrei:
Fix in TGeoTorus painter when using ray tracing.

Revision 21494 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 19 15:50:40 2007 UTC (7 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 63718 byte(s)
Diff to previous 20882
Update to the class docs and index.txt files.

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/src/TGeoPainter.cxx
File length: 63445 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/src/TGeoPainter.cxx
File length: 63445 byte(s)
Diff to previous 20104
From Andrei:
some modifications to the progress bar and included it when calling gGeoManager->CheckOverlaps()

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 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 63119 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 63174 byte(s)
Diff to previous 19821
remove :$ from tag line

Revision 19821 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 08:43:32 2007 UTC (7 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 63184 byte(s)
Diff to previous 19817
From Andrei:
adds a progress bar to raytracing that can be sometimes lengthy.

Revision 19817 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 18 13:59:37 2007 UTC (7 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62993 byte(s)
Diff to previous 19689
From andrei:
The patch fixes raytracing in the presence of a clipping shape.

Revision 19689 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 27 07:42:30 2007 UTC (7 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62749 byte(s)
Diff to previous 19652
From Andrei:
Fix for bug :https://savannah.cern.ch/bugs/?29021

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 18630 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 2 06:51:30 2007 UTC (7 years, 8 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62307 byte(s)
Diff to previous 18261
From Andrei:
commenting the output of TGeoPainter::SetVisLevel.

Revision 18261 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 14 11:31:36 2007 UTC (7 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62303 byte(s)
Diff to previous 17998
From Andrei:
a small patch related to color indexing changes in ROOT. Also a small fix in TGeoManager::CdNext().

Revision 17998 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 18 14:58:56 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62072 byte(s)
Diff to previous 17967
-Replace all calls to the TView constructor by a call to the new static
function  TView::CreateView.

Revision 17967 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 15 15:04:41 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62024 byte(s)
Diff to previous 17581
-replace calls to gROOT->GetMakeDefCanvas()() by gROOT->MakeDefCanvas()

Revision 17581 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jan 30 11:49:15 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62236 byte(s)
Diff to previous 17338
-Replace calls to gROOT->GetClass by TClass::GetClass
-Remove unused references to TROOT.h
-Add include TClass.h in classes assuming an implicit include by other classes

Revision 17338 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 15 16:10:11 2007 UTC (8 years ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62215 byte(s)
Diff to previous 16573
Remove TMath.h from TH1.h and add TMath.h to all files previously assuming TMath.h
via TH1.h
This should complete the changes related to TMath.

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 16285 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 17 14:16:37 2006 UTC (8 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 62253 byte(s)
Diff to previous 16276
Better scale settings

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/src/TGeoPainter.cxx
File length: 62047 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/src/TGeoPainter.cxx
File length: 60752 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/src/TGeoPainter.cxx
File length: 60176 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/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 15328 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Jun 4 09:35:24 2006 UTC (8 years, 7 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 59975 byte(s)
Diff to previous 15183
from Andrei:
a fix for painting composite shapes. A volume having a composite shape was always paint in the origin of the master frame when painting in OpenGL.

Revision 15183 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 26 16:26:25 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 59971 byte(s)
Diff to previous 14971
From Andrei,

 This patch fixes the range problem mentioned in the forum message.

 http://root.cern.ch/phpBB2/viewtopic.php?t=3479

Revision 14971 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 9 10:24:27 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 59869 byte(s)
Diff to previous 14863
Fix several coding convention violations.

Revision 14863 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 27 10:19:43 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 59870 byte(s)
Diff to previous 14832
From Axel:
This patch fixes 2 MSVC8 warnings.

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 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/src/TGeoPainter.cxx
File length: 59116 byte(s)
Diff to previous 14534
From Andrei:
diff needed by Mihaela for the geometry builder: possibility to draw a
shape.

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 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/src/TGeoPainter.cxx
File length: 56631 byte(s)
Diff to previous 14426
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 14426 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 27 10:22:56 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 56988 byte(s)
Diff to previous 14409
From Axel:
this removes an MSVC8 warning "*/ outside comment".

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 14240 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 13 11:03:36 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 52186 byte(s)
Diff to previous 14093
From Andrei & Philippe
Fix a possible double delete problem in TGeoVoxelFinder

Revision 14093 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 23 13:23:08 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 51729 byte(s)
Diff to previous 13960
From Andrei:
- simplification of TGeoOverlap class: derived classes TGeoNodeOverlap and
TGeoExtrusion removed
- The overlap checker perform the check also for assembly candidates
- Improvements in TGeoIterator class
- Minor fix in TGeoVoxelFinder class

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 13864 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 19 11:23:08 2006 UTC (9 years ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 53040 byte(s)
Diff to previous 13411
From Andrei:
- new TGeoNode::CheckOverlaps() allows checking overlaps for a whole geometry branch.
- fix in the paint mechanism when raytracing for a problem mentioned by Ivana (when
raytracing a volume without having a pad created it did not work)

Revision 13411 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 29 18:58:10 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 52908 byte(s)
Diff to previous 13282
From Andrei:
 gPad->Update() is called only if gROOT->FromPopUp()
is true (call made via context menu).

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/src/TGeoPainter.cxx
File length: 53401 byte(s)
Diff to previous 12893
From Andrei:
a patch fixing RS2 and RS4 coding conventions violations..

Revision 12893 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 3 15:26:50 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 53072 byte(s)
Diff to previous 12669
From Andrei:
protection for Solaris (see below the message from Peter). Also a fix
for drawing physical nodes.

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 12627 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 4 11:50:47 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 54250 byte(s)
Diff to previous 12592
Fix coding conventions violations.

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 12180 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 24 14:28:57 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 54297 byte(s)
Diff to previous 12054
From Andrei Gheata and Richard Maunder
Fix to avoid a crash when viewing detector overlaps in the GL viewer.

Revision 12054 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 11:53:00 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 53984 byte(s)
Diff to previous 12051
From Andrei Gheata:
For back compatibility reasons, revert to TObjArrays instead of THashList.

Revision 12051 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 08:44:35 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 54005 byte(s)
Diff to previous 11866
From Andrei Gheata & Federico Carminati
Speed up volume search time by replacing TObjArray by a THashList

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 11646 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 21 08:13:25 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 53184 byte(s)
Diff to previous 11492
From Richard Maunder:
Fix problem with pad zooming (j/k keys). Set AutoRange (frame) once on
TView at creation, not repeatedly each time TViewer3DPad draws via it.

Revision 11492 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 5 13:38:23 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 52680 byte(s)
Diff to previous 11473
From Andrei Gheata:
- raytracing problem fixed
- extrusions/overlaps now visible in GL
- minor modification in geodemo.C

Revision 11473 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 1 13:53:18 2005 UTC (9 years, 9 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 52607 byte(s)
Diff to previous 11366
First attempt to introduce new Timur's code supporting composite shapes.
This code must still be validated on non Linux platforms.

Revision 11366 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 18 08:46:20 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 51552 byte(s)
Diff to previous 11356
From Andrei:
Fix for painting overlaps

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 11336 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 14 17:40:00 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 51555 byte(s)
Diff to previous 11305
From Richard Maunder:
Fix to TGeoPainter - should be creating TView object on pad if none
exists in various Draw routines. Caused crash in RootShower which always
expects pad to have view.

Revision 11305 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 11 17:22:21 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 50960 byte(s)
Diff to previous 11272
From Richard Maunder:
Incorrect TView projection settings - cartesian by default. Set to
perspective if TGeoPainter/TNode as required by 3D geometry.

x3d: Raise dialog if no valid content and shutdown the viewer again.

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 10670 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 3 08:14:15 2004 UTC (10 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 50752 byte(s)
Diff to previous 10669
From Andrei Gheata
The TGeoHype constructors call the TGeoTube constructors (otherwise the shape
was not registered to the list of shapes).
Cleanup in TGeoManager and TGeoPainter

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 10498 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 8 09:56:24 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 55051 byte(s)
Diff to previous 10457
From Andrei Gheata:
Change names of TGeo functions with confusing names
DistToIn    ->   DistFromOutside
DistToOut ->   DistFromInside
It should be much less confusing since it specifies where the starting
point is supposed to be.

Revision 10457 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 3 08:39:47 2004 UTC (10 years, 2 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 55008 byte(s)
Diff to previous 10342
 Modify TgeoPainter::Draw such that when the option "ogl" or "x3d" is specified,
the volume is drawn directly in the 3-d viewer and not in the pad.
Corresponding changes in TBuffer3D::Paint

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 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/src/TGeoPainter.cxx
File length: 103881 byte(s)
Diff to previous 8776
From Andrei Gheata:

Remove all PaintNext functions.

Revision 8776 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue May 4 14:41:52 2004 UTC (10 years, 8 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 99794 byte(s)
Diff to previous 8648
Modify TCanvasImp::GetWindowGeometry (and TRootCanvas::GetWindowGeometry) to return the editor width.
Change TCanvas::Streamer to save the effective canvas size excluding the editor.

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 7724 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 11 10:34:55 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 92296 byte(s)
Diff to previous 7671
From Andrei

  kBig removed, accessible via inline : TGeoShape::Big()
  kDegRad, kRadDeg changed everywhere with TMath::RadToDeg(),
TMath::DegToRad()

Revision 7671 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 28 13:52:35 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 92260 byte(s)
Diff to previous 7595
From Andrei,

several fixes in safety algorithms

Revision 7595 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 14 08:35:55 2003 UTC (11 years, 2 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 91136 byte(s)
Diff to previous 7570
From Andrei Gheata:
Protection in SetColors in case the user application does not define a TApplication.

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/src/TGeoPainter.cxx
File length: 91034 byte(s)
Diff to previous 7212
Forgot to add these changes from Andrei in the previous check-in

Revision 7212 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 4 12:38:22 2003 UTC (11 years, 4 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 90178 byte(s)
Diff to previous 7172
From Andrei Gheata:

  - safety implemented in TGeoCompositeShape following the general scheme
  - memory usage optimization in TGeoPainter

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 7141 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 22 13:08:48 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 88991 byte(s)
Diff to previous 7123
In TGeoPainter::ShapeDistancetoPrimitive fix to avoid warnings with gcc3.4 when calling TMath::Sqrt.
explicit cast is required.

Revision 7123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 21 10:17:16 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 88990 byte(s)
Diff to previous 7121
A few fixes by Andrei to solve portability problems, in particular under Windows.

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 6122 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 13 11:04:19 2003 UTC (11 years, 11 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 64018 byte(s)
Diff to previous 6114
Bug fix by Andrei when viewing/browsing volume overlaps

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/src/TGeoPainter.cxx
File length: 64202 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/src/TGeoPainter.cxx
File length: 57108 byte(s)
Diff to previous 6083
From Andrei;
add method TGeoManager::PrintOverlaps
fix compilation warnings

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 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/src/TGeoPainter.cxx
File length: 53417 byte(s)
Diff to previous 5723
many changes in the geometry package.
Addition of the new class TGeoMedium

Revision 5723 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 3 16:01:41 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 53392 byte(s)
Diff to previous 5621
New version of the geometry package from Andrei:
Fixes to compile with no warnings with the option -ansi -pedantic
It also includes bug fixes for Trd1,2,  cone and pcon DistToIn/Out
algorithms.

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 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/src/TGeoPainter.cxx
File length: 50946 byte(s)
Diff to previous 5443
A few fixes to avoid compiler warnings

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 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/src/TGeoPainter.cxx
File length: 50602 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/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.

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/src/TGeoPainter.cxx
File length: 48478 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/src/TGeoPainter.cxx
File length: 50145 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/src/TGeoPainter.cxx
File length: 31215 byte(s)
Diff to previous 4847
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 4847 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 14:27:57 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geompainter/src/TGeoPainter.cxx
File length: 31234 byte(s)
Diff to previous 4840
Fix portability problems (alpha/cxx)

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/src/TGeoPainter.cxx
File length: 31250 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