42 int* s_ext)
const = 0;
63 virtual void print(std::ostream& file,
int l)
const = 0;
110 vfloat prec)
const override {
113 int i =
pn.
cross(fpl, cntrpt, qcntrpt, plh, qplh, prec);
117 void print(std::ostream& file,
int l)
const override;
146 std::string
name =
"non-initialized ulsvolume";
158 ulsvolume(
const std::vector<std::shared_ptr<surface> >& fsurf,
char* fname,
vfloat fprec);
170 void ulsvolume_init(
const std::vector<std::shared_ptr<surface> >& fsurf,
171 const std::string& fname,
vfloat fprec);
175 strcpy(nm,
"ulsvolume: ");
176 strcat(nm,
name.c_str());
178 void print(std::ostream& file,
int l)
const override;
192 strcpy(nm,
"manip_ulsvolume: ");
193 strcat(nm,
name.c_str());
195 virtual void print(std::ostream& file,
int l)
const;
Abstract base classs for volume "manipulators".
virtual ~manip_ulsvolume()
Destructor.
virtual absvol * Gavol() const
Get the volume.
virtual void chname(char *nm) const
virtual void print(std::ostream &file, int l) const
virtual manip_ulsvolume * copy() const
manip_ulsvolume(const ulsvolume &f)
Plane, defined by defined by a point and a vector normal to the plane.
point cross(const straight &sl) const
int cross(const polyline &fpl, point *cntrpt, int &qcntrpt, vfloat prec) const override
int range(const trajestep &fts, vfloat *crange, point *cpt, int *s_ext) const override
virtual ~splane()
Destructor.
splane(const plane &fpn, const vec &fdir_ins)
splane * copy() const override
void print(std::ostream &file, int l) const override
splane()
Default constructor.
splane(const splane &fsp)
absref_transmit get_components() override
static absrefabsref::*[2] aref_splane
int check_point_inside(const point &fpt, const vec &dir, vfloat fprec) const override
int check_point_inside1(const point &fpt, int s_ext, vfloat fprec) const override
virtual int range(const trajestep &fts, vfloat *crange, point *cpt, int *s_ext) const =0
virtual int check_point_inside1(const point &fpt, int s_ext, vfloat fprec) const =0
virtual void print(std::ostream &file, int l) const =0
virtual int cross(const polyline &fpl, point *cntrpt, int &qcntrpt, vfloat prec) const =0
virtual surface * copy() const =0
virtual int check_point_inside(const point &fpt, const vec &dir, vfloat fprec) const =0
Unlimited surfaces volume.
static constexpr int pqqsurf
std::array< std::shared_ptr< surface >, pqqsurf > surf
void print(std::ostream &file, int l) const override
ulsvolume()
Default constructor.
surface * adrsurf[pqqsurf]
absref_transmit get_components() override
void chname(char *nm) const override
int range_ext(trajestep &fts, int s_ext) const override
int check_point_inside(const point &fpt, const vec &dir) const override
virtual ~ulsvolume()
Destructor.
void ulsvolume_init(const std::vector< std::shared_ptr< surface > > &fsurf, const std::string &fname, vfloat fprec)
void income(gparticle *) override
ulsvolume * copy() const override