26 const vfloat fmax_straight_arange,
27 const vfloat fmax_circ_arange,
const point& fcurrpos,
28 const vec& fdir,
const bool fcurved,
const vec& frelcen,
30 : max_range(fmax_range),
31 rad_for_straight(frad_for_straight),
32 max_straight_arange(fmax_straight_arange),
33 max_circ_arange(fmax_circ_arange),
49 <<
"fcurrpos=" << fcurrpos <<
"fdir=" << fdir,
67 mfunname(
"trajestep::trajestep(const trajestep& fts, vfloat fmrange)");
72 fts.Gnextpoint1(fts.
mrange, fpos, fdir, frelcen);
77 fpos, fdir, fts.
curved, frelcen, fmrange, prec);
81 pvecerror(
"int trajestep::Gnextpoint(vfloat frange, point& fpos, vec& fdir)");
105 vec& frelcen)
const {
107 "int trajestep::Gnextpoint(vfloat frange, point& fpos, vec& fdir, "
#define check_econd11a(a, signb, add, stream)
#define check_econd12(a, sign, b, stream)
point currpos
Current position.
vfloat rad_for_straight
Radius beyond which to prefer straight lines to reduce calculation time.
vfloat mrange
Maximal possible range.
static absref absref::* aref[4]
trajestep()=default
Default constructor.
vfloat max_straight_arange
Angular step for curved lines when using straight-line approximation.
bool curved
Type of trajectory (curved or straight).
void Gnextpoint(vfloat frange, point &fpos, vec &fdir) const
Move to the next point.
virtual absref_transmit get_components() override
vfloat max_circ_arange
Angular step for curved lines.
vfloat max_range
Max. step length.
void turn(const vec &dir, vfloat angle) override
Turn this vector.
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
#define pvecerror(string)