// Generated by using Rcpp::compileAttributes() -> do not edit by hand
// Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

#include <Rcpp.h>

using namespace Rcpp;

// pack
NumericMatrix pack(NumericVector areas);
RcppExport SEXP _ggraph_pack(SEXP areasSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type areas(areasSEXP);
    rcpp_result_gen = Rcpp::wrap(pack(areas));
    return rcpp_result_gen;
END_RCPP
}
// circlePackLayout
NumericMatrix circlePackLayout(IntegerVector parent, NumericVector weight);
RcppExport SEXP _ggraph_circlePackLayout(SEXP parentSEXP, SEXP weightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type parent(parentSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    rcpp_result_gen = Rcpp::wrap(circlePackLayout(parent, weight));
    return rcpp_result_gen;
END_RCPP
}
// partitionTree
NumericMatrix partitionTree(IntegerVector parent, IntegerVector order, NumericVector weight, NumericVector height);
RcppExport SEXP _ggraph_partitionTree(SEXP parentSEXP, SEXP orderSEXP, SEXP weightSEXP, SEXP heightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type parent(parentSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type order(orderSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type height(heightSEXP);
    rcpp_result_gen = Rcpp::wrap(partitionTree(parent, order, weight, height));
    return rcpp_result_gen;
END_RCPP
}
// cut_lines
List cut_lines(NumericVector x, NumericVector y, IntegerVector id, NumericVector start_width, NumericVector start_height, NumericVector end_width, NumericVector end_height, CharacterVector start_type, CharacterVector end_type);
RcppExport SEXP _ggraph_cut_lines(SEXP xSEXP, SEXP ySEXP, SEXP idSEXP, SEXP start_widthSEXP, SEXP start_heightSEXP, SEXP end_widthSEXP, SEXP end_heightSEXP, SEXP start_typeSEXP, SEXP end_typeSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type y(ySEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type id(idSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type start_width(start_widthSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type start_height(start_heightSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type end_width(end_widthSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type end_height(end_heightSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type start_type(start_typeSEXP);
    Rcpp::traits::input_parameter< CharacterVector >::type end_type(end_typeSEXP);
    rcpp_result_gen = Rcpp::wrap(cut_lines(x, y, id, start_width, start_height, end_width, end_height, start_type, end_type));
    return rcpp_result_gen;
END_RCPP
}
// pathAttr
DataFrame pathAttr(DataFrame paths, int ngroups);
RcppExport SEXP _ggraph_pathAttr(SEXP pathsSEXP, SEXP ngroupsSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< DataFrame >::type paths(pathsSEXP);
    Rcpp::traits::input_parameter< int >::type ngroups(ngroupsSEXP);
    rcpp_result_gen = Rcpp::wrap(pathAttr(paths, ngroups));
    return rcpp_result_gen;
END_RCPP
}
// splitTreemap
NumericMatrix splitTreemap(IntegerVector parent, IntegerVector order, NumericVector weight, double width, double height);
RcppExport SEXP _ggraph_splitTreemap(SEXP parentSEXP, SEXP orderSEXP, SEXP weightSEXP, SEXP widthSEXP, SEXP heightSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type parent(parentSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type order(orderSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weight(weightSEXP);
    Rcpp::traits::input_parameter< double >::type width(widthSEXP);
    Rcpp::traits::input_parameter< double >::type height(heightSEXP);
    rcpp_result_gen = Rcpp::wrap(splitTreemap(parent, order, weight, width, height));
    return rcpp_result_gen;
END_RCPP
}
// unrooted
NumericMatrix unrooted(IntegerVector parent, IntegerVector order, NumericVector length, bool daylight, double tol, double rotation_mod, int maxiter);
RcppExport SEXP _ggraph_unrooted(SEXP parentSEXP, SEXP orderSEXP, SEXP lengthSEXP, SEXP daylightSEXP, SEXP tolSEXP, SEXP rotation_modSEXP, SEXP maxiterSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< IntegerVector >::type parent(parentSEXP);
    Rcpp::traits::input_parameter< IntegerVector >::type order(orderSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type length(lengthSEXP);
    Rcpp::traits::input_parameter< bool >::type daylight(daylightSEXP);
    Rcpp::traits::input_parameter< double >::type tol(tolSEXP);
    Rcpp::traits::input_parameter< double >::type rotation_mod(rotation_modSEXP);
    Rcpp::traits::input_parameter< int >::type maxiter(maxiterSEXP);
    rcpp_result_gen = Rcpp::wrap(unrooted(parent, order, length, daylight, tol, rotation_mod, maxiter));
    return rcpp_result_gen;
END_RCPP
}

static const R_CallMethodDef CallEntries[] = {
    {"_ggraph_pack", (DL_FUNC) &_ggraph_pack, 1},
    {"_ggraph_circlePackLayout", (DL_FUNC) &_ggraph_circlePackLayout, 2},
    {"_ggraph_partitionTree", (DL_FUNC) &_ggraph_partitionTree, 4},
    {"_ggraph_cut_lines", (DL_FUNC) &_ggraph_cut_lines, 9},
    {"_ggraph_pathAttr", (DL_FUNC) &_ggraph_pathAttr, 2},
    {"_ggraph_splitTreemap", (DL_FUNC) &_ggraph_splitTreemap, 5},
    {"_ggraph_unrooted", (DL_FUNC) &_ggraph_unrooted, 7},
    {NULL, NULL, 0}
};

RcppExport void R_init_ggraph(DllInfo *dll) {
    R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
    R_useDynamicSymbols(dll, FALSE);
}
