FEM: Mesh ViewProvider, change painting and some comments of quad4

This commit is contained in:
Bernd Hahnebach
2016-04-09 18:42:09 +01:00
committed by wmayer
parent 9c0d123f0d
commit 6721cbb3a6

View File

@@ -1136,31 +1136,38 @@ void ViewProviderFEMMeshBuilder::createMesh(const App::Property* prop,
break;
// 4 nodes
case 4:
// quad4 face
// tetra4 volume, four 3-node triangles
Base::Console().Log(" %f: Start build up triangle vector for 4 nodes object\n",Base::TimeInfo::diffTimeF(Start,Base::TimeInfo()));
Base::Console().Log(" NumNodes:%i\n",facesHelper[l].Element->NbNodes());
switch (facesHelper[l].FaceNo){
case 0: { // quad4 face
case 0: { // quad4 face, 4-node quadrangle
Base::Console().Log(" %f: Start build up triangle vector for quad4 face\n",Base::TimeInfo::diffTimeF(Start,Base::TimeInfo()));
Base::Console().Log(" FaceNo:%i\n",facesHelper[l].FaceNo);
// prefeche all node indexes of this face
int nIdx0 = mapNodeIndex[facesHelper[l].Element->GetNode(0)];
int nIdx1 = mapNodeIndex[facesHelper[l].Element->GetNode(1)];
int nIdx2 = mapNodeIndex[facesHelper[l].Element->GetNode(2)];
int nIdx3 = mapNodeIndex[facesHelper[l].Element->GetNode(3)];
indices[index++] = nIdx2;
// create triangle number 1 ----------------------------------------------
// fill in the node indexes in CLOCKWISE order
indices[index++] = nIdx0;
indices[index++] = nIdx1;
indices[index++] = nIdx2;
indices[index++] = SO_END_FACE_INDEX;
// add the two edge segments for that triangle
insEdgeVec(EdgeMap, nIdx0, nIdx1);
insEdgeVec(EdgeMap, nIdx1, nIdx2);
vFaceElementIdx[indexIdx++] = ElemFold(facesHelper[l].ElementNumber, 0);
// rember the element and face number for that triangle
vFaceElementIdx[indexIdx++] = ElemFold(facesHelper[l].ElementNumber,0);
// create triangle number 2 ----------------------------------------------
indices[index++] = nIdx2;
indices[index++] = nIdx3;
indices[index++] = nIdx0;
indices[index++] = nIdx2;
indices[index++] = SO_END_FACE_INDEX;
insEdgeVec(EdgeMap, nIdx2, nIdx3);
insEdgeVec(EdgeMap, nIdx3, nIdx0);
vFaceElementIdx[indexIdx++] = ElemFold(facesHelper[l].ElementNumber, 0);
vFaceElementIdx[indexIdx++] = ElemFold(facesHelper[l].ElementNumber,0);
break; }
case 1: { // tetra4 volume: face 1, 3-node triangle
Base::Console().Log(" %f: Start build up triangle vector for tetra4 --> face1\n",Base::TimeInfo::diffTimeF(Start,Base::TimeInfo()));