2#ifndef XCORESDK_SRC_MANAGED_CONVERTER_CLI_HPP_
3#define XCORESDK_SRC_MANAGED_CONVERTER_CLI_HPP_
11 array<double>^ convertArray(
const std::array<double, S>& _in) {
12 auto ret = gcnew array<double>((
int)_in.size());
13 for (
int i = 0; i < (int)_in.size(); ++i) {
20 array<T>^ convertVectorToArray(
const std::vector<T>& _in) {
21 auto ret = gcnew array<T>((
int)_in.size());
22 for (
int i = 0; i < (int)_in.size(); ++i) {
29 std::array<double, S> convertArray(array<double>^ _in) {
30 std::array<double, S> _out{};
31 for (
unsigned int i = 0; i < ((_in->Length < S) ? _in->Length : S); ++i) {
38 std::vector<T> convertVector(List<T>^ _in) {
39 std::vector<T> _out(_in->Count);
40 for (
int i = 0; i < _in->Count; ++i) {
47 std::vector<T> convertArrayToVector(array<T>^ in) {
48 std::vector<T> out(in->Length);
49 for (
decltype(in->Length) i = 0; i < in->Length; ++i) {
56 void convertVector(
const std::vector<T>& in, List<T>^% out) {
58 for (
const auto& d : in) {
63 void convertErrorCode(
const std::error_code& _in, ErrorCode^% _out);
64 Load^ convertLoad(
const rokae::Load& _in);
65 Toolset^ convertToolset(
const rokae::Toolset& _in);
67 void convertLoad(Load^ in, rokae::Load& out);
68 rokae::Toolset convertToolset(Toolset^ in);
70 rokae::Frame convertFrame(Frame^ frame);
71 std::string convertString(String^ in);
73 Frame^ convertFrame(
const rokae::Frame& _in);
75 rokae::CartesianPosition convertCartesianPosition(CartesianPosition^ posture);
77 CartesianPosition^ convertCartesianPosition(
const rokae::CartesianPosition& _cart);
79 void convertOffset(CartesianPosition::Offset^ in, rokae::CartesianPosition::Offset& out);
82 std::vector<Cmd> convertCartMove(List<MoveCommand^>^ cmds) {
83 std::vector<Cmd> _cmds;
85 for each (MoveCommand ^ cmd
in cmds) {
86 Cmd _cmd(convertCartesianPosition(cmd->cartTarget), cmd->speed, cmd->zone);
87 convertOffset(cmd->cartTargetOffset, _cmd.offset);
89 if constexpr (std::is_same_v<MoveLCommand, Cmd>) {
90 _cmd.rotSpeed = cmd->rotSpeed;
93 _cmd.jointSpeed = cmd->jointSpeed;
96 _cmd.customInfo = convertString(cmd->customInfo);
97 _cmds.emplace_back(_cmd);
102 std::vector<MoveCCommand> convertCircularMove(List<MoveCommand^>^ cmds);
104 std::vector<MoveCFCommand> convertCircularFullMove(List<MoveCommand^>^ cmds);
106 std::vector<rokae::MoveSPCommand> convertSpiralMove(List<MoveCommand^>^ cmds);
108 std::vector<rokae::MoveAbsJCommand> convertJointMove(List<MoveCommand^>^ cmds);
110 rokae::MoveWaitCommand convertWaitMove(List<MoveCommand^>^ cmds);