22 aref_tran.pass(
new absref_transmit(2,
aref));
26 pvecerror(
"plane::plane( const straight& sl, const point& pt)");
34 : piv(sl1.Gpiv()), dir() {
36 "plane::plane( const straight& sl1, const straight& sl2, vfloat prec)");
50 pvecerror(
"int operator==(const plane &pl1, const plane &pl2)");
52 if (!(pl1.
dir == pl2.
dir || pl1.
dir == -pl2.
dir))
return 0;
53 if (pl1.
piv == pl2.
piv)
return 1;
61 pvecerror(
"int apeq(const plane &pl1, const plane &pl2, vfloat prec)");
62 if (check_par(pl1.
dir, pl2.
dir, prec) == 0)
return 0;
63 if (
apeq(pl1.
piv, pl2.
piv, prec) == 1)
return 1;
71 pvecerror(
"int plane::check_point_in(point fp, vfloat prec)");
73 if (f < prec)
return 1;
78 pvecerror(
"point plane::cross(straight &sl)");
83 if (slpiv ==
piv || check_perp((
piv - slpiv),
dir, 0.0) == 1) {
93 return point(slpiv.
v + t / r * sldir);
97 pvecerror(
"point plane::cross(plane &pl)");
101 if (length(a) == 0) {
102 if (plpiv ==
piv || check_par(pldir,
dir, 0.0) != 0) {
118 int& qcrpll,
vfloat prec)
const {
119 pvecerror(
"int plane::cross(polyline &pll, ...");
124 for (n = 0; n < pll.
qsl; n++) {
131 vec v1 = cpt - pll.
pt[n];
132 if (length(v1) < prec) {
138 vec v2 = cpt - pll.
pt[n + 1];
139 if (length(v2) < prec)
141 else if (check_par(v1, v2, prec) == -1)
147 if (qcrpt > 0 || qcrpll > 0)
154 pvecerror(
"vfloat plane::distance(point& fpt)");
155 if (fpt ==
piv)
return 0.0;
static absrefabsref::*[2] aref
point cross(const straight &sl) const
int check_point_in(const point &fp, vfloat prec) const
virtual void get_components(ActivePtr< absref_transmit > &aref_tran)
vfloat distance(const point &fpt) const
point cross(const straight &sl, vfloat prec) const
int check_point_in(const point &fp, vfloat prec) const
int apeq(const circumf &f1, const circumf &f2, vfloat prec)
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
int operator==(const circumf &f1, const circumf &f2)
#define pvecerror(string)