Rcpp とそれに関連するパッケージが異なるオブジェクト タイプ間の変換を提供するnice コマンド<as>
とコマンドがないと、私は道に迷ってしまいます。<wrap>
行が 2 次元デカルト空間の点を表す点の行列があります。
pointsMatrix <- matrix(runif(100,-1,1),50,50)
次に、ブースト ジオメトリの凸包アルゴリズムを使用して、ポイントの凸包を見つけます。
ただし、 を理解できるNumericMatrix
データ型の 1 つに変換する方法がわかりませんconvex_hull
。さらに、Boost Geometry からの出力を、Rcpp が R に返すことができるものに変換する方法がわかりません。
#include <Rcpp.h>
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/polygon.hpp>
using namespace Rcpp;
BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
// [[Rcpp::export]]
NumericMatrix convexHullRcpp(NumericMatrix pointsMatrix){
typedef boost::tuple<double, double> point;
typedef boost::geometry::model::polygon<point> polygon;
// Some sort of conversion of pointsMatrix here to pointsMatrixBG//
polygon hull;
boost::geometry::convex_hull(pointsMatrixBG, hull);
//Now to convert hull into something that Rcpp can hand back to R.//
return hullToR;
}
boost.tuple が最良の選択のようです