20 if (fs_cf1 != 1)
return;
39 const vec& fdir,
int fs_cf,
const vec& frelcen,
57 <<
"fcurrpos=" << fcurrpos <<
"fdir=" << fdir,
65 mfunname(
"trajestep::trajestep(const trajestep& fts, vfloat fmrange)");
73 trajestep(fts.
tl.getver(), fpos, fdir, fts.
s_cf, frelcen, fmrange, prec);
77 pvecerror(
"int trajestep::Gnextpoint(vfloat frange, point& fpos, vec& fdir)");
104 vec& frelcen)
const {
106 "int trajestep::Gnextpoint(vfloat frange, point& fpos, vec& fdir, "
137 Ifile <<
"trajestep: s_cf=" << f.
s_cf <<
"\n";
#define check_econd11a(a, signb, add, stream)
#define check_econd12(a, sign, b, stream)
Active pointer or automatic container or controlling pointer.
vfloat max_straight_arange
Angle of range if it goes along straight line, but s_cf == 1.
vfloat max_circumf_arange
Angle of range if it goes along circle.
void range(int fs_cf0, vfloat rad, int &fs_cf1, vfloat &mrange) const
vfloat rad_for_straight
Radius beyond which to prefer straight lines to reduce calculation time.
trajestep()
Default constructor.
PassivePtr< trajestep_limit > tl
vfloat mrange
Maximal possible range.
void Gnextpoint1(vfloat frange, point &fpos, vec &fdir, vec &frelcen) const
virtual void get_components(ActivePtr< absref_transmit > &aref_tran)
static absrefabsref::*[4] aref
void Gnextpoint(vfloat frange, point &fpos, vec &fdir) const
void turn(const vec &dir, vfloat angle)
Turn this vector.
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
#define pvecerror(string)