Class: Fox::FXGLViewer
- Inherits:
-
FXGLCanvas
- Object
- FXObject
- FXId
- FXDrawable
- FXWindow
- FXCanvas
- FXGLCanvas
- Fox::FXGLViewer
- Defined in:
- rdoc-sources/FXGLViewer.rb
Overview
Canvas, an area drawn by another object
Events
The following messages are sent by FXGLViewer to its message target:
SEL_KEYPRESS
-
sent when a key goes down; the message data is an FXEvent instance.
SEL_KEYRELEASE
-
sent when a key goes up; the message data is an FXEvent instance.
SEL_LEFTBUTTONPRESS
-
sent when the left mouse button goes down; the message data is an FXEvent instance.
SEL_LEFTBUTTONRELEASE
-
sent when the left mouse button goes up; the message data is an FXEvent instance.
SEL_MIDDLEBUTTONPRESS
-
sent when the middle mouse button goes down; the message data is an FXEvent instance.
SEL_MIDDLEBUTTONRELEASE
-
sent when the middle mouse button goes up; the message data is an FXEvent instance.
SEL_RIGHTBUTTONPRESS
-
sent when the right mouse button goes down; the message data is an FXEvent instance.
SEL_RIGHTBUTTONRELEASE
-
sent when the right mouse button goes up; the message data is an FXEvent instance.
SEL_MOTION
-
sent when the mouse pointer is moved; the message data is an FXEvent instance.
SEL_MOUSEWHEEL
-
sent when the mouse wheel is spun; the message data is an FXEvent instance.
SEL_CLICKED
-
sent when the mouse is single-clicked somewhere in the widget; the message data is a reference to the clicked object (possibly
nil
) SEL_DOUBLECLICKED
-
sent when the mouse is double-clicked somewhere in the widget; the message data is a reference to the clicked object (possibly
nil
) SEL_TRIPLECLICKED
-
sent when the mouse is triple-clicked somewhere in the widget; the message data is a reference to the clicked object (possibly
nil
) SEL_PICKED
-
sent when an object is picked; the message data is an FXEvent instance.
SEL_SELECTED
-
sent when object(s) are selected in the viewer; the message data is an array of references to the selected objects.
SEL_DESELECTED
-
sent when object(s) are deselected in the viewer; the message data is an array of references to the deselected objects.
SEL_LASSOED
-
sent when a lasso-selection has been completed; the message data is an FXEvent instance.
SEL_INSERTED
-
sent when the viewer receives a
SEL_INSERTED
message. SEL_DELETED
-
sent when the viewer receives a
SEL_COMMAND
message with theID_DELETE_SEL
identifier; the message data is an array of references to the selected object(s). SEL_DRAGGED
-
sent when the selected object is dragged around in the viewer; the message data is a reference to the selected object.
SEL_COMMAND
-
sent when the mouse is clicked somewhere in the widget; the message data is a reference to the clicked object (possibly
nil
) SEL_CHANGED
-
sent when the selection changes; the message data is a reference to the newly selected object (or
nil
).
FXGLViewer options
VIEWER_LIGHTING
-
Lighting is on
VIEWER_FOG
-
Fog mode on
VIEWER_DITHER
-
Dithering
Projection modes (class constants)
PARALLEL
-
Parallel projection
PERSPECTIVE
-
Perspective projection
Message identifiers
ID_PERSPECTIVE
-
x
ID_PARALLEL
-
x
ID_FRONT
-
x
ID_BACK
-
x
ID_LEFT
-
x
ID_RIGHT
-
x
ID_TOP
-
x
ID_BOTTOM
-
x
ID_RESETVIEW
-
x
ID_FITVIEW
-
x
ID_TIPTIMER
-
x
ID_TOP_COLOR
-
x
ID_BOTTOM_COLOR
-
x
ID_BACK_COLOR
-
x
ID_AMBIENT_COLOR
-
x
ID_LIGHT_AMBIENT
-
x
ID_LIGHT_DIFFUSE
-
x
ID_LIGHT_SPECULAR
-
x
ID_LIGHTING
-
x
ID_TURBO
-
x
ID_FOG
-
x
ID_DITHER
-
x
ID_SCALE_X
-
x
ID_SCALE_Y
-
x
ID_SCALE_Z
-
x
ID_DIAL_X
-
x
ID_DIAL_Y
-
x
ID_DIAL_Z
-
x
ID_ROLL
-
x
ID_PITCH
-
x
ID_YAW
-
x
ID_FOV
-
x
ID_ZOOM
-
x
ID_CUT_SEL
-
x
ID_COPY_SEL
-
x
ID_PASTE_SEL
-
x
ID_DELETE_SEL
-
x
ID_PRINT_IMAGE
-
x
ID_PRINT_VECTOR
-
x
ID_LASSO_ZOOM
-
x
ID_LASSO_SELECT
-
x
Instance Attribute Summary collapse
-
#ambientColor ⇒ Object
Global ambient light color FXMat4f.
-
#center ⇒ Object
Object center FXVec3f.
-
#distance ⇒ Object
Target point distance [Float].
-
#eyePosition ⇒ Object
readonly
Eye position FXVec3f.
-
#eyeVector ⇒ Object
readonly
Eyesight vector FXVec3f.
-
#fieldOfView ⇒ Object
Camera field of view angle (in degrees) [Float].
-
#helpText ⇒ Object
Status line help text [String].
-
#invTransform ⇒ Object
readonly
The inverse of the current transformation matrix FXMat4f.
-
#light ⇒ Object
Light source settings FXLight.
-
#material ⇒ Object
Default object material setting FXMaterial.
-
#maxHits ⇒ Object
The maximum hits, i.e.
-
#modelPix ⇒ Object
readonly
Size of pixel in model coordinates [Float].
-
#orientation ⇒ Object
Camera orientation FXQuatf.
-
#projection ⇒ Object
The projection mode (either
FXGLViewer::PERSPECTIVE
orFXGLViewer::PARALLEL
). -
#scale ⇒ Object
Current scaling factors FXVec3f.
-
#scene ⇒ Object
The current scene object FXGLObject.
-
#selection ⇒ Object
The selection FXGLObject.
-
#tipText ⇒ Object
Tool tip text [String].
-
#transform ⇒ Object
readonly
The current transformation matrix FXMat4f.
-
#turboMode ⇒ Object
writeonly
Set turbo mode [Boolean].
-
#viewport ⇒ Object
readonly
The viewport for this viewer FXViewport.
-
#worldPix ⇒ Object
readonly
Size of pixel in world coordinates [Float].
-
#zoom ⇒ Object
Camera zoom factor [Float].
Attributes inherited from FXWindow
#accelTable, #backColor, #defaultCursor, #dragCursor, #first, #focus, #key, #last, #layoutHints, #next, #numChildren, #owner, #parent, #prev, #root, #selector, #shell, #target, #x, #y
Attributes inherited from FXDrawable
Attributes inherited from FXId
Class Method Summary collapse
-
.objectType ⇒ Object
Returns the FXDragType for FXGLObject.
-
.objectTypeName ⇒ Object
Returns the drag type name.
Instance Method Summary collapse
-
#doesTurbo? ⇒ Boolean
When drawing a GL object, if doesTurbo? returns
true
, the object may choose to perform a reduced complexity drawing as the user is interactively manipulating; another update will be done later when the full complexity drawing can be performed again. -
#eyeToScreen(e) ⇒ Object
Translate eye-coordinate to screen coordinate.
-
#eyeToWorld(e) ⇒ Object
Translate eye coordinate to eye coordinate.
-
#fitToBounds(box) ⇒ Object
Fit viewer to the given bounding box.
-
#getBackgroundColor(bottom = false) ⇒ Object
Return top or bottom window background color.
-
#getBoreVector(sx, sy) ⇒ Object
Return boresight vector (an array of two arrays).
-
#initialize(p, vis, sharegroup, target = nil, selector = 0, opts = 0, x = 0, y = 0, width = 0, height = 0) ⇒ FXGLViewer
constructor
Construct GL viewer widget sharing display list with another GL viewer.
-
#lasso(x1, y1, x2, y2) ⇒ Object
Return an array of all objects in the given rectangle.
-
#locked? ⇒ Boolean
Returns
true
if the viewer is locked. -
#readFeedback(x, y, w, h) ⇒ Object
Read the feedback buffer containing the current scene.
-
#readPixels(x, y, w, h) ⇒ Object
Read the pixels off the screen as R,G,B tuples.
-
#screenToEye(sx, sy, eyez = 0.0) ⇒ Object
Translate screen coordinate to eye coordinate at the given depth.
-
#screenToTarget(sx, sy) ⇒ Object
Translate screen coordinate to eye coordinate at the target point depth.
-
#setBackgroundColor(clr, bottom = MAYBE) ⇒ Object
Change top, bottom or both background colors.
-
#setBounds(box) ⇒ Object
Change the model bounding box; this adjusts the viewer.
-
#translate(vec) ⇒ Object
Translate object center.
-
#turboMode? ⇒ Boolean
Returns
true
if turbo mode is enabled. -
#worldToEye(w) ⇒ Object
Translate world coordinate to eye coordinate.
-
#worldToEyeZ(w) ⇒ Object
Translate world coordinate to eye coordinate depth.
-
#worldVector(fx, fy, tx, ty) ⇒ Object
Calculate world coordinate vector from screen movement.
Methods inherited from FXGLCanvas
#context, #current?, #makeCurrent, #makeNonCurrent, #shared?, #swapBuffers
Methods inherited from FXWindow
#acceptDrop, #acquireClipboard, #acquireSelection, #active?, #addHotKey, after?, #after?, before?, #before?, #beginDrag, #canFocus?, #changeFocus, #childAtIndex, #childOf?, #children, #clearDragRectangle, #clearShape, colorType, colorTypeName, commonAncestor, #composeContext, #composite?, #contains?, #containsChild?, #create, #createComposeContext, #cursorPosition, #default?, #defaultHeight, #defaultWidth, deleteType, deleteTypeName, #destroy, #destroyComposeContext, #detach, #didAccept, #disable, #doesSaveUnder?, #dragging?, #dropDisable, #dropEnable, #dropEnabled?, #dropFinished, #dropTarget?, #each_child, #each_child_recursive, #enable, #enabled?, #endDrag, #forceRefresh, #getChildAt, #getDNDData, #getHeightForWidth, #getWidthForHeight, #grab, #grabKeyboard, #grabbed?, #grabbedKeyboard?, #handleDrag, #hasClipboard?, #hasFocus?, #hasSelection?, #height, #height=, #hide, imageType, #inFocusChain?, #indexOfChild, #initial?, #inquireDNDAction, #inquireDNDTypes, #killFocus, #layout, #linkAfter, #linkBefore, #lower, #move, octetType, octetTypeName, #offeredDNDType?, #position, #raiseWindow, #recalc, #releaseClipboard, #releaseSelection, #remHotKey, #removeChild, #repaint, #reparent, #resize, #scroll, #setCursorPosition, #setDNDData, #setDefault, #setDragRectangle, #setFocus, #setInitial, #setShape, #shell?, #show, #shown?, stringType, textType, textTypeName, #tr, #translateCoordinatesFrom, #translateCoordinatesTo, #underCursor?, #ungrab, #ungrabKeyboard, #update, urilistType, urilistTypeName, utf16Type, utf16TypeName, utf8Type, utf8TypeName, #visible=, #width, #width=
Methods included from Responder2
Methods inherited from FXDrawable
Methods inherited from FXId
#create, #created?, #destroy, #detach, #runOnUiThread
Methods inherited from FXObject
#bind, #handle, #load, #save, subclasses
Constructor Details
#initialize(p, vis, sharegroup, target = nil, selector = 0, opts = 0, x = 0, y = 0, width = 0, height = 0) ⇒ FXGLViewer
Construct GL viewer widget sharing display list with another GL viewer
255 256 |
# File 'rdoc-sources/FXGLViewer.rb', line 255 def initialize(p, vis, target=nil, selector=0, opts=0, x=0, y=0, width=0, height=0) # :yields: theGLViewer end |
Instance Attribute Details
#ambientColor ⇒ Object
Global ambient light color FXMat4f
234 235 236 |
# File 'rdoc-sources/FXGLViewer.rb', line 234 def ambientColor @ambientColor end |
#center ⇒ Object
Object center Fox::FXVec3f
204 205 206 |
# File 'rdoc-sources/FXGLViewer.rb', line 204 def center @center end |
#distance ⇒ Object
Target point distance [Float]
195 196 197 |
# File 'rdoc-sources/FXGLViewer.rb', line 195 def distance @distance end |
#eyePosition ⇒ Object (readonly)
Eye position Fox::FXVec3f
210 211 212 |
# File 'rdoc-sources/FXGLViewer.rb', line 210 def eyePosition @eyePosition end |
#eyeVector ⇒ Object (readonly)
Eyesight vector Fox::FXVec3f
207 208 209 |
# File 'rdoc-sources/FXGLViewer.rb', line 207 def eyeVector @eyeVector end |
#fieldOfView ⇒ Object
Camera field of view angle (in degrees) [Float]
189 190 191 |
# File 'rdoc-sources/FXGLViewer.rb', line 189 def fieldOfView @fieldOfView end |
#helpText ⇒ Object
Status line help text [String]
213 214 215 |
# File 'rdoc-sources/FXGLViewer.rb', line 213 def helpText @helpText end |
#invTransform ⇒ Object (readonly)
The inverse of the current transformation matrix FXMat4f
222 223 224 |
# File 'rdoc-sources/FXGLViewer.rb', line 222 def invTransform @invTransform end |
#light ⇒ Object
Light source settings Fox::FXLight
244 245 246 |
# File 'rdoc-sources/FXGLViewer.rb', line 244 def light @light end |
#material ⇒ Object
Default object material setting Fox::FXMaterial
186 187 188 |
# File 'rdoc-sources/FXGLViewer.rb', line 186 def material @material end |
#maxHits ⇒ Object
The maximum hits, i.e. the maximum size of the pick buffer [Integer]. When less than or equal to zero, picking is essentially turned off.
238 239 240 |
# File 'rdoc-sources/FXGLViewer.rb', line 238 def maxHits @maxHits end |
#modelPix ⇒ Object (readonly)
Size of pixel in model coordinates [Float]
180 181 182 |
# File 'rdoc-sources/FXGLViewer.rb', line 180 def modelPix @modelPix end |
#orientation ⇒ Object
Camera orientation Fox::FXQuatf
201 202 203 |
# File 'rdoc-sources/FXGLViewer.rb', line 201 def orientation @orientation end |
#projection ⇒ Object
The projection mode (either FXGLViewer::PERSPECTIVE
or FXGLViewer::PARALLEL
)
231 232 233 |
# File 'rdoc-sources/FXGLViewer.rb', line 231 def projection @projection end |
#scale ⇒ Object
Current scaling factors Fox::FXVec3f
198 199 200 |
# File 'rdoc-sources/FXGLViewer.rb', line 198 def scale @scale end |
#scene ⇒ Object
The current scene object Fox::FXGLObject
225 226 227 |
# File 'rdoc-sources/FXGLViewer.rb', line 225 def scene @scene end |
#selection ⇒ Object
The selection Fox::FXGLObject
228 229 230 |
# File 'rdoc-sources/FXGLViewer.rb', line 228 def selection @selection end |
#tipText ⇒ Object
Tool tip text [String]
216 217 218 |
# File 'rdoc-sources/FXGLViewer.rb', line 216 def tipText @tipText end |
#transform ⇒ Object (readonly)
The current transformation matrix FXMat4f
219 220 221 |
# File 'rdoc-sources/FXGLViewer.rb', line 219 def transform @transform end |
#turboMode=(value) ⇒ Object (writeonly)
Set turbo mode [Boolean]
241 242 243 |
# File 'rdoc-sources/FXGLViewer.rb', line 241 def turboMode=(value) @turboMode = value end |
#viewport ⇒ Object (readonly)
The viewport for this viewer Fox::FXViewport
183 184 185 |
# File 'rdoc-sources/FXGLViewer.rb', line 183 def @viewport end |
#worldPix ⇒ Object (readonly)
Size of pixel in world coordinates [Float]
177 178 179 |
# File 'rdoc-sources/FXGLViewer.rb', line 177 def worldPix @worldPix end |
#zoom ⇒ Object
Camera zoom factor [Float]
192 193 194 |
# File 'rdoc-sources/FXGLViewer.rb', line 192 def zoom @zoom end |
Class Method Details
.objectType ⇒ Object
Returns the FXDragType for FXGLObject
247 |
# File 'rdoc-sources/FXGLViewer.rb', line 247 def FXGLViewer.objectType; end |
.objectTypeName ⇒ Object
Returns the drag type name
250 |
# File 'rdoc-sources/FXGLViewer.rb', line 250 def FXGLViewer.objectTypeName; end |
Instance Method Details
#doesTurbo? ⇒ Boolean
When drawing a GL object, if doesTurbo? returns true
, the object may choose to perform a reduced complexity drawing as the user is interactively manipulating; another update will be done later when the full complexity drawing can be performed again.
318 |
# File 'rdoc-sources/FXGLViewer.rb', line 318 def doesTurbo?; end |
#eyeToScreen(e) ⇒ Object
Translate eye-coordinate to screen coordinate. Returns a 2-element array [sx, sy] containing the screen coordinate.
277 |
# File 'rdoc-sources/FXGLViewer.rb', line 277 def eyeToScreen(e); end |
#eyeToWorld(e) ⇒ Object
Translate eye coordinate to eye coordinate
292 |
# File 'rdoc-sources/FXGLViewer.rb', line 292 def eyeToWorld(e); end |
#fitToBounds(box) ⇒ Object
Fit viewer to the given bounding box
271 |
# File 'rdoc-sources/FXGLViewer.rb', line 271 def fitToBounds(box); end |
#getBackgroundColor(bottom = false) ⇒ Object
Return top or bottom window background color.
329 |
# File 'rdoc-sources/FXGLViewer.rb', line 329 def getBackgroundColor(bottom=false); end |
#getBoreVector(sx, sy) ⇒ Object
Return boresight vector (an array of two arrays)
301 |
# File 'rdoc-sources/FXGLViewer.rb', line 301 def getBoreVector(sx, sy); end |
#lasso(x1, y1, x2, y2) ⇒ Object
Return an array of all objects in the given rectangle
265 |
# File 'rdoc-sources/FXGLViewer.rb', line 265 def lasso(x1, y1, x2, y2); end |
#locked? ⇒ Boolean
Returns true
if the viewer is locked
304 |
# File 'rdoc-sources/FXGLViewer.rb', line 304 def locked?; end |
#readFeedback(x, y, w, h) ⇒ Object
Read the feedback buffer containing the current scene.
310 |
# File 'rdoc-sources/FXGLViewer.rb', line 310 def readFeedback(x, y, w, h); end |
#readPixels(x, y, w, h) ⇒ Object
Read the pixels off the screen as R,G,B tuples.
307 |
# File 'rdoc-sources/FXGLViewer.rb', line 307 def readPixels(x, y, w, h); end |
#screenToEye(sx, sy, eyez = 0.0) ⇒ Object
Translate screen coordinate to eye coordinate at the given depth.
280 |
# File 'rdoc-sources/FXGLViewer.rb', line 280 def screenToEye(sx, sy, eyez=0.0); end |
#screenToTarget(sx, sy) ⇒ Object
Translate screen coordinate to eye coordinate at the target point depth
283 |
# File 'rdoc-sources/FXGLViewer.rb', line 283 def screenToTarget(sx, sy); end |
#setBackgroundColor(clr, bottom = MAYBE) ⇒ Object
Change top, bottom or both background colors.
326 |
# File 'rdoc-sources/FXGLViewer.rb', line 326 def setBackgroundColor(clr, bottom=MAYBE); end |
#setBounds(box) ⇒ Object
Change the model bounding box; this adjusts the viewer
268 |
# File 'rdoc-sources/FXGLViewer.rb', line 268 def setBounds(box); end |
#translate(vec) ⇒ Object
Translate object center
298 |
# File 'rdoc-sources/FXGLViewer.rb', line 298 def translate(vec); end |
#turboMode? ⇒ Boolean
Returns true
if turbo mode is enabled
321 |
# File 'rdoc-sources/FXGLViewer.rb', line 321 def turboMode?; end |
#worldToEye(w) ⇒ Object
Translate world coordinate to eye coordinate
286 |
# File 'rdoc-sources/FXGLViewer.rb', line 286 def worldToEye(w); end |
#worldToEyeZ(w) ⇒ Object
Translate world coordinate to eye coordinate depth
289 |
# File 'rdoc-sources/FXGLViewer.rb', line 289 def worldToEyeZ(w); end |
#worldVector(fx, fy, tx, ty) ⇒ Object
Calculate world coordinate vector from screen movement
295 |
# File 'rdoc-sources/FXGLViewer.rb', line 295 def worldVector(fx, fy, tx, ty); end |