Skip to content
Snippets Groups Projects
Commit 87a823f6 authored by Jonathan Lambrechts's avatar Jonathan Lambrechts
Browse files

visualization of High order 1D mesh elements (not postpro)

parent b827fb02
No related branches found
No related tags found
No related merge requests found
......@@ -72,3 +72,37 @@ double MLine::getVolume()
{
return getLength();
}
int MLine3::getNumEdgesRep()
{
return CTX::instance()->mesh.numSubEdges;
}
void MLine3::getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
{
int numSubEdges = CTX::instance()->mesh.numSubEdges;
SPoint3 pnt1, pnt2;
pnt(-1. + 2 * (double)num / numSubEdges, 0., 0., pnt1);
pnt(-1. + 2 * (double)(num + 1) / numSubEdges, 0., 0, pnt2);
x[0] = pnt1.x(); x[1] = pnt2.x();
y[0] = pnt1.y(); y[1] = pnt2.y();
z[0] = pnt1.z(); z[1] = pnt2.z();
n[0] = n[1] = MEdge(_v[0], _v[1]).normal();
}
int MLineN::getNumEdgesRep()
{
return CTX::instance()->mesh.numSubEdges;
}
void MLineN::getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
{
int numSubEdges = CTX::instance()->mesh.numSubEdges;
SPoint3 pnt1, pnt2;
pnt(-1. + 2 * (double)num / numSubEdges, 0., 0., pnt1);
pnt(-1. + 2 * (double)(num + 1) / numSubEdges, 0., 0, pnt2);
x[0] = pnt1.x(); x[1] = pnt2.x();
y[0] = pnt1.y(); y[1] = pnt2.y();
z[0] = pnt1.z(); z[1] = pnt2.z();
n[0] = n[1] = MEdge(_v[0], _v[1]).normal();
}
......@@ -133,14 +133,8 @@ class MLine3 : public MLine {
}
virtual MVertex *getVertexINP(int num){ return getVertexUNV(num); }
virtual int getNumEdgeVertices() const { return 1; }
virtual int getNumEdgesRep(){ return 2; }
virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
{
static const int e[2][2] = {
{0, 2}, {2, 1}
};
_getEdgeRep(getVertex(e[num][0]), getVertex(e[num][1]), x, y, z, n);
}
virtual int getNumEdgesRep();
virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n);
virtual void getEdgeVertices(const int num, std::vector<MVertex*> &v) const
{
v.resize(3);
......@@ -188,13 +182,8 @@ class MLineN : public MLine {
virtual MVertex *getVertex(int num){ return num < 2 ? _v[num] : _vs[num - 2]; }
virtual const MVertex *getVertex(int num) const{ return num < 2 ? _v[num] : _vs[num - 2]; }
virtual int getNumEdgeVertices() const { return _vs.size(); }
virtual int getNumEdgesRep(){ return _vs.size() + 1; }
virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
{
_getEdgeRep(getVertex((num == 0) ? 0 : num + 1),
getVertex((num == getNumEdgesRep() - 1) ? 1 : num + 2),
x, y, z, n);
}
virtual int getNumEdgesRep();
virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n);
virtual void getEdgeVertices(const int num, std::vector<MVertex*> &v) const
{
v.resize(2 + _vs.size());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment