mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-26 05:50:32 +05:00
Use marker as center, cleanup code
This commit is contained in:
parent
5d0c61b10f
commit
aae0521057
@ -222,6 +222,7 @@ namespace netgen
|
|||||||
{ return selpoint; }
|
{ return selpoint; }
|
||||||
void BuildFilledList (bool select);
|
void BuildFilledList (bool select);
|
||||||
void BuildColorTexture();
|
void BuildColorTexture();
|
||||||
|
void SelectCenter(int zoomall);
|
||||||
// private:
|
// private:
|
||||||
void BuildLineList();
|
void BuildLineList();
|
||||||
void BuildEdgeList();
|
void BuildEdgeList();
|
||||||
|
@ -253,6 +253,47 @@ namespace netgen
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VisualSceneMesh :: SelectCenter (int zoomall)
|
||||||
|
{
|
||||||
|
shared_ptr<Mesh> mesh = GetMesh();
|
||||||
|
Point3d pmin, pmax;
|
||||||
|
mesh->GetBox (pmin, pmax, -1);
|
||||||
|
|
||||||
|
// works in NGSolve, mesh view
|
||||||
|
if (mesh->GetDimension() == 2)
|
||||||
|
mesh->GetBox (pmin, pmax);
|
||||||
|
else // otherwise strange zooms during mesh generation
|
||||||
|
mesh->GetBox (pmin, pmax, SURFACEPOINT);
|
||||||
|
|
||||||
|
if (vispar.use_center_coords && zoomall==2)
|
||||||
|
{
|
||||||
|
center.X() = vispar.centerx;
|
||||||
|
center.Y() = vispar.centery;
|
||||||
|
center.Z() = vispar.centerz;
|
||||||
|
}
|
||||||
|
else if (selpoint >= 1 && zoomall==2)
|
||||||
|
center = mesh->Point (selpoint);
|
||||||
|
else if (marker && zoomall==2)
|
||||||
|
center = *marker;
|
||||||
|
else if (vispar.centerpoint >= 1 && zoomall==2)
|
||||||
|
center = mesh->Point (vispar.centerpoint);
|
||||||
|
else
|
||||||
|
center = Center (pmin, pmax);
|
||||||
|
|
||||||
|
double oldrad = rad;
|
||||||
|
rad = 0.5 * Dist (pmin, pmax);
|
||||||
|
if(rad == 0) rad = 1e-6;
|
||||||
|
|
||||||
|
if (rad > 1.2 * oldrad ||
|
||||||
|
mesh->GetMajorTimeStamp() > vstimestamp ||
|
||||||
|
zoomall)
|
||||||
|
{
|
||||||
|
CalcTransformationMatrices();
|
||||||
|
}
|
||||||
|
|
||||||
|
glEnable (GL_NORMALIZE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void VisualSceneMesh :: BuildScene (int zoomall)
|
void VisualSceneMesh :: BuildScene (int zoomall)
|
||||||
{
|
{
|
||||||
@ -277,48 +318,11 @@ namespace netgen
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Point3d pmin, pmax;
|
|
||||||
static double oldrad = 0;
|
|
||||||
|
|
||||||
NgArray<Element2d> faces;
|
NgArray<Element2d> faces;
|
||||||
|
|
||||||
int meshtimestamp = mesh->GetTimeStamp();
|
int meshtimestamp = mesh->GetTimeStamp();
|
||||||
if (meshtimestamp > vstimestamp || zoomall)
|
if (meshtimestamp > vstimestamp || zoomall)
|
||||||
{
|
SelectCenter(zoomall);
|
||||||
if (mesh->GetDimension() == 2)
|
|
||||||
{
|
|
||||||
// works in NGSolve, mesh view
|
|
||||||
mesh->GetBox (pmin, pmax);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// otherwise strange zooms douring mesh generation
|
|
||||||
mesh->GetBox (pmin, pmax, SURFACEPOINT);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vispar.use_center_coords && zoomall == 2)
|
|
||||||
{
|
|
||||||
center.X() = vispar.centerx; center.Y() = vispar.centery; center.Z() = vispar.centerz;
|
|
||||||
}
|
|
||||||
else if (selpoint >= 1 && zoomall == 2)
|
|
||||||
center = mesh->Point (selpoint);
|
|
||||||
else if (vispar.centerpoint >= 1 && zoomall == 2)
|
|
||||||
center = mesh->Point (vispar.centerpoint);
|
|
||||||
else
|
|
||||||
center = Center (pmin, pmax);
|
|
||||||
rad = 0.5 * Dist (pmin, pmax);
|
|
||||||
if(rad == 0) rad = 1e-6;
|
|
||||||
|
|
||||||
if (rad > 1.2 * oldrad ||
|
|
||||||
mesh->GetMajorTimeStamp() > vstimestamp ||
|
|
||||||
zoomall)
|
|
||||||
{
|
|
||||||
CalcTransformationMatrices();
|
|
||||||
oldrad = rad;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
glEnable (GL_NORMALIZE);
|
|
||||||
|
|
||||||
if (pointnumberlist)
|
if (pointnumberlist)
|
||||||
{
|
{
|
||||||
|
@ -791,35 +791,7 @@ namespace netgen
|
|||||||
if (mesh->GetTimeStamp() > surfeltimestamp || zoomall)
|
if (mesh->GetTimeStamp() > surfeltimestamp || zoomall)
|
||||||
{
|
{
|
||||||
// mesh has changed
|
// mesh has changed
|
||||||
|
vsmesh.SelectCenter(zoomall);
|
||||||
Point3d pmin, pmax;
|
|
||||||
static double oldrad = 0;
|
|
||||||
|
|
||||||
mesh->GetBox (pmin, pmax, -1);
|
|
||||||
if(vispar.use_center_coords && zoomall == 2)
|
|
||||||
{
|
|
||||||
center.X() = vispar.centerx;
|
|
||||||
center.Y() = vispar.centery;
|
|
||||||
center.Z() = vispar.centerz;
|
|
||||||
}
|
|
||||||
else if(selpoint >= 1 && zoomall == 2)
|
|
||||||
center = mesh->Point(selpoint);
|
|
||||||
else if(vispar.centerpoint >= 1 && zoomall == 2)
|
|
||||||
center = mesh->Point(vispar.centerpoint);
|
|
||||||
else
|
|
||||||
center = Center (pmin, pmax);
|
|
||||||
rad = 0.5 * Dist (pmin, pmax);
|
|
||||||
if(rad == 0) rad = 1e-6;
|
|
||||||
|
|
||||||
glEnable (GL_NORMALIZE);
|
|
||||||
|
|
||||||
if (rad > 1.2 * oldrad ||
|
|
||||||
mesh->GetMajorTimeStamp() > surfeltimestamp ||
|
|
||||||
zoomall)
|
|
||||||
{
|
|
||||||
CalcTransformationMatrices();
|
|
||||||
oldrad = rad;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawSurfaceElements();
|
DrawSurfaceElements();
|
||||||
@ -4775,6 +4747,7 @@ namespace netgen
|
|||||||
auto printScalValue = [&formatComplex]
|
auto printScalValue = [&formatComplex]
|
||||||
(SolData & sol, int comp, double value, double imag=0., bool iscomplex=false)
|
(SolData & sol, int comp, double value, double imag=0., bool iscomplex=false)
|
||||||
{
|
{
|
||||||
|
cout << '\t';
|
||||||
if(sol.components>1)
|
if(sol.components>1)
|
||||||
{
|
{
|
||||||
if(comp==0)
|
if(comp==0)
|
||||||
|
Loading…
Reference in New Issue
Block a user