Log of /trunk/graf3d/x3d/inc/TViewerX3D.h
Parent Directory
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: 4499 byte(s)
Diff to
previous 20882
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
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/x3d/inc/TViewerX3D.h
File length: 4558 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/x3d/inc/TViewerX3D.h
File length: 4536 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
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/x3d/inc/TViewerX3D.h
File length: 4234 byte(s)
Diff to
previous 9665
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
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/x3d/inc/TViewerX3D.h
File length: 3660 byte(s)
Diff to
previous 3679
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
3679 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 16 13:53:53 2002 UTC (13 years ago) by
brun
Original Path:
trunk/x3d/inc/TViewerX3D.h
File length: 3191 byte(s)
Diff to
previous 1958
Add new functions:
Int_t ExecCommand(Int_t px, Int_t py, char command);
void GetPosition(Float_t &longitude, Float_t &latitude, Float_t &psi);
ExecCommand may be called from a script to animate an X3D picture
// px, py mouse position
//command = 0 --- move to px,py
// = w --- wireframe mode
// = e --- hidden line mode
// = r --- hidden surface mode
// = u --- move object down
// = i --- move object up
// = o --- toggle controls style
// = s --- toggle stereo display
// = d --- toggle blue stereo view
// = f --- toggle double buffer
// = h --- move object right
// = j --- move object forward
// = k --- move object backward
// = l --- move object left
// = x a --- rotate about x
// = y b --- rotate about y
// = z c --- rotate about z
// = 1 2 3 --- autorotate about x
// = 4 5 6 --- autorotate about y
// = 7 8 9 --- autorotate about z
// = [ ] { } --- adjust focus
// Example:
/*
{
gSystem->Load("libX3d");
TCanvas *c1 = new TCanvas("c1");
TFile *f = new TFile("hsimple.root");
TTree *ntuple = (TTree*)f->Get("ntuple");
ntuple->SetMarkerColor(kYellow);
ntuple->Draw("px:py:pz");
TViewerX3D *x3d = new TViewerX3D(c1,"");
for (Int_t i=0;i<500;i++) {
Int_t px = i%500;
Int_t py = (2*i)%200;
x3d->ExecCommand(px,py,0); //rotate
if (i%20 >10) x3d->ExecCommand(px,py,'j'); //zoom
if (i%20 <10) x3d->ExecCommand(px,py,'k'); //unzoom
}
}
*/
Revision
766 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 13 19:04:40 2000 UTC (14 years, 3 months ago) by
rdm
Original Path:
trunk/x3d/inc/TViewerX3D.h
File length: 2967 byte(s)
Diff to
previous 3
rewrite of TViewerX3D. Creates now a TGMainFrame with menus in which
X3D is displayed. Also removed the eventloop from X3D and put under
control of the ROOT event loop. Currently only one X3D viewer can be
open (due to several globals in the old X3D code). Protection still to
be added.
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.