22 : piv(fpiv), dir(), rad(frad) {
28 :
absref(f), piv(f.piv), dir(f.dir), rad(f.rad) {}
35 pvecerror(
"int operator==(const circumf &f1, const circumf &f2)");
45 pvecerror(
"bool apeq(const circumf &f1, const circumf &f2, vfloat prec)");
46 if (check_par(f1.
dir, f2.
dir, prec) == 0)
return false;
52 pvecerror(
"int circumf::check_point_in(const point &fp, vfloat prec) const");
54 if (check_perp(d,
dir, prec) != 1)
return 0;
59 pvecerror(
"int circumf::cross(const plane& pn, point pt[2]) const");
77 if (d >
rad)
return 0;
79 pt[0] = closest_pt + cat * sl.
Gdir();
80 pt[1] = closest_pt - cat * sl.
Gdir();
85 Ifile <<
"circumf(erence):\n";
#define check_econd11(a, signb, stream)
Active pointer or automatic container or controlling pointer.
Circumference, determined by point (center), normal vector, and radius.
circumf()
Default constructor.
int cross(const plane &pn, point pt[2], vfloat prec) const
virtual void get_components(ActivePtr< absref_transmit > &aref_tran)
friend bool apeq(const circumf &f1, const circumf &f2, vfloat prec)
static absrefabsref::*[2] aref
int check_point_in(const point &fp, vfloat prec) const
Return 1 if point on the circumference.
point piv
Central point, pivot.
Plane, defined by defined by a point and a vector normal to the plane.
vfloat distance(const point &fpt) const
Definition of straight line, as combination of vector and point.
vfloat distance(const straight &sl, int &type_of_cross, point pt[2]) const
std::ostream & operator<<(std::ostream &file, const BGMesh &bgm)
bool apeq(const circumf &f1, const circumf &f2, vfloat prec)
int operator==(const circumf &f1, const circumf &f2)
DoubleAc sqrt(const DoubleAc &f)
#define pvecerror(string)