[root] / trunk / core / base / src / TBuffer3D.cxx Repository:
ViewVC logotype

Log of /trunk/core/base/src/TBuffer3D.cxx

Parent Directory Parent Directory


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

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 20516 byte(s)
Diff to previous 20877
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 20877 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:17:07 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20516 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/base/src/TBuffer3D.cxx
File length: 20516 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/base/src/TBuffer3D.cxx
File length: 20516 byte(s)
Diff to previous 19000
remove :$ from tag line

Revision 19000 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 11 19:56:34 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20526 byte(s)
Diff to previous 15092
From Matevz:

Major restructuring of GL viewer-scene relationship (Matevz)
===================================================

The main idea was to generalize current GL infrustructure so that the
following features can be done in the future:

1. Full pad rendering via GL including 3D histo/func painters and 2D graphics.

2. Implementation of GL canvas (with independent viewers serving as pads).

3. Multi-view event-visualization front-end.

4. Inclusion of external scenes (non-ROOT-gl) in ROOT viewer.
   Rendering of ROOT scenes in external GL frameworks.


Changes on the code level
-------------------------

0. Extend current scene/viewer classes into a 2-level class hierarchy.
   New classes TGLViewerBase and TGLSceneBase.

1. Allow scenes to be shared among viewers. View-specific scene-cache
   needs to be kept at the viewer side.

2. Viewer now manages a list of scenes. It is possible to put together
   a combination of scenes (e.g. one showing geometry, another one tracks
   and yet another clusters). Each scene can define its own clipping object.

3. Provide API for fine-grained control over rendered object removal,
   creation and update. This allows for efficient scene-updates.

4. Disentangle selection, clipping and other markup objects from
   within viewer-scene singleton.
   New classes TGLClipSet, TGLManipSet.

6. Disentangle selection management.

7. Separate overlay rendering to allow any number of active GL-GUI
   elements (like manipulators are now).
   New classes TGLOverlayElement.

8. Trailing white space has been removed in all files.


Restructure low-level interface to OpenGL (Timur)
=========================================

1. Allow sharing GL resources among viewers.

2. Do not bind GL-output (windowed or offscreen) to ROOT GUI.

New classes TGLContext, TGLFormat, TGLWidget.

This oboletes TGLKernel and TVirtualGL classes.

Revision 15092 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 18 07:34:25 2006 UTC (8 years, 8 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20475 byte(s)
Diff to previous 13258
Fix coding conventions violations

Revision 13258 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 20:11:59 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20352 byte(s)
Diff to previous 12892
White spaces and comments update

Revision 12892 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 3 15:19:35 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20368 byte(s)
Diff to previous 12766
From Richard:
First implementation for interactive clipping, using OpenGL clip planes.
Initially we have plane & box - others later. See Help for description.

Known Bugs/Issues:

All in GUI:

i) Edit box takes keyboard focus and does not return to viewer pane when
clicked in. Hence all keys in viewer break - an existing general viewer
problem.
ii) Initial layout does not correctly hide the plane/box properties
panels, or scale for V side scroll bar.

Missing Features:

iii) CSG final pass and/or solid cappings.
iv) Can't rotate the box - need a TGLRotManip class soon.
v) Should be able to show and manipulate plane in similar fashion as
box.
vi) Trans/scale/rotate manipulators should be availible for any selected
object.

Revision 12766 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 19 10:30:50 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 20321 byte(s)
Diff to previous 12584
Add more comments (Richard) describing the TBuffer3D and 3dViewers relations.

Revision 12584 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Sep 2 07:51:51 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 12560 byte(s)
Diff to previous 12546
Fix the remaining problems reported by the rule checker in directory base

Revision 12546 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 29 08:24:08 2005 UTC (9 years, 4 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 12558 byte(s)
Diff to previous 11866
Fix coding conventions in the base directory

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/base/src/TBuffer3D.cxx
File length: 12554 byte(s)
Diff to previous 11473
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 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/base/src/TBuffer3D.cxx
File length: 7398 byte(s)
Diff to previous 11365
First attempt to introduce new Timur's code supporting composite shapes.
This code must still be validated on non Linux platforms.

Revision 11365 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 18 08:03:27 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 6946 byte(s)
Diff to previous 11272
From Richard:
Fixes for

i) Incorrect bounding boxes for g3d shapes and spheres in OGL viewer.
ii) Missed case of TGetCTub - cut tube. Now supported natively in OGL
viewer as before.

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/base/src/TBuffer3D.cxx
File length: 7051 byte(s)
Diff to previous 11010
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 11010 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 28 16:56:02 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4523 byte(s)
Diff to previous 10696
Protect TBuffer3D in case a TView does not exist in the pad.

Revision 10696 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 7 11:14:17 2004 UTC (10 years, 1 month ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4492 byte(s)
Diff to previous 10621
From Olivier:
- revision 1.5 had a bad side effect: it was not anymore possible to
  visualize the 3D histograms as box plots. This fix preserve what was
  aimed in rev1.5 (not drawing in the pad when the OpenGL viewer is
  active), and allow to see 3D histograms with the "box" option.

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/base/src/TBuffer3D.cxx
File length: 4526 byte(s)
Diff to previous 10457
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 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/base/src/TBuffer3D.cxx
File length: 4446 byte(s)
Diff to previous 10043
 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 10043 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 14 15:15:46 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4395 byte(s)
Diff to previous 9923
Modify all the 3-d primitives to set the true color in the new data member
of TBuffer3D:;fColor. This color is now used directly by the GL viewer.

Revision 9923 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Sep 6 14:19:50 2004 UTC (10 years, 4 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4351 byte(s)
Diff to previous 9666
Add new member
  char fTransparency;  /percentage of transparency [0,100]
by default ftransparency is set to 0 in TBuffer3D constructor

Add new enum kIsReflexion
When the TBuffer3D fBits bit kIsRefelexion is set, the object has been
generated by a volume having a reflexion matrix.

Revision 9666 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 3 16:04:37 2004 UTC (10 years, 5 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4130 byte(s)
Diff to previous 9665
fix typos/comments

Revision 9665 - (view) (download) (as text) (annotate) - [select for diffs]
Added Tue Aug 3 16:01:19 2004 UTC (10 years, 5 months ago) by brun
Original Path: trunk/base/src/TBuffer3D.cxx
File length: 4130 byte(s)
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.

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