[root] / trunk / graf3d / gl / inc / TGLScene.h Repository:
ViewVC logotype

Log of /trunk/graf3d/gl/inc/TGLScene.h

Parent Directory Parent Directory


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

Revision 43018 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 16 03:13:21 2012 UTC (2 years, 11 months ago) by matevz
File length: 8958 byte(s)
Diff to previous 32334
Rewrite highlight rendering so that the stencil-control logic lives on the
TGLScene level, within new function TGLScene::RenderHighlight(). A set of new
functions called RenderXXXForHighligt() was introduced in TGLViewer/Scene.

This works around the problems with stencil buffer
coherency during multi-pass rendering with multiple clipping planes.

Some tweaking was necessary in TEve-GL classes that implement specialized
DrawHighlight() virtual from TGLLogicalShape.

Revision 32334 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Feb 12 11:52:13 2010 UTC (4 years, 11 months ago) by matevz
File length: 8696 byte(s)
Diff to previous 29676
* TGLScene
  Optimize DestroyPhysicals() by looping over logical shapes and destroying
  all assigned physical shapes via TGLLogicalShape::DestroyPhysicals().
  This significantly speeds-up full scene repaints when many replicas of the
  same logical volume are present (e.g. when showing geometry).
  Change signature -- remove unused arguments.

* TGLScenePad
  Modify for changed signature of TGLScene::DestroyPhysicals().

* TGLLogicalShape
  In DestroyPhysicals() set fFirstPhysical to null.
  This used to be only called from destructor.

* TGLCameraOverlay
  Mark a rare bug (existing before) -- requires further investigation.
  White-space changes.

Revision 29676 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 4 16:18:07 2009 UTC (5 years, 5 months ago) by matevz
File length: 8741 byte(s)
Diff to previous 29500
Add support for control over viewer-global point-size and line-width
scaling. Additionally, allow wireforame and outline line widths to be
specified separately (on viewer / scene / scene-info level).

This will allow for scaling of pixel-based objects (lines and points) when
saving of screenshots with very high resolution is
implemented.

Basic support is impemented across TGLViewer, TGLScene, TGLRnrCtx and
TGLUtil.

Classes that used glPointSize and glLineWidth were modified to call
corresponding static function in TGLUtil class.

Controls were added to TGLViewerEditor (under Style tab).

Revision 29500 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jul 16 16:54:45 2009 UTC (5 years, 6 months ago) by matevz
File length: 8587 byte(s)
Diff to previous 26367
Remove default values from overloaded UpdatePhysioLogical().

Revision 26367 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 21 18:08:30 2008 UTC (6 years, 2 months ago) by matevz
File length: 8592 byte(s)
Diff to previous 25950
Merge revisions 26280:26327 from the fireworks branch.

26281
=====
- TGLScenePad: replace static variable with a data-member. Fix comments.

26304
=====
- TEveProjectionAxesGL: fix index out of bounds error reported by valgrind.

26306
=====
- TGLScene, TGLScenePad: better comments, consistent whitespace.
- TEveElement: add method DestroyOrWarn(): original Destroy() method is exception throwing.
- TEveScene: delete GL-scene and pad in destructor; add ownership information to class-docs.
- TEveSceneList: add method DestroyScenes().
- TEveViewer: add ownership information to class-docs.
- TEveManager: delete scenes, scene-list, viewers and viewer-list in destructor.

26325
=====
TEveTrackPropagator: implement the following overrides of virtual functions:
 - TEveElement::CheckReferenceCount() - take into account references from TEveRefBackPtr;
 - TEveRefBackPtr::OnZeroRefCount()   - call CheckReferenceCount().

26327
=====
Remove trailing whitespace in eve/ and gl/.

Revision 25950 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 24 21:34:34 2008 UTC (6 years, 3 months ago) by matevz
File length: 8638 byte(s)
Diff to previous 23140
TGLSceneBase, TGLScene, TGLSceneInfo
	Move 'Bool_t fUpdateTimeouted' from TGLScene to TGLSceneInfo.
	Remove	'Bool_t fForceUpdateSI from TGLSceneBase.
	This was potentialy wrong ... if a scene was put into several
	viewers.

TGLEventHandler
	When scrolling via mouse-wheel or resizing the viewing area
	call redraw via timer to group several events in a sequence
	into a single redraw.
	Avoid selection in handle-motion and in timer callback when a
	redraw is already pending.

TGLViewer
	Do not draw when viewing area's width or hight <= 1.

TGLWidget
	Pass configure-notify event to TGFrame as well.

