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,
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.
trajestep(const vfloat fmax_range, const vfloat frad_for_straight, const vfloat fmax_straight_arange, const vfloat fmax_circ_arange, const point &fcurrpos, const vec &fdir, const bool fcurved, const vec &frelcen, vfloat fmrange, vfloat prec)
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)