X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCanvas%2Felements%2FCanvasImage.hxx;h=b6ec6187b3db9e291a01168faa3dc4bac5c9e8a0;hb=f7878cfd4dc90285c9cdda2c347425d07b8528aa;hp=934df7a0a210c798ce014bcc9e19696f0d4fe0a3;hpb=83bbd9e45c1f04dbeac986a383cd6e253a7f9590;p=flightgear.git diff --git a/src/Canvas/elements/CanvasImage.hxx b/src/Canvas/elements/CanvasImage.hxx index 934df7a0a..b6ec6187b 100644 --- a/src/Canvas/elements/CanvasImage.hxx +++ b/src/Canvas/elements/CanvasImage.hxx @@ -39,8 +39,8 @@ namespace canvas * size[0-1] Dimensions of rectangle * [x,y] Position of rectangle */ - Image(SGPropertyNode_ptr node); - ~Image(); + Image(SGPropertyNode_ptr node, const Style& parent_style); + virtual ~Image(); virtual void update(double dt); @@ -48,14 +48,10 @@ namespace canvas CanvasWeakPtr getCanvas() const; void setImage(osg::Image *img); + void setFill(const std::string& fill); const Rect& getRegion() const; - /** - * Callback for every changed child node - */ - virtual void valueChanged(SGPropertyNode *node); - protected: enum ImageAttributes @@ -64,22 +60,19 @@ namespace canvas DEST_SIZE = SRC_RECT << 1 // Element size }; - /** - * Callback for changed direct child nodes - */ virtual void childChanged(SGPropertyNode * child); - virtual void colorFillChanged(const osg::Vec4& color); - void handleHit(float x, float y); + void setupDefaultDimensions(); + Rect getTextureDimensions() const; osg::ref_ptr _texture; // TODO optionally forward events to canvas CanvasWeakPtr _canvas; - osg::Geometry *_geom; - osg::Vec3Array *_vertices; - osg::Vec2Array *_texCoords; - osg::Vec4Array* _colors; + osg::ref_ptr _geom; + osg::ref_ptr _vertices; + osg::ref_ptr _texCoords; + osg::ref_ptr _colors; SGPropertyNode *_node_src_rect; Rect _src_rect,