Visual Studio 2012 Update 3, Windows 7.

Full contents of cpp file:

#include "pch.h"
#include "area_outline_node.hpp"
#include <lgs/foreach.hpp>
#include "hex.hpp"
#include <lgs/renderer.hpp>
#include "faction.hpp"
#include "alliance.hpp"

#include "neighbor_graph.hpp"
#include <lgs/graph/bfs_search.hpp>
#include <lgs/opengl/geometry.hpp>
#include "hex_functions.hpp"

#include <lgs/opengl/opengl.hpp>

#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/adapted/c_array.hpp>
#include <boost/geometry/geometries/polygon.hpp>
#include <boost/geometry/geometries/register/point.hpp>

using namespace boost::geometry;

BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET(Vec2i, int, cs::cartesian, x, y, setX, setY);



namespace
{
  int points[][2] = {{16, 0}, {60,0}, {76,32}, {60, 64}, {16, 64}, {0, 32}};

  typedef Vec2i Point;
  typedef model::polygon<Point, false> Poly;
  typedef strategy::transform::translate_transformer<Point, Point> Translate; <<<< error here

  Poly hexPoly;

  struct FactionBorderHex
  {
    FactionBorderHex(Faction& faction) : faction_(&faction) {}

    bool operator()(const Hex* hex) const
    {
      return hex->faction() == faction_ && IsFactionBorderHex()(hex);
    }

    Faction* faction_;
  };
}

AreaOutlineNode::AreaOutlineNode()
{
  if (hexPoly.outer().empty())
  {
    append(hexPoly, points);
    correct(hexPoly);
  }
}

void AreaOutlineNode::setFaction(Faction* faction)
{
  if (faction_ != faction)
  {
    faction_ = faction;
    meshes_.clear();

    if (faction_)
    {
      setArea(faction_->hexes());
    }
  }
}

void AreaOutlineNode::setArea(const Lgs::Vector<Hex*>& area)
{
  boost::unordered_set<Hex*> factionBorder = faction_->getBorder();

  std::vector<Vec2f> verts;

  while (!factionBorder.empty())
  {
    Lgs::Vector<Hex*> border = floodFill(*factionBorder.begin(), HexNeighborGraph(), FactionBorderHex(*faction_));

    Poly polySum;

    foreach (Hex* hex, border)
    {
      factionBorder.erase(hex);

      Vec2i pos = pixelPosition(*hex);
      Poly poly;

      transform(hexPoly, poly, Translate(pos.x(), pos.y()));

      std::vector<Poly> multiSum;
      union_(polySum, poly, multiSum);

      polySum = multiSum.front();
    }

    verts.assign(polySum.outer().begin(), polySum.outer().end());
    meshes_.emplace_back(new Lgs::Geometry(Lgs::GeometryType::LineStrip));
    meshes_.back()->setVertices(&verts.front(), verts.size());
    meshes_.back()->setColors(&faction_->alliance()->borderColor(), 1);
  }
}

void AreaOutlineNode::doRender(Renderer& r, const Recti& cullRect) const
{
  if (faction_)
  {
    
    foreach (const boost::shared_ptr<Lgs::Geometry>& mesh, meshes_)
    {
      //r.drawMesh(mesh);
      mesh->draw();
    }
  }
}

Sizei AreaOutlineNode::size() const
{
  //FIXME: proper size based on envelope()
  return Sizei(10000, 10000);
}


2013/10/29 Mateusz Loskot <mateusz@loskot.net>
On 29 October 2013 15:10, Szymon Gatner <szymon.gatner@gmail.com> wrote:
> Moving to 1.55b1 from 1.54 gives:
>
> Error 1 error C2976:
> 'boost::geometry::strategy::transform::translate_transformer' : too few
> template arguments
>
> offending line is:
>
> typedef strategy::transform::translate_transformer<Point, Point> Translate;

Compilation of what test case/example of Boost.Geometry
using what compiler causes this error?

Best regards,
--
Mateusz  Loskot, http://mateusz.loskot.net
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users



--
Szymon Gatner
The Lordz Games Studio
www.thelordzgamesstudio.com
Twitter: @sgatner