alice_esd_split.C
	Do not resize to almost-full-screen as it doesn't work with
	multi-screen displays (can pass optional argument to enforce
	it).

Revision 23140 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 11 11:01:39 2008 UTC (6 years, 9 months ago) by rdm
File length: 8733 byte(s)
Diff to previous 23087
move the following directories to "graf2d":

asimage, freetype, gpad, graf, postscript, qt, win32gdk, x11, x11ttf

move the following directories to "graf3d":

eve, ftgl, g3d, gl, x3d

Revision 23087 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Apr 9 14:10:56 2008 UTC (6 years, 9 months ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 8733 byte(s)
Diff to previous 22539
From Alja, Bertrand and Matevz - merged branches/dev/fireworks 22550:23082.


Major changes imported by this merge are:

gl/
====
- reorganization of scene rendering in TGLViewer - render opaque
  objects from all scenes first, then all transparent ones;

- improve saving of images from the GL-viewer so that the dialog boxes
  and other windows do not result in black areas on the saved image;

- improved management of FTGL fonts accross GL contexts.

eve/
====
- new classes for visualization of calorimeter data in lego mode;

- allow fixed scale beyond given radius for fish-eye projections.

Revision 22539 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Mar 8 14:36:37 2008 UTC (6 years, 10 months ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 7545 byte(s)
Diff to previous 22087
From Alja, Bertrand & Matevz: merged branches/dev/fireworks 21757:22514.

This includes:

- development for event-displays of ALICE and CMS since 5.18 in eve/,
  gl/ and gui/;

- many new tutorials and demos for eve/;

- fix in TQObject to support class-signals from all base-classes.

Revision 22087 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Feb 11 14:15:36 2008 UTC (6 years, 11 months ago) by matevz
Original Path: trunk/gl/inc/TGLScene.h
File length: 7260 byte(s)
Diff to previous 21702
Fix warning observed during nightly lcg builds.

Revision 21702 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jan 14 18:55:14 2008 UTC (7 years ago) by matevz
Original Path: trunk/gl/inc/TGLScene.h
File length: 7245 byte(s)
Diff to previous 20882
In TGLScene/TGLViewer add two timeouts for high-quality and
low-quality (during rotation etc) scene rendering. Expose both time
limits via TGLViewerEditor.

In TGLCamera::OfInterest() remove redundant test for physical-shape
bbox volume and optimize the remaining bbox diagonal length test.

Remove blanks from the eols.

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/gl/inc/TGLScene.h
File length: 7194 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/gl/inc/TGLScene.h
File length: 7194 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/gl/inc/TGLScene.h
File length: 7242 byte(s)
Diff to previous 19642
remove :$ from tag line

Revision 19642 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 19 10:06:12 2007 UTC (7 years, 5 months ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 7252 byte(s)
Diff to previous 19431
From Matevz:
BeginUpdate() now returns Bool_t reflecting the success of
scene-locking.
Call TagViewersChanged() in EndUpdate().

Revision 19431 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 23 15:06:24 2007 UTC (7 years, 6 months ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 7249 byte(s)
Diff to previous 19049
From Matevz:
Move interest draw-list into scene-info as it is
view-dependent. Provide additional checks and hooks during
scene-prerender for automatic reinitialization of these structures.

Revision 19049 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jun 18 07:02:16 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7438 byte(s)
Diff to previous 19004
From Matev and Timur:
Timur:
1. Allow unique identification of shared GL contexts via
TGLContextIdentity class.

Matevz:
1. Improved overlay selection handling.
2. Perform GL context check before rendering, possibly invalidating
   registered display-lists.
3. Minimize updates for window expose and resize events.

Revision 19004 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jun 12 10:22:49 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7248 byte(s)
Diff to previous 19000
From Matev:
1. Timur's new version of TGLWidget/Format/Context;
2. Fix for map element destruction order (Bertrand);
3. fixes for solaris in TGLScene.

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/gl/inc/TGLScene.h
File length: 7151 byte(s)
Diff to previous 17138
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 17138 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Dec 9 23:05:17 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 13914 byte(s)
Diff to previous 16090
From Alja:
Added member fCameraMarkup; in DoDraw() call TGLCamera::Markup() when
not in selection mode.

Revision 16090 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 23 14:39:40 2006 UTC (8 years, 5 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 13618 byte(s)
Diff to previous 14580
From Matevz Tadel:

        1) Implementation of two-level (secondary) selection

        Rendering objects can provide a new level of interactivity, for
        example a TPointSet3D holding a set of clusters can attach a pointer
        to original cluster to each point and receive notifications when a
        specified cluster was clicked.

        Secondary selection is activated by Control-Left clicking into the
        GL window.

        2) Improve control over camera-reset behaviour

        Allow user to prevent camera reset on scene update and
        double-click.

        3) Improvements in TPointSet3D(GL)

        Detailed ChangeLog
        ==================

        * base/inc/TVirtualViewer3D.h:
        Added virtual methods 'void ResetCameras(){}' and 'void
        ResetCamerasAfterNextUpdate(){}'.

        * gl/inc/TGLScene.h:
        * gl/src/TGLScene.cxx:
        Implemented two-level selection. It is enabled for next selection
        pass by calling ActivateSecSelect().

        DoSelect() does not change the selected object but only indicates
        which object has been selected by setting new member
        'TGLPhysicalShape *fSelectionResult'. Caller (TGLViewer) must call
        new method 'void ApplySelection()' to actually change the selected
        object to the last selection result.

        Changed declaration of selection buffer from being a static varable
        within DoSelect() to data-member. This allows post-processing of
        selection records needed by two-level selection.

        * gl/inc/TGLCamera.h:
        * gl/inc/TGLOrthoCamera.h:
        * gl/inc/TGLPerspectiveCamera.h:
        * gl/src/TGLCamera.cxx:
        * gl/src/TGLOrthoCamera.cxx:
        * gl/src/TGLPerspectiveCamera.cxx:
        Added Bool_t argument with default value to:
        virtual void TGLCamera::Setup(const TGLBoundingBox & box, Bool_t
        reset=kTRUE) = 0;
        By setting it to false one can change camera parameters for new
        scene bounding-box without repositioning the camera.

        Added 'Bool_t checkSize' argument to OfInterest().
        This is relevant for marker-classes which can have small
        volume/length but are still visible as they are rendered in
        pixel-coordinates. Value of this argument is needed in TGLScene
        (DestroyPhysicals) and TGLViewer (AddObject). It is obtained by
        calling virtual method TGLLogicalShape::IgnoreSizeForOfInterest().
        This method returns false by defalut and is overriden in
        TGLPolyMarker and TPointSet3DGL.

        * gl/inc/TGLViewer.h:
        * gl/src/TGLViewer.cxx:
        Added controls for camera-reset behaviour.
        Data-members: 'Bool_t fResetCamerasOnUpdate', 'Bool_t
        fResetCamerasOnNextUpdate', 'Bool_t fResetCameraOnDoubleClick'.
        Methods: 'ResetCameras()', 'ResetCamerasAfterNextUpdate()',
        'ResetCurrentCamera()'.
        Added an argument to 'void PostSceneBuildSetup(Bool_t resetCameras).

        Added Bool_t return-value to RequestSelect(). It returns true if
        result of the selection is different then fSelectedPhysical.

        Added method ApplySelection() to interface with TGLScene
        selection state. This is called from event-handling functions in
        TGLViewer.

        Added key-binding for 'Home': ResetCurrentCamera().

        * gl/inc/TGLSAViewer.h:
        * gl/src/TGLSAViewer.cxx:
        Added description of new functionality to fgHelpText.

        MSVC was complaining about fgHelpText being too long: I split it
        into fgHelpText1 and fgHelpText2.

        * gl/inc/TGLDrawFlags.h:
        * gl/src/TGLDrawFlags.cxx:
        Added members 'Bool_t fSelection' and 'Bool_t
        fSecSelection' allowing passing of current selection state to
        renderers. This is needed to allow different render-paths during
        (secondary) selection.

        We should consider passing TGLScene* and/or TGLViewer* down to
        DirectDraw() of individual renderers.

        * gl/src/TGLDrawable.cxx:
        In ShouldCache() return false if secondary selection is in progress.

        * gl/src/TGLPhysicalShape.cxx:
        Handle new members in TGLDrawFlags.

        * gl/inc/TGLLogicalShape.h:
        * gl/src/TGLLogicalShape.cxx:
        Added three new functions:

        1) virtual Bool_t SupportsSecondarySelect() const { return kFALSE; }
        This is called by TGLScene::DoSelect() to check is object that was
        the result of primary selection supports secondary selection.

        2) virtual void ProcessSelection(UInt_t* ptr, TGLViewer*, TGLScene*);
        It is called back from TGLViewer after successful secondary
        selection. As the object that does the rendering is the only one
        that actually knows how the object sub-parts were named it has
        to interpret the results.

        Both of these should be overriden in classes that support
        secondary selection, for example see TPointSet3DGL.

        3) virtual Bool_t IgnoreSizeForOfInterest() const { return kFALSE; }
        Signals to TGLScene and TGLViewer that volume/lenght of this
        class' bounding box should not be considered when checking if
        objects of this class are of interest to current camera.

        * gl/inc/TGLObject.h:
        * gl/src/TGLObject.cxx:
        Changed second argument of function:
        Bool_t SetModelCheckClass(TObject* obj, const Text_t* classname);
        to 'TClass* cls'. This is much more efficient.

        * g3d/inc/TPointSet3D.h:
        * g3d/src/TPointSet3D.cxx:
        Added support for per-point designations (one TObject* per point;
        via casting it can be set to anything).
        New virtual method 'void PointSelected(Int_t n)' that is called
        back after successful secondary selection in TGLViewer (via
        virtual TGLLogicalShape::ProcessSelection()).

        * gl/inc/TPointSet3DGL.h:
        * gl/src/TPointSet3DGL.cxx:
        Added support for per-point selection. Point-sizes are taken into
        account during selection (by modifying the projection
        matrix).
        Implemented 'virtual Bool_t TGLDrawable::ShouldCache()' to disable
        caching when in primary selection (point-size improvements).
        Cross-like marker types are now supported to some extent.
        Improved structure of rendering code.
        Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
        to return true.
        Multiply TAttMarker::GetMarkerSize() by 5 before applying.

        * gl/inc/TGLPolyMarker.h:
        Override 'virtual Bool_t TGLLogicalShape::IgnoreSizeForOfInterest()'
        to return true.

