Changeset 490 for trunk/include/mapnik/placement_finder.hpp
- Timestamp:
- 07/02/07 09:39:08 (3 years ago)
- Files:
-
- 1 modified
-
trunk/include/mapnik/placement_finder.hpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/mapnik/placement_finder.hpp
r478 r490 50 50 typedef coord_transform2<CoordTransform,geometry_type> path_type; 51 51 52 //For shields 53 placement(string_info *info_, 54 CoordTransform *ctrans_, 55 const proj_transform *proj_trans_, 56 geometry_ptr geom_, 57 std::pair<double, double> dimensions_); 58 59 //For text 52 template <typename SymbolizerT> 60 53 placement(string_info *info_, 61 54 CoordTransform *ctrans_, 62 55 const proj_transform *proj_trans_, 63 56 geometry_ptr geom_, 64 position const& displacement, 65 label_placement_e placement_); 57 SymbolizerT sym); 66 58 67 59 ~placement(); 68 60 61 //helpers 62 std::pair<double, double> get_position_at_distance(double target_distance); 63 double get_total_distance(); 64 void clear_envelopes(); 65 69 66 unsigned path_size() const; 67 70 68 string_info *info; 71 69 72 70 CoordTransform *ctrans; 73 71 const proj_transform *proj_trans; 72 geometry_ptr geom; 73 path_type shape_path; 74 74 75 geometry_ptr geom; 75 double total_distance_; //cache for distance 76 76 77 position displacement_; 77 78 label_placement_e label_placement; 78 std::pair<double, double> dimensions;79 79 80 bool has_dimensions;81 82 path_type shape_path;83 80 std::queue< Envelope<double> > envelopes; 84 81 … … 88 85 // caching output 89 86 placement_element current_placement; 90 91 //helpers92 std::pair<double, double> get_position_at_distance(double target_distance);93 double get_total_distance();94 void clear_envelopes();95 96 double total_distance_; //cache for distance97 87 98 88 int wrap_width; … … 104 94 105 95 double max_char_angle_delta; 96 double minimum_distance; 106 97 107 98 bool avoid_edges; 99 100 bool has_dimensions; 101 std::pair<double, double> dimensions; 108 102 }; 109 103 … … 116 110 //e is the dimensions of the map, buffer is the buffer used for collission detection. 117 111 placement_finder(DetectorT & detector,Envelope<double> const& e); 118 boolfind_placements(placement *p);112 void find_placements(placement *p); 119 113 void clear(); 120 114 … … 124 118 bool build_path_follow(placement *p, double target_distance); 125 119 bool build_path_horizontal(placement *p, double target_distance); 120 std::vector<double> get_ideal_placements(placement *p); 126 121 void update_detector(placement *p); 122 DetectorT & detector_; 127 123 Envelope<double> dimensions_; 128 DetectorT & detector_;129 124 }; 130 125 }
