mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 21:10:33 +05:00
fix in revolution primitive (orientation of spline curve)
This commit is contained in:
parent
06eb9902be
commit
3c53f52f60
@ -441,24 +441,20 @@ namespace netgen
|
||||
|
||||
int n = int(2.*facets) + 1;
|
||||
|
||||
int i,j;
|
||||
double phi;
|
||||
Point<3> p;
|
||||
|
||||
for(i=0; i<=n; i++)
|
||||
for(int i=0; i<=n; i++)
|
||||
{
|
||||
Point<2> sp = spline->GetPoint(double(i)/double(n));
|
||||
for(j=0; j<=n; j++)
|
||||
for(int j=0; j<=n; j++)
|
||||
{
|
||||
phi = 2.*M_PI*double(j)/double(n);
|
||||
double phi = 2.*M_PI*double(j)/double(n);
|
||||
|
||||
p = p0 + sp(0)*v_axis + sp(1)*cos(phi)*v1 + sp(1)*sin(phi)*v2;
|
||||
Point<3> p = p0 + sp(0)*v_axis + sp(1)*cos(phi)*v1 + sp(1)*sin(phi)*v2;
|
||||
tas.AddPoint(p);
|
||||
}
|
||||
}
|
||||
|
||||
for(i=0; i<n; i++)
|
||||
for(j=0; j<n; j++)
|
||||
for(int i=0; i<n; i++)
|
||||
for(int j=0; j<n; j++)
|
||||
{
|
||||
int pi = (n+1)*i+j;
|
||||
|
||||
|
@ -610,7 +610,6 @@ Vec<D> SplineSeg3<D> :: GetTangent (const double t) const
|
||||
template<int D>
|
||||
void SplineSeg3<D> :: GetCoeff (Vector & u) const
|
||||
{
|
||||
Point<D> p;
|
||||
DenseMatrix a(6, 6);
|
||||
DenseMatrix ata(6, 6);
|
||||
Vector f(6);
|
||||
@ -622,7 +621,7 @@ void SplineSeg3<D> :: GetCoeff (Vector & u) const
|
||||
double t = 0;
|
||||
for (int i = 0; i < 5; i++, t += 0.25)
|
||||
{
|
||||
p = GetPoint (t);
|
||||
Point<D> p = GetPoint (t);
|
||||
a(i, 0) = p(0) * p(0);
|
||||
a(i, 1) = p(1) * p(1);
|
||||
a(i, 2) = p(0) * p(1);
|
||||
@ -638,6 +637,17 @@ void SplineSeg3<D> :: GetCoeff (Vector & u) const
|
||||
u(5) = 1;
|
||||
a.MultTrans (u, f);
|
||||
ata.Solve (f, u);
|
||||
|
||||
// the sign
|
||||
Point<D> p0 = GetPoint(0);
|
||||
Vec<D> ht = GetTangent(0);
|
||||
Vec<2> tang(ht(0), ht(1));
|
||||
|
||||
double gradx = 2.*u(0)*p0(0) + u(2)*p0(1) + u(3);
|
||||
double grady = 2.*u(1)*p0(1) + u(2)*p0(0) + u(4);
|
||||
Vec<2> gradn (grady, -gradx);
|
||||
|
||||
if (tang * gradn < 0) u *= -1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user