29 #define _unused(x) ((void)(x)) 35 #include "SUAPI-CppWrapper/model/Curve.hpp" 41 Curve(create_curve(edges, m_create_result), curve_type)
46 Entity(SUCurveToEntity(curve)),
47 m_curve_type(curve_type)
53 SUCurveRef Curve::create_curve(std::vector<Edge>& edges, SUResult &result) {
54 SUCurveRef curve_ref = SU_INVALID;
55 std::vector<SUEdgeRef> refs(edges.size(), SU_INVALID);
57 std::transform(edges.begin(), edges.end(), refs.begin(), [](
const CW::Edge& edge) {
return edge.ref(); });
58 result = SUCurveCreateWithEdges(&curve_ref, refs.data(), refs.size());
70 throw std::logic_error(
"CW::Curve::get_edges(): Curve is null");
73 SUResult res = SUCurveGetNumEdges(this->
ref(), &num_edges);
74 assert(res == SU_ERROR_NONE);
75 std::vector<SUEdgeRef> ref_edges(num_edges, SU_INVALID);
76 res = SUCurveGetEdges(this->
ref(), num_edges, ref_edges.data(), &num_edges);
77 assert(res == SU_ERROR_NONE); _unused(res);
78 std::vector<Edge> edges(num_edges);
79 std::transform(ref_edges.begin(), ref_edges.end(), edges.begin(),
80 [](
const SUEdgeRef& value) {
89 throw std::logic_error(
"CW::Curve::get_type(): Curve is null");
91 SUCurveGetType(this->
ref(), &m_curve_type);
96 SUResult Curve::get_result()
const {
97 return m_create_result;
101 Curve::operator bool()
const {
102 if (m_create_result == SU_ERROR_NONE) {
Entity()
Constructor representing a null objject.
SUEntityRef m_entity
The C SUEntityRef that this class wraps.
std::vector< Edge > get_edges() const
Curve(std::vector< Edge > edges, SUCurveType curve_type=SUCurveType_Simple)