Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Unlimited surfaces volume. More...
#include <surface.h>
Public Member Functions | |
ulsvolume () | |
Default constructor. | |
ulsvolume (surface *fsurf[pqqsurf], int fqsurf, char *fname, vfloat fprec) | |
ulsvolume (ulsvolume &f) | |
ulsvolume (const ulsvolume &fv) | |
virtual | ~ulsvolume () |
Destructor. | |
int | check_point_inside (const point &fpt, const vec &dir) const |
int | range_ext (trajestep &fts, int s_ext) const |
void | ulsvolume_init (surface *fsurf[pqqsurf], int fqsurf, const std::string &fname, vfloat fprec) |
virtual void | income (gparticle *) |
virtual void | chname (char *nm) const |
virtual void | print (std::ostream &file, int l) const |
virtual ulsvolume * | copy () const |
Public Member Functions inherited from Heed::absvol | |
virtual | ~absvol () |
Destructor. | |
virtual int | check_point_inside (const point &fpt, const vec &dir) const =0 |
virtual int | find_embed_vol (const point &fpt, const vec &dir, manip_absvol_treeid *atid) const |
virtual int | range (trajestep &fts, int s_ext, int &sb, PassivePtr< manip_absvol > &faeid) const |
virtual int | range_ext (trajestep &fts, int s_ext) const =0 |
virtual void | income (gparticle *) |
virtual void | chname (char *nm) const |
virtual void | print (std::ostream &file, int l) const |
virtual absvol * | copy () const |
virtual std::vector< manip_absvol * > | Gamanip_embed () const |
Public Member Functions inherited from Heed::absref | |
virtual | ~absref () |
Destructor. | |
virtual void | down (const abssyscoor *fasc) |
Convert numbering representation of object to basical system of fasc. | |
virtual void | up (const abssyscoor *fasc) |
Convert numbering representation of objects to new system. | |
virtual void | turn (const vec &dir, vfloat angle) |
Turn around axis doing via center of coordinate system along dir. | |
virtual void | shift (const vec &dir) |
Public Member Functions inherited from Heed::RegPassivePtr | |
RegPassivePtr (void) | |
RegPassivePtr (char fs_ban_del, char fs_ban_sub, char fs_ban_cop=0) | |
RegPassivePtr (const RegPassivePtr &f) | |
RegPassivePtr & | operator= (const RegPassivePtr &f) |
CountPP_ns::CountPassivePtr * | book (void) const |
void | clear_pointers (void) const |
virtual RegPassivePtr * | copy () const |
virtual | ~RegPassivePtr () |
virtual void | print (std::ostream &file, int l=1) const |
void | set_s_ban_del (char fs_ban_del) |
char | get_s_ban_del (void) const |
void | set_s_ban_sub (char fs_ban_sub) |
char | get_s_ban_sub (void) const |
void | set_s_ban_cop (char fs_ban_cop) |
char | get_s_ban_cop (void) const |
void | set_s_allow_del_at_zero_count (char fs_allow_del_at_zero_count) |
char | get_s_allow_del_at_zero_count (void) const |
long | get_total_number_of_references (void) const |
Public Attributes | |
int | qsurf |
ActivePtr< surface > | surf [pqqsurf] |
std::string | name |
Public Attributes inherited from Heed::absvol | |
vfloat | prec |
bool | s_sensitive |
Protected Member Functions | |
virtual void | get_components (ActivePtr< absref_transmit > &aref_tran) |
Protected Attributes | |
surface * | adrsurf [pqqsurf] |
Additional Inherited Members | |
Static Public Member Functions inherited from Heed::RegPassivePtr | |
static void | set_s_ban_del_ignore (char fs_ban_del_ignore) |
static char | get_s_ban_del_ignore (void) |
static void | set_s_print_adr_cpp (char fs_print_adr_cpp) |
static char | get_s_print_adr_cpp (void) |
Heed::ulsvolume::ulsvolume | ( | void | ) |
Default constructor.
Definition at line 335 of file surface.cpp.
Referenced by copy().
Definition at line 352 of file surface.cpp.
Heed::ulsvolume::ulsvolume | ( | ulsvolume & | f | ) |
Heed::ulsvolume::ulsvolume | ( | const ulsvolume & | fv | ) |
|
inlinevirtual |
Check if a point is inside the volume. If two volumes are adjacent, it may happen that a point belongs to both. To avoid this confusion the parameter dir is used. If dir == (0, 0, 0), and the point is exactly on the border, the behaviour is in general not specified. If dir != (0, 0, 0), and the point is on the border with precision prec, the exiting volume is ignored.
Implements Heed::absvol.
Definition at line 194 of file surface.cpp.
Referenced by check_point_inside(), and range_ext().
|
inlinevirtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_ulsvolume.
Definition at line 170 of file surface.h.
Referenced by print().
|
inlinevirtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_ulsvolume.
Definition at line 175 of file surface.h.
|
protectedvirtual |
|
inlinevirtual |
|
virtual |
Reimplemented from Heed::absvol.
Reimplemented in Heed::manip_ulsvolume.
Definition at line 377 of file surface.cpp.
Referenced by check_point_inside(), Heed::box::print(), Heed::manip_ulsvolume::print(), and range_ext().
|
virtual |
Find cross with current volume ignoring embraced ones. s_ext=1 exit, now point is inside, but embraced volumes are ingnored. s_ext=0 enter, now point is outside
Implements Heed::absvol.
Definition at line 212 of file surface.cpp.
Referenced by Heed::box::range_ext().
void Heed::ulsvolume::ulsvolume_init | ( | surface * | fsurf[pqqsurf], |
int | fqsurf, | ||
const std::string & | fname, | ||
vfloat | fprec | ||
) |
Definition at line 339 of file surface.cpp.
Referenced by Heed::box::init_planes().
Definition at line 149 of file surface.h.
Referenced by get_components().
std::string Heed::ulsvolume::name |
Definition at line 146 of file surface.h.
Referenced by chname(), Heed::manip_ulsvolume::chname(), ulsvolume(), and ulsvolume_init().
int Heed::ulsvolume::qsurf |
Definition at line 144 of file surface.h.
Referenced by check_point_inside(), get_components(), print(), range_ext(), ulsvolume(), and ulsvolume_init().
Definition at line 145 of file surface.h.
Referenced by check_point_inside(), get_components(), print(), range_ext(), ulsvolume(), and ulsvolume_init().