Path: blob/devel/ElmerGUI/netgen/libsrc/geom2d/geom2dmesh.cpp
3206 views
#include <mystdlib.h>12#include <csg.hpp>3#include <geometry2d.hpp>4#include <meshing.hpp>56namespace netgen7{89Refinement2d :: Refinement2d (const SplineGeometry2d & ageometry)10: Refinement(), geometry(ageometry)11{12;13}1415Refinement2d :: ~Refinement2d ()16{17;18}192021void Refinement2d ::22PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,23int surfi,24const PointGeomInfo & gi1,25const PointGeomInfo & gi2,26Point<3> & newp, PointGeomInfo & newgi)27{28newp = p1+secpoint*(p2-p1);29newgi.trignum = 1;30}31323334void Refinement2d ::35PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,36int surfi1, int surfi2,37const EdgePointGeomInfo & ap1,38const EdgePointGeomInfo & ap2,39Point<3> & newp, EdgePointGeomInfo & newgi)40{41Point<2> p2d;4243p2d = geometry.GetSplines().Get(ap1.edgenr) ->44GetPoint (((1-secpoint)*ap1.dist+secpoint*ap2.dist));4546// (*testout) << "refine 2d line, ap1.dist, ap2.dist = " << ap1.dist << ", " << ap2.dist << endl;47// (*testout) << "p1, p2 = " << p1 << p2 << ", newp = " << p2d << endl;4849newp = Point3d (p2d(0), p2d(1), 0);50newgi.edgenr = ap1.edgenr;51newgi.dist = ((1-secpoint)*ap1.dist+secpoint*ap2.dist);52};53545556Vec<3> Refinement2d :: GetTangent (const Point<3> & p, int surfi1, int surfi2,57const EdgePointGeomInfo & ap1) const58{59Vec<2> t2d = geometry.GetSplines().Get(ap1.edgenr) -> GetTangent(ap1.dist);60return Vec<3> (t2d(0), t2d(1), 0);61}6263Vec<3> Refinement2d :: GetNormal (const Point<3> & p, int surfi1,64const PointGeomInfo & gi) const65{66return Vec<3> (0,0,1);67}686970void Refinement2d :: ProjectToSurface (Point<3> & p, int surfi, const PointGeomInfo & /* gi */)71{72p(2) = 0;73}747576void Refinement2d :: ProjectToEdge (Point<3> & p, int surfi1, int surfi2,77const EdgePointGeomInfo & egi) const78{79Point<2> p2d (p(0), p(1)), pp;80double t;81geometry.GetSplines().Get(egi.edgenr) -> Project (p2d, pp, t);82p = Point<3> (pp(0), pp(1), 0);83}84}858687