return _transform;
}
+ osg::ref_ptr<osg::MatrixTransform const> Element::getMatrixTransform() const
+ {
+ return _transform;
+ }
+
//----------------------------------------------------------------------------
void Element::childAdded(SGPropertyNode* parent, SGPropertyNode* child)
{
bool isVisible() const;
osg::ref_ptr<osg::MatrixTransform> getMatrixTransform();
+ osg::ref_ptr<osg::MatrixTransform const> getMatrixTransform() const;
virtual void childAdded( SGPropertyNode * parent,
SGPropertyNode * child );
{
addStyle("fill", "color", &Image::setFill);
addStyle("slice", "", &Image::setSlice);
- addStyle("slice-width", "numeric", &Image::setSliceWidth);
+ addStyle("slice-width", "", &Image::setSliceWidth);
addStyle("outset", "", &Image::setOutset);
}
*/
Image( const CanvasWeakPtr& canvas,
const SGPropertyNode_ptr& node,
- const Style& parent_style,
+ const Style& parent_style = Style(),
Element* parent = 0 );
virtual ~Image();
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()
_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>&