Revision 14580 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Apr 7 08:43:59 2006 UTC (8 years, 9 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 12179 byte(s)
Diff to previous 14073
From Matevz Tadel:
Introduce a new set of classes dedicated to event visualisation.
TGLObject:	base-class for direct GL renderers

TAttBBox:	interface, helps maintain/calculate bounding-box
		needed for TGLObject (see TPointSet3D and TPointSet3DGL)
TPointSet3D:	a demo class for direct GL rendering
TPointSet3DGL:

Mods in existing classes to interface the new classes

Revision 14073 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Feb 21 16:39:49 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 11821 byte(s)
Diff to previous 14015
From Richard:
Fix some visual glitches with manipulator and clip drawing in wireframe
and outline styles.

Revision 14015 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 9 09:56:20 2006 UTC (8 years, 11 months ago) by couet
Original Path: trunk/gl/inc/TGLScene.h
File length: 11829 byte(s)
Diff to previous 14004
- From Richard:

Improve clipping in GL viewer. Now show back (inner) faces when clipped,
with two sided lighting. Not as good as proper CSG op to cap clipped
solids - but looks better than them being invisible.

Also seems to improve performance which is suprising .....

Revision 14004 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Feb 8 10:49:26 2006 UTC (8 years, 11 months ago) by couet
Original Path: trunk/gl/inc/TGLScene.h
File length: 11776 byte(s)
Diff to previous 13941
From Richard:

Fixes for wireframe and outline drawing:

i) Both very much slower (up to 10x) than normal filled polygons -
incorrectly calling DirectDraw() bypassing the DL caching.
ii) Outline style did expensive repeated GL state swaps for every
physical shape draw.
iii) Only TGLFaceSet supported outline draw style.

