]> git.mxchange.org Git - simgear.git/commitdiff
Helper functions for SGRect and canvas::Element
authorThomas Geymayer <tomgey@gmail.com>
Thu, 6 Jun 2013 20:28:00 +0000 (22:28 +0200)
committerThomas Geymayer <tomgey@gmail.com>
Thu, 6 Jun 2013 20:28:00 +0000 (22:28 +0200)
simgear/canvas/elements/CanvasElement.cxx
simgear/canvas/elements/CanvasElement.hxx
simgear/canvas/elements/CanvasImage.cxx
simgear/canvas/elements/CanvasImage.hxx
simgear/math/SGRect.hxx

index fcadfc66f783770a220d309e8bd3ea2871612b47..af725d570a1a21892054458ec83376c1013d3168 100644 (file)
@@ -244,6 +244,11 @@ namespace canvas
     return _transform;
   }
 
+  osg::ref_ptr<osg::MatrixTransform const> Element::getMatrixTransform() const
+  {
+    return _transform;
+  }
+
   //----------------------------------------------------------------------------
   void Element::childAdded(SGPropertyNode* parent, SGPropertyNode* child)
   {
index 136fd5fc3a03ccd08faccbff5414500a406602a4..b7d06f757832dc739643924a583d110170acf00e 100644 (file)
@@ -103,6 +103,7 @@ namespace canvas
       bool isVisible() const;
 
       osg::ref_ptr<osg::MatrixTransform> getMatrixTransform();
+      osg::ref_ptr<osg::MatrixTransform const> getMatrixTransform() const;
 
       virtual void childAdded( SGPropertyNode * parent,
                                SGPropertyNode * child );
index 5cd5ddc368e958319503509aa192b8088ceaf3c8..bd3e74038db260e85722f703042976fb4867b249 100644 (file)
@@ -129,7 +129,7 @@ namespace canvas
     {
       addStyle("fill", "color", &Image::setFill);
       addStyle("slice", "", &Image::setSlice);
-      addStyle("slice-width", "numeric", &Image::setSliceWidth);
+      addStyle("slice-width", "", &Image::setSliceWidth);
       addStyle("outset", "", &Image::setOutset);
     }
 
index 3b8dca7884aa401e4145f7c67750a31413fa6303..741d74d80c3ddfec4e075bd863b7e8adc9605aa3 100644 (file)
@@ -43,7 +43,7 @@ namespace canvas
        */
       Image( const CanvasWeakPtr& canvas,
              const SGPropertyNode_ptr& node,
-             const Style& parent_style,
+             const Style& parent_style = Style(),
              Element* parent = 0 );
       virtual ~Image();
 
index 7e70a12488a0dec89045f39f5eaec5f8b7560c7d..ad5771e9c803c37c6bdabc24f24c72c51b9c0b96 100644 (file)
@@ -109,6 +109,26 @@ class SGRect
     void setTop(T t) { _min.y() = t; }
     void setBottom(T b) { _max.y() = b; }
 
+    /**
+     * Move rect by vector
+     */
+    SGRect& operator+=(const SGVec2<T>& offset)
+    {
+      _min += offset;
+      _max += offset;
+      return *this;
+    }
+
+    /**
+     * Move rect by vector in inverse direction
+     */
+    SGRect& operator-=(const SGVec2<T>& offset)
+    {
+      _min -= offset;
+      _max -= offset;
+      return *this;
+    }
+
     bool contains(T x, T y) const
     {
       return _min.x() <= x && x <= _max.x()
@@ -126,6 +146,30 @@ class SGRect
               _max;
 };
 
+template<typename T>
+inline SGRect<T> operator+(SGRect<T> rect, const SGVec2<T>& offset)
+{
+  return rect += offset;
+}
+
+template<typename T>
+inline SGRect<T> operator+(const SGVec2<T>& offset, SGRect<T> rect)
+{
+  return rect += offset;
+}
+
+template<typename T>
+inline SGRect<T> operator-(SGRect<T> rect, const SGVec2<T>& offset)
+{
+  return rect -= offset;
+}
+
+template<typename T>
+inline SGRect<T> operator-(const SGVec2<T>& offset, SGRect<T> rect)
+{
+  return rect -= offset;
+}
+
 template<typename char_type, typename traits_type, typename T>
 inline
 std::basic_ostream<char_type, traits_type>&