Path: blob/devel/ElmerGUI/netgen/libsrc/csg/gencyl.hpp
3206 views
#ifndef FILE_GENCYL1#define FILE_GENCYL23/**************************************************************************/4/* File: gencyl.hh */5/* Author: Joachim Schoeberl */6/* Date: 14. Oct. 96 */7/**************************************************************************/89/*1011Generalized Cylinder1213*/141516///17class GeneralizedCylinder : public Surface18{19///20ExplicitCurve2d & crosssection;21///22Point<3> planep;23///24Vec<3> planee1, planee2, planee3;2526/// Vec<3> ex, ey, ez;27Vec2d e2x, e2y;28///29Point<3> cp;3031public:32///33GeneralizedCylinder (ExplicitCurve2d & acrosssection,34Point<3> ap, Vec<3> ae1, Vec<3> ae2);3536///37virtual void Project (Point<3> & p) const;3839///40virtual int BoxInSolid (const BoxSphere<3> & box) const;41/// 0 .. no, 1 .. yes, 2 .. maybe4243virtual double CalcFunctionValue (const Point<3> & point) const;44///45virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;46///47virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;48///49virtual double HesseNorm () const;50///51virtual double MaxCurvatureLoc (const Point<3> & c, double rad) const;52///53virtual Point<3> GetSurfacePoint () const;54///55virtual void Print (ostream & str) const;5657///58virtual void Reduce (const BoxSphere<3> & box);59///60virtual void UnReduce ();61};6263#endif646566