Now:

i) Wireframe roughly same speed (or faster) than filled (~10x faster)
ii) Outline takes ~ filled polygons + wireframe times - as would expect
(about 5x faster).
iii) All shapes support outline style.

Exatct speed gain hardware dependent - but even software GL faster.

Also tidied up draw style code - created new TGLDrawFlags class to wrap
style + LOD hint into.

Revision 13941 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 26 17:06:51 2006 UTC (8 years, 11 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 11791 byte(s)
Diff to previous 13936
From Richard:
Fix minor draw problem with guides caused by previous changes.

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/gl/inc/TGLScene.h
File length: 11766 byte(s)
Diff to previous 13599
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 13599 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Dec 9 18:09:35 2005 UTC (9 years, 1 month ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 9890 byte(s)
Diff to previous 13316
From Richard:
Make some more parts of TGLViewer public + add functions for external
camera configuration.

Revision 13316 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 22 18:05:46 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 9909 byte(s)
Diff to previous 13250
From Richard:
 Second part of general tidy for coding conventions violations -
mainly commenting. Code under my name should be clear now.

Revision 13250 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 16:41:59 2005 UTC (9 years, 2 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 8212 byte(s)
Diff to previous 13140
From Richard:
Update to axes in GL viewer - in response to requests from Witold
Pokorski.

i) Added options to draw axes through origin (not depth clipped), as
well at edge (depth clipped).
ii) Added option to show a single reference marker (orange sphere) at
location - for debugging geometries.
iii) Improved draw quality of axes - similar to manipulators.
iv) These moved to new "Guides" tab under "Scene" for GUI.

