Ejemplo n.º 1
0
	void transform_at(unsigned pos,const CoordTransform& t)
	{
	    if (pos >= pos_) return;
	    unsigned block = pos >> block_shift;
	    value_type* vertex = vertexs_[block] + (( pos & block_mask) << 1);
	    t.forward_x(vertex);
	    ++vertex;
	    t.forward_y(vertex);
	}
    void image_symbolizer::render(Feature const& feat,CoordTransform const& t,Image32& image) const	
    {
	geometry_ptr const& geom=feat.get_geometry();
	if (geom)
	{
	    double x;
	    double y;
	    geom->label_position(&x,&y);
	    t.forward_x(&x);
	    t.forward_y(&y);
	    int w=symbol_.width();
	    int h=symbol_.height();    
	    int px=int(ceil(x - 0.5 * w));
	    int py=int(ceil(y - 0.5 * h));
	    image.set_rectangle_alpha(px,py,symbol_);
	}
    }