mirror of
https://github.com/NGSolve/netgen.git
synced 2025-01-12 06:00:33 +05:00
geo GetNormal and ProjectPointEdge with geoinfo pointer
This commit is contained in:
parent
c1ede2a89f
commit
1b1c4700ad
@ -87,7 +87,7 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CSGeometry :: ProjectPointEdge(int surfind, INDEX surfind2,
|
void CSGeometry :: ProjectPointEdge(int surfind, INDEX surfind2,
|
||||||
Point<3> & p) const
|
Point<3> & p, EdgePointGeomInfo* /*unused*/) const
|
||||||
{
|
{
|
||||||
Point<3> hp = p;
|
Point<3> hp = p;
|
||||||
ProjectToEdge (GetSurface(surfind),
|
ProjectToEdge (GetSurface(surfind),
|
||||||
@ -96,7 +96,8 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Vec<3> CSGeometry :: GetNormal(int surfind, const Point<3> & p) const
|
Vec<3> CSGeometry :: GetNormal(int surfind, const Point<3> & p,
|
||||||
|
const PointGeomInfo* /*unused*/) const
|
||||||
{
|
{
|
||||||
Vec<3> hn;
|
Vec<3> hn;
|
||||||
GetSurface(surfind)->CalcGradient(p, hn);
|
GetSurface(surfind)->CalcGradient(p, hn);
|
||||||
|
@ -190,8 +190,10 @@ namespace netgen
|
|||||||
|
|
||||||
PointGeomInfo ProjectPoint(INDEX surfind, Point<3> & p) const override;
|
PointGeomInfo ProjectPoint(INDEX surfind, Point<3> & p) const override;
|
||||||
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
||||||
void ProjectPointEdge(INDEX surfind, INDEX surfind2, Point<3> & p) const override;
|
void ProjectPointEdge(INDEX surfind, INDEX surfind2, Point<3> & p,
|
||||||
Vec<3> GetNormal(int surfind, const Point<3> & p) const override;
|
EdgePointGeomInfo* gi = nullptr) const override;
|
||||||
|
Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi = nullptr) const override;
|
||||||
|
|
||||||
void PointBetween(const Point<3> & p1, const Point<3> & p2,
|
void PointBetween(const Point<3> & p1, const Point<3> & p2,
|
||||||
double secpoint, int surfi,
|
double secpoint, int surfi,
|
||||||
const PointGeomInfo & gi1,
|
const PointGeomInfo & gi1,
|
||||||
|
@ -86,7 +86,7 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
Vec<3> SplineGeometry2d :: GetNormal(int surfi1, const Point<3> & p,
|
Vec<3> SplineGeometry2d :: GetNormal(int surfi1, const Point<3> & p,
|
||||||
const PointGeomInfo & gi) const
|
const PointGeomInfo* gi) const
|
||||||
{
|
{
|
||||||
return Vec<3> (0,0,1);
|
return Vec<3> (0,0,1);
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ namespace netgen
|
|||||||
Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
|
Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
|
||||||
const EdgePointGeomInfo & ap1) const override;
|
const EdgePointGeomInfo & ap1) const override;
|
||||||
Vec<3> GetNormal(int surfi1, const Point<3> & p,
|
Vec<3> GetNormal(int surfi1, const Point<3> & p,
|
||||||
const PointGeomInfo & gi) const override;
|
const PointGeomInfo* gi) const override;
|
||||||
|
|
||||||
const SplineSegExt & GetSpline (const int i) const
|
const SplineSegExt & GetSpline (const int i) const
|
||||||
{
|
{
|
||||||
|
@ -32,7 +32,7 @@ namespace netgen
|
|||||||
virtual double CalcStep(double t, double sag) const = 0;
|
virtual double CalcStep(double t, double sag) const = 0;
|
||||||
virtual bool OrientedLikeGlobal() const = 0;
|
virtual bool OrientedLikeGlobal() const = 0;
|
||||||
virtual size_t GetHash() const = 0;
|
virtual size_t GetHash() const = 0;
|
||||||
virtual void ProjectPoint(Point<3>& p, EdgePointGeomInfo& gi) const = 0;
|
virtual void ProjectPoint(Point<3>& p, EdgePointGeomInfo* gi) const = 0;
|
||||||
virtual void PointBetween(const Point<3>& p1,
|
virtual void PointBetween(const Point<3>& p1,
|
||||||
const Point<3>& p2,
|
const Point<3>& p2,
|
||||||
double secpoint,
|
double secpoint,
|
||||||
@ -65,14 +65,8 @@ namespace netgen
|
|||||||
virtual double GetCurvature(const PointGeomInfo& gi) const = 0;
|
virtual double GetCurvature(const PointGeomInfo& gi) const = 0;
|
||||||
|
|
||||||
virtual void RestrictH(Mesh& mesh, const MeshingParameters& mparam) const = 0;
|
virtual void RestrictH(Mesh& mesh, const MeshingParameters& mparam) const = 0;
|
||||||
virtual Vec<3> GetNormal(const Point<3>& p) const
|
virtual Vec<3> GetNormal(const Point<3>& p, const PointGeomInfo* gi = nullptr) const = 0;
|
||||||
{
|
|
||||||
return {0.,0.,1.};
|
|
||||||
}
|
|
||||||
virtual Vec<3> GetNormal(const Point<3>& p, const PointGeomInfo& gi) const
|
|
||||||
{
|
|
||||||
return GetNormal(p);
|
|
||||||
}
|
|
||||||
virtual void PointBetween(const Point<3>& p1,
|
virtual void PointBetween(const Point<3>& p1,
|
||||||
const Point<3>& p2,
|
const Point<3>& p2,
|
||||||
double secpoint,
|
double secpoint,
|
||||||
@ -129,13 +123,9 @@ namespace netgen
|
|||||||
return faces[surfind-1]->Project(p);
|
return faces[surfind-1]->Project(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void ProjectPointEdge (int surfind, int surfind2, Point<3> & p) const
|
virtual void ProjectPointEdge (int surfind, int surfind2, Point<3> & p, EdgePointGeomInfo* gi = nullptr) const
|
||||||
{
|
|
||||||
throw Exception("In ProjectPointEdge of basegeometry");
|
|
||||||
}
|
|
||||||
virtual void ProjectPointEdge (int surfind, int surfind2, Point<3> & p, EdgePointGeomInfo& gi) const
|
|
||||||
{
|
{
|
||||||
edges[gi.edgenr]->ProjectPoint(p, gi);
|
edges[gi->edgenr]->ProjectPoint(p, gi);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const
|
virtual bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const
|
||||||
@ -147,15 +137,8 @@ namespace netgen
|
|||||||
return faces[surfind-1]->ProjectPointGI(p, gi);
|
return faces[surfind-1]->ProjectPointGI(p, gi);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual Vec<3> GetNormal(int surfind, const Point<3> & p) const
|
virtual Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi = nullptr) const
|
||||||
{ return faces[surfind-1]->GetNormal(p); }
|
|
||||||
virtual Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo & gi) const
|
|
||||||
{ return faces[surfind-1]->GetNormal(p, gi); }
|
{ return faces[surfind-1]->GetNormal(p, gi); }
|
||||||
[[deprecated]]
|
|
||||||
void GetNormal(int surfind, const Point<3> & p, Vec<3> & n) const
|
|
||||||
{
|
|
||||||
n = GetNormal(surfind, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void PointBetween (const Point<3> & p1,
|
virtual void PointBetween (const Point<3> & p1,
|
||||||
const Point<3> & p2, double secpoint,
|
const Point<3> & p2, double secpoint,
|
||||||
|
@ -839,8 +839,8 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
Point<3> pm = Center (p1, p2);
|
Point<3> pm = Center (p1, p2);
|
||||||
|
|
||||||
Vec<3> n1 = geo.GetNormal (surfnr[e], p1, gi0[e]);
|
Vec<3> n1 = geo.GetNormal (surfnr[e], p1, &gi0[e]);
|
||||||
Vec<3> n2 = geo.GetNormal (surfnr[e], p2, gi1[e]);
|
Vec<3> n2 = geo.GetNormal (surfnr[e], p2, &gi1[e]);
|
||||||
|
|
||||||
// p3 = pm + alpha1 n1 + alpha2 n2
|
// p3 = pm + alpha1 n1 + alpha2 n2
|
||||||
|
|
||||||
@ -1084,7 +1084,7 @@ namespace netgen
|
|||||||
v05 /= 1 + (w-1) * 0.5;
|
v05 /= 1 + (w-1) * 0.5;
|
||||||
Point<3> p05 (v05), pp05(v05);
|
Point<3> p05 (v05), pp05(v05);
|
||||||
geo.ProjectPointEdge(edge_surfnr1[edgenr], edge_surfnr2[edgenr], pp05,
|
geo.ProjectPointEdge(edge_surfnr1[edgenr], edge_surfnr2[edgenr], pp05,
|
||||||
edge_gi0[edgenr]);
|
&edge_gi0[edgenr]);
|
||||||
double d = Dist (pp05, p05);
|
double d = Dist (pp05, p05);
|
||||||
|
|
||||||
if (d < dold)
|
if (d < dold)
|
||||||
|
@ -85,11 +85,11 @@ namespace netgen
|
|||||||
nv1.Normalize();
|
nv1.Normalize();
|
||||||
nv2.Normalize();
|
nv2.Normalize();
|
||||||
|
|
||||||
auto nvp3 = geo.GetNormal (surfnr, mesh.Point(pi3), gi3);
|
auto nvp3 = geo.GetNormal (surfnr, mesh.Point(pi3), &gi3);
|
||||||
|
|
||||||
nvp3.Normalize();
|
nvp3.Normalize();
|
||||||
|
|
||||||
auto nvp4 = geo.GetNormal (surfnr, mesh.Point(pi4), gi4);
|
auto nvp4 = geo.GetNormal (surfnr, mesh.Point(pi4), &gi4);
|
||||||
|
|
||||||
nvp4.Normalize();
|
nvp4.Normalize();
|
||||||
|
|
||||||
@ -648,7 +648,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
const int faceindex = hel.GetIndex();
|
const int faceindex = hel.GetIndex();
|
||||||
const int surfnr = mesh.GetFaceDescriptor (faceindex).SurfNr();
|
const int surfnr = mesh.GetFaceDescriptor (faceindex).SurfNr();
|
||||||
normals[pi] = geo.GetNormal (surfnr, mesh[pi], hel.GeomInfoPi(k+1));
|
normals[pi] = geo.GetNormal (surfnr, mesh[pi], &hel.GeomInfoPi(k+1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -397,7 +397,7 @@ namespace netgen
|
|||||||
// calc metric badness
|
// calc metric badness
|
||||||
double bad1 = 0, bad2 = 0;
|
double bad1 = 0, bad2 = 0;
|
||||||
// SelectSurfaceOfPoint (mesh.Point(pmap.Get(1)), pgi.Get(1));
|
// SelectSurfaceOfPoint (mesh.Point(pmap.Get(1)), pgi.Get(1));
|
||||||
auto n = geo.GetNormal(surfnr, mesh.Point(pmap.Get(1)), pgi.Elem(1));
|
auto n = geo.GetNormal(surfnr, mesh.Point(pmap.Get(1)), &pgi.Elem(1));
|
||||||
|
|
||||||
for (int j = 0; j < rule.oldels.Size(); j++)
|
for (int j = 0; j < rule.oldels.Size(); j++)
|
||||||
bad1 += mesh[elmap[j]].CalcJacobianBadness (mesh.Points(), n);
|
bad1 += mesh[elmap[j]].CalcJacobianBadness (mesh.Points(), n);
|
||||||
|
@ -142,8 +142,8 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
p1 = ap1;
|
p1 = ap1;
|
||||||
p2 = ap2;
|
p2 = ap2;
|
||||||
auto n1 = geo.GetNormal(gi1->trignum, p1, *gi1);
|
auto n1 = geo.GetNormal(gi1->trignum, p1, gi1);
|
||||||
auto n2 = geo.GetNormal(gi2->trignum, p2, *gi2);
|
auto n2 = geo.GetNormal(gi2->trignum, p2, gi2);
|
||||||
|
|
||||||
ez = 0.5 * (n1+n2);
|
ez = 0.5 * (n1+n2);
|
||||||
ez.Normalize();
|
ez.Normalize();
|
||||||
@ -158,7 +158,7 @@ namespace netgen
|
|||||||
Point<2> & plainpoint, double h, int & zone)
|
Point<2> & plainpoint, double h, int & zone)
|
||||||
{
|
{
|
||||||
auto& gi = geominfo.GetPGI(1);
|
auto& gi = geominfo.GetPGI(1);
|
||||||
auto n = geo.GetNormal(gi.trignum, locpoint, gi);
|
auto n = geo.GetNormal(gi.trignum, locpoint, &gi);
|
||||||
auto p1p = locpoint - p1;
|
auto p1p = locpoint - p1;
|
||||||
plainpoint(0) = (p1p * ex) / h;
|
plainpoint(0) = (p1p * ex) / h;
|
||||||
plainpoint(1) = (p1p * ey) / h;
|
plainpoint(1) = (p1p * ey) / h;
|
||||||
|
@ -218,7 +218,7 @@ namespace netgen
|
|||||||
{
|
{
|
||||||
double badness = 0;
|
double badness = 0;
|
||||||
|
|
||||||
auto n = geo.GetNormal(ld.surfi, ld.sp1, ld.gi1);
|
auto n = geo.GetNormal(ld.surfi, ld.sp1, &ld.gi1);
|
||||||
Point<3> pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
Point<3> pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
||||||
|
|
||||||
for (int j = 0; j < ld.locelements.Size(); j++)
|
for (int j = 0; j < ld.locelements.Size(); j++)
|
||||||
@ -359,7 +359,7 @@ namespace netgen
|
|||||||
vgrad = 0;
|
vgrad = 0;
|
||||||
double badness = 0;
|
double badness = 0;
|
||||||
|
|
||||||
auto n = geo.GetNormal(ld.surfi, ld.sp1, ld.gi1);
|
auto n = geo.GetNormal(ld.surfi, ld.sp1, &ld.gi1);
|
||||||
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
||||||
|
|
||||||
// meshthis -> ProjectPoint (surfi, pp1);
|
// meshthis -> ProjectPoint (surfi, pp1);
|
||||||
@ -414,7 +414,7 @@ namespace netgen
|
|||||||
vgrad = 0;
|
vgrad = 0;
|
||||||
double badness = 0;
|
double badness = 0;
|
||||||
|
|
||||||
auto n = geo.GetNormal(ld.surfi, ld.sp1, ld.gi1);
|
auto n = geo.GetNormal(ld.surfi, ld.sp1, &ld.gi1);
|
||||||
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
||||||
|
|
||||||
for (int j = 0; j < ld.locelements.Size(); j++)
|
for (int j = 0; j < ld.locelements.Size(); j++)
|
||||||
@ -577,7 +577,7 @@ namespace netgen
|
|||||||
vgrad = 0;
|
vgrad = 0;
|
||||||
badness = 0;
|
badness = 0;
|
||||||
|
|
||||||
auto n = geo.GetNormal(ld.surfi, ld.sp1, ld.gi1);
|
// auto n = geo.GetNormal(ld.surfi, ld.sp1, &ld.gi1);
|
||||||
|
|
||||||
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
pp1 = ld.sp1 + x(0) * ld.t1 + x(1) * ld.t2;
|
||||||
|
|
||||||
@ -933,7 +933,7 @@ namespace netgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ld.normal = geo.GetNormal(ld.surfi, ld.sp1, ld.gi1);
|
ld.normal = geo.GetNormal(ld.surfi, ld.sp1, &ld.gi1);
|
||||||
ld.t1 = ld.normal.GetNormal ();
|
ld.t1 = ld.normal.GetNormal ();
|
||||||
ld.t2 = Cross (ld.normal, ld.t1);
|
ld.t2 = Cross (ld.normal, ld.t1);
|
||||||
|
|
||||||
|
@ -1072,7 +1072,7 @@ void STEP_GetEntityName(const TopoDS_Shape & theShape, STEPCAFControl_Reader * a
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OCCGeometry :: ProjectPointEdge(int surfind, INDEX surfind2,
|
void OCCGeometry :: ProjectPointEdge(int surfind, INDEX surfind2,
|
||||||
Point<3> & p) const
|
Point<3> & p, EdgePointGeomInfo* gi) const
|
||||||
{
|
{
|
||||||
TopExp_Explorer exp0, exp1;
|
TopExp_Explorer exp0, exp1;
|
||||||
bool done = false;
|
bool done = false;
|
||||||
@ -1154,26 +1154,25 @@ void STEP_GetEntityName(const TopoDS_Shape & theShape, STEPCAFControl_Reader * a
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec<3> OCCGeometry :: GetNormal(int surfind, const Point<3> & p, const PointGeomInfo & geominfo) const
|
Vec<3> OCCGeometry :: GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* geominfo) const
|
||||||
{
|
{
|
||||||
gp_Pnt pnt;
|
if(geominfo)
|
||||||
gp_Vec du, dv;
|
{
|
||||||
|
gp_Pnt pnt;
|
||||||
|
gp_Vec du, dv;
|
||||||
|
|
||||||
Handle(Geom_Surface) occface;
|
Handle(Geom_Surface) occface;
|
||||||
occface = BRep_Tool::Surface(TopoDS::Face(fmap(surfind)));
|
occface = BRep_Tool::Surface(TopoDS::Face(fmap(surfind)));
|
||||||
|
|
||||||
occface->D1(geominfo.u,geominfo.v,pnt,du,dv);
|
occface->D1(geominfo->u,geominfo->v,pnt,du,dv);
|
||||||
|
|
||||||
auto n = Cross (Vec<3>(du.X(), du.Y(), du.Z()),
|
auto n = Cross (Vec<3>(du.X(), du.Y(), du.Z()),
|
||||||
Vec<3>(dv.X(), dv.Y(), dv.Z()));
|
Vec<3>(dv.X(), dv.Y(), dv.Z()));
|
||||||
n.Normalize();
|
n.Normalize();
|
||||||
|
|
||||||
if (fmap(surfind).Orientation() == TopAbs_REVERSED) n *= -1;
|
if (fmap(surfind).Orientation() == TopAbs_REVERSED) n *= -1;
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec<3> OCCGeometry :: GetNormal(int surfind, const Point<3> & p) const
|
|
||||||
{
|
|
||||||
Standard_Real u,v;
|
Standard_Real u,v;
|
||||||
|
|
||||||
gp_Pnt pnt(p(0), p(1), p(2));
|
gp_Pnt pnt(p(0), p(1), p(2));
|
||||||
|
@ -281,10 +281,10 @@ namespace netgen
|
|||||||
void DoArchive(Archive& ar) override;
|
void DoArchive(Archive& ar) override;
|
||||||
|
|
||||||
PointGeomInfo ProjectPoint(int surfind, Point<3> & p) const override;
|
PointGeomInfo ProjectPoint(int surfind, Point<3> & p) const override;
|
||||||
void ProjectPointEdge (int surfind, int surfind2, Point<3> & p) const override;
|
void ProjectPointEdge (int surfind, int surfind2, Point<3> & p,
|
||||||
|
EdgePointGeomInfo* gi = nullptr) const override;
|
||||||
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
||||||
Vec<3> GetNormal(int surfind, const Point<3> & p) const override;
|
Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi) const override;
|
||||||
Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo & gi) const override;
|
|
||||||
bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
|
bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
|
||||||
|
|
||||||
void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
||||||
|
@ -100,14 +100,11 @@ int STLGeometry :: GenerateMesh (shared_ptr<Mesh> & mesh, MeshingParameters & mp
|
|||||||
return STLMeshingDummy (this, mesh, mparam, stlpar);
|
return STLMeshingDummy (this, mesh, mparam, stlpar);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec<3> STLGeometry :: GetNormal(INDEX surfind, const Point<3> & p) const
|
Vec<3> STLGeometry :: GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi) const
|
||||||
{
|
{
|
||||||
throw Exception("STLGeometry::GetNormal without PointGeomInfo called");
|
if(!gi)
|
||||||
}
|
throw Exception("STLGeometry::GetNormal without PointGeomInfo called");
|
||||||
|
return GetChart(GetChartNr(gi->trignum)).GetNormal();
|
||||||
Vec<3> STLGeometry :: GetNormal(int surfind, const Point<3> & p, const PointGeomInfo & gi) const
|
|
||||||
{
|
|
||||||
return GetChart(GetChartNr(gi.trignum)).GetNormal();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool STLGeometry :: CalcPointGeomInfo(int /*surfind*/, PointGeomInfo& gi, const Point<3> & p3) const
|
bool STLGeometry :: CalcPointGeomInfo(int /*surfind*/, PointGeomInfo& gi, const Point<3> & p3) const
|
||||||
|
@ -195,8 +195,7 @@ namespace netgen
|
|||||||
bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
|
bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
|
||||||
PointGeomInfo ProjectPoint(INDEX surfind, Point<3> & p) const override;
|
PointGeomInfo ProjectPoint(INDEX surfind, Point<3> & p) const override;
|
||||||
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
||||||
Vec<3> GetNormal(int surfind, const Point<3> & p) const override;
|
Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi = nullptr) const override;
|
||||||
Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo & gi) const override;
|
|
||||||
void PointBetween(const Point<3> & p1, const Point<3> & p2,
|
void PointBetween(const Point<3> & p1, const Point<3> & p2,
|
||||||
double secpoint, int surfi,
|
double secpoint, int surfi,
|
||||||
const PointGeomInfo & gi1,
|
const PointGeomInfo & gi1,
|
||||||
|
Loading…
Reference in New Issue
Block a user