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

Log of /trunk/geom/geom/src/TGeoShape.cxx

Parent Directory Parent Directory


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

Revision 48928 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 25 15:45:11 2013 UTC (22 months ago) by agheata
File length: 27042 byte(s)
Diff to previous 47056
Large scale cleanup in shapes navigation interfaces adding const modifier for point and direction parameters passed as input arguments.

Revision 47056 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 6 14:19:26 2012 UTC (2 years, 2 months ago) by agheata
File length: 26988 byte(s)
Diff to previous 46731
Fix for precision cut in TGeoShape::SafetySeg when the point was very close to the segment.

Revision 46731 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 23 07:45:15 2012 UTC (2 years, 3 months ago) by agheata
File length: 26862 byte(s)
Diff to previous 45163
Improvement for safe distance computation for cones, coneseg and pcon. Storing transient sin/cos values frequently used in pcon navigation.

Revision 45163 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 23 14:41:14 2012 UTC (2 years, 6 months ago) by agheata
File length: 25817 byte(s)
Diff to previous 41891
Added TGeoManager::fIsGeomCleaning flag to avoid useless iterations in the shape destructor

Revision 41891 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 10 22:46:31 2011 UTC (3 years, 2 months ago) by pcanal
File length: 25787 byte(s)
Diff to previous 39018
Remove all assigned but unused variable discovered by g++ 4.6.1 (including one completely nop function)

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: 25907 byte(s)
Diff to previous 36535
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 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: 25234 byte(s)
Diff to previous 32208
Changed Form() to TString::Format() everywhere

Revision 32208 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 4 13:36:41 2010 UTC (4 years, 11 months ago) by brun
File length: 25212 byte(s)
Diff to previous 27731
From Andrei:
The attached patch implements the missing SavePrimitive for TGeoScaledShape and makes TGeoShape::GetPointerName more safe in case of long shape names (will trigger quite some recompilation in geom and dependent packages)

