dm hace 7 años
padre
commit
872ec4fb4b
Se han modificado 2 ficheros con 33 adiciones y 9 borrados
  1. 18 1
      oxygine/src/oxygine/actor/Box9Sprite.cpp
  2. 15 8
      oxygine/src/oxygine/actor/Box9Sprite.h

+ 18 - 1
oxygine/src/oxygine/actor/Box9Sprite.cpp

@@ -46,6 +46,23 @@ namespace oxygine
             Sprite::setResAnim(DebugActor::resSystem->getResAnim("btn"));
     }
 
+    oxygine::RectF Box9Sprite::getInnerArea() const
+    {
+        if (!_prepared)
+            prepare();
+
+        RectF rect;
+        rect.pos = Vector2(_guideX[0], _guideY[0]);
+        
+        Vector2 rb;
+        rb.x = getWidth() - (_frame.getWidth() - _guideX[1]);
+        rb.y = getHeight() - (_frame.getHeight() - _guideY[1]);
+
+        rect.setSize(rb - rect.pos);
+
+        return rect;                             
+    }
+
     void Box9Sprite::setVerticalMode(StretchMode m)
     {
         _vertMode = m;
@@ -129,7 +146,7 @@ namespace oxygine
         return Actor::isOn(localPosition, localScale);
     }
 
-    void Box9Sprite::prepare()
+    void Box9Sprite::prepare() const
     {
         _guidesX.resize(4);
         _guidesY.resize(4);

+ 15 - 8
oxygine/src/oxygine/actor/Box9Sprite.h

@@ -22,6 +22,13 @@ namespace oxygine
 
         StretchMode getVerticalMode() const {return _vertMode;}
         StretchMode getHorizontalMode() const {return _horzMode;}
+        float       getGuideX1() const { return _guideX[0]; }
+        float       getGuideX2() const { return _guideX[1]; }
+        float       getGuideY1() const { return _guideY[0]; }
+        float       getGuideY2() const { return _guideY[1]; }
+
+
+        RectF       getInnerArea() const;
 
         void setVerticalMode(StretchMode m);
         void setHorizontalMode(StretchMode m);
@@ -47,20 +54,20 @@ namespace oxygine
         void animFrameChanged(const AnimationFrame& f) override;
         void changeAnimFrame(const AnimationFrame& f) override;
 
-        bool _prepared;
+        mutable bool _prepared;
 
         StretchMode _vertMode;
         StretchMode _horzMode;
 
-        float _guideX[2];
-        float _guideY[2];
+        mutable float _guideX[2];
+        mutable float _guideY[2];
 
-        std::vector<float> _guidesX;
-        std::vector<float> _guidesY;
-        std::vector<float> _pointsX;
-        std::vector<float> _pointsY;
+        mutable std::vector<float> _guidesX;
+        mutable std::vector<float> _guidesY;
+        mutable std::vector<float> _pointsX;
+        mutable std::vector<float> _pointsY;
 
-        void prepare();
+        void prepare() const;
 
         void doRender(const RenderState&) override;
     };