]> git.mxchange.org Git - flightgear.git/commitdiff
Expose canvas::Element::getTransformedBounds to Nasal
authorThomas Geymayer <tomgey@gmail.com>
Tue, 4 Dec 2012 22:59:21 +0000 (23:59 +0100)
committerThomas Geymayer <tomgey@gmail.com>
Tue, 4 Dec 2012 22:59:21 +0000 (23:59 +0100)
src/Scripting/NasalCanvas.cxx

index 8c70b51ac4a6b8c96d54fbc620d04a5a2036d8a4..fffe5d5a9756b0c5b53baea17a18093ccfbde87f 100644 (file)
@@ -121,6 +121,19 @@ naRef f_canvasCreateGroup(sc::Canvas& canvas, const nasal::CallContext& ctx)
   );
 }
 
+naRef f_elementGetTransformedBounds(sc::Element& el, const nasal::CallContext& ctx)
+{
+  osg::BoundingBox bb = el.getTransformedBounds( osg::Matrix::identity() );
+
+  std::vector<float> bb_vec(4);
+  bb_vec[0] = bb._min.x();
+  bb_vec[1] = bb._min.y();
+  bb_vec[2] = bb._max.x();
+  bb_vec[3] = bb._max.y();
+
+  return nasal::to_nasal(ctx.c, bb_vec);
+}
+
 naRef f_groupCreateChild(sc::Group& group, const nasal::CallContext& ctx)
 {
   return NasalElement::create
@@ -177,7 +190,8 @@ naRef initNasalCanvas(naRef globals, naContext c, naRef gcSave)
     .method<&sc::Canvas::addEventListener>("addEventListener");
   NasalElement::init("canvas.Element")
     .member("_node_ghost", &elementGetNode<sc::Element>)
-    .method<&sc::Element::addEventListener>("addEventListener");
+    .method<&sc::Element::addEventListener>("addEventListener")
+    .method_func<&f_elementGetTransformedBounds>("getTransformedBounds");
   NasalGroup::init("canvas.Group")
     .bases<NasalElement>()
     .method_func<&f_groupCreateChild>("_createChild")