Log of /trunk/core/base/inc/TVirtualGL.h
Parent Directory
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: 5868 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
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/inc/TVirtualGL.h
File length: 5833 byte(s)
Diff to
previous 18024
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
18024 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 19 18:51:48 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 12093 byte(s)
Diff to
previous 17996
Undo all the changes excluding functions from the abstract interface
to be visible from CINT.
Too many side-effects and not enough energy to solve the problem.
a real pity: we are waisting 1 MByte of real memory with ROOT Core.
Revision
17996 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 18 14:56:42 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 12116 byte(s)
Diff to
previous 17680
For abstract interfaces, generate the CINT stub functions only for
the strict minimum of functions.
Keep only one pure function known to CINT such that CINT can
recognize that the class is abstract and has pure functions.
This optimization gains about one megabyte of generated code.
Revision
17680 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 4 17:39:44 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 12093 byte(s)
Diff to
previous 16607
-Move typedefs previously in Htypes.h and Gtypes.h to Rtypes.h
-Move enum EColorType to Rtypes.h
-Move enum EMarkerStyle to TAttMarker
-Move enum ELineStyle to TAttLine
-Replace all references to Htypes.h or Gtypes.h by Rtypes.h
Revision
16183 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 31 13:44:37 2006 UTC (8 years, 4 months ago) by
couet
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 12085 byte(s)
Diff to
previous 15350
From Timur:
New classes:
1.
TGLBoxPainter - implements "glbox" option for TH3, shows bin contents as
boxes, which sizes are proportional to bin content. "glbox1" is the same,
as previous, but with spheres instead of boxes. Slices (XOY/YOZ/XOZ)
are now drawn as sets of rectangles.
2.
TGLLegoPainter. Changes: removed all stuff, which works with gl
projections, modelview transformations, textures, etc.
3.
TGLPlotPainter. Added common parts of different painters:
generic Paint function, PlotSelected, etc.
4.
TGLOrthoCamera. Added operations, required by gl hist painters.
5.
TGLHistPainter. Class completely changed (previously known as
TGLPadHistPainter).
6.
TGLPlotBox. New class, draws back box for different kinds of plots,
highlights planes which are under cursor, makes some sizes calculations
(converts 3d into 2d coords) etc.
7.
TGLSurfacePainter. New class, for different surf options.
Supports cartesian, polar, cylindrical and spherical coords.
Slices (XOY, YOZ, XOZ), projections.
8.
TGLTF3. New class, draws TF3. No slices available now.
9.
TGLUtil. Added new auxilary classes
TGLLevelPalette, TGL2DArray, functions, required by different plot
painters,
TGLEnableGuard and TGLDisableGuard removed from RootGL namespace into
global namespace.
Revision
15134 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 23 04:47:42 2006 UTC (8 years, 8 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 11699 byte(s)
Diff to
previous 14210
From Federico Carminati:
"I have implemented all copy and equal operators needed to silence all
warnings in AliRoot, as requested. I have implemented shallow copies as
would do the default operators synthetized by the compiler.
Most operators are protected. If users complain, you just have to move
them into the public area, but class derivation is of course supported.
It has been a terrible job, I have modified 278 files, but the changes
are backward compabile, and this goes a long way to permitting user to
use the effc++ flag with root headers."
Revision
14203 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 8 21:09:43 2006 UTC (8 years, 10 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 11370 byte(s)
Diff to
previous 13991
From Timur Pocheptsov:
-TGLPixmap - removed and replaced by TGLViewer (most of the TGLViewer
functionality is available in pad now);
-TGLHistPainter - zooming/panning added for legoes/surfaces;
-TGLViewerEditor - TGLViewer's editor for pad (lights/clipping/guides
manipulation).
-TRootCanvas :
minor changes to support mouse wheel event in gl viewer in a pad
-TCanvas :
a)changes to process keyboard events correctly
b)changes to process mouse will events
-TVirtualViewer3D :
changes in interface for TGLManager (win32 implementation of TGLManager
requires some functions and cannot be dependant from TGLViewer)
-Added class TVirtualGLManipulator - base for TGLManip - again, required
mostly by TGWin32GL.
Revision
13936 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 26 11:59:42 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 10921 byte(s)
Diff to
previous 13873
From Richard:
Implement manipulators (translate/scale/rotate) for all shapes in
viewer (previously only clip shapes could use them).
Behaviour:
i) Single selection in viewer - either a normal / clip shape or none.
Current manipulator is attached (and shown) when attached to selection.
ii) Normal viewer shapes are selected using Shift+Left Mouse button (and
have bounding box drawn).
iii) Clip shapes are shown/selected by checking 'Show/Edit' option on
the Scene/Clipping tab of the GUI.
iv) Any exisiting (normal/clip) selection is cleared when making new
choice.
v) (Transparent) clip shapes cannot be selected (picked) directly in the
viewer - normal shape override this.
Rotation properties of shapes are not reflected in GUI currently.
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/inc/TVirtualGL.h
File length: 10601 byte(s)
Diff to
previous 12584
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
12495 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 17 09:10:44 2005 UTC (9 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 10446 byte(s)
Diff to
previous 12459
From Timur:
In view of the coming GL-in-TPad new features, I have changes in
several modules and want to add them step by step. This is the first
update, these classes are auxiliary stuff. I'm planning to add other stuff
tomorrow (and modification in pad and canvas, which will enable
gl-in-pad).
TGLManager is a base abstract class, responsible for
window creation, gl-context/glpixmap and context creation,
manipulation with gl-context and gl-pixmap.
TGWin32GLManager - concrete implementation for Win32
TGX11GLManager - concrete implementation for X11.
Revision
12459 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 10 16:26:36 2005 UTC (9 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8182 byte(s)
Diff to
previous 11866
From Richard:
make TVirtualViewer TObject derv. so TPad can use without modifications.
Also removed last parts of TVirtualGL unrelated to context/draws so it
can be replaced with new TGLManager.
Added:
TGLSAViewer & TGLSAFrame - standalone viewer + GUI main frame.
TGLOutput for containing capture (pdf/eps output).
TX3DFrame (x3d mod) to avoid diamond TObject inheritance from GUI +
TVV3D interface
Removed: TViewerOpenGL
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/inc/TVirtualGL.h
File length: 8249 byte(s)
Diff to
previous 11523
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
10176 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 29 06:55:13 2004 UTC (10 years, 3 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8237 byte(s)
Diff to
previous 9998
From Timur Pocheptsov
Picking fixed. Moving in persp. fixed. Additional gl-material properties added - ambient, specular and
emission parts of light and shininess. Lights added as scene objects - it's possible to move them, change
ambient, diffuse, specular parts of light. Selection box color fixed. Viewer GUI modified.
With new color fetures it's possible to get more interesting materials -
something like metal surface etc (but it's non-trivial to get really
good mixture of colors:) ).
Revision
9998 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 13 09:56:33 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8231 byte(s)
Diff to
previous 9888
From Timur Pocheptsov
Context menu and "Material" menu were removed. Now you simply select
object by right click in "Navigation" mode and left click in "Picking"
mode, and modify object's color and opacity using "Material Editor" at the
left side of viewer (look for example jpgs :) )
You can make object transparent. After that you can select objects behind
it etc. You can select the first object again only ifthere are no
non-transparent objects under mouse cursor.
Revision
9888 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 3 12:52:42 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8178 byte(s)
Diff to
previous 9787
From Timur Pocheptsov
What's added:
1. Several modes :
"Navigation" - our standard rotation (context menu added(*))
"Picking" - user can select object and move it (**)
"Material editor" - not implemented, now it simply allows to
make objects transparent.
2. Several views :
Perspective view and three orthogonal projections
Revision
9787 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 19 12:06:36 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 7803 byte(s)
Diff to
previous 9761
From Timur Pocheptsov
1. OpenGL selection now implemented by display list
2. Drawing code for face sets removed from TGLKernel to make it faster under Win32
3. GLUNewTess and GLUxxx functions were removed from TVirtualGL and
corresponding classes.
Revision
9761 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 16 10:00:45 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8017 byte(s)
Diff to
previous 9717
From Timur Pocheptsov;
Three more light sources were added (this is good for box, for example,
but not very good for tube - it's too bright now)
I added drawing for markers: spheres, cubes, pyramids, points, crosses and
"stars" == *. Drawing with spheres may be slow.
I added primary selection facility - I just draw wireframe box around
shape (today I hope to add context menu to picking action)
Revision
9717 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 10 20:25:22 2004 UTC (10 years, 5 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 7544 byte(s)
Diff to
previous 9716
Previous version of PaintPolyLine from Timur was not fully implemented under Windows.
The function PaintPolyLine must also be defined in class TGWin32VirtualGLProxy.
Also added a third optional argument to be symmetric with PaintPolyLine with Float_t*
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/base/inc/TVirtualGL.h
File length: 11069 byte(s)
Diff to
previous 4074
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
651 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 14 06:28:00 2000 UTC (14 years, 4 months ago) by
brun
Original Path:
trunk/base/inc/TVirtualGL.h
File length: 8202 byte(s)
Diff to
previous 3
Several changes in the OpenGL interface to take into account the new shape XTRU
introduced by Robert Hatcher as well as some additional basic GL functions.
Thanks to Valery Fine for integrating Robert's work.
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.