Revision 27731 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 9 17:40:56 2009 UTC (5 years, 10 months ago) by brun
File length: 25202 byte(s)
Diff to previous 27466
From Andrei:
- Removed casting away constness in headers, and removed == and != between doubles in all geom code (Philippe's suggestion)
- Info messages suppressed now by the static TGeoManager::SetVerboseLevel(0). We should probably call this at the beginning of stressGeometry.cxx
- Fine tune in TGeoIntersection::DistFromInside() that solves inner boundary crossings in case the starting point is very close to boundary
- TGeoManager::FindInCluster() gives now priority (when selecting between MANY candidates) to the node that was proposed by FindNextBoundary()

Revision 27466 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 17 12:53:37 2009 UTC (5 years, 11 months ago) by brun
File length: 24926 byte(s)
Diff to previous 27435
From Andrei:
- Fix in twisted ARB8 DistFromInside/Outside algorithms which now take into account boundary errors.
- Added a check for malformed polygon definition for ARB8 and XTRU shapes which may have non-consecutive segments that are crossing each other.

Revision 27435 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 12 14:08:56 2009 UTC (5 years, 11 months ago) by brun
File length: 22754 byte(s)
Diff to previous 27434
Fix portability problem on Windows

Revision 27434 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 12 14:01:16 2009 UTC (5 years, 11 months ago) by brun
File length: 22554 byte(s)
Diff to previous 22923
From Andrei:
- Truncation errors better taken into account when propagating to boundaries.
- A fix for TGeoXtru::DistFromInside() in case propagation to outside fails.
- A very important protection in TGeoArb8 that checks if the vertices are defined clockwise. It posts an error message if this is not the case and automatically fixes the wrong shapes event if geometry is loaded from file.

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

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/geom/src/TGeoShape.cxx
File length: 22033 byte(s)
Diff to previous 19826
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 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/geom/src/TGeoShape.cxx
File length: 22033 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/geom/src/TGeoShape.cxx
File length: 22087 byte(s)
Diff to previous 17306
remove :$ from tag line

Revision 17306 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 12 16:03:17 2007 UTC (8 years ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 22097 byte(s)
Diff to previous 16999
   TMath::Abs, TMath::Min, TMath::Max, TMath::Sign, TMath::Range
These functions are unfortunately not defined in a standard way in std::

This include is referenced by a new version of TMath.h.
As a result, TMath.h is back compatible with the previous version.

TMathBase.h is used in place of TMath.h in all the classes
that will go into the future miniCore library.
TMath.h and the TMath implementation will go into a new math sub-directory.

TString.h uses TMathBase.h instead of TMath.h.
As a result, it was necessary to include "TMath.h" in some classes
assuming that TMath was included via TString and using other functions
than the ones defined in TMathBase.h
 ----------------------------------------------------------------------

Revision 16999 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 30 23:19:47 2006 UTC (8 years, 1 month ago) by pcanal
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 22076 byte(s)
Diff to previous 16573
Remove G__ci.h from TSystem.h.  Correct the source file that require G__ci.h __or__ one of the header it included

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/geom/src/TGeoShape.cxx
File length: 22044 byte(s)
Diff to previous 14747
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 14747 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 19 09:11:57 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 21682 byte(s)
Diff to previous 14635
From Andrei:
Add several protections in case classes like TGeoMatrix or TGeoHelix
are used without creating a TGeoManager.

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

Revision 14372 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Mar 22 11:18:13 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 20245 byte(s)
Diff to previous 14312
From Andrei:
- after alignment, in case of nested assemblies all parent assemblies need to be
re-voxelized.

Revision 14312 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 20 10:09:14 2006 UTC (8 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 20168 byte(s)
Diff to previous 13282
From Andrei:
- After aligning a physical node within an assembly, the bounding box of all the
mother nested assemblies need to be recomputed.
- Minor modification in TGeoShape needed for decoupling TGeoPainter from TGeoManager.

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

Revision 12629 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Sep 4 15:16:12 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 19300 byte(s)
Diff to previous 12202
Fix coding conventions violations.

Revision 12202 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 27 14:11:57 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 19289 byte(s)
Diff to previous 12201
From Richard:
Fix for problem with previous patch from Andrei. Do not apply in the
case of composite shapes.

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/geom/src/TGeoShape.cxx
File length: 19068 byte(s)
Diff to previous 11866
From Andrei Gheata & Peter Hristov
- The previous patch was still not working properly when one of of the
overlapping partners did not required raw tessalization. The attached patch
definitely fixes the problem: The preference of the viewer (local) is preserved
at TGeoPainter level, but the correct matrix is injected in
TGeoShape::FillBuffer3D. Everything works now.

- Memory leak fix (severe) found by Peter in defining some names in TGeoVolume
class !!!

Revision 11866 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed May 25 14:25:17 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 18976 byte(s)
Diff to previous 11785
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 11785 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri May 13 16:20:38 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 19246 byte(s)
Diff to previous 11299
From Mihaela Gheata:
a patch with some fixes in SavePrimitive:

- shapes have now unique pointer names
- matrices used in composite shapes get registered to TGeoManager
- fix in TGeoCompositeShape::SavePrimitive, added
TGeoBoolNode::SavePrimitive

Revision 11299 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 11 11:05:26 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 18913 byte(s)
Diff to previous 11272
From Richard Maunder
Implement a dummy version of TGeoShape::GetBuffer3D for back compatibility
in case one derives from TGeoShape.

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/geom/src/TGeoShape.cxx
File length: 18421 byte(s)
Diff to previous 11002
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 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/geom/src/TGeoShape.cxx
File length: 16197 byte(s)
Diff to previous 10621
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 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/geom/src/TGeoShape.cxx
File length: 14990 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/geom/src/TGeoShape.cxx
File length: 14999 byte(s)
Diff to previous 10342
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 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/geom/src/TGeoShape.cxx
File length: 14988 byte(s)
Diff to previous 10016
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 10016 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 13 16:16:50 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 14885 byte(s)
Diff to previous 10001
Protect TGeoShape::TransformPoints in case a TGeoVolume has a null pointer to its TGeoMedoim

Revision 10001 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 13 10:12:00 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 14865 byte(s)
Diff to previous 9950
Make all light materials (gas) 80 per cent transparent by default

Revision 9950 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 8 09:54:47 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 14787 byte(s)
Diff to previous 9933
From, Andrei and Timur
- Improvements for transparency
- Fixes in TGLFaceSet::TGLFaceSet (Xtru bug)
- Reflexion is handled correctly

Revision 9933 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 7 08:15:57 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 14791 byte(s)
Diff to previous 9928
From Andrei Gheata:
Transparency is now filled into TBuffer3D. One can change interactively
transparency at the level of TGeoVolume (context menu). Default value is 0.

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/geom/src/TGeoShape.cxx
File length: 14656 byte(s)
Diff to previous 9665
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 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/geom/src/TGeoShape.cxx
File length: 14297 byte(s)
Diff to previous 7724
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 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/geom/src/TGeoShape.cxx
File length: 13471 byte(s)
Diff to previous 7719
From Andrei

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

Revision 7719 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 10 17:09:07 2003 UTC (11 years, 1 month ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 13432 byte(s)
Diff to previous 7671
Remove definition of kBig from TGeoShape.cxx and put it in TGeoShape.h
to avoid a problem with shared libs on Windows.

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/geom/src/TGeoShape.cxx
File length: 13471 byte(s)
Diff to previous 7569
From Andrei,

several fixes in safety algorithms

Revision 7569 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 11 15:44:28 2003 UTC (11 years, 2 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 12680 byte(s)
Diff to previous 7126
From Andrei Gheata
- TGeoPgon::DistToIn() - new algorithm 50-200% faster than the old one
(depending on the number of edges) fixing the existing pgon problems
- TGeoPgon::ComputeNormal() - corrected a wrong sign
- TGeoManager::Safety() corrected in case of MANY geometries
- Bug fix raytracing + a minor fix in the calling sequence (now there is
a similar behavior of TGeoVolume:Raytrace/Draw)

Revision 7126 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Aug 21 11:37:45 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 11942 byte(s)
Diff to previous 7123
From Andrei:
Sorry, I forgot to initialize the new
fShapeBits data member and everything was wrong. Now it is fine.

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/geom/src/TGeoShape.cxx
File length: 11900 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/geom/src/TGeoShape.cxx
File length: 11679 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/geom/src/TGeoShape.cxx
File length: 16939 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/geom/src/TGeoShape.cxx
File length: 17142 byte(s)
Diff to previous 6068
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 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/geom/src/TGeoShape.cxx
File length: 12719 byte(s)
Diff to previous 5848
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 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/geom/src/TGeoShape.cxx
File length: 12014 byte(s)
Diff to previous 5406
many changes in the geometry package.
Addition of the new class TGeoMedium

Revision 5406 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 8 16:17:49 2002 UTC (12 years, 3 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 12029 byte(s)
Diff to previous 5354
new version of the geometry package from Andrei:
- bug fix in the destructor of TGeoPatternCylPhi
- several modifications in the default constructors of shapes.
- several corrections and "v" feature added to I/O
- removed base class for finders

 Now you can save voxels and retreive them with no problem. You can use :
  gGeoManager->Export("filename", "", "v") to do that. The size of files
without/with voxelization are :
    Exp           no voxels saved             voxels saved
ALICE            404227                        719703
CMS               550440                       1275590
ATLAS         1858198                      3335166

Be careful, the files TGeoFinder.h and TGeoFinder.cxx have been removed.
Suggest doing:

rm geom/src/*.o geom/src/G__*

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/geom/src/TGeoShape.cxx
File length: 12025 byte(s)
Diff to previous 4920
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 4920 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 15 15:56:14 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 11574 byte(s)
Diff to previous 4918
Remove some unnecessary includes (TPad, TView)

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/geom/src/TGeoShape.cxx
File length: 11611 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/geom/src/TGeoShape.cxx
File length: 12273 byte(s)
Diff to previous 4841
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 4841 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue Jul 9 13:08:12 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/geom/src/TGeoShape.cxx
File length: 12346 byte(s)
Add new geometry 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