COPP C++ API
C++ interface for COPP trajectory optimization
Loading...
Searching...
No Matches
copp::Constraints Class Reference

Owning raw constraint-buffer facade. More...

#include <robot.hpp>

Public Member Functions

 Constraints (std::size_t dim, std::size_t capacity=0)
 Constraints (Constraints &&) noexcept
Constraintsoperator= (Constraints &&) noexcept
 ~Constraints ()
 Constraints (const Constraints &)=delete
Constraintsoperator= (const Constraints &)=delete
ConstraintsRef ref () noexcept
 Borrow this owning object as a solver/constraint reference.
std::size_t dim () const
std::size_t len () const
std::size_t size () const
std::size_t capacity () const
bool is_empty () const
std::pair< std::size_t, std::size_t > idx_s_range () const
Constraintsappend_s (Span< const double > s)
std::vector< double > s_values (std::size_t idx_s_from, std::size_t idx_s_to) const
std::vector< double > amax_values (std::size_t idx_s_from, std::size_t idx_s_to) const
double s_value (std::size_t idx_s) const
double amax_value (std::size_t idx_s) const
Constraintsamax_substitute (Span< const double > amax, std::size_t idx_s)
Constraintsclear (bool keep_idx_s=false)
Constraintspop_front_n (std::size_t n_cols)
Constraintspop_back_n (std::size_t n_cols)
Constraintspop_front_until (std::size_t idx_s_cut)
Constraintspop_back_until (std::size_t idx_s_cut)
Constraintsadd_constraint_1st (Span< const double > amax, std::size_t idx_s)
Constraintsadd_constraint_1st (MatrixView amax, std::size_t idx_s)
Constraintsadd_constraint_2nd (MatrixView acc_a, MatrixView acc_b, MatrixView acc_max, std::size_t idx_s, bool is_negative=false)
Constraintsadd_constraint_3rd (MatrixView jerk_a, MatrixView jerk_b, MatrixView jerk_c, MatrixView jerk_d, MatrixView jerk_max, std::size_t idx_s, bool is_negative=false)

Detailed Description

Owning raw constraint-buffer facade.

This class mirrors Python's independently constructed Constraints. Internally it owns the same Rust robot-handle shape as Robot, but exposes only raw constraint-buffer operations. This keeps solver problem construction uniform: both Robot::constraints() and Constraints::ref() produce a ConstraintsRef.

copp::Constraints constraints(1, 3);
constraints.append_s(std::vector<double>{0.0, 0.5, 1.0})
.add_constraint_1st(std::vector<double>{1.0, 1.0, 1.0}, 0);
constraints.ref(),
};
Owning raw constraint-buffer facade.
Definition robot.hpp:245
Constraints & add_constraint_1st(Span< const double > amax, std::size_t idx_s)
TOPP2 problem descriptor.
Definition topp2_ra.hpp:48
Closed station-index interval used by TOPP/COPP problem descriptors.
Definition core.hpp:67

Definition at line 244 of file robot.hpp.

Constructor & Destructor Documentation

◆ Constraints() [1/3]

copp::Constraints::Constraints ( std::size_t dim,
std::size_t capacity = 0 )
explicit

◆ Constraints() [2/3]

copp::Constraints::Constraints ( Constraints && )
noexcept

◆ ~Constraints()

copp::Constraints::~Constraints ( )

◆ Constraints() [3/3]

copp::Constraints::Constraints ( const Constraints & )
delete

Member Function Documentation

◆ operator=() [1/2]

Constraints & copp::Constraints::operator= ( Constraints && )
noexcept

◆ operator=() [2/2]

Constraints & copp::Constraints::operator= ( const Constraints & )
delete

◆ ref()

ConstraintsRef copp::Constraints::ref ( )
noexcept

Borrow this owning object as a solver/constraint reference.

◆ dim()

std::size_t copp::Constraints::dim ( ) const

◆ len()

std::size_t copp::Constraints::len ( ) const

◆ size()

std::size_t copp::Constraints::size ( ) const

◆ capacity()

std::size_t copp::Constraints::capacity ( ) const

◆ is_empty()

bool copp::Constraints::is_empty ( ) const

◆ idx_s_range()

std::pair< std::size_t, std::size_t > copp::Constraints::idx_s_range ( ) const

◆ append_s()

Constraints & copp::Constraints::append_s ( Span< const double > s)

◆ s_values()

std::vector< double > copp::Constraints::s_values ( std::size_t idx_s_from,
std::size_t idx_s_to ) const

◆ amax_values()

std::vector< double > copp::Constraints::amax_values ( std::size_t idx_s_from,
std::size_t idx_s_to ) const

◆ s_value()

double copp::Constraints::s_value ( std::size_t idx_s) const

◆ amax_value()

double copp::Constraints::amax_value ( std::size_t idx_s) const

◆ amax_substitute()

Constraints & copp::Constraints::amax_substitute ( Span< const double > amax,
std::size_t idx_s )

◆ clear()

Constraints & copp::Constraints::clear ( bool keep_idx_s = false)

◆ pop_front_n()

Constraints & copp::Constraints::pop_front_n ( std::size_t n_cols)

◆ pop_back_n()

Constraints & copp::Constraints::pop_back_n ( std::size_t n_cols)

◆ pop_front_until()

Constraints & copp::Constraints::pop_front_until ( std::size_t idx_s_cut)

◆ pop_back_until()

Constraints & copp::Constraints::pop_back_until ( std::size_t idx_s_cut)

◆ add_constraint_1st() [1/2]

Constraints & copp::Constraints::add_constraint_1st ( Span< const double > amax,
std::size_t idx_s )

◆ add_constraint_1st() [2/2]

Constraints & copp::Constraints::add_constraint_1st ( MatrixView amax,
std::size_t idx_s )

◆ add_constraint_2nd()

Constraints & copp::Constraints::add_constraint_2nd ( MatrixView acc_a,
MatrixView acc_b,
MatrixView acc_max,
std::size_t idx_s,
bool is_negative = false )

◆ add_constraint_3rd()

Constraints & copp::Constraints::add_constraint_3rd ( MatrixView jerk_a,
MatrixView jerk_b,
MatrixView jerk_c,
MatrixView jerk_d,
MatrixView jerk_max,
std::size_t idx_s,
bool is_negative = false )

The documentation for this class was generated from the following file: