Thomas Geymayer
ea8023e51f
Canvas: Provide sane default bounding box (For Image & Text)
2013-01-09 12:11:19 +01:00
Thomas Geymayer
8a9693a28e
Fix canvas mouse intersection test
...
Bounding box of drawables use other coordinate frame
then bounding sphere of MatrixTransform...
2013-01-05 00:44:19 +01:00
Thomas Geymayer
724fba4af9
canvas::Element: parse full 3x3 matrix
...
This doesn't change any existing behaviour but allows specifying
full 3x3 matrix to eg. perform a perspective transform needed
for some HUDs.
2013-01-01 14:18:39 +01:00
Thomas Geymayer
beca1cbf96
Allow nasal::Ghost to only wrap classes by their shared pointers
...
This removes support for exposing and managing classes by just
raw pointers as this made lifetime management of instances
from C++ to Nasal and especially the other way round nearly
impossible. Always using smart pointers saves us from a lot
of headaches.
2012-12-29 17:49:22 +01:00
Thomas Geymayer
0423aedffc
Revert to old way of including everything from SGMath.hxx
2012-12-23 01:30:41 +01:00
Thomas Geymayer
bc3dd06b26
Missing file...
2012-12-17 10:53:52 +01:00
Thomas Geymayer
fd39808ed8
Nasal cppbindings: automatic conversion of vec2 to/from Nasal
2012-12-17 00:29:14 +01:00
Thomas Geymayer
a1b7cb5330
Fix memory leak if nasal::Ghost creation fails
2012-12-16 21:31:19 +01:00
Thomas Geymayer
ac27fae712
Canvas: Remove old event handling code
2012-12-16 19:02:21 +01:00
Thomas Geymayer
f6270ec395
Canvas: create mouseover/mouseout events
2012-12-16 18:52:32 +01:00
Thomas Geymayer
50688e1159
Rename simgear::Rect to SGRect and make interface more similar to SGBox
2012-12-13 23:37:21 +01:00
Thomas Geymayer
8417fea3bf
Overload Rect::contains and add compound assignment operators to PropertyObject
2012-12-13 00:30:11 +01:00
Thomas Geymayer
2263823f75
Create new FBO if Canvas render target size chanages
...
As doesnt seem to work to just resize the texture, if changing
the size of the Canvas render target a new FBO is created and
placed on all active placements.
2012-12-09 23:08:07 +01:00
Thomas Geymayer
a882263033
Canvas: MouseEvent now contains screen and client pos
2012-12-08 15:01:01 +01:00
Thomas Geymayer
fd27e7bd43
Canvas: basic support for rectangular clipping (like CSS clip property)
2012-12-07 18:36:37 +01:00
Thomas Geymayer
4dfe36cdc1
Canvas: Fix handling drag events and some cleanup.
2012-12-07 18:35:20 +01:00
Thomas Geymayer
fc49be1e05
Implement Canvas single/double/tripple click handling.
...
- Implement click event creation like specified in
DOM Level 3:
* Check for max move distance between mousedown/up
and clicks
* Check for click timeout
* Count clicks and report double clicks
2012-12-06 23:16:36 +01:00
Thomas Geymayer
d06d94c767
Canvas: Propagate style changes on groups to children
2012-12-06 11:33:51 +01:00
Thomas Geymayer
e9b499b82d
Extend Canvas to retrieve bounding box of groups
2012-12-04 23:58:08 +01:00
Thomas Geymayer
e6e3e686c6
canvas::Element: print warning instead of crash on removing unknown transform
2012-12-02 23:55:34 +01:00
Thomas Geymayer
46442ef50c
First working version of DOM like Canvas event handling
...
- Now it is possible to attach listeners to canvas
elements and also the canvas itself, which get
called upon different mouse events (Currently
only basic mouse events supported. click/dblclick
etc. are missing)
2012-12-02 13:22:37 +01:00
Thomas Geymayer
8816d0a9ac
Add method canvas::Group::getElementById
...
- canvas::Group: New method to get a (possibly
nested) child by its id.
- nasal::Ghost: Also support recursive parent
hashes.
2012-11-30 00:06:17 +01:00
Thomas Geymayer
229837b14c
Fix some compiler warnings. size_t/int/unsigned conversions and extra ';'
2012-11-29 20:20:40 +01:00
Thomas Geymayer
94b068a40f
Use better method names and add comments
2012-11-29 17:52:52 +01:00
Thomas Geymayer
2f0dfc4d74
Add methods to get arguments passed to function from Nasal
2012-11-29 01:23:15 +01:00
Thomas Geymayer
c19585e22a
Simplify/Make VS happy
2012-11-27 15:14:54 +01:00
Thomas Geymayer
77946585b1
Canvas: Prepare for DOM Level 2 like event model.
2012-11-27 13:51:00 +01:00
Thomas Geymayer
88a35fd162
cppbind: Automatic conversion of derived ghosts and some cleanup/fixes
2012-11-27 13:02:36 +01:00
Thomas Geymayer
767184cf3c
Extend CanvasSystemAdapter to provide access to Nasal gcSave and gcRelease
2012-11-22 00:54:56 +01:00
Thomas Geymayer
9be53e746f
Allow canvas::Placements to have own properties
2012-11-21 13:05:19 +01:00
Thomas Geymayer
8b6f50d0cc
SGPropertyNode::fireCreatedRecursive: don't fire for node itself by default
2012-11-21 11:58:07 +01:00
Thomas Geymayer
904d714d6d
Get Canvas/PropertyBasedElement by name
2012-11-18 16:27:05 +01:00
Thomas Geymayer
9f31addfa5
Fix for old gcc which got broken by fix for VS
2012-11-16 16:49:35 +01:00
Thomas Geymayer
d56ea7e6c4
Fix for VS bug
2012-11-16 15:49:43 +01:00
Thomas Geymayer
1cbe271ad5
Nasal bindings: Always pass object by reference
2012-11-16 12:24:47 +01:00
Thomas Geymayer
33db3c377f
One more fix for old gcc
2012-11-15 23:31:18 +01:00
Thomas Geymayer
a0535ef64d
Fix compile errors for old gcc
2012-11-15 22:17:43 +01:00
Thomas Geymayer
392ba18ff7
Canvas/C++ bindings: automatically detect dynamic type of polymorphic exposed classes
2012-11-15 21:17:33 +01:00
Thomas Geymayer
e872f9e928
Work around Visual Studio bug
2012-11-13 12:35:12 +01:00
Thomas Geymayer
04685a8179
C++/Nasal bindings: allow registering free function as member
2012-11-12 23:28:00 +01:00
Thomas Geymayer
55fbe68e62
Missing include and more doxygen improvements
2012-11-12 13:57:10 +01:00
Thomas Geymayer
f51e1f0cc8
Fix file headers
2012-11-12 12:25:08 +01:00
Thomas Geymayer
d31b62d44d
Add nasal::Ghost class for exposing C++ classes to Nasal
2012-11-12 12:11:41 +01:00
Thomas Geymayer
0fef94cfdb
Add from_nasal helper and fix to_nasal for std::vector.
2012-11-10 14:34:18 +01:00
Thomas Geymayer
54778ee1e1
Some basic C++/Nasal binding helpers
...
- Add nasal::to_nasal for converting different C++ types
to the according Nasal types.
- Add nasal::Hash, an OOP wrapper around Nasal hashes.
2012-11-09 19:28:27 +01:00
Thomas Geymayer
4efcda534d
Workaround for VS10 Bug/Remove superfluous class qualification
2012-11-09 10:36:42 +01:00
Thomas Geymayer
45ac5cb2fa
Canvas cleanup and restructuring
...
- Add some methods for easier using the Canvas from C++
- Add some documentation to Nasal
2012-11-09 00:05:11 +01:00
Thomas Geymayer
183d3749f0
Fix SGPropertyNode tests
2012-11-07 09:31:56 +01:00
Thomas Geymayer
81bee2bbc6
Jenkins has some problems with bind and lambdas. Let's try it with ordinary function pointers...
2012-11-06 19:34:23 +01:00
Thomas Geymayer
34719da000
Clean up Canvas element creation
2012-11-06 18:48:00 +01:00
Thomas Geymayer
df8a3d9c60
SIMGEAR_HEADLESS define is not needed anymore
2012-11-05 18:06:13 +01:00
Thomas Geymayer
53dea9b069
Move parseColor to scene/util
...
parseColor is used to parse a CSS color string into an osg::Vec4
which is only available in SimGearScene. If someone needs the
function also in SimGear headless mode we have to think about
where to better place this function.
2012-11-05 17:58:24 +01:00
Thomas Geymayer
186bae2bd4
Proper headless build fix
2012-11-05 13:35:06 +01:00
Thomas Geymayer
f83c8828f0
Fix windows and headless build
2012-11-05 12:59:15 +01:00
Thomas Geymayer
509d064286
No need to link to ShivaVG anymore
2012-11-04 23:48:51 +01:00
Thomas Geymayer
2d039e393a
Include ShivaVG into libSimGearScene
2012-11-04 20:00:53 +01:00
Thomas Geymayer
9ab88d9387
Commited too fast...
2012-11-04 19:22:37 +01:00
Thomas Geymayer
882a2a0e52
Remove OpenVG dependency from header file
2012-11-04 19:21:33 +01:00
Thomas Geymayer
c6ce1d8c67
Fix adding ShivaVG include directory
2012-11-04 16:51:07 +01:00
Thomas Geymayer
77e1a2e4be
Fix signed/unsigned comparison warning
2012-11-04 15:26:41 +01:00
Thomas Geymayer
b99f53fda3
Refactor Canvas and add some helpers.
...
- Refactor Canvas from FlightGear and fix lazy rendering with
recursive canvases.
- New classes PropertyBasedElement and PropertyBasedManager for
creating subsystems controlled by the property tree.
- New method parseColor to parse CSS 3 conformant color strings
(only basic color schemes supported)
- New Rect class representing a rectangle.
2012-11-04 14:12:05 +01:00
Thomas Geymayer
8ebc0f2b24
Add VGInitOperation for initializing OpenVG
2012-10-31 01:38:59 +01:00
Thomas Geymayer
5330dc34bc
Helper for property controlled subsystems
...
- Subsystem which manages a list of elements which
are controlled through the property tree.
- Fix a ShivaVG compiler warning.
- Add some helper functions to trigger property removed/add
events for a whole property tree.
2012-10-29 16:11:35 +01:00
Thomas Geymayer
d0ae09c7e2
Link with ShivaVG
2012-10-25 01:02:38 +02:00
Thomas Geymayer
a25bd06138
ShivaVG: Support for pseudo non-zero fillrule
2012-10-25 01:02:23 +02:00
Thomas Geymayer
5eac7974c9
Add missing glx.h include and fix some warnings.
2012-10-25 00:44:47 +02:00
Thomas Geymayer
05c107ba9c
Allow filling paths and do some clean up/fixing.
2012-10-25 00:44:47 +02:00
Thomas Geymayer
99b00daf87
Add ShivaVG sources
2012-10-25 00:44:47 +02:00
Thomas Geymayer
f191b4f35c
Move FGODGauge from FlightGear to SimGear.
...
This is a first step for moving the Canvas system to SimGear to
make it accessible to other applications (eg.FGRadar is going to
use it)
2012-10-19 11:56:32 +02:00
Thomas Geymayer
e24e3c0612
Add method SGPropertyNode::addChildren to create multiple children at once
2012-10-14 17:26:52 +02:00
Thomas Geymayer
f5cc151618
Extend addChild to allow using first unused index
2012-10-13 15:07:18 +02:00