Revision 13140 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 4 20:13:09 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/gl/inc/TGLScene.h
File length: 8122 byte(s)
Diff to previous 12926
Fix need by vc6. (mathcore and reflex/cintex still do not compile with vc6)

Revision 12926 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Oct 11 10:25:11 2005 UTC (9 years, 3 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 8110 byte(s)
Diff to previous 12892
From Richard:
Fix adjustment of GL colours - all components except diffuse
broken.

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/gl/inc/TGLScene.h
File length: 8108 byte(s)
Diff to previous 12469
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 12469 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Aug 12 07:38:14 2005 UTC (9 years, 5 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7168 byte(s)
Diff to previous 12459
From Richard Maunder:
i) Fix transparent object picking - now pick opaque objects first, and
if none a transparent one (restore previous behaviour).
ii) Ensure transparent selected object is only drawn once.
iii) Allocate pro rata time for transparent drawing - previous
assumption that trans << opaque was invalid
iv) Added some extra debug info for gDebug >= 4, listing draw counts for
shape types (TGLCylinder, TGLFaceSet etc)

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/gl/inc/TGLScene.h
File length: 7037 byte(s)
Diff to previous 12281
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 12281 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jul 8 15:39:29 2005 UTC (9 years, 6 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7018 byte(s)
Diff to previous 12168
From Richard:
Improvements to camera and other GL viewer components to:

i) Avoid unrequired rebuilds.
ii) Improve near/far clip plane calculations - set using current
projected scene limits. Reduces depth buffer precision problems - seen
particularly on MESA software GL.
iii) Improve bounding box overlap tests.
iv) Tidy some vector/vertex code.

Revision 12168 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 23 15:08:45 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7059 byte(s)
Diff to previous 12071
From Richard
Update to GL viewer to:

i) Retain modifications/section of physical shapes across scene
rebuilds.
ii) Be a bit smarter about rebuilds:

        Detect if all physicals accepted into scene - never need to rebuild in
these cases.
        Only destroy physicals no longer of interest to camera.

Imporves times a bit - more work on this required to remove stalls in
viewer interaction.

Revision 12071 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 17 14:31:08 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 7089 byte(s)
Diff to previous 12062
From Richard Maunder:
Fix for pdf/eps generation which previous scene locking had broken.

Revision 12062 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 15:40:30 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 6693 byte(s)
Diff to previous 12052
From Richard Maunder:
Raise gDebug levels in GL viewer to:

>= 3: Timing info
>= 4: Locking and scene population, threading, main draw requests
>= 5: detailed draw info

Revision 12052 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 15 10:22:57 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 6693 byte(s)
Diff to previous 11931
From Richard maunder:
Draw Sorting: Draw objects in order of decreasing BBox size - makes
dropouts on time termianted draws less intrusive - especially on slow
cards/software only. Reduced interactive drawtime to 100msec (from
300msec).

Added scene locking + more tracing to assist with debugging -
particularly under win32 mutli-thread.

Revision 11931 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 1 14:07:14 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 4384 byte(s)
Diff to previous 11929
From Timur
New code to draw shapes outline

Revision 11929 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 1 12:38:25 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 4228 byte(s)
Diff to previous 11880
From Richard Maunder:
"Apply to Family" color changes - update all physical shapes with same
logical.
Moving/scaling object via edit boxes or moving via Shift+Middle mouse
button.
Removed some old commented code.

Revision 11880 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:29:50 2005 UTC (9 years, 8 months ago) by rdm
Original Path: trunk/gl/inc/TGLScene.h
File length: 3939 byte(s)
Diff to previous 11879
Added missing cvs tag lines.

Revision 11879 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 12:05:44 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 3949 byte(s)
Diff to previous 11878
Several bug fixes from Richard

Revision 11878 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 26 10:24:45 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 3866 byte(s)
Diff to previous 11866
Cleanup files from Richard generated under windows with CRTL/M characters

Revision 11866 - (view) (download) (as text) (annotate) - [select for diffs]
Added Wed May 25 14:25:17 2005 UTC (9 years, 8 months ago) by brun
Original Path: trunk/gl/inc/TGLScene.h
File length: 3968 byte(s)
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.

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