Changeset 743

Show
Ignore:
Timestamp:
09/19/08 04:27:32 (4 months ago)
Author:
artem
Message:

+ point symbolizer opacity patch from Brian (openstreetmap@…)

Location:
trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/bindings/python/mapnik_point_symbolizer.cpp

    r585 r743  
    3737              &point_symbolizer::get_allow_overlap, 
    3838              &point_symbolizer::set_allow_overlap) 
     39        .add_property("opacity", 
     40              &point_symbolizer::get_opacity, 
     41              &point_symbolizer::set_opacity) 
    3942        ; 
    4043} 
  • trunk/include/mapnik/point_symbolizer.hpp

    r547 r743  
    4141        void set_allow_overlap(bool overlap); 
    4242        bool get_allow_overlap() const; 
     43        void set_opacity(float opacity) 
     44        { 
     45            opacity_ = opacity; 
     46        } 
     47        float get_opacity() const 
     48        { 
     49            return opacity_; 
     50        } 
    4351         
    4452    private: 
     53        float opacity_; 
    4554        bool overlap_; 
    4655    }; 
  • trunk/src/agg_renderer.cpp

    r741 r743  
    443443                detector_.has_placement(label_ext)) 
    444444            {     
    445                pixmap_.set_rectangle_alpha(px,py,*data); 
     445               pixmap_.set_rectangle_alpha2(*data,px,py,sym.get_opacity()); 
    446446               detector_.insert(label_ext); 
    447447            } 
  • trunk/src/load_map.cpp

    r741 r743  
    525525            optional<boolean> allow_overlap =  
    526526                get_opt_attr<boolean>(sym, "allow_overlap"); 
     527            optional<float> opacity =  
     528                get_opt_attr<float>(sym, "opacity"); 
    527529 
    528530            optional<unsigned> width = get_opt_attr<unsigned>(sym, "width");  
     
    546548                      symbol.set_allow_overlap( * allow_overlap ); 
    547549                   } 
     550                   if (opacity) 
     551                   { 
     552                      symbol.set_opacity( * opacity ); 
     553                   }                     
    548554                   rule.append(symbol); 
    549555                } 
  • trunk/src/point_symbolizer.cpp

    r546 r743  
    3636    point_symbolizer::point_symbolizer() 
    3737        : symbolizer_with_image(boost::shared_ptr<ImageData32>(new ImageData32(4,4))), 
    38           overlap_(false) 
     38          overlap_(false), 
     39          opacity_(1.0) 
    3940    { 
    4041        //default point symbol is black 4x4px square 
     
    4647                                       unsigned width,unsigned height)  
    4748        : symbolizer_with_image(file, type, width, height), 
    48           overlap_(false) 
     49          overlap_(false), 
     50          opacity_(1.0) 
    4951    { } 
    5052     
    5153    point_symbolizer::point_symbolizer(point_symbolizer const& rhs) 
    5254        : symbolizer_with_image(rhs), 
    53           overlap_(rhs.overlap_) 
     55          overlap_(rhs.overlap_), 
     56          opacity_(rhs.opacity_) 
    5457    {} 
    5558