|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r56352 - in sandbox/gtl/boost/polygon: . detail
From: lucanus.j.simonson_at_[hidden]
Date: 2009-09-21 19:23:32
Author: ljsimons
Date: 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
New Revision: 56352
URL: http://svn.boost.org/trac/boost/changeset/56352
Log:
fixed all MSVC warnings
Text files modified:
sandbox/gtl/boost/polygon/detail/boolean_op.hpp | 18 ++
sandbox/gtl/boost/polygon/detail/boolean_op_45.hpp | 44 +++++-
sandbox/gtl/boost/polygon/detail/max_cover.hpp | 16 +-
sandbox/gtl/boost/polygon/detail/polygon_45_formation.hpp | 28 +++-
sandbox/gtl/boost/polygon/detail/polygon_45_set_view.hpp | 20 +++
sandbox/gtl/boost/polygon/detail/polygon_45_touch.hpp | 2
sandbox/gtl/boost/polygon/detail/polygon_90_set_view.hpp | 3
sandbox/gtl/boost/polygon/detail/polygon_arbitrary_formation.hpp | 10
sandbox/gtl/boost/polygon/detail/polygon_formation.hpp | 2
sandbox/gtl/boost/polygon/detail/polygon_set_view.hpp | 46 ++++---
sandbox/gtl/boost/polygon/detail/rectangle_formation.hpp | 2
sandbox/gtl/boost/polygon/detail/scan_arbitrary.hpp | 35 ++++-
sandbox/gtl/boost/polygon/detail/transform_detail.hpp | 108 +++++++++---------
sandbox/gtl/boost/polygon/gtl_boost_unit_test.cpp | 228 +++++++++++++++++++++------------------
sandbox/gtl/boost/polygon/interval_concept.hpp | 7
sandbox/gtl/boost/polygon/interval_data.hpp | 18 ++
sandbox/gtl/boost/polygon/isotropy.hpp | 4
sandbox/gtl/boost/polygon/point_3d_data.hpp | 6
sandbox/gtl/boost/polygon/point_data.hpp | 18 ++
sandbox/gtl/boost/polygon/polygon_45_set_concept.hpp | 2
sandbox/gtl/boost/polygon/polygon_45_set_data.hpp | 75 ++++++++----
sandbox/gtl/boost/polygon/polygon_45_set_traits.hpp | 4
sandbox/gtl/boost/polygon/polygon_90_set_data.hpp | 4
sandbox/gtl/boost/polygon/polygon_90_set_traits.hpp | 8
sandbox/gtl/boost/polygon/polygon_set_data.hpp | 16 +-
sandbox/gtl/boost/polygon/polygon_set_traits.hpp | 4
sandbox/gtl/boost/polygon/polygon_traits.hpp | 38 +++---
sandbox/gtl/boost/polygon/transform.hpp | 36 ++++--
28 files changed, 489 insertions(+), 313 deletions(-)
Modified: sandbox/gtl/boost/polygon/detail/boolean_op.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/boolean_op.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/boolean_op.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -85,12 +85,24 @@
template <class T>
class BinaryCount {
public:
- inline BinaryCount() : counts_() { counts_[0] = counts_[1] = 0; }
+ inline BinaryCount()
+#ifndef BOOST_POLYGON_MSVC
+ : counts_()
+#endif
+ { counts_[0] = counts_[1] = 0; }
// constructs from two integers
- inline BinaryCount(int countL, int countR) : counts_() { counts_[0] = countL, counts_[1] = countR; }
+ inline BinaryCount(int countL, int countR)
+#ifndef BOOST_POLYGON_MSVC
+ : counts_()
+#endif
+ { counts_[0] = countL, counts_[1] = countR; }
inline BinaryCount& operator=(int count) { counts_[0] = count, counts_[1] = count; return *this; }
inline BinaryCount& operator=(const BinaryCount& that);
- inline BinaryCount(const BinaryCount& that) : counts_() { *this = that; }
+ inline BinaryCount(const BinaryCount& that)
+#ifndef BOOST_POLYGON_MSVC
+ : counts_()
+#endif
+ { *this = that; }
inline bool operator==(const BinaryCount& that) const;
inline bool operator!=(const BinaryCount& that) const { return !((*this) == that);}
inline BinaryCount& operator+=(const BinaryCount& that);
Modified: sandbox/gtl/boost/polygon/detail/boolean_op_45.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/boolean_op_45.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/boolean_op_45.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -16,10 +16,22 @@
class Count2 {
public:
- inline Count2() : counts() { counts[0] = counts[1] = 0; }
+ inline Count2()
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ { counts[0] = counts[1] = 0; }
//inline Count2(int count) { counts[0] = counts[1] = count; }
- inline Count2(int count1, int count2) : counts() { counts[0] = count1; counts[1] = count2; }
- inline Count2(const Count2& count) : counts() { counts[0] = count.counts[0]; counts[1] = count.counts[1]; }
+ inline Count2(int count1, int count2)
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ { counts[0] = count1; counts[1] = count2; }
+ inline Count2(const Count2& count)
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ { counts[0] = count.counts[0]; counts[1] = count.counts[1]; }
inline bool operator==(const Count2& count) const { return counts[0] == count.counts[0] && counts[1] == count.counts[1]; }
inline bool operator!=(const Count2& count) const { return !((*this) == count); }
inline Count2& operator=(int count) { counts[0] = counts[1] = count; return *this; }
@@ -357,6 +369,9 @@
}
template <int op>
static bool applyLogic(Count2 count) {
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op == 0) { //apply or
return count[0] > 0 || count[1] > 0;
} else if(op == 1) { //apply and
@@ -367,6 +382,9 @@
return (count[0] > 0) ^ (count[1] > 0);
} else
return false;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
}
template <int op>
@@ -386,14 +404,20 @@
template <int op>
static bool applyLogic(Count1 count) {
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op == 0) { //apply or
return count.count_ > 0;
} else if(op == 1) { //apply and
return count.count_ > 1;
} else if(op == 3) { //apply xor
- return count.count_ % 2;
+ return (count.count_ % 2) != 0;
} else
return false;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
}
template <int op>
@@ -766,9 +790,9 @@
//std::cout << "0, ";
Unit y1 = iter1->evalAtX(x_);
Unit y2 = iter2->evalAtX(x_);
- LongUnit delta = (LongUnit)abs((LongUnit)y1 - (LongUnit)y2);
- if(delta + x_ <= (std::numeric_limits<Unit>::max)())
- crossQueue_.insert(crossQueue_.end(), Point(x_ + delta, y1));
+ LongUnit delta = local_abs(LongUnit(y1) - LongUnit(y2));
+ if(delta + static_cast<LongUnit>(x_) <= (std::numeric_limits<Unit>::max)())
+ crossQueue_.insert(crossQueue_.end(), Point(x_ + static_cast<Unit>(delta), y1));
//std::cout << Point(x_ + delta, y1);
}
@@ -794,14 +818,14 @@
LongUnit halfDelta2 = (LongUnit)((((LongUnit)y1) - y2)/2);
//note that halfDelta2 has been truncated
if(halfDelta2 + x_ <= UnitMax && halfDelta2 + y2 <= UnitMax) {
- crossQueue_.insert(crossQueue_.end(), Point(x_+halfDelta2, y2+halfDelta2));
- crossQueue_.insert(crossQueue_.end(), Point(x_+halfDelta2, y2+halfDelta2+1));
+ crossQueue_.insert(crossQueue_.end(), Point(x_+static_cast<Unit>(halfDelta2), y2+static_cast<Unit>(halfDelta2)));
+ crossQueue_.insert(crossQueue_.end(), Point(x_+static_cast<Unit>(halfDelta2), y2+static_cast<Unit>(halfDelta2)+1));
}
}
} else {
LongUnit halfDelta = (LongUnit)((((LongUnit)y1) - y2)/2);
if(halfDelta + x_ <= UnitMax && halfDelta + y2 <= UnitMax)
- crossQueue_.insert(crossQueue_.end(), Point(x_+halfDelta, y2+halfDelta));
+ crossQueue_.insert(crossQueue_.end(), Point(x_+static_cast<Unit>(halfDelta), y2+static_cast<Unit>(halfDelta)));
//std::cout << Point(x_+halfDelta, y2+halfDelta);
}
}
Modified: sandbox/gtl/boost/polygon/detail/max_cover.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/max_cover.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/max_cover.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -96,10 +96,10 @@
bool iresult = intersect(rectIvl, nodeIvl, false);
bool tresult = !node->tracedPath(rectIvl);
//std::cout << (itr != node->end()) << " " << iresult << " " << tresult << std::endl;
- Rectangle nextRect = Rectangle(rectIvl, rectIvl);
+ Rectangle nextRect1 = Rectangle(rectIvl, rectIvl);
Unit low = rect.get(orient.get_perpendicular()).low();
Unit high = node->rect.get(orient.get_perpendicular()).high();
- nextRect.set(orient.get_perpendicular(), Interval(low, high));
+ nextRect1.set(orient.get_perpendicular(), Interval(low, high));
if(iresult && tresult) {
node->addPath(rectIvl);
bool writeOut = true;
@@ -110,13 +110,13 @@
if(contains(nodeIvl3, rectIvl, true)) writeOut = false;
//std::cout << "child " << (*itr2)->rect << std::endl;
}
- Rectangle nextRect = Rectangle(rectIvl, rectIvl);
- Unit low = rect.get(orient.get_perpendicular()).low();
- Unit high = node->rect.get(orient.get_perpendicular()).high();
- nextRect.set(orient.get_perpendicular(), Interval(low, high));
+ Rectangle nextRect2 = Rectangle(rectIvl, rectIvl);
+ Unit low2 = rect.get(orient.get_perpendicular()).low();
+ Unit high2 = node->rect.get(orient.get_perpendicular()).high();
+ nextRect2.set(orient.get_perpendicular(), Interval(low2, high2));
if(writeOut) {
//std::cout << "write out " << nextRect << std::endl;
- outputContainer.push_back(copy_construct<typename cT::value_type, Rectangle>(nextRect));
+ outputContainer.push_back(copy_construct<typename cT::value_type, Rectangle>(nextRect2));
} else {
//std::cout << "supress " << nextRect << std::endl;
}
@@ -124,7 +124,7 @@
if(itr != node->end() && iresult && tresult) {
//std::cout << "recurse into child\n";
stack.push_back(stack_element(node, rect, itr));
- rect = nextRect;
+ rect = nextRect1;
node = *itr;
itr = node->begin();
} else {
Modified: sandbox/gtl/boost/polygon/detail/polygon_45_formation.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_45_formation.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_45_formation.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -394,20 +394,36 @@
class Vertex45CountT {
public:
typedef ct count_type;
- inline Vertex45CountT() : counts() { counts[0] = counts[1] = counts[2] = counts[3] = 0; }
+ inline Vertex45CountT()
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ { counts[0] = counts[1] = counts[2] = counts[3] = 0; }
//inline Vertex45CountT(ct count) { counts[0] = counts[1] = counts[2] = counts[3] = count; }
inline Vertex45CountT(const ct& count1, const ct& count2, const ct& count3,
- const ct& count4) : counts() {
+ const ct& count4)
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ {
counts[0] = count1;
counts[1] = count2;
counts[2] = count3;
counts[3] = count4;
}
- inline Vertex45CountT(const Vertex45& vertex) : counts() {
+ inline Vertex45CountT(const Vertex45& vertex)
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ {
counts[0] = counts[1] = counts[2] = counts[3] = 0;
(*this) += vertex;
}
- inline Vertex45CountT(const Vertex45CountT& count) : counts() {
+ inline Vertex45CountT(const Vertex45CountT& count)
+#ifndef BOOST_POLYGON_MSVC
+ : counts()
+#endif
+ {
(*this) = count;
}
inline bool operator==(const Vertex45CountT& count) const {
@@ -612,7 +628,7 @@
//std::cout << "case2: " << i << " " << j << std::endl;
//std::cout << "creating active tail pair\n";
std::pair<ActiveTail45*, ActiveTail45*> tailPair =
- ActiveTail45::createActiveTail45sAsPair(point, true, 0, fractureHoles_);
+ ActiveTail45::createActiveTail45sAsPair(point, true, 0, fractureHoles_ != 0);
//tailPair.first->print();
//tailPair.second->print();
if(j == 3) {
@@ -730,7 +746,7 @@
ActiveTail45* holep = 0;
if(counts[3] == 0) holep = tails[3];
std::pair<ActiveTail45*, ActiveTail45*> tailPair =
- ActiveTail45::createActiveTail45sAsPair(point, false, holep, fractureHoles_);
+ ActiveTail45::createActiveTail45sAsPair(point, false, holep, fractureHoles_ != 0);
if(j == 3) {
returnValue = tailPair.first;
returnCount = -1;
Modified: sandbox/gtl/boost/polygon/detail/polygon_45_set_view.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_45_set_view.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_45_set_view.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -38,6 +38,9 @@
value_type rinput_;
rinput_.set(polygon_45_set_traits<rtype>::begin(rvalue_),
polygon_45_set_traits<rtype>::end(rvalue_));
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op_type == 0)
output_ |= rinput_;
else if(op_type == 1)
@@ -46,6 +49,9 @@
output_ ^= rinput_;
else
output_ -= rinput_;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
}
};
@@ -55,6 +61,9 @@
void value(value_type& output_, const ltype& lvalue_, const polygon_45_set_data<rcoord>& rvalue_) {
output_.set(polygon_45_set_traits<ltype>::begin(lvalue_),
polygon_45_set_traits<ltype>::end(lvalue_));
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op_type == 0)
output_ |= rvalue_;
else if(op_type == 1)
@@ -63,6 +72,9 @@
output_ ^= rvalue_;
else
output_ -= rvalue_;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
}
};
@@ -78,6 +90,8 @@
const rtype& rvalue_;
mutable value_type output_;
mutable bool evaluated_;
+
+ polygon_45_set_view& operator=(const polygon_45_set_view&);
public:
polygon_45_set_view(const ltype& lvalue,
const rtype& rvalue ) :
@@ -138,6 +152,9 @@
polygon_45_set_traits<ltype>::end(lvalue_));
rinput_.set(polygon_45_set_traits<rtype>::begin(rvalue_),
polygon_45_set_traits<rtype>::end(rvalue_));
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op_type == 0)
output_ |= rinput_;
else if(op_type == 1)
@@ -146,6 +163,9 @@
output_ ^= rinput_;
else
output_ -= rinput_;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
polygon_45_set_mutable_traits<geometry_type_1>::set(lvalue_, output_.begin(), output_.end());
return lvalue_;
}
Modified: sandbox/gtl/boost/polygon/detail/polygon_45_touch.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_45_touch.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_45_touch.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -128,7 +128,7 @@
struct touch_45_output_functor {
template <typename cT>
void operator()(cT& output, const CountTouch& count1, const CountTouch& count2,
- const Point& pt, int rise, direction_1d end) {
+ const Point& pt, int , direction_1d ) {
Unit& x = output.first.first;
std::map<Unit, std::set<int> >& y_prop_map = output.first.second;
if(pt.x() != x) process_previous_x(output);
Modified: sandbox/gtl/boost/polygon/detail/polygon_90_set_view.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_90_set_view.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_90_set_view.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -50,7 +50,7 @@
struct compute_90_set_value<value_type, polygon_90_set_data<lcoord>, polygon_90_set_data<rcoord>, op_type> {
static
void value(value_type& output_, const polygon_90_set_data<lcoord>& lvalue_,
- const polygon_90_set_data<rcoord>& rvalue_, orientation_2d orient_) {
+ const polygon_90_set_data<rcoord>& rvalue_, orientation_2d) {
lvalue_.sort();
rvalue_.sort();
output_.applyBooleanBinaryOp(lvalue_.begin(), lvalue_.end(),
@@ -98,6 +98,7 @@
op_type op_;
mutable value_type output_;
mutable bool evaluated_;
+ polygon_90_set_view& operator=(const polygon_90_set_view&);
public:
polygon_90_set_view(const ltype& lvalue,
const rtype& rvalue,
Modified: sandbox/gtl/boost/polygon/detail/polygon_arbitrary_formation.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_arbitrary_formation.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_arbitrary_formation.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -220,7 +220,7 @@
elm1.second.get(VERTICAL) - elm1.first.get(VERTICAL),
elm2.second.get(HORIZONTAL) - elm2.first.get(HORIZONTAL),
elm2.second.get(VERTICAL) - elm2.first.get(VERTICAL));
- return (*justBefore_) ^ result;
+ return ((*justBefore_) != 0) ^ result;
}
return false;
}
@@ -533,7 +533,7 @@
elm1.other_pt.get(VERTICAL) - elm1.pt.get(VERTICAL),
elm2.other_pt.get(HORIZONTAL) - elm2.pt.get(HORIZONTAL),
elm2.other_pt.get(VERTICAL) - elm2.pt.get(VERTICAL));
- return (*justBefore_) ^ result;
+ return ((*justBefore_) != 0) ^ result;
}
return false;
}
@@ -1150,7 +1150,7 @@
//std::cout << "case2: " << i << " " << j << std::endl;
//std::cout << "creating active tail pair\n";
std::pair<active_tail_arbitrary*, active_tail_arbitrary*> tailPair =
- active_tail_arbitrary::createActiveTailsAsPair(point, true, 0, fractureHoles_);
+ active_tail_arbitrary::createActiveTailsAsPair(point, true, 0, fractureHoles_ != 0);
//tailPair.first->print();
//tailPair.second->print();
if(j == i_size_less_1 && incoming_count[j].first.get(HORIZONTAL) == point.get(HORIZONTAL)) {
@@ -1296,7 +1296,7 @@
have_vertical_tail_from_below = false;
}
std::pair<active_tail_arbitrary*, active_tail_arbitrary*> tailPair =
- active_tail_arbitrary::createActiveTailsAsPair(point, false, holep, fractureHoles_);
+ active_tail_arbitrary::createActiveTailsAsPair(point, false, holep, fractureHoles_ != 0);
if(j == i_size_less_1 && incoming_count[j].first.get(HORIZONTAL) == point.get(HORIZONTAL)) {
//std::cout << "vertical element " << point << std::endl;
returnValue = tailPair.first;
@@ -2090,7 +2090,7 @@
//std::cout << "case2: " << i << " " << j << std::endl;
//std::cout << "creating active tail pair\n";
std::pair<active_tail_arbitrary*, active_tail_arbitrary*> tailPair =
- active_tail_arbitrary::createActiveTailsAsPair(point, true, 0, polygon_arbitrary_formation<Unit>::fractureHoles_);
+ active_tail_arbitrary::createActiveTailsAsPair(point, true, 0, polygon_arbitrary_formation<Unit>::fractureHoles_ != 0);
//tailPair.first->print();
//tailPair.second->print();
if(j == i_size_less_1 && incoming_count[j].first.get(HORIZONTAL) == point.get(HORIZONTAL)) {
Modified: sandbox/gtl/boost/polygon/detail/polygon_formation.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_formation.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_formation.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -1719,7 +1719,7 @@
//public API to access polygon formation algorithm
template <typename output_container, typename iterator_type, typename concept_type>
unsigned int get_polygons(output_container& container, iterator_type begin, iterator_type end,
- orientation_2d orient, bool fracture_holes, concept_type tag) {
+ orientation_2d orient, bool fracture_holes, concept_type ) {
typedef typename output_container::value_type polygon_type;
typedef typename iterator_type::value_type::first_type coordinate_type;
polygon_type poly;
Modified: sandbox/gtl/boost/polygon/detail/polygon_set_view.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/polygon_set_view.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/polygon_set_view.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -68,24 +68,23 @@
static inline bool sort(const polygon_set_view<ltype, rtype, op_type>& polygon_set);
};
- template <typename value_type, typename geometry_type_1, typename geometry_type_2, int op_type>
- void execute_boolean_op(value_type& output_, const geometry_type_1& lvalue_, const geometry_type_2& rvalue_,
- double coord) {
- typedef geometry_type_1 ltype;
- typedef geometry_type_2 rtype;
- typedef typename polygon_set_traits<ltype>::coordinate_type coordinate_type;
- value_type linput_;
- value_type rinput_;
- insert_into_view_arg(linput_, lvalue_);
- insert_into_view_arg(rinput_, rvalue_);
- arbitrary_boolean_op<coordinate_type> abo;
- abo.execute(output_, linput_.begin(), linput_.end(),
- rinput_.begin(), rinput_.end(), op_type);
- }
+ //template <typename value_type, typename geometry_type_1, typename geometry_type_2, int op_type>
+ //void execute_boolean_op(value_type& output_, const geometry_type_1& lvalue_, const geometry_type_2& rvalue_,
+ // double coord) {
+ // typedef geometry_type_1 ltype;
+ // typedef geometry_type_2 rtype;
+ // typedef typename polygon_set_traits<ltype>::coordinate_type coordinate_type;
+ // value_type linput_;
+ // value_type rinput_;
+ // insert_into_view_arg(linput_, lvalue_);
+ // insert_into_view_arg(rinput_, rvalue_);
+ // arbitrary_boolean_op<coordinate_type> abo;
+ // abo.execute(output_, linput_.begin(), linput_.end(),
+ // rinput_.begin(), rinput_.end(), op_type);
+ //}
template <typename value_type, typename geometry_type_1, typename geometry_type_2, int op_type>
- void execute_boolean_op(value_type& output_, const geometry_type_1& lvalue_, const geometry_type_2& rvalue_,
- int coord) {
+ void execute_boolean_op(value_type& output_, const geometry_type_1& lvalue_, const geometry_type_2& rvalue_) {
typedef geometry_type_1 ltype;
typedef geometry_type_2 rtype;
typedef typename polygon_set_traits<ltype>::coordinate_type coordinate_type;
@@ -96,12 +95,18 @@
polygon_45_set_data<coordinate_type> l45, r45, o45;
if(linput_.downcast(l45) && rinput_.downcast(r45)) {
//the op codes are screwed up between 45 and arbitrary
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op_type < 2)
l45.template applyAdaptiveBoolean_<op_type>(o45, r45);
else if(op_type == 2)
l45.template applyAdaptiveBoolean_<3>(o45, r45);
else
l45.template applyAdaptiveBoolean_<2>(o45, r45);
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
output_.insert(o45);
} else {
arbitrary_boolean_op<coordinate_type> abo;
@@ -122,6 +127,7 @@
const rtype& rvalue_;
mutable value_type output_;
mutable bool evaluated_;
+ polygon_set_view& operator=(const polygon_set_view&);
public:
polygon_set_view(const ltype& lvalue,
const rtype& rvalue ) :
@@ -132,7 +138,7 @@
const value_type& value() const {
if(!evaluated_) {
evaluated_ = true;
- execute_boolean_op<value_type, ltype, rtype, op_type>(output_, lvalue_, rvalue_, coordinate_type());
+ execute_boolean_op<value_type, ltype, rtype, op_type>(output_, lvalue_, rvalue_);
}
return output_;
}
@@ -160,11 +166,11 @@
}
template <typename ltype, typename rtype, int op_type>
bool polygon_set_traits<polygon_set_view<ltype, rtype, op_type> >::
- clean(const polygon_set_view<ltype, rtype, op_type>& polygon_set) {
+ clean(const polygon_set_view<ltype, rtype, op_type>& ) {
return true; }
template <typename ltype, typename rtype, int op_type>
bool polygon_set_traits<polygon_set_view<ltype, rtype, op_type> >::
- sort(const polygon_set_view<ltype, rtype, op_type>& polygon_set) {
+ sort(const polygon_set_view<ltype, rtype, op_type>& ) {
return true; }
template <typename value_type, typename arg_type>
@@ -182,7 +188,7 @@
typedef typename polygon_set_traits<ltype>::coordinate_type coordinate_type;
typedef polygon_set_data<coordinate_type> value_type;
value_type output_;
- execute_boolean_op<value_type, geometry_type_1, geometry_type_2, op_type>(output_, lvalue_, rvalue_, coordinate_type());
+ execute_boolean_op<value_type, geometry_type_1, geometry_type_2, op_type>(output_, lvalue_, rvalue_);
polygon_set_mutable_traits<geometry_type_1>::set(lvalue_, output_.begin(), output_.end());
return lvalue_;
}
Modified: sandbox/gtl/boost/polygon/detail/rectangle_formation.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/rectangle_formation.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/rectangle_formation.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -240,7 +240,7 @@
template <typename output_container, typename iterator_type, typename rectangle_concept>
void form_rectangles(output_container& output, iterator_type begin, iterator_type end,
- orientation_2d orient, rectangle_concept tag) {
+ orientation_2d orient, rectangle_concept ) {
typedef typename output_container::value_type rectangle_type;
typedef typename get_coordinate_type_for_rectangles<rectangle_type, typename geometry_concept<rectangle_type>::type>::type Unit;
rectangle_data<Unit> model;
Modified: sandbox/gtl/boost/polygon/detail/scan_arbitrary.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/scan_arbitrary.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/scan_arbitrary.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -210,7 +210,7 @@
template <typename iT>
static inline void segment_edge(std::vector<std::pair<half_edge, int> >& output_segments,
- const half_edge& he, segment_id id, iT begin, iT end) {
+ const half_edge& , segment_id id, iT begin, iT end) {
iT current = begin;
iT next = begin;
++next;
@@ -750,13 +750,14 @@
return true;
}
- static void print(const std::pair<half_edge, segment_id>& segment) {
+ //static void print(const std::pair<half_edge, segment_id>& segment) {
//std::cout << segment.first.first << " " << segment.first.second << ": " << segment.second << "; ";
- }
+ //}
static void print(const std::vector<std::pair<half_edge, segment_id> >& vec) {
- //for(std::size_t i = 0; i < vec.size(); ++ i) {
+ for(std::size_t i = 0; i < vec.size(); ++ i) {
// print(vec[i]);
- //} std::cout << std::endl;
+ }
+ //std::cout << std::endl;
}
template <typename stream_type>
@@ -916,6 +917,9 @@
high_precision y = (high_precision)((std::numeric_limits<Unit>::min)());
bool first_iteration = true;
//we want to return from inside the loop when we hit end or new x
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning( disable: 4127 )
+#endif
while(true) {
if(begin == end || (!first_iteration && (high_precision)(((*begin).first.first.get(VERTICAL)) != y ||
(*begin).first.first.get(HORIZONTAL) != x_))) {
@@ -1016,6 +1020,10 @@
++begin;
}
}
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning( default: 4127 )
+#endif
+
}
inline void erase_end_events(typename end_point_queue::iterator epqi) {
@@ -1454,7 +1462,7 @@
protected:
template <typename polygon_type>
void insert(const polygon_type& polygon_object, const property_type& property_value, bool is_hole,
- polygon_concept tag) {
+ polygon_concept ) {
bool first_iteration = true;
bool second_iteration = true;
Point first_point;
@@ -1477,7 +1485,7 @@
}
} else {
if(previous_point != current_point) {
- create_vertex(pmd, previous_previous_point, previous_point, current_point, winding_dir,
+ create_vertex(pmd, previous_point, current_point, winding_dir,
is_hole, property_value);
previous_previous_point = previous_point;
previous_point = current_point;
@@ -1487,13 +1495,13 @@
current_point = first_point;
if(!first_iteration && !second_iteration) {
if(previous_point != current_point) {
- create_vertex(pmd, previous_previous_point, previous_point, current_point, winding_dir,
+ create_vertex(pmd, previous_point, current_point, winding_dir,
is_hole, property_value);
previous_previous_point = previous_point;
previous_point = current_point;
}
current_point = second_point;
- create_vertex(pmd, previous_previous_point, previous_point, current_point, winding_dir,
+ create_vertex(pmd, previous_point, current_point, winding_dir,
is_hole, property_value);
previous_previous_point = previous_point;
previous_point = current_point;
@@ -1513,7 +1521,7 @@
template <typename rectangle_type>
void insert(const rectangle_type& rectangle_object, const property_type& property_value, bool is_hole,
- rectangle_concept tag) {
+ rectangle_concept ) {
polygon_90_data<Unit> poly;
assign(poly, rectangle_object);
insert(poly, property_value, is_hole, polygon_concept());
@@ -1522,7 +1530,6 @@
public: //change to private when done testing
static inline void create_vertex(property_merge_data& pmd,
- const Point& previous_point,
const Point& current_point,
const Point& next_point,
direction_1d winding,
@@ -2399,6 +2406,9 @@
elem.second = 1;
if(edge.second < edge.first) elem.second *= -1;
if(is_vertical(edge)) elem.second *= -1;
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op_type == 0) { //OR
if(!left.empty() && right.empty()) {
result.insert_clean(elem);
@@ -2426,6 +2436,9 @@
result.insert_clean(elem);
}
}
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
if(right.size() == 1) {
if((*(right.begin())) == 0) {
elem.second *= -1;
Modified: sandbox/gtl/boost/polygon/detail/transform_detail.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/detail/transform_detail.hpp (original)
+++ sandbox/gtl/boost/polygon/detail/transform_detail.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -108,18 +108,18 @@
}
inline axis_transformation& axis_transformation::operator+=(const axis_transformation& a){
- bool abit5 = a.atr_ & 32;
- bool abit4 = a.atr_ & 16;
- bool abit3 = a.atr_ & 8;
- bool abit2 = a.atr_ & 4;
- bool abit1 = a.atr_ & 2;
- bool abit0 = a.atr_ & 1;
- bool bit5 = atr_ & 32;
- bool bit4 = atr_ & 16;
- bool bit3 = atr_ & 8;
- bool bit2 = atr_ & 4;
- bool bit1 = atr_ & 2;
- bool bit0 = atr_ & 1;
+ bool abit5 = (a.atr_ & 32) != 0;
+ bool abit4 = (a.atr_ & 16) != 0;
+ bool abit3 = (a.atr_ & 8) != 0;
+ bool abit2 = (a.atr_ & 4) != 0;
+ bool abit1 = (a.atr_ & 2) != 0;
+ bool abit0 = (a.atr_ & 1) != 0;
+ bool bit5 = (atr_ & 32) != 0;
+ bool bit4 = (atr_ & 16) != 0;
+ bool bit3 = (atr_ & 8) != 0;
+ bool bit2 = (atr_ & 4) != 0;
+ bool bit1 = (atr_ & 2) != 0;
+ bool bit0 = (atr_ & 1) != 0;
int indexes[2][3] = {
{
((int)((bit5 & bit2) | (bit4 & !bit2)) << 1) +
@@ -169,12 +169,12 @@
// populate_axis_array writes the three INDIVIDUAL_AXIS values that the
// ATR enum value of 'this' represent into axis_array
inline void axis_transformation::populate_axis_array(INDIVIDUAL_AXIS axis_array[]) const {
- bool bit5 = atr_ & 32;
- bool bit4 = atr_ & 16;
- bool bit3 = atr_ & 8;
- bool bit2 = atr_ & 4;
- bool bit1 = atr_ & 2;
- bool bit0 = atr_ & 1;
+ bool bit5 = (atr_ & 32) != 0;
+ bool bit4 = (atr_ & 16) != 0;
+ bool bit3 = (atr_ & 8) != 0;
+ bool bit2 = (atr_ & 4) != 0;
+ bool bit1 = (atr_ & 2) != 0;
+ bool bit0 = (atr_ & 1) != 0;
axis_array[2] =
(INDIVIDUAL_AXIS)((((int)(!bit4 & !bit5)) << 2) +
((int)(bit5) << 1) +
@@ -221,11 +221,11 @@
// write_back_axis_array converts an array of three INDIVIDUAL_AXIS values
// to the ATR enum value and sets 'this' to that value
inline void axis_transformation::write_back_axis_array(const INDIVIDUAL_AXIS this_array[]) {
- int bit5 = (bool)((int)this_array[2] & 2);
- int bit4 = !((bool)((int)this_array[2] & 4) | (bool)((int)this_array[2] & 2));
- int bit3 = (bool)((int)this_array[2] & 1);
+ int bit5 = ((int)this_array[2] & 2) != 0;
+ int bit4 = !((((int)this_array[2] & 4) != 0) | (((int)this_array[2] & 2) != 0));
+ int bit3 = ((int)this_array[2] & 1) != 0;
//bit 2 is the tricky bit
- int bit2 = (!(bit5 | bit4) & (bool)((int)this_array[0] & 2)) | //swap xy
+ int bit2 = ((!(bit5 | bit4)) & (((int)this_array[0] & 2) != 0)) | //swap xy
(bit5 & (((int)this_array[0] & 4) >> 2)) | //z->y x->z
(bit4 & (((int)this_array[1] & 4) >> 2)); //z->x y->z
int bit1 = ((int)this_array[1] & 1);
@@ -242,7 +242,7 @@
inline axis_transformation&
axis_transformation::set_directions(const direction_2d& horizontalDir,
const direction_2d& verticalDir){
- int bit2 = bool(static_cast<orientation_2d>(horizontalDir).to_int());
+ int bit2 = (static_cast<orientation_2d>(horizontalDir).to_int()) != 0;
int bit1 = !(verticalDir.to_int() & 1);
int bit0 = !(horizontalDir.to_int() & 1);
atr_ = ATR((bit2 << 2) + (bit1 << 1) + bit0);
@@ -257,11 +257,11 @@
int this_array[3] = {horizontalDir.to_int(),
verticalDir.to_int(),
proximalDir.to_int()};
- int bit5 = (bool)(this_array[2] & 2);
- int bit4 = !((bool)(this_array[2] & 4) | (bool)(this_array[2] & 2));
- int bit3 = !(bool)(this_array[2] & 1);
+ int bit5 = (this_array[2] & 2) != 0;
+ int bit4 = !(((this_array[2] & 4) != 0) | ((this_array[2] & 2) != 0));
+ int bit3 = !((this_array[2] & 1) != 0);
//bit 2 is the tricky bit
- int bit2 = (!(bit5 | bit4) & (bool)(this_array[0] & 2)) | //swap xy
+ int bit2 = (!(bit5 | bit4) & ((this_array[0] & 2) != 0 )) | //swap xy
(bit5 & ((this_array[0] & 4) >> 2)) | //z->y x->z
(bit4 & ((this_array[1] & 4) >> 2)); //z->x y->z
int bit1 = !(this_array[1] & 1);
@@ -276,36 +276,36 @@
template <typename coordinate_type_2>
inline void axis_transformation::transform(coordinate_type_2& x, coordinate_type_2& y) const {
- int bit2 = (bool)(atr_ & 4);
- int bit1 = (bool)(atr_ & 2);
- int bit0 = (bool)(atr_ & 1);
+ int bit2 = (atr_ & 4) != 0;
+ int bit1 = (atr_ & 2) != 0;
+ int bit0 = (atr_ & 1) != 0;
x *= -((bit0 << 1) - 1);
y *= -((bit1 << 1) - 1);
- predicated_swap(bit2,x,y);
+ predicated_swap(bit2 != 0,x,y);
}
template <typename coordinate_type_2>
inline void axis_transformation::transform(coordinate_type_2& x, coordinate_type_2& y, coordinate_type_2& z) const {
- int bit5 = (bool)(atr_ & 32);
- int bit4 = (bool)(atr_ & 16);
- int bit3 = (bool)(atr_ & 8);
- int bit2 = (bool)(atr_ & 4);
- int bit1 = (bool)(atr_ & 2);
- int bit0 = (bool)(atr_ & 1);
+ int bit5 = (atr_ & 32) != 0;
+ int bit4 = (atr_ & 16) != 0;
+ int bit3 = (atr_ & 8) != 0;
+ int bit2 = (atr_ & 4) != 0;
+ int bit1 = (atr_ & 2) != 0;
+ int bit0 = (atr_ & 1) != 0;
x *= -((bit0 << 1) - 1);
y *= -((bit1 << 1) - 1);
z *= -((bit3 << 1) - 1);
- predicated_swap(bit2, x, y);
- predicated_swap(bit5, y, z);
- predicated_swap(bit4, x, z);
+ predicated_swap(bit2 != 0, x, y);
+ predicated_swap(bit5 != 0, y, z);
+ predicated_swap(bit4 != 0, x, z);
}
inline axis_transformation& axis_transformation::invert_2d() {
- int bit2 = (bool)(atr_ & 4);
- int bit1 = (bool)(atr_ & 2);
- int bit0 = (bool)(atr_ & 1);
+ int bit2 = ((atr_ & 4) != 0);
+ int bit1 = ((atr_ & 2) != 0);
+ int bit0 = ((atr_ & 1) != 0);
//swap bit 0 and bit 1 if bit2 is 1
- predicated_swap(bit2, bit0, bit1);
+ predicated_swap(bit2 != 0, bit0, bit1);
bit1 = bit1 << 1;
atr_ = (ATR)(atr_ & (32+16+8+4)); //mask away bit0 and bit1
atr_ = (ATR)(atr_ | bit0 | bit1);
@@ -318,16 +318,16 @@
}
inline axis_transformation& axis_transformation::invert() {
- int bit5 = (bool)(atr_ & 32);
- int bit4 = (bool)(atr_ & 16);
- int bit3 = (bool)(atr_ & 8);
- int bit2 = (bool)(atr_ & 4);
- int bit1 = (bool)(atr_ & 2);
- int bit0 = (bool)(atr_ & 1);
- predicated_swap(bit2, bit4, bit5);
- predicated_swap(bit4, bit0, bit3);
- predicated_swap(bit5, bit1, bit3);
- predicated_swap(bit2, bit0, bit1);
+ int bit5 = ((atr_ & 32) != 0);
+ int bit4 = ((atr_ & 16) != 0);
+ int bit3 = ((atr_ & 8) != 0);
+ int bit2 = ((atr_ & 4) != 0);
+ int bit1 = ((atr_ & 2) != 0);
+ int bit0 = ((atr_ & 1) != 0);
+ predicated_swap(bit2 != 0, bit4, bit5);
+ predicated_swap(bit4 != 0, bit0, bit3);
+ predicated_swap(bit5 != 0, bit1, bit3);
+ predicated_swap(bit2 != 0, bit0, bit1);
atr_ = (ATR)((bit5 << 5) +
(bit4 << 4) +
(bit3 << 3) +
Modified: sandbox/gtl/boost/polygon/gtl_boost_unit_test.cpp
==============================================================================
--- sandbox/gtl/boost/polygon/gtl_boost_unit_test.cpp (original)
+++ sandbox/gtl/boost/polygon/gtl_boost_unit_test.cpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -7,6 +7,7 @@
*/
#define BOOST_POLYGON_NO_DEPS
#include <iostream>
+//#include <boost/polygon/polygon.hpp>
#include "polygon.hpp"
namespace gtl = boost::polygon;
using namespace boost::polygon::operators;
@@ -179,10 +180,10 @@
template <typename T>
typename enable_if<typename is_polygon_90_set_type<T>::type, void>::type
- print_is_polygon_90_set_concept(const T& t) { std::cout << "is polygon 90 set concept\n"; }
+ print_is_polygon_90_set_concept(const T& ) { std::cout << "is polygon 90 set concept\n"; }
template <typename T>
typename enable_if<typename is_mutable_polygon_90_set_type<T>::type, void>::type
- print_is_mutable_polygon_90_set_concept(const T& t) { std::cout << "is mutable polygon 90 set concept\n"; }
+ print_is_mutable_polygon_90_set_concept(const T& ) { std::cout << "is mutable polygon 90 set concept\n"; }
namespace boolean_op {
//self contained unit test for BooleanOr algorithm
template <typename Unit>
@@ -769,24 +770,39 @@
bool testRectangle() {
rectangle_data<int> rect, rect2;
+#ifdef BOOST_POLYGON_MSVC
+ horizontal(rect, interval_data<int>(0, 10));
+ vertical(rect, interval_data<int>(20, 30));
+#else
horizontal(rect, interval_data<long long>(0, 10));
vertical(rect, interval_data<long long>(20, 30));
+#endif
xl(rect2, 0);
xh(rect2, 10);
yl(rect2, 20);
yh(rect2, 30);
if(euclidean_distance(rect, rect2) != 0) return false;
if(euclidean_distance(rect2, rect) != 0) return false;
+#ifdef BOOST_POLYGON_MSVC
+ set(rect, HORIZONTAL, interval_data<int>(0, 10));
+ if(!equivalence(horizontal(rect), interval_data<int>(0, 10))) return false;
+ if(!equivalence(vertical(rect2), interval_data<int>(20, 30))) return false;
+#else
set(rect, HORIZONTAL, interval_data<long long>(0, 10));
if(!equivalence(horizontal(rect), interval_data<long long>(0, 10))) return false;
if(!equivalence(vertical(rect2), interval_data<long long>(20, 30))) return false;
+#endif
if(xl(rect) != 0) return false;
if(xh(rect) != 10) return false;
if(yl(rect) != 20) return false;
if(yh(rect) != 30) return false;
move(rect, HORIZONTAL, 10);
if(xl(rect) != 10) return false;
+#ifdef BOOST_POLYGON_MSVC
+ set_points(rect, point_data<int>(0, 20), point_data<int>(10, 30));
+#else
set_points(rect, point_data<int>(0, 20), point_data<long long>(10, 30));
+#endif
if(xl(rect) != 0) return false;
convolve(rect, rect2);
if(xh(rect) != 20) return false;
@@ -795,7 +811,11 @@
reflected_convolve(rect, rect2);
reflected_deconvolve(rect, rect2);
if(!equivalence(rect, rect2)) return false;
+#ifdef BOOST_POLYGON_MSVC
+ convolve(rect, point_data<int>(100, 200));
+#else
convolve(rect, point_data<long long>(100, 200));
+#endif
if(xh(rect) != 110) return false;
deconvolve(rect, point_data<int>(100, 200));
if(!equivalence(rect, rect2)) return false;
@@ -975,8 +995,8 @@
typedef axis_transformation AxisTransform;
typedef transformation<int> Transform;
-int getRandomBool() {
- return rand()%2;
+bool getRandomBool() {
+ return rand()%2 != 0;
}
int getRandomInt() {
return rand()%6-2;
@@ -1800,105 +1820,105 @@
std::cout << polys[i] << std::endl;
}
-void testHandFloat() {
- using namespace gtl;
- double handcoords[] = {
-12375, 11050, 13175, 10200, 15825, 9275, 18750, 8525, 24150, 8300, 27575, 8400, 31775, 7800,
-35975, 7200, 41375, 4800, 42575, 4200, 43175, 4200, 47375, 2400, 49175, 1800, 51150, 2200,
-52275, 2825, 52625, 4150, 52375, 4975, 51575, 6000, 49275, 6850, 45700, 7950, 43175, 9600,
-39575, 10800, 37775, 12000, 37775, 12600, 37775, 13800, 38975, 14400, 41375, 14400, 45575, 13200,
-48600, 13000, 51575, 13200, 55175, 12600, 58775, 12600, 61175, 13200, 62375, 14400, 62550, 15700,
-61975, 16875, 60775, 17600, 60100, 17675, 58525, 17675, 56150, 17575, 52175, 18000, 47975, 18600,
-45575, 19200, 44375, 19200, 42675, 19325, 41600, 19775, 41600, 20500, 42100, 20825, 44975, 20400,
-48575, 20400, 52775, 21000, 53975, 21000, 57575, 21000, 62375, 21000, 65450, 22000, 66300, 23100,
-66100, 24550, 64750, 25925, 62975, 26400, 61175, 26400, 58775, 26400, 56025, 26050, 53450, 26025,
-50975, 26400, 48575, 26400, 46775, 26400, 43650, 26075, 41375, 26400, 40775, 27000, 40775, 27600,
-42225, 28650, 44375, 29400, 48575, 30000, 50975, 31200, 53975, 31800, 58775, 33000, 61200, 34300,
-62375, 35400, 62375, 37200, 61175, 38400, 60000, 38700, 57575, 38400, 54550, 37575, 50975, 36600,
-49075, 36125, 47750, 36125, 45700, 35425, 42350, 34350, 38900, 33775, 30575, 33000, 26975, 33600,
-25975, 34900, 26375, 36600, 28175, 38400, 30575, 40800, 32375, 43800, 33200, 46200, 33200, 48000,
-32650, 49300, 31425, 50000, 29950, 50125, 28825, 49375, 27575, 48000, 25825, 46000, 23975, 44100,
-22175, 42600, 19775, 39600, 17325, 37300, 14975, 34800, 13175, 31800, 10775, 29400, 9600, 27400,
-10175, 27000, 11375, 27600, 12575, 28800, 14375, 31800, 16175, 34800, 18575, 37200, 21575, 39000,
-22775, 40200, 23975, 41400, 24575, 42600, 26375, 44400, 28325, 46000, 29850, 46775, 31175, 46200,
-31550, 44575, 30575, 43200, 28775, 40800, 25775, 38400, 24575, 34800, 24750, 33175, 26975, 31800,
-29975, 31800, 33575, 31800, 37775, 32400, 39575, 33000, 41975, 33600, 45150, 34175, 46975, 34750,
-48575, 35400, 50975, 35400, 51575, 34800, 51875, 33725, 50775, 32575, 48575, 31800, 45750, 30875,
-43775, 30600, 41375, 29400, 38975, 28800, 35975, 28200, 34775, 27600, 34175, 27000, 34775, 25800,
-37175, 25200, 40175, 25200, 43175, 25200, 46775, 25200, 50975, 25425, 53375, 25200, 55175, 24600,
-55525, 23450, 53975, 22200, 52775, 22200, 49075, 21850, 45950, 21925, 40775, 21600, 37775, 21600,
-35150, 21350, 34325, 20950, 34175, 19800, 35975, 19200, 38375, 19200, 40750, 18900, 42575, 18600,
-44375, 18000, 47975, 17400, 50375, 17125, 52025, 16625, 52775, 15600, 52100, 14625, 49675, 14125,
-48625, 14125, 46775, 14400, 44375, 15000, 41375, 15150, 37700, 15275, 34775, 15600, 32850, 15925,
-31775, 15600, 31425, 14875, 32375, 13800, 36575, 11400, 38975, 10200, 41375, 9000, 43075, 8150,
-43650, 7200, 43325, 6250, 42225, 5825, 40800, 6275, 38900, 6925, 35375, 8400, 32375, 10200,
-27575, 11400, 22775, 12600, 19775, 13225, 16775, 13800, 14975, 14400, 13050, 14000, 11975, 12600,
- 0, 0 };
- std::vector<point_data<double> > handpoints;
- for(unsigned int i = 0; i < 100000; i += 2) {
- point_data<double> pt(handcoords[i], handcoords[i+1]);
- if(pt == point_data<double> (0, 0)) break;
- handpoints.push_back(pt);
- }
- polygon_data<double> handpoly;
- handpoly.set(handpoints.begin(), handpoints.end());
- double spiralcoords [] = {
-37200, 3600, 42075, 4025, 47475, 5875, 51000, 7800, 55800, 12300, 59000, 17075, 60000, 20400,
-61200, 25800, 61200, 29400, 60600, 33600, 58800, 38400, 55800, 42600, 53200, 45625,
-49200, 48600, 43200, 51000, 35400, 51600, 29400, 50400, 23400, 47400, 19200, 43800,
-16200, 39600, 14400, 35400, 13200, 29400, 13200, 24000, 15000, 18600, 17400, 13800,
-20525, 10300, 24600, 7200, 29400, 4800, 32450, 4000, 34825, 3675, 35625, 3625,
-35825, 7275, 39600, 7200, 43800, 8400, 46800, 9600, 50400, 12000, 53400, 15000,
-55800, 18600, 57000, 23400, 57600, 27000, 57000, 32400, 55200, 37200, 52200, 41400,
-48000, 45000, 42000, 47400, 35400, 48000, 30000, 46800, 24600, 43800, 20325, 39100,
-17850, 34275, 16800, 27600, 17400, 22200, 20400, 16200, 24600, 11400, 28800, 9000,
-32400, 7800, 33200, 7575, 33925, 11050, 35400, 10800, 37200, 10800, 41400, 11400,
-46200, 13200, 49800, 16200, 51600, 19200, 53400, 23400, 54000, 29400, 52800, 33600,
-49800, 39000, 45000, 42600, 39000, 44400, 33600, 43800, 28200, 42000, 24000, 37800,
-21000, 33000, 20400, 26400, 21600, 21000, 24600, 16200, 28200, 13200, 31875, 11625,
-33200, 15625, 36000, 15000, 39000, 15000, 43800, 16800, 46800, 19200, 49200, 23400,
-49800, 27600, 48750, 32700, 46350, 36275, 42600, 39000, 38400, 40200, 31800, 39000,
-28200, 36600, 25200, 31200, 24600, 26400, 26025, 21800, 28200, 18600, 30600, 16800,
-32575, 19875, 34200, 19200, 36000, 18600, 37200, 18600, 40375, 19125, 43200, 21000,
-45600, 24000, 46200, 27600, 45600, 30600, 43800, 33600, 41475, 35625, 37800, 36600,
-33600, 36000, 30000, 33600, 28200, 28800, 28800, 24600, 30000, 22200, 31200, 23400,
-30600, 25200, 30000, 27000, 30600, 30000, 31800, 32400, 34200, 34200, 38400, 34800,
-41400, 33000, 44025, 30225, 44400, 26400, 43200, 23400, 40900, 21200, 37800, 20400,
-34950, 20675, 32400, 22200, 30175, 19475, 28425, 21300, 27000, 24000, 26400, 27600,
-27000, 31800, 31200, 36600, 36600, 38400, 42600, 37200, 46200, 33600, 48000, 30000,
-47650, 24425, 45600, 20400, 42650, 18200, 39000, 16800, 35400, 16800, 33600, 17400,
-32875, 17675, 31100, 13850, 28200, 15600, 25200, 18600, 22800, 22800, 22200, 27000,
-23400, 33600, 26400, 38400, 31675, 41575, 37800, 42600, 40850, 42150, 42800, 41550,
-47050, 39025, 50100, 35375, 52200, 29400, 51675, 23950, 49800, 19200, 46200, 15600,
-41400, 13200, 37800, 12600, 35025, 12750, 33350, 13050, 32400, 9600, 30025, 10325,
-25925, 12725, 22200, 16800, 19800, 21000, 18600, 25800, 18600, 30000, 20400, 35400,
-22575, 39250, 25225, 41825, 28200, 43800, 33600, 46200, 39000, 46200, 44400, 45000,
-48650, 42350, 52800, 37800, 55200, 32400, 55800, 26400, 54600, 21000, 53400, 18000,
-50400, 14400, 47400, 12000, 42600, 9600, 39000, 9000, 36000, 9000, 34775, 9125,
-34300, 5600, 30000, 6600, 25800, 8400, 22025, 11350, 18725, 15125, 16200, 20400,
-15000, 24600, 15000, 30600, 16800, 36600, 20400, 42600, 25800, 46800, 31200, 49200,
-38400, 49800, 45000, 48600, 51000, 45000, 55475, 40225, 58200, 34800, 59400, 30000,
-59400, 25200, 58200, 19800, 55200, 14400, 52225, 11150, 47400, 7800, 44175, 6500,
-40200, 5400, 38400, 5400, 37200, 5400, 0, 0 };
- std::vector<point_data<double> > spiralpoints;
- for(unsigned int i = 0; i < 100000; i += 2) {
- point_data<double> pt(spiralcoords[i], spiralcoords[i+1]);
- if(pt == point_data<double> (0, 0)) break;
- spiralpoints.push_back(pt);
- }
- polygon_data<double> spiralpoly;
- spiralpoly.set(spiralpoints.begin(), spiralpoints.end());
- polygon_set_data<double> handset;
- handset += handpoly;
- polygon_set_data<double> spiralset;
- spiralset += spiralpoly;
- polygon_set_data<double> xorset = handset ^ spiralset;
- std::vector<polygon_data<double> > polys;
- polys += xorset;
- std::cout << polys.size() << std::endl;
- for(unsigned int i = 0; i < polys.size(); ++i)
- std::cout << polys[i] << std::endl;
-}
+//void testHandFloat() {
+// using namespace gtl;
+// double handcoords[] = {
+//12375, 11050, 13175, 10200, 15825, 9275, 18750, 8525, 24150, 8300, 27575, 8400, 31775, 7800,
+//35975, 7200, 41375, 4800, 42575, 4200, 43175, 4200, 47375, 2400, 49175, 1800, 51150, 2200,
+//52275, 2825, 52625, 4150, 52375, 4975, 51575, 6000, 49275, 6850, 45700, 7950, 43175, 9600,
+//39575, 10800, 37775, 12000, 37775, 12600, 37775, 13800, 38975, 14400, 41375, 14400, 45575, 13200,
+//48600, 13000, 51575, 13200, 55175, 12600, 58775, 12600, 61175, 13200, 62375, 14400, 62550, 15700,
+//61975, 16875, 60775, 17600, 60100, 17675, 58525, 17675, 56150, 17575, 52175, 18000, 47975, 18600,
+//45575, 19200, 44375, 19200, 42675, 19325, 41600, 19775, 41600, 20500, 42100, 20825, 44975, 20400,
+//48575, 20400, 52775, 21000, 53975, 21000, 57575, 21000, 62375, 21000, 65450, 22000, 66300, 23100,
+//66100, 24550, 64750, 25925, 62975, 26400, 61175, 26400, 58775, 26400, 56025, 26050, 53450, 26025,
+//50975, 26400, 48575, 26400, 46775, 26400, 43650, 26075, 41375, 26400, 40775, 27000, 40775, 27600,
+//42225, 28650, 44375, 29400, 48575, 30000, 50975, 31200, 53975, 31800, 58775, 33000, 61200, 34300,
+//62375, 35400, 62375, 37200, 61175, 38400, 60000, 38700, 57575, 38400, 54550, 37575, 50975, 36600,
+//49075, 36125, 47750, 36125, 45700, 35425, 42350, 34350, 38900, 33775, 30575, 33000, 26975, 33600,
+//25975, 34900, 26375, 36600, 28175, 38400, 30575, 40800, 32375, 43800, 33200, 46200, 33200, 48000,
+//32650, 49300, 31425, 50000, 29950, 50125, 28825, 49375, 27575, 48000, 25825, 46000, 23975, 44100,
+//22175, 42600, 19775, 39600, 17325, 37300, 14975, 34800, 13175, 31800, 10775, 29400, 9600, 27400,
+//10175, 27000, 11375, 27600, 12575, 28800, 14375, 31800, 16175, 34800, 18575, 37200, 21575, 39000,
+//22775, 40200, 23975, 41400, 24575, 42600, 26375, 44400, 28325, 46000, 29850, 46775, 31175, 46200,
+//31550, 44575, 30575, 43200, 28775, 40800, 25775, 38400, 24575, 34800, 24750, 33175, 26975, 31800,
+//29975, 31800, 33575, 31800, 37775, 32400, 39575, 33000, 41975, 33600, 45150, 34175, 46975, 34750,
+//48575, 35400, 50975, 35400, 51575, 34800, 51875, 33725, 50775, 32575, 48575, 31800, 45750, 30875,
+//43775, 30600, 41375, 29400, 38975, 28800, 35975, 28200, 34775, 27600, 34175, 27000, 34775, 25800,
+//37175, 25200, 40175, 25200, 43175, 25200, 46775, 25200, 50975, 25425, 53375, 25200, 55175, 24600,
+//55525, 23450, 53975, 22200, 52775, 22200, 49075, 21850, 45950, 21925, 40775, 21600, 37775, 21600,
+//35150, 21350, 34325, 20950, 34175, 19800, 35975, 19200, 38375, 19200, 40750, 18900, 42575, 18600,
+//44375, 18000, 47975, 17400, 50375, 17125, 52025, 16625, 52775, 15600, 52100, 14625, 49675, 14125,
+//48625, 14125, 46775, 14400, 44375, 15000, 41375, 15150, 37700, 15275, 34775, 15600, 32850, 15925,
+//31775, 15600, 31425, 14875, 32375, 13800, 36575, 11400, 38975, 10200, 41375, 9000, 43075, 8150,
+//43650, 7200, 43325, 6250, 42225, 5825, 40800, 6275, 38900, 6925, 35375, 8400, 32375, 10200,
+//27575, 11400, 22775, 12600, 19775, 13225, 16775, 13800, 14975, 14400, 13050, 14000, 11975, 12600,
+// 0, 0 };
+// std::vector<point_data<double> > handpoints;
+// for(unsigned int i = 0; i < 100000; i += 2) {
+// point_data<double> pt(handcoords[i], handcoords[i+1]);
+// if(pt == point_data<double> (0, 0)) break;
+// handpoints.push_back(pt);
+// }
+// polygon_data<double> handpoly;
+// handpoly.set(handpoints.begin(), handpoints.end());
+// double spiralcoords [] = {
+//37200, 3600, 42075, 4025, 47475, 5875, 51000, 7800, 55800, 12300, 59000, 17075, 60000, 20400,
+//61200, 25800, 61200, 29400, 60600, 33600, 58800, 38400, 55800, 42600, 53200, 45625,
+//49200, 48600, 43200, 51000, 35400, 51600, 29400, 50400, 23400, 47400, 19200, 43800,
+//16200, 39600, 14400, 35400, 13200, 29400, 13200, 24000, 15000, 18600, 17400, 13800,
+//20525, 10300, 24600, 7200, 29400, 4800, 32450, 4000, 34825, 3675, 35625, 3625,
+//35825, 7275, 39600, 7200, 43800, 8400, 46800, 9600, 50400, 12000, 53400, 15000,
+//55800, 18600, 57000, 23400, 57600, 27000, 57000, 32400, 55200, 37200, 52200, 41400,
+//48000, 45000, 42000, 47400, 35400, 48000, 30000, 46800, 24600, 43800, 20325, 39100,
+//17850, 34275, 16800, 27600, 17400, 22200, 20400, 16200, 24600, 11400, 28800, 9000,
+//32400, 7800, 33200, 7575, 33925, 11050, 35400, 10800, 37200, 10800, 41400, 11400,
+//46200, 13200, 49800, 16200, 51600, 19200, 53400, 23400, 54000, 29400, 52800, 33600,
+//49800, 39000, 45000, 42600, 39000, 44400, 33600, 43800, 28200, 42000, 24000, 37800,
+//21000, 33000, 20400, 26400, 21600, 21000, 24600, 16200, 28200, 13200, 31875, 11625,
+//33200, 15625, 36000, 15000, 39000, 15000, 43800, 16800, 46800, 19200, 49200, 23400,
+//49800, 27600, 48750, 32700, 46350, 36275, 42600, 39000, 38400, 40200, 31800, 39000,
+//28200, 36600, 25200, 31200, 24600, 26400, 26025, 21800, 28200, 18600, 30600, 16800,
+//32575, 19875, 34200, 19200, 36000, 18600, 37200, 18600, 40375, 19125, 43200, 21000,
+//45600, 24000, 46200, 27600, 45600, 30600, 43800, 33600, 41475, 35625, 37800, 36600,
+//33600, 36000, 30000, 33600, 28200, 28800, 28800, 24600, 30000, 22200, 31200, 23400,
+//30600, 25200, 30000, 27000, 30600, 30000, 31800, 32400, 34200, 34200, 38400, 34800,
+//41400, 33000, 44025, 30225, 44400, 26400, 43200, 23400, 40900, 21200, 37800, 20400,
+//34950, 20675, 32400, 22200, 30175, 19475, 28425, 21300, 27000, 24000, 26400, 27600,
+//27000, 31800, 31200, 36600, 36600, 38400, 42600, 37200, 46200, 33600, 48000, 30000,
+//47650, 24425, 45600, 20400, 42650, 18200, 39000, 16800, 35400, 16800, 33600, 17400,
+//32875, 17675, 31100, 13850, 28200, 15600, 25200, 18600, 22800, 22800, 22200, 27000,
+//23400, 33600, 26400, 38400, 31675, 41575, 37800, 42600, 40850, 42150, 42800, 41550,
+//47050, 39025, 50100, 35375, 52200, 29400, 51675, 23950, 49800, 19200, 46200, 15600,
+//41400, 13200, 37800, 12600, 35025, 12750, 33350, 13050, 32400, 9600, 30025, 10325,
+//25925, 12725, 22200, 16800, 19800, 21000, 18600, 25800, 18600, 30000, 20400, 35400,
+//22575, 39250, 25225, 41825, 28200, 43800, 33600, 46200, 39000, 46200, 44400, 45000,
+//48650, 42350, 52800, 37800, 55200, 32400, 55800, 26400, 54600, 21000, 53400, 18000,
+//50400, 14400, 47400, 12000, 42600, 9600, 39000, 9000, 36000, 9000, 34775, 9125,
+//34300, 5600, 30000, 6600, 25800, 8400, 22025, 11350, 18725, 15125, 16200, 20400,
+//15000, 24600, 15000, 30600, 16800, 36600, 20400, 42600, 25800, 46800, 31200, 49200,
+//38400, 49800, 45000, 48600, 51000, 45000, 55475, 40225, 58200, 34800, 59400, 30000,
+//59400, 25200, 58200, 19800, 55200, 14400, 52225, 11150, 47400, 7800, 44175, 6500,
+//40200, 5400, 38400, 5400, 37200, 5400, 0, 0 };
+// std::vector<point_data<double> > spiralpoints;
+// for(unsigned int i = 0; i < 100000; i += 2) {
+// point_data<double> pt(spiralcoords[i], spiralcoords[i+1]);
+// if(pt == point_data<double> (0, 0)) break;
+// spiralpoints.push_back(pt);
+// }
+// polygon_data<double> spiralpoly;
+// spiralpoly.set(spiralpoints.begin(), spiralpoints.end());
+// polygon_set_data<double> handset;
+// handset += handpoly;
+// polygon_set_data<double> spiralset;
+// spiralset += spiralpoly;
+// polygon_set_data<double> xorset = handset ^ spiralset;
+// std::vector<polygon_data<double> > polys;
+// polys += xorset;
+// std::cout << polys.size() << std::endl;
+// for(unsigned int i = 0; i < polys.size(); ++i)
+// std::cout << polys[i] << std::endl;
+//}
bool testDirectionalSize() {
{
@@ -2229,7 +2249,7 @@
//max_cover_stress_test(); //does not include functional testing
if(!testDirectionalSize()) return 1;
testHand();
- testHandFloat();
+ //testHandFloat();
if(!testpip()) return 1;
{
PolygonSet ps;
Modified: sandbox/gtl/boost/polygon/interval_concept.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/interval_concept.hpp (original)
+++ sandbox/gtl/boost/polygon/interval_concept.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -242,10 +242,11 @@
typename interval_difference_type<interval_type>::type displacement,
typename enable_if<typename is_mutable_interval_concept<typename geometry_concept<interval_type>::type>::type>::type * = 0
) {
- typedef typename coordinate_traits<typename interval_traits<interval_type>::coordinate_type>::coordinate_difference Unit;
+ typedef typename interval_traits<interval_type>::coordinate_type ctype;
+ typedef typename coordinate_traits<ctype>::coordinate_difference Unit;
Unit len = delta(interval);
- low(interval, (Unit)low(interval) + displacement);
- high(interval, (Unit)low(interval) + len);
+ low(interval, static_cast<ctype>(static_cast<Unit>(low(interval)) + displacement));
+ high(interval, static_cast<ctype>(static_cast<Unit>(low(interval)) + len));
return interval;
}
Modified: sandbox/gtl/boost/polygon/interval_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/interval_data.hpp (original)
+++ sandbox/gtl/boost/polygon/interval_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -13,11 +13,23 @@
class interval_data {
public:
typedef T coordinate_type;
- inline interval_data():coords_(){}
- inline interval_data(coordinate_type low, coordinate_type high):coords_() {
+ inline interval_data()
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {}
+ inline interval_data(coordinate_type low, coordinate_type high)
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {
coords_[LOW] = low; coords_[HIGH] = high;
}
- inline interval_data(const interval_data& that):coords_() {
+ inline interval_data(const interval_data& that)
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {
(*this) = that;
}
inline interval_data& operator=(const interval_data& that) {
Modified: sandbox/gtl/boost/polygon/isotropy.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/isotropy.hpp (original)
+++ sandbox/gtl/boost/polygon/isotropy.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -28,7 +28,7 @@
#include <boost/config.hpp>
#ifdef BOOST_MSVC
-#define BOOST_POLYGON_WIN32
+#define BOOST_POLYGON_MSVC
#endif
#ifdef BOOST_INTEL
#define BOOST_POLYGON_ICC
@@ -47,7 +47,7 @@
#else
#ifdef WIN32
-#define BOOST_POLYGON_WIN32
+#define BOOST_POLYGON_MSVC
#endif
#ifdef __ICC
#define BOOST_POLYGON_ICC
Modified: sandbox/gtl/boost/polygon/point_3d_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/point_3d_data.hpp (original)
+++ sandbox/gtl/boost/polygon/point_3d_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -15,7 +15,11 @@
inline point_3d_data():coords_(){}
inline point_3d_data(coordinate_type x, coordinate_type y):coords_() {
coords_[HORIZONTAL] = x; coords_[VERTICAL] = y; coords_[PROXIMAL] = 0; }
- inline point_3d_data(coordinate_type x, coordinate_type y, coordinate_type z):coords_() {
+ inline point_3d_data(coordinate_type x, coordinate_type y, coordinate_type z)
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {
coords_[HORIZONTAL] = x; coords_[VERTICAL] = y; coords_[PROXIMAL] = z; }
inline point_3d_data(const point_3d_data& that):coords_() { (*this) = that; }
inline point_3d_data& operator=(const point_3d_data& that) {
Modified: sandbox/gtl/boost/polygon/point_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/point_data.hpp (original)
+++ sandbox/gtl/boost/polygon/point_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -16,11 +16,23 @@
class point_data {
public:
typedef T coordinate_type;
- inline point_data():coords_(){}
- inline point_data(coordinate_type x, coordinate_type y):coords_() {
+ inline point_data()
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {}
+ inline point_data(coordinate_type x, coordinate_type y)
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ {
coords_[HORIZONTAL] = x; coords_[VERTICAL] = y;
}
- inline point_data(const point_data& that):coords_() { (*this) = that; }
+ inline point_data(const point_data& that)
+#ifndef BOOST_POLYGON_MSVC
+ :coords_()
+#endif
+ { (*this) = that; }
inline point_data& operator=(const point_data& that) {
coords_[0] = that.coords_[0]; coords_[1] = that.coords_[1]; return *this;
}
Modified: sandbox/gtl/boost/polygon/polygon_45_set_concept.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_45_set_concept.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_45_set_concept.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -197,7 +197,7 @@
polygon_set_type>::type &
bloat(polygon_set_type& polygon_set,
typename coordinate_traits<typename polygon_45_set_traits<polygon_set_type>::coordinate_type>::unsigned_area_type bloating) {
- return resize(polygon_set, bloating);
+ return resize(polygon_set, static_cast<typename polygon_45_set_traits<polygon_set_type>::coordinate_type>(bloating));
}
template <typename polygon_set_type>
Modified: sandbox/gtl/boost/polygon/polygon_45_set_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_45_set_data.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_45_set_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -18,7 +18,7 @@
enum CornerOption { INTERSECTION = 0, ORTHOGONAL = 1, UNFILLED = 2 };
template <typename ltype, typename rtype, int op_type>
- struct polygon_45_set_view;
+ class polygon_45_set_view;
struct polygon_45_set_concept {};
@@ -131,16 +131,20 @@
itr != polygon_set.end(); ++itr) {
Vertex45Compact vertex_45(point_data<Unit>((*itr).first, (*itr).second.first), 2, (*itr).second.second);
vertex_45.count[1] = (*itr).second.second;
- insert_clean(vertex_45);
+ if(is_hole) vertex_45.count[1] *= - 1;
+ insert_clean(vertex_45, is_hole);
}
} else {
for(typename polygon_90_set_data<coordinate_type_2>::iterator_type itr = polygon_set.begin();
itr != polygon_set.end(); ++itr) {
Vertex45Compact vertex_45(point_data<Unit>((*itr).second.first, (*itr).first), 2, (*itr).second.second);
vertex_45.count[1] = (*itr).second.second;
- insert_clean(vertex_45);
+ if(is_hole) vertex_45.count[1] *= - 1;
+ insert_clean(vertex_45, is_hole);
}
}
+ dirty_ = true;
+ unsorted_ = true;
}
template <typename output_container>
@@ -361,7 +365,7 @@
get_fracture(output, false, tag);
}
template <typename output_container, typename concept_type>
- void get_fracture(output_container& container, bool fracture_holes, concept_type tag) const {
+ void get_fracture(output_container& container, bool fracture_holes, concept_type ) const {
clean();
typename polygon_45_formation<Unit>::Polygon45Formation pf(fracture_holes);
//std::cout << "FORMING POLYGONS\n";
@@ -369,17 +373,17 @@
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, undefined_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, undefined_concept) {
insert(geometry_object.begin(), geometry_object.end(), is_hole);
}
template <typename geometry_type>
void insert_dispatch(const geometry_type& geometry_object, bool is_hole, rectangle_concept tag);
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_concept ) {
insert_vertex_sequence(begin_points(geometry_object), end_points(geometry_object), winding(geometry_object), is_hole);
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_with_holes_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_with_holes_concept ) {
insert_vertex_sequence(begin_points(geometry_object), end_points(geometry_object), winding(geometry_object), is_hole);
for(typename polygon_with_holes_traits<geometry_type>::iterator_holes_type itr =
begin_holes(geometry_object); itr != end_holes(geometry_object);
@@ -388,11 +392,11 @@
}
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_concept ) {
insert_vertex_sequence(begin_points(geometry_object), end_points(geometry_object), winding(geometry_object), is_hole);
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_with_holes_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_with_holes_concept ) {
insert_vertex_sequence(begin_points(geometry_object), end_points(geometry_object), winding(geometry_object), is_hole);
for(typename polygon_with_holes_traits<geometry_type>::iterator_holes_type itr =
begin_holes(geometry_object); itr != end_holes(geometry_object);
@@ -401,13 +405,13 @@
}
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_set_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_45_set_concept ) {
polygon_45_set_data ps;
assign(ps, geometry_object);
insert(ps, is_hole);
}
template <typename geometry_type>
- void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_set_concept tag) {
+ void insert_dispatch(const geometry_type& geometry_object, bool is_hole, polygon_90_set_concept ) {
std::list<polygon_90_data<coordinate_type> > pl;
assign(pl, geometry_object);
insert(pl.begin(), pl.end(), is_hole);
@@ -443,14 +447,14 @@
typedef polygon_45_set_concept type;
};
- template <typename iT>
- void scale_up_vertex_45_compact_range(iT beginr, iT endr, unsigned int factor) {
+ template <typename iT, typename T>
+ void scale_up_vertex_45_compact_range(iT beginr, iT endr, T factor) {
for( ; beginr != endr; ++beginr) {
scale_up((*beginr).pt, factor);
}
}
- template <typename iT>
- void scale_down_vertex_45_compact_range_blindly(iT beginr, iT endr, unsigned int factor) {
+ template <typename iT, typename T>
+ void scale_down_vertex_45_compact_range_blindly(iT beginr, iT endr, T factor) {
for( ; beginr != endr; ++beginr) {
scale_down((*beginr).pt, factor);
}
@@ -578,7 +582,8 @@
itr != polygon_set.end(); ++itr) {
const typename polygon_45_set_data<coord_type>::Vertex45Compact& v = *itr;
typename polygon_45_set_data<Unit>::Vertex45Compact v2;
- assign(v2.pt, v.pt);
+ v2.pt.x(static_cast<Unit>(v.pt.x()));
+ v2.pt.y(static_cast<Unit>(v.pt.y()));
v2.count = typename polygon_45_formation<Unit>::Vertex45Count(v.count[0], v.count[1], v.count[2], v.count[3]);
data_.push_back(v2);
}
@@ -588,7 +593,8 @@
itr != tmp.end(); ++itr) {
const typename polygon_45_set_data<coord_type>::Vertex45Compact& v = *itr;
typename polygon_45_set_data<Unit>::Vertex45Compact v2;
- assign(v2.pt, v.pt);
+ v2.pt.x(static_cast<Unit>(v.pt.x()));
+ v2.pt.y(static_cast<Unit>(v.pt.y()));
v2.count = typename polygon_45_formation<Unit>::Vertex45Count(v.count[0], v.count[1], v.count[2], v.count[3]);
error_data_.push_back(v2);
}
@@ -618,7 +624,7 @@
template <typename Unit>
template <typename geometry_type>
inline void polygon_45_set_data<Unit>::insert_dispatch(const geometry_type& geometry_object,
- bool is_hole, rectangle_concept tag) {
+ bool is_hole, rectangle_concept ) {
dirty_ = true;
unsorted_ = true;
insert_rectangle_into_vector_45(data_, geometry_object, is_hole);
@@ -1084,7 +1090,7 @@
coordinate_type resizing,
RoundingOption rounding,
CornerOption corner,
- bool hole, polygon_45_concept tag) {
+ bool hole, polygon_45_concept ) {
direction_1d wdir = winding(poly);
int multiplier = wdir == LOW ? -1 : 1;
if(hole) resizing *= -1;
@@ -1138,7 +1144,7 @@
coordinate_type resizing,
RoundingOption rounding,
CornerOption corner,
- bool hole, polygon_45_with_holes_concept tag) {
+ bool hole, polygon_45_with_holes_concept ) {
insert_with_resize_dispatch(poly, resizing, rounding, corner, hole, polygon_45_concept());
for(typename polygon_with_holes_traits<geometry_type>::iterator_holes_type itr =
begin_holes(poly); itr != end_holes(poly);
@@ -1488,7 +1494,7 @@
continue;
}
}
- if(abs(x(pt2)) % 2) { //y % 2 should also be odd
+ if(local_abs(x(pt2)) % 2) { //y % 2 should also be odd
//is corner concave or convex?
Point pts[] = {pt1, pt2, pt3};
double ar = point_sequence_area<Point*, double>(pts, pts+3);
@@ -1538,6 +1544,9 @@
}
l90sd.sort();
r90sd.sort();
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op == 0) {
output.applyBooleanBinaryOp(l90sd.begin(), l90sd.end(),
r90sd.begin(), r90sd.end(), boolean_op::BinaryCount<boolean_op::BinaryOr>());
@@ -1551,6 +1560,9 @@
output.applyBooleanBinaryOp(l90sd.begin(), l90sd.end(),
r90sd.begin(), r90sd.end(), boolean_op::BinaryCount<boolean_op::BinaryXor>());
}
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
result.data_.clear();
result.insert(output);
result.is_manhattan_ = true;
@@ -1615,7 +1627,8 @@
for(std::size_t i = 0 ; i < error_data_out.size(); ++i) {
const Vertex45Compact2& vi = error_data_out[i];
Vertex45Compact ci;
- ci.pt = (point_data<Unit2>(x(vi.pt), y(vi.pt)));
+ ci.pt.x(static_cast<Unit>(x(vi.pt)));
+ ci.pt.y(static_cast<Unit>(y(vi.pt)));
ci.count = typename polygon_45_formation<Unit>::Vertex45Count
( vi.count[0], vi.count[1], vi.count[2], vi.count[3]);
result.error_data_.push_back(ci);
@@ -1630,7 +1643,8 @@
for(std::size_t i = 0 ; i < result_data.size(); ++i) {
const Vertex45Compact2& vi = result_data[i];
Vertex45Compact ci;
- ci.pt = (point_data<Unit2>(x(vi.pt), y(vi.pt)));
+ ci.pt.x(static_cast<Unit>(x(vi.pt)));
+ ci.pt.y(static_cast<Unit>(y(vi.pt)));
ci.count = typename polygon_45_formation<Unit>::Vertex45Count
( vi.count[0], vi.count[1], vi.count[2], vi.count[3]);
result.data_.push_back(ci);
@@ -1657,6 +1671,9 @@
l90sd.insert(std::make_pair((*itr).pt.x(), std::make_pair((*itr).pt.y(), (*itr).count[3])), false, VERTICAL);
}
l90sd.sort();
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (disable: 4127)
+#endif
if(op == 0) {
l90sd.clean();
} else if (op == 1) {
@@ -1664,6 +1681,9 @@
} else if (op == 3) {
l90sd.self_xor();
}
+#ifdef BOOST_POLYGON_MSVC
+#pragma warning (default: 4127)
+#endif
result.data_.clear();
result.insert(l90sd);
result.is_manhattan_ = true;
@@ -1685,7 +1705,8 @@
for(std::size_t i = 0 ; i < data_.size(); ++i) {
const Vertex45Compact& vi = data_[i];
Vertex45Compact2 ci;
- ci.pt = point_data<Unit2>(x(vi.pt), y(vi.pt));
+ ci.pt.x(static_cast<Unit>(x(vi.pt)));
+ ci.pt.y(static_cast<Unit>(y(vi.pt)));
ci.count = typename polygon_45_formation<Unit2>::Vertex45Count
( vi.count[0], vi.count[1], vi.count[2], vi.count[3]);
lvalue_data.push_back(ci);
@@ -1716,7 +1737,8 @@
for(std::size_t i = 0 ; i < error_data_out.size(); ++i) {
const Vertex45Compact2& vi = error_data_out[i];
Vertex45Compact ci;
- ci.pt = (point_data<Unit2>(x(vi.pt), y(vi.pt)));
+ ci.pt.x(static_cast<Unit>(x(vi.pt)));
+ ci.pt.y(static_cast<Unit>(y(vi.pt)));
ci.count = typename polygon_45_formation<Unit>::Vertex45Count
( vi.count[0], vi.count[1], vi.count[2], vi.count[3]);
result.error_data_.push_back(ci);
@@ -1731,7 +1753,8 @@
for(std::size_t i = 0 ; i < result_data.size(); ++i) {
const Vertex45Compact2& vi = result_data[i];
Vertex45Compact ci;
- ci.pt = (point_data<Unit2>(x(vi.pt), y(vi.pt)));
+ ci.pt.x(static_cast<Unit>(x(vi.pt)));
+ ci.pt.y(static_cast<Unit>(y(vi.pt)));
ci.count = typename polygon_45_formation<Unit>::Vertex45Count
( vi.count[0], vi.count[1], vi.count[2], vi.count[3]);
result.data_.push_back(ci);
Modified: sandbox/gtl/boost/polygon/polygon_45_set_traits.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_45_set_traits.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_45_set_traits.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -24,9 +24,9 @@
return get_iterator_type<T>::end(polygon_set);
}
- static inline bool clean(const T& polygon_set) { return false; }
+ static inline bool clean(const T& ) { return false; }
- static inline bool sorted(const T& polygon_set) { return false; }
+ static inline bool sorted(const T& ) { return false; }
};
template <typename T>
Modified: sandbox/gtl/boost/polygon/polygon_90_set_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_90_set_data.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_90_set_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -132,7 +132,7 @@
}
template <typename geometry_type>
- inline void insert(const geometry_type& geometry_object, bool is_hole = false, orientation_2d orient = HORIZONTAL) {
+ inline void insert(const geometry_type& geometry_object, bool is_hole = false, orientation_2d = HORIZONTAL) {
iterator_geometry_to_set<typename geometry_concept<geometry_type>::type, geometry_type>
begin_input(geometry_object, LOW, orient_, is_hole), end_input(geometry_object, HIGH, orient_, is_hole);
insert(begin_input, end_input, orient_);
@@ -506,7 +506,7 @@
private:
//functions
template <typename output_container>
- void get_dispatch(output_container& output, rectangle_concept tag) const {
+ void get_dispatch(output_container& output, rectangle_concept ) const {
clean();
form_rectangles(output, data_.begin(), data_.end(), orient_, rectangle_concept());
}
Modified: sandbox/gtl/boost/polygon/polygon_90_set_traits.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_90_set_traits.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_90_set_traits.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -147,11 +147,11 @@
return indirection_type::end(polygon_set);
}
- static inline orientation_2d orient(const T& polygon_set) { return HORIZONTAL; }
+ static inline orientation_2d orient(const T&) { return HORIZONTAL; }
- static inline bool clean(const T& polygon_set) { return false; }
+ static inline bool clean(const T&) { return false; }
- static inline bool sorted(const T& polygon_set) { return false; }
+ static inline bool sorted(const T&) { return false; }
};
template <typename T>
@@ -251,7 +251,7 @@
//get dispatch functions
template <typename output_container_type, typename pst>
void get_90_dispatch(output_container_type& output, const pst& ps,
- orientation_2d orient, rectangle_concept tag) {
+ orientation_2d orient, rectangle_concept ) {
form_rectangles(output, ps.begin(), ps.end(), orient, rectangle_concept());
}
Modified: sandbox/gtl/boost/polygon/polygon_set_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_set_data.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_set_data.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -98,7 +98,7 @@
}
template <typename polygon_type>
- inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_concept tag) {
+ inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_concept ) {
bool first_iteration = true;
point_type first_point;
point_type previous_point;
@@ -148,16 +148,16 @@
}
template <typename polygon_type>
- inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_45_concept tag) {
+ inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_45_concept ) {
insert(polygon_object, is_hole, polygon_concept()); }
template <typename polygon_type>
- inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_90_concept tag) {
+ inline void insert(const polygon_type& polygon_object, bool is_hole, polygon_90_concept ) {
insert(polygon_object, is_hole, polygon_concept()); }
template <typename polygon_with_holes_type>
inline void insert(const polygon_with_holes_type& polygon_with_holes_object, bool is_hole,
- polygon_with_holes_concept tag) {
+ polygon_with_holes_concept ) {
insert(polygon_with_holes_object, is_hole, polygon_concept());
for(typename polygon_with_holes_traits<polygon_with_holes_type>::iterator_holes_type itr =
begin_holes(polygon_with_holes_object);
@@ -168,16 +168,16 @@
template <typename polygon_with_holes_type>
inline void insert(const polygon_with_holes_type& polygon_with_holes_object, bool is_hole,
- polygon_45_with_holes_concept tag) {
+ polygon_45_with_holes_concept ) {
insert(polygon_with_holes_object, is_hole, polygon_with_holes_concept()); }
template <typename polygon_with_holes_type>
inline void insert(const polygon_with_holes_type& polygon_with_holes_object, bool is_hole,
- polygon_90_with_holes_concept tag) {
+ polygon_90_with_holes_concept ) {
insert(polygon_with_holes_object, is_hole, polygon_with_holes_concept()); }
template <typename rectangle_type>
- inline void insert(const rectangle_type& rectangle_object, bool is_hole, rectangle_concept tag) {
+ inline void insert(const rectangle_type& rectangle_object, bool is_hole, rectangle_concept ) {
polygon_90_data<coordinate_type> poly;
assign(poly, rectangle_object);
insert(poly, is_hole, polygon_concept());
@@ -441,7 +441,7 @@
get_fracture(output, false, tag);
}
template <typename output_container, typename concept_type>
- void get_fracture(output_container& container, bool fracture_holes, concept_type tag) const {
+ void get_fracture(output_container& container, bool fracture_holes, concept_type ) const {
clean();
polygon_arbitrary_formation<coordinate_type> pf(fracture_holes);
typedef typename polygon_arbitrary_formation<coordinate_type>::vertex_half_edge vertex_half_edge;
Modified: sandbox/gtl/boost/polygon/polygon_set_traits.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_set_traits.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_set_traits.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -26,9 +26,9 @@
return get_iterator_type<T>::end(polygon_set);
}
- static inline bool clean(const T& polygon_set) { return false; }
+ static inline bool clean(const T& ) { return false; }
- static inline bool sorted(const T& polygon_set) { return false; }
+ static inline bool sorted(const T& ) { return false; }
};
template <typename T>
Modified: sandbox/gtl/boost/polygon/polygon_traits.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon_traits.hpp (original)
+++ sandbox/gtl/boost/polygon/polygon_traits.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -30,7 +30,7 @@
}
// Get the winding direction of the polygon
- static inline winding_direction winding(const T& t) {
+ static inline winding_direction winding(const T&) {
return unknown_winding;
}
};
@@ -66,7 +66,7 @@
}
// Get the winding direction of the polygon
- static inline winding_direction winding(const T& t) {
+ static inline winding_direction winding(const T&) {
return unknown_winding;
}
};
@@ -698,7 +698,7 @@
}
template <typename Unit>
- Unit abs(Unit value) { return value < 0 ? -value : value; }
+ Unit local_abs(Unit value) { return value < 0 ? -value : value; }
template <typename Unit>
void snap_point_vector_to_45(std::vector<point_data<Unit> >& pts) {
@@ -719,22 +719,22 @@
Unit deltax = x(pt2) - x(pt1);
Unit deltay = y(pt2) - y(pt1);
if(deltax && deltay &&
- abs(deltax) != abs(deltay)) {
+ local_abs(deltax) != local_abs(deltay)) {
//adjust the middle point
Unit ndx = x(pt3) - x(pt2);
Unit ndy = y(pt3) - y(pt2);
if(ndx && ndy) {
- Unit diff = abs(abs(deltax) - abs(deltay));
+ Unit diff = local_abs(local_abs(deltax) - local_abs(deltay));
Unit halfdiff = diff/2;
if((deltax > 0 && deltay > 0) ||
(deltax < 0 && deltay < 0)) {
//previous edge is rising slope
- if(abs(deltax + halfdiff + (diff % 2)) ==
- abs(deltay - halfdiff)) {
+ if(local_abs(deltax + halfdiff + (diff % 2)) ==
+ local_abs(deltay - halfdiff)) {
x(pt2, x(pt2) + halfdiff + (diff % 2));
y(pt2, y(pt2) - halfdiff);
- } else if(abs(deltax - halfdiff - (diff % 2)) ==
- abs(deltay + halfdiff)) {
+ } else if(local_abs(deltax - halfdiff - (diff % 2)) ==
+ local_abs(deltay + halfdiff)) {
x(pt2, x(pt2) - halfdiff - (diff % 2));
y(pt2, y(pt2) + halfdiff);
} else{
@@ -742,12 +742,12 @@
}
} else {
//previous edge is falling slope
- if(abs(deltax + halfdiff + (diff % 2)) ==
- abs(deltay + halfdiff)) {
+ if(local_abs(deltax + halfdiff + (diff % 2)) ==
+ local_abs(deltay + halfdiff)) {
x(pt2, x(pt2) + halfdiff + (diff % 2));
y(pt2, y(pt2) + halfdiff);
- } else if(abs(deltax - halfdiff - (diff % 2)) ==
- abs(deltay - halfdiff)) {
+ } else if(local_abs(deltax - halfdiff - (diff % 2)) ==
+ local_abs(deltay - halfdiff)) {
x(pt2, x(pt2) - halfdiff - (diff % 2));
y(pt2, y(pt2) - halfdiff);
} else {
@@ -764,13 +764,13 @@
} else if(ndx) {
//next edge is horizontal
//find the x value for pt1 that would make the abs(deltax) == abs(deltay)
- Unit newDeltaX = abs(deltay);
+ Unit newDeltaX = local_abs(deltay);
if(deltax < 0) newDeltaX *= -1;
x(pt2, x(pt1) + newDeltaX);
} else { //ndy
//next edge is vertical
//find the y value for pt1 that would make the abs(deltax) == abs(deltay)
- Unit newDeltaY = abs(deltax);
+ Unit newDeltaY = local_abs(deltax);
if(deltay < 0) newDeltaY *= -1;
y(pt2, y(pt1) + newDeltaY);
}
@@ -992,7 +992,7 @@
Unit deltax = x(pt) - x(prevPt);
Unit deltay = y(pt) - y(prevPt);
if(deltax && deltay &&
- abs(deltax) != abs(deltay))
+ local_abs(deltax) != local_abs(deltay))
return false;
prevPt = pt;
++itr;
@@ -1000,7 +1000,7 @@
Unit deltax = x(firstPt) - x(prevPt);
Unit deltay = y(firstPt) - y(prevPt);
if(deltax && deltay &&
- abs(deltax) != abs(deltay))
+ local_abs(deltax) != local_abs(deltay))
return false;
return true;
}
@@ -1119,7 +1119,7 @@
//odd count implies boundary condition
if(counts[0] % 2 || counts[1] % 2) return consider_touch;
//an odd number of edges to the left implies interior pt
- return counts[0] % 4;
+ return counts[0] % 4 != 0;
}
//TODO: refactor to expose as user APIs
@@ -1279,7 +1279,7 @@
}
he.first = he.second;
}
- return above % 2; //if the point is above an odd number of edges is must be inside polygon
+ return above % 2 != 0; //if the point is above an odd number of edges is must be inside polygon
}
template <typename T1, typename T2>
Modified: sandbox/gtl/boost/polygon/transform.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/transform.hpp (original)
+++ sandbox/gtl/boost/polygon/transform.hpp 2009-09-21 19:23:29 EDT (Mon, 21 Sep 2009)
@@ -253,9 +253,9 @@
// in the caller code for easier isotropic access by orientation value
inline void get_directions(direction_2d& horizontal_dir,
direction_2d& vertical_dir) const {
- bool bit2 = atr_ & 4;
- bool bit1 = atr_ & 2;
- bool bit0 = atr_ & 1;
+ bool bit2 = (atr_ & 4) != 0;
+ bool bit1 = (atr_ & 2) != 0;
+ bool bit0 = (atr_ & 1) != 0;
vertical_dir = direction_2d((direction_2d_enum)(((int)(!bit2) << 1) + !bit1));
horizontal_dir = direction_2d((direction_2d_enum)(((int)(bit2) << 1) + !bit0));
}
@@ -265,12 +265,12 @@
inline void get_directions(direction_3d& horizontal_dir,
direction_3d& vertical_dir,
direction_3d& proximal_dir) const {
- bool bit5 = atr_ & 32;
- bool bit4 = atr_ & 16;
- bool bit3 = atr_ & 8;
- bool bit2 = atr_ & 4;
- bool bit1 = atr_ & 2;
- bool bit0 = atr_ & 1;
+ bool bit5 = (atr_ & 32) != 0;
+ bool bit4 = (atr_ & 16) != 0;
+ bool bit3 = (atr_ & 8) != 0;
+ bool bit2 = (atr_ & 4) != 0;
+ bool bit1 = (atr_ & 2) != 0;
+ bool bit0 = (atr_ & 1) != 0;
proximal_dir = direction_3d((direction_2d_enum)((((int)(!bit4 & !bit5)) << 2) +
((int)(bit5) << 1) +
!bit3));
@@ -339,17 +339,29 @@
template <typename scale_factor_type>
class anisotropic_scale_factor {
public:
- inline anisotropic_scale_factor() : scale_() {
+ inline anisotropic_scale_factor()
+#ifndef BOOST_POLYGON_MSVC
+ : scale_()
+#endif
+ {
scale_[0] = 1;
scale_[1] = 1;
scale_[2] = 1;
}
- inline anisotropic_scale_factor(scale_factor_type xscale, scale_factor_type yscale) : scale_() {
+ inline anisotropic_scale_factor(scale_factor_type xscale, scale_factor_type yscale)
+#ifndef BOOST_POLYGON_MSVC
+ : scale_()
+#endif
+ {
scale_[0] = xscale;
scale_[1] = yscale;
scale_[2] = 1;
}
- inline anisotropic_scale_factor(scale_factor_type xscale, scale_factor_type yscale, scale_factor_type zscale) : scale_() {
+ inline anisotropic_scale_factor(scale_factor_type xscale, scale_factor_type yscale, scale_factor_type zscale)
+#ifndef BOOST_POLYGON_MSVC
+ : scale_()
+#endif
+ {
scale_[0] = xscale;
scale_[1] = yscale;
scale_[2] = zscale;
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk