Log of /trunk/geom/geom/inc/TGeoShape.h
Parent Directory
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: 8773 byte(s)
Diff to
previous 46731
Large scale cleanup in shapes navigation interfaces adding const modifier for point and direction parameters passed as input arguments.
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: 8659 byte(s)
Diff to
previous 42999
Improvement for safe distance computation for cones, coneseg and pcon. Storing transient sin/cos values frequently used in pcon navigation.
Revision
42999 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 14 13:42:55 2012 UTC (2 years, 11 months ago) by
agheata
File length: 8533 byte(s)
Diff to
previous 41234
Thread data is now pre-allocated when calling gGeoManager->SetMaxThreads(). This adds ~20MB for ALICE geometry per 100 threads, but avoids atomic allocations and thread locking. All run-time geometry locks removed. Thread id stored now using static thread__ allocator, faster and lock free for subsequent calls issued by the same thread.
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: 8445 byte(s)
Diff to
previous 35047
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
35047 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 27 14:38:41 2010 UTC (4 years, 4 months ago) by
agheata
File length: 8351 byte(s)
Diff to
previous 32208
Bounding box for assemblies is now computed dynamically when needed instead of after every AddNode operation.
The patch reduces the number of calls to TGeoShapeAssembly::ComputeBBox from 4.8 million to 12700 (!) in ALICE and gains 40% speedup in initialization time (~30sec).
Thanks to Matevz for spotting this. Also added Matevz's code for improving access by index to PNEntries.
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: 8290 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: 8293 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: 8221 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
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: 8097 byte(s)
Diff to
previous 24870
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
24870 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 17 16:30:58 2008 UTC (6 years, 6 months ago) by
brun
File length: 7935 byte(s)
Diff to
previous 22923
From Andrei:
new development related to overlap checking. This generates not only the shape mesh vertices but some 1000 points on the shape outline/surface. This is implemented for all important shapes except TGeoPcon (which works using the old method).
Revision
18553 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 23 08:58:53 2007 UTC (7 years, 9 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 7705 byte(s)
Diff to
previous 16573
From Andrei:
- new method TGeoShape::GetMeshNumbers() that allows getting the number of points, segments and polygons in the mesh of any shape - to be used by an upgrade of the overlap checker
- addition in the overlap checker to use the above info
- modifications in TGeoManager for improving performance for tracking geantinos with G4root interface
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/inc/TGeoShape.h
File length: 7601 byte(s)
Diff to
previous 14635
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
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/inc/TGeoShape.h
File length: 7352 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
13271 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 17 13:17:55 2005 UTC (9 years, 2 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 7147 byte(s)
Diff to
previous 11785
From Andrei & Mihaela:
a diff containing the implementation of TGeoShape::Capacity. There are also
few other fixes (see below):
Mihaela:
New method:
Double_t TGeoShape::Capacity() const;
implemented for all supported shapes. The algorithms provide analytical computation of
shape capacity in [cm^3]. All algorithms are accurate with 2 exceptions:
- TGeoCtub : the formula is just an approximation due to the difficulties to integrate
over the phi angle in the general case.
- TGeoCompositeShape: the computation of the capacity is done by sampling, with an
accuracy of 1%.
Based on this method I extended the implementation of TGeoVolume::Weight(Double_t
precision, Option_t *option). The default value of option is now "va" meaning: verbose
+ analytical. Removing "a" from the default option performs computation of volume
weight using the old algorithm of sampling. I have checked the 2 ways of computing the
weight one against the other and they are consistent.
Andrei:
- fixed a memory leak related to TGeoShapeAssembly ownership
- fixed some tracking problems for assemblies (when the top volume was an assembly)
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/inc/TGeoShape.h
File length: 7077 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
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/inc/TGeoShape.h
File length: 7074 byte(s)
Diff to
previous 11031
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
11028 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 3 11:40:39 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 6874 byte(s)
Diff to
previous 11002
From Andrei Gheata:
The diffs for the changes from Mihaela. They implement the SavePrimitive method for:
- all shapes
- materials, mixtures and media
- matrices
- TGeoVolume - just a first version
What is missing:
Divisions + manager metod to save:
- all geometry
- just the branch corresponding to one volume
The differences compared to g2root are that:
- when saving just a a branch just materials/media/matrices for that branch are created (module encapsulation)
- instead of creating objects with numerical arguments, the coresponding variables are defined and used.
e.g. instead of :
new TGeoBBox("name", 10.,20.,30); the generated code is:
dx = 10.;
dy = 20.;
dz = 30.;
pShape = new TGeoBBox("name", dx,dy,dz);
The diffs contain also 2 shapes with boundary-safe algorithms: TGeoPara and TGeoTrap
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/inc/TGeoShape.h
File length: 6842 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/geom/inc/TGeoShape.h
File length: 6637 byte(s)
Diff to
previous 10669
From Andrei Gheata:
I attached some diffs as proposed by Matevz and Alja which made their
own GL-based TGeo viewer in GLED. The changes are just structural:
- lines/polygons filling splitted out from TGeoShape::Paint() as
TGeoShape::SetLinesAndPols(TBuffer3D *buff).
- Shapes can create and fill a new TBuffer3D with the new method:
TGeoShape::Make3DBuffer() in the local frame
They need this since they have their own geometry tree parsing algorithm
(not the same as in TGeoPainter::PaintNode()) with another
structure/matrix handling system. Basically they just need one buffer
per volume, reusing them since they attach them to TGeoVolume as user
data. Not quite bad idea: they create only once a limited number of
buffers that they re-use without re-filling...
Revision
10669 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 2 15:21:02 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 6509 byte(s)
Diff to
previous 10621
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
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/inc/TGeoShape.h
File length: 6389 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/inc/TGeoShape.h
File length: 6448 byte(s)
Diff to
previous 9751
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
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/geom/inc/TGeoShape.h
File length: 6436 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/geom/inc/TGeoShape.h
File length: 6372 byte(s)
Diff to
previous 9311
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
9311 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 25 11:59:56 2004 UTC (10 years, 7 months ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 6254 byte(s)
Diff to
previous 8648
From Andrei Gheata:
- TGeoShape::PaintNext() removed from all shapes (for the new
visualization system to be introduced shortly).
The new mechanism is implemented in
TGeoPainter::PaintShape (uses gGeoManager as we discussed), but it also
affect some shapes (TGeoCompositeShape at least)
- New files: TGeoElement.h /.cxx representing a chemical element. This
is very helpful for the implementation of TFluka. Materials/mixtures can
be now built also based on this new class. An element table is kept
always transient in memory.
- Mihaela implemented the TGeoParaboloid shape: new files:
TGeoParaboloid.h/cxx.
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/geom/inc/TGeoShape.h
File length: 6303 byte(s)
Diff to
previous 8163
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
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/geom/inc/TGeoShape.h
File length: 6241 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
7713 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 10 15:31:23 2003 UTC (11 years, 1 month ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 6314 byte(s)
Diff to
previous 7671
From Andrei Gheata:
some changed files in TGeo improving the performance of
TGeant3 WITHROOT:
- safety was computed twice (both by TGeoManager::Safety() as well as
the shape algorithms called by TGeoManager->FindNextBoundary()). The
speed now with WITHROOT improves.
- few fixes in some shape algorithms related to boundary treatment (few
others to be done)
- Improved computation of normals
- Improved non-recursive algorithm of TGeoPgon::DistToOut()
- fix of some default value in all shape headers (0 replaced by kBig) to
allow range limited computation of DistToIn/Out - now working just for pgon.
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/inc/TGeoShape.h
File length: 6244 byte(s)
Diff to
previous 7130
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
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/inc/TGeoShape.h
File length: 5596 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/inc/TGeoShape.h
File length: 5719 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/inc/TGeoShape.h
File length: 5905 byte(s)
Diff to
previous 6304
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
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/geom/inc/TGeoShape.h
File length: 5674 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/geom/inc/TGeoShape.h
File length: 5649 byte(s)
Diff to
previous 5972
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
5972 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 23 14:25:37 2003 UTC (12 years ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 5448 byte(s)
Diff to
previous 5758
From Andrei:
- all shape classes : changed the prototype for Safety() method.
Eliminated validity checking in Divide() methods that are now globally
handled by TGeoVolume::Divide(). Added methods
TGeoShape::GetAxisName/Range(Int_t iaxis) which are used by the new
global division mechanism.
- safety for TGeoTrap now computed (pcon, pgon not yet)
- TGeoVolume : eliminated unnecesarry Divide() prototypes. The new
Divide() prototype is backwards compatible (old macros works with it)
but supports an option in order to allow all G3 division types. More
description in TGeoVolume::Divide().
- TGeoManager : Only one prototype for G3-like divisions left,
supporting all G3 options and also being able to assign to the division
volumes a medium different than the one of the divided volume. New
FindNode(x,y,z) implemented. New IsSameLocation(x,y,z) with the same
functionality as GINVOL.
Revision
5758 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 6 16:45:03 2002 UTC (12 years, 1 month ago) by
brun
Original Path:
trunk/geom/inc/TGeoShape.h
File length: 5420 byte(s)
Diff to
previous 5443
From Andrei:
New patch for shape algorithms, including :
- bug fixes in TGeoPgon::DistToIn()
- new algorithm by Mihaela for computing distances to a sphere (it was
missing).
So, now all algorithms per shape for computing distances should be "in
shape", at least as far as we have tested. Clearly some problems still
remain with the global algorithm including MANY's. At least now the lego
plot seem to work for the rootgeom example (shooting in /TOP/Replica
produces a nice plot). Obviously we will eventually find other bugs, but
the version as it is now seems to work reasonably good.
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/geom/inc/TGeoShape.h
File length: 5344 byte(s)
Diff to
previous 5354
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
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/inc/TGeoShape.h
File length: 5261 byte(s)
Diff to
previous 4918
New version of the geometry package by Andrea & Mihaela Gheata
New features:
-I/O for all geometry classes. For example, to save/restore a geometry structure,
TFile f("mygeom.root","recreate");
gGeoManager->Write("mygeom");
and to read it back;
TFile f("mygeom.root");
f.Get("myGeom");
gGeoManager->CloseGeometry();
-Composite shapes fully implemented (no visualisation yet).
A composite shape is built out of basic shapes and transformations via
a simple formula mechanism, eg assuming a TGeoTube "tub1" and a TGeoMatrix "r1",
we can build a composite shape with:
TGeoCompositeShape *comp = new TGeoCompositeShape("comp",formula); where
char* formula="tub1+tub1:r1"
This will create the union of a tube with itself rotated.
The operators recognized by the geometry formula parser are "+","-","*"
for union, subtraction and intersection respectively. The colon ":" can be
used to specify a transformation for a given component.
-The voxelisation in cylindrical coordinates added as an optional optimisation
algorithm.
-Some bug fixes and several improvements in the tracking-related algorithms.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.