Merge branch 'master' into geometry_cleanup
This commit is contained in:
commit
9fe444ba29
2 changed files with 38 additions and 36 deletions
|
@ -44,10 +44,6 @@ target_path = os.path.normpath(env['PYTHON_INSTALL_LOCATION'] + os.path.sep + 'm
|
|||
target_path_deprecated = os.path.normpath(env['PYTHON_INSTALL_LOCATION'] + os.path.sep + 'mapnik2')
|
||||
|
||||
libraries = ['mapnik']
|
||||
libraries.append('png')
|
||||
|
||||
if env['JPEG']:
|
||||
libraries.append('jpeg')
|
||||
|
||||
if env['BOOST_PYTHON_LIB']:
|
||||
libraries.append(env['BOOST_PYTHON_LIB'])
|
||||
|
@ -57,11 +53,16 @@ else:
|
|||
else:
|
||||
libraries.append('boost_python%s' % env['BOOST_APPEND'])
|
||||
|
||||
# TODO - do solaris/fedora need direct linking too?
|
||||
if env['PLATFORM'] == 'Darwin':
|
||||
libraries.append(env['ICU_LIB_NAME'])
|
||||
libraries.append('boost_regex%s' % env['BOOST_APPEND'])
|
||||
if env['THREADING'] == 'multi':
|
||||
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
||||
if not env['PYTHON_DYNAMIC_LOOKUP']:
|
||||
libraries.append('png')
|
||||
if env['JPEG']:
|
||||
libraries.append('jpeg')
|
||||
libraries.append(env['ICU_LIB_NAME'])
|
||||
libraries.append('boost_regex%s' % env['BOOST_APPEND'])
|
||||
if env['THREADING'] == 'multi':
|
||||
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
|
||||
|
||||
##### Python linking on OS X is tricky ###
|
||||
# Confounding problems are:
|
||||
|
@ -107,6 +108,7 @@ if env['PLATFORM'] == 'Darwin':
|
|||
else:
|
||||
# TODO - do we need to pass -L/?
|
||||
python_link_flag = '-lpython%s' % env['PYTHON_VERSION']
|
||||
|
||||
elif env['PLATFORM'] == 'SunOS':
|
||||
# make sure to explicitly link mapnik.so against
|
||||
# libmapnik in its installed location
|
||||
|
|
|
@ -293,7 +293,7 @@ void placement_finder<DetectorT>::find_point_placement(placement & p,
|
|||
// wrap text at first wrap_char after (default) the wrap width or immediately before the current word
|
||||
if ((c == '\n') ||
|
||||
(line_width > 0 && (((line_width - character_spacing) > wrap_at && !p.wrap_before) ||
|
||||
((line_width + word_width - character_spacing) > wrap_at && p.wrap_before)) ))
|
||||
((line_width + word_width - character_spacing) > wrap_at && p.wrap_before)) ))
|
||||
{
|
||||
// Remove width of breaking space character since it is not rendered and the character_spacing for the last character on the line
|
||||
line_width -= (last_wrap_char_width + character_spacing);
|
||||
|
@ -381,12 +381,12 @@ void placement_finder<DetectorT>::find_point_placement(placement & p,
|
|||
x = -(line_width / 2.0);
|
||||
if (p.info.get_rtl()==false)
|
||||
{
|
||||
y = (0.5 * (string_height + (line_spacing * (total_lines-1)))) - max_character_height;
|
||||
}
|
||||
else
|
||||
{
|
||||
y = -(0.5 * (string_height + (line_spacing * (total_lines-1)))) + max_character_height;
|
||||
}
|
||||
y = (0.5 * (string_height + (line_spacing * (total_lines-1)))) - max_character_height;
|
||||
}
|
||||
else
|
||||
{
|
||||
y = -(0.5 * (string_height + (line_spacing * (total_lines-1)))) + max_character_height;
|
||||
}
|
||||
|
||||
// if needed, adjust for desired justification (J_MIDDLE is the default)
|
||||
if( po->jalign == J_LEFT )
|
||||
|
@ -411,14 +411,14 @@ void placement_finder<DetectorT>::find_point_placement(placement & p,
|
|||
index_to_wrap_at = line_breaks[++line_number];
|
||||
line_width = line_widths[line_number];
|
||||
|
||||
if (p.info.get_rtl()==false)
|
||||
{
|
||||
y -= (max_character_height + line_spacing); // move position down to line start
|
||||
}
|
||||
else
|
||||
{
|
||||
y += (max_character_height + line_spacing); // move position up to line start
|
||||
}
|
||||
if (p.info.get_rtl()==false)
|
||||
{
|
||||
y -= (max_character_height + line_spacing); // move position down to line start
|
||||
}
|
||||
else
|
||||
{
|
||||
y += (max_character_height + line_spacing); // move position up to line start
|
||||
}
|
||||
|
||||
// reset to begining of line position
|
||||
x = ((po->jalign == J_LEFT)? -(string_width / 2.0): ((po->jalign == J_RIGHT)? ((string_width /2.0) - line_width): -(line_width / 2.0)));
|
||||
|
@ -467,9 +467,9 @@ void placement_finder<DetectorT>::find_point_placement(placement & p,
|
|||
if (p.minimum_padding > 0)
|
||||
{
|
||||
box2d<double> epad(e.minx()-p.minimum_padding,
|
||||
e.miny()-p.minimum_padding,
|
||||
e.maxx()+p.minimum_padding,
|
||||
e.maxy()+p.minimum_padding);
|
||||
e.miny()-p.minimum_padding,
|
||||
e.maxx()+p.minimum_padding,
|
||||
e.maxy()+p.minimum_padding);
|
||||
if (!dimensions_.contains(epad))
|
||||
{
|
||||
return;
|
||||
|
@ -485,18 +485,18 @@ void placement_finder<DetectorT>::find_point_placement(placement & p,
|
|||
// check the placement of any additional envelopes
|
||||
if (!p.allow_overlap && !p.additional_boxes.empty())
|
||||
{
|
||||
BOOST_FOREACH(box2d<double> box, p.additional_boxes)
|
||||
{
|
||||
box2d<double> pt(box.minx() + current_placement->starting_x,
|
||||
box.miny() + current_placement->starting_y,
|
||||
box.maxx() + current_placement->starting_x,
|
||||
box.maxy() + current_placement->starting_y);
|
||||
BOOST_FOREACH(box2d<double> box, p.additional_boxes)
|
||||
{
|
||||
box2d<double> pt(box.minx() + current_placement->starting_x,
|
||||
box.miny() + current_placement->starting_y,
|
||||
box.maxx() + current_placement->starting_x,
|
||||
box.maxy() + current_placement->starting_y);
|
||||
|
||||
// abort the whole placement if the additional envelopes can't be placed.
|
||||
if (!detector_.has_point_placement(pt, p.minimum_distance)) return;
|
||||
// abort the whole placement if the additional envelopes can't be placed.
|
||||
if (!detector_.has_point_placement(pt, p.minimum_distance)) return;
|
||||
|
||||
c_envelopes.push(pt);
|
||||
}
|
||||
c_envelopes.push(pt);
|
||||
}
|
||||
}
|
||||
|
||||
// since there was no early exit, add the character envelopes to the placements' envelopes
|
||||
|
|
Loading…
Reference in a new issue