Skip to content
Snippets Groups Projects
Commit 9bcaf261 authored by Tuomas Karna's avatar Tuomas Karna
Browse files

python interface: all std::vector<> in element constructors are declared as...

python interface: all std::vector<> in element constructors are declared as const, allows easy python binding
parent dbd5a700
No related branches found
No related tags found
No related merge requests found
......@@ -59,12 +59,16 @@ namespace std {
%template(IntVector) vector<int>;
%template(DoubleVector) vector<double, std::allocator<double> >;
%template(StringVector) vector<std::string, std::allocator<std::string> >;
%template(GEntityVector) vector<GEntity*, std::allocator<GEntity*> >;
%template(GVertexVector) vector<GVertex*, std::allocator<GVertex*> >;
%template(GEdgeVector) vector<GEdge*, std::allocator<GEdge*> >;
%template(GFaceVector) vector<GFace*, std::allocator<GFace*> >;
%template(GRegionVector) vector<GRegion*, std::allocator<GRegion*> >;
%template(MVertexVector) vector< MVertex *,std::allocator< MVertex * > >;
%template(MElementVector) vector< MElement *,std::allocator< MElement * > >;
%template(VectorFunctionConst) vector<const function*, std::allocator<const function*> >;
%template(GEdgeVectorVector) vector< std::vector< GEdge *,std::allocator< GEdge * > >,std::allocator< std::vector< GEdge *,std::allocator< GEdge * > > > >;
%template(GFaceList) list<GFace*, std::allocator<GFace*> >;
}
%include "fullMatrix.h"
......
......@@ -22,7 +22,7 @@ class MFace {
public:
MFace() {}
MFace(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3=0);
MFace(std::vector<MVertex*> v);
MFace(const std::vector<MVertex*> v);
inline int getNumVertices() const { return _v.size(); }
inline MVertex *getVertex(const int i) const { return _v[i]; }
inline MVertex *getSortedVertex(const int i) const { return _v[int(_si[i])]; }
......
......@@ -48,7 +48,7 @@ class MHexahedron : public MElement {
_v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3;
_v[4] = v4; _v[5] = v5; _v[6] = v6; _v[7] = v7;
}
MHexahedron(std::vector<MVertex*> &v, int num=0, int part=0)
MHexahedron(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 8; i++) _v[i] = v[i];
......@@ -239,7 +239,7 @@ class MHexahedron20 : public MHexahedron {
_vs[10] = v18; _vs[11] = v19;
for(int i = 0; i < 12; i++) _vs[i]->setPolynomialOrder(2);
}
MHexahedron20(std::vector<MVertex*> &v, int num=0, int part=0)
MHexahedron20(const std::vector<MVertex*> &v, int num=0, int part=0)
: MHexahedron(v, num, part)
{
for(int i = 0; i < 12; i++) _vs[i] = v[8 + i];
......@@ -385,7 +385,7 @@ class MHexahedron27 : public MHexahedron {
_vs[15] = v23; _vs[16] = v24; _vs[17] = v25; _vs[18] = v26;
for(int i = 0; i < 19; i++) _vs[i]->setPolynomialOrder(2);
}
MHexahedron27(std::vector<MVertex*> &v, int num=0, int part=0)
MHexahedron27(const std::vector<MVertex*> &v, int num=0, int part=0)
: MHexahedron(v, num, part)
{
for(int i = 0; i < 19; i++) _vs[i] = v[8 + i];
......
......@@ -28,7 +28,7 @@ class MLine : public MElement {
{
_v[0] = v0; _v[1] = v1;
}
MLine(std::vector<MVertex*> &v, int num=0, int part=0)
MLine(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 2; i++) _v[i] = v[i];
......@@ -98,7 +98,7 @@ class MLine3 : public MLine {
_vs[0] = v2;
_vs[0]->setPolynomialOrder(2);
}
MLine3(std::vector<MVertex*> &v, int num=0, int part=0)
MLine3(const std::vector<MVertex*> &v, int num=0, int part=0)
: MLine(v, num, part)
{
_vs[0] = v[2];
......
......@@ -21,7 +21,7 @@ class MPoint : public MElement {
{
_v[0] = v0;
}
MPoint(std::vector<MVertex*> &v, int num=0, int part=0)
MPoint(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
_v[0] = v[0];
......
......@@ -55,7 +55,7 @@ class MPrism : public MElement {
_v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3;
_v[4] = v4; _v[5] = v5;
}
MPrism(std::vector<MVertex*> &v, int num=0, int part=0)
MPrism(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 6; i++) _v[i] = v[i];
......@@ -239,7 +239,7 @@ class MPrism15 : public MPrism {
_vs[5] = v11; _vs[6] = v12; _vs[7] = v13; _vs[8] = v14;
for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2);
}
MPrism15(std::vector<MVertex*> &v, int num=0, int part=0)
MPrism15(const std::vector<MVertex*> &v, int num=0, int part=0)
: MPrism(v, num, part)
{
for(int i = 0; i < 9; i++) _vs[i] = v[6 + i];
......@@ -367,7 +367,7 @@ class MPrism18 : public MPrism {
_vs[10] = v16; _vs[11] = v17;
for(int i = 0; i < 12; i++) _vs[i]->setPolynomialOrder(2);
}
MPrism18(std::vector<MVertex*> &v, int num=0, int part=0)
MPrism18(const std::vector<MVertex*> &v, int num=0, int part=0)
: MPrism(v, num, part)
{
for(int i = 0; i < 12; i++) _vs[i] = v[6 + i];
......
......@@ -58,7 +58,7 @@ class MPyramid : public MElement {
{
_v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3; _v[4] = v4;
}
MPyramid(std::vector<MVertex*> &v, int num=0, int part=0)
MPyramid(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 5; i++) _v[i] = v[i];
......@@ -238,7 +238,7 @@ class MPyramid13 : public MPyramid {
_vs[5] = v10; _vs[6] = v11; _vs[7] = v12;
for(int i = 0; i < 8; i++) _vs[i]->setPolynomialOrder(2);
}
MPyramid13(std::vector<MVertex*> &v, int num=0, int part=0)
MPyramid13(const std::vector<MVertex*> &v, int num=0, int part=0)
: MPyramid(v, num, part)
{
for(int i = 0; i < 8; i++) _vs[i] = v[5 + i];
......@@ -355,7 +355,7 @@ class MPyramid14 : public MPyramid {
_vs[5] = v10; _vs[6] = v11; _vs[7] = v12; _vs[8] = v13;
for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2);
}
MPyramid14(std::vector<MVertex*> &v, int num=0, int part=0)
MPyramid14(const std::vector<MVertex*> &v, int num=0, int part=0)
: MPyramid(v, num, part)
{
for(int i = 0; i < 9; i++) _vs[i] = v[5 + i];
......
......@@ -45,7 +45,7 @@ class MQuadrangle : public MElement {
{
_v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3;
}
MQuadrangle(std::vector<MVertex*> &v, int num=0, int part=0)
MQuadrangle(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 4; i++) _v[i] = v[i];
......@@ -180,7 +180,7 @@ class MQuadrangle8 : public MQuadrangle {
_vs[0] = v4; _vs[1] = v5; _vs[2] = v6; _vs[3] = v7;
for(int i = 0; i < 4; i++) _vs[i]->setPolynomialOrder(2);
}
MQuadrangle8(std::vector<MVertex*> &v, int num=0, int part=0)
MQuadrangle8(const std::vector<MVertex*> &v, int num=0, int part=0)
: MQuadrangle(v, num, part)
{
for(int i = 0; i < 4; i++) _vs[i] = v[4 + i];
......@@ -263,7 +263,7 @@ class MQuadrangle9 : public MQuadrangle {
_vs[0] = v4; _vs[1] = v5; _vs[2] = v6; _vs[3] = v7; _vs[4] = v8;
for(int i = 0; i < 5; i++) _vs[i]->setPolynomialOrder(2);
}
MQuadrangle9(std::vector<MVertex*> &v, int num=0, int part=0)
MQuadrangle9(const std::vector<MVertex*> &v, int num=0, int part=0)
: MQuadrangle(v, num, part)
{
for(int i = 0; i < 5; i++) _vs[i] = v[4 + i];
......@@ -334,12 +334,12 @@ class MQuadrangleN : public MQuadrangle {
const char _order;
public:
MQuadrangleN(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3,
std::vector<MVertex*> &v, char order, int num=0, int part=0)
const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MQuadrangle(v0, v1, v2, v3, num, part), _vs(v), _order(order)
{
for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_order);
}
MQuadrangleN(std::vector<MVertex*> &v, char order, int num=0, int part=0)
MQuadrangleN(const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MQuadrangle(v[0], v[1], v[2], v[3], num, part), _order(order)
{
for(unsigned int i = 4; i < v.size(); i++) _vs.push_back(v[i]);
......
......@@ -51,7 +51,7 @@ class MTetrahedron : public MElement {
{
_v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3;
}
MTetrahedron(std::vector<MVertex*> &v, int num=0, int part=0)
MTetrahedron(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 4; i++) _v[i] = v[i];
......@@ -198,7 +198,7 @@ class MTetrahedron10 : public MTetrahedron {
_vs[0] = v4; _vs[1] = v5; _vs[2] = v6; _vs[3] = v7; _vs[4] = v8; _vs[5] = v9;
for(int i = 0; i < 6; i++) _vs[i]->setPolynomialOrder(2);
}
MTetrahedron10(std::vector<MVertex*> &v, int num=0, int part=0)
MTetrahedron10(const std::vector<MVertex*> &v, int num=0, int part=0)
: MTetrahedron(v, num, part)
{
for(int i = 0; i < 6; i++) _vs[i] = v[4 + i];
......@@ -314,12 +314,12 @@ class MTetrahedronN : public MTetrahedron {
double _disto;
public:
MTetrahedronN(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3,
std::vector<MVertex*> &v, char order, int num=0, int part=0)
const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MTetrahedron(v0, v1, v2, v3, num, part) , _vs (v), _order(order),_disto(-1.e22)
{
for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_order);
}
MTetrahedronN(std::vector<MVertex*> &v, char order, int num=0, int part=0)
MTetrahedronN(const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MTetrahedron(v[0], v[1], v[2], v[3], num, part) , _order(order),_disto(-1.e22)
{
for(unsigned int i = 4; i < v.size(); i++) _vs.push_back(v[i]);
......
......@@ -43,7 +43,7 @@ class MTriangle : public MElement {
{
_v[0] = v0; _v[1] = v1; _v[2] = v2;
}
MTriangle(std::vector<MVertex*> &v, int num=0, int part=0)
MTriangle(const std::vector<MVertex*> &v, int num=0, int part=0)
: MElement(num, part)
{
for(int i = 0; i < 3; i++) _v[i] = v[i];
......@@ -174,7 +174,7 @@ class MTriangle6 : public MTriangle {
_vs[0] = v3; _vs[1] = v4; _vs[2] = v5;
for(int i = 0; i < 3; i++) _vs[i]->setPolynomialOrder(2);
}
MTriangle6(std::vector<MVertex*> &v, int num=0, int part=0)
MTriangle6(const std::vector<MVertex*> &v, int num=0, int part=0)
: MTriangle(v, num, part)
{
for(int i = 0; i < 3; i++) _vs[i] = v[3 + i];
......@@ -250,12 +250,12 @@ class MTriangleN : public MTriangle {
const char _order;
public:
MTriangleN(MVertex *v0, MVertex *v1, MVertex *v2,
std::vector<MVertex*> &v, char order, int num=0, int part=0)
const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MTriangle(v0, v1, v2, num, part), _vs(v), _order(order)
{
for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_order);
}
MTriangleN(std::vector<MVertex*> &v, char order, int num=0, int part=0)
MTriangleN(const std::vector<MVertex*> &v, char order, int num=0, int part=0)
: MTriangle(v[0], v[1], v[2], num, part), _order(order)
{
for(unsigned int i = 3; i < v.size(); i++) _vs.push_back(v[i]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment