Skip to content

Commit

Permalink
fix in get visible faces
Browse files Browse the repository at this point in the history
  • Loading branch information
jriegel committed Dec 2, 2013
1 parent 62fc4c3 commit 9a23926
Showing 1 changed file with 23 additions and 5 deletions.
28 changes: 23 additions & 5 deletions src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp
Expand Up @@ -103,14 +103,32 @@ void ViewProviderFemMeshPy::setHighlightedNodes(Py::List arg)
Py::List ViewProviderFemMeshPy::getVisibleElementFaces(void) const
{
const std::vector<unsigned long> & visElmFc = this->getViewProviderFemMeshPtr()->getVisibleElementFaces();
Py::List result( visElmFc.size() );
std::vector<unsigned long> trans;

// sorting out double faces through higer order elements and null entries
long elementOld =0, faceOld=0;
for (std::vector<unsigned long>::const_iterator it = visElmFc.begin();it!=visElmFc.end();++it){
if(*it == 0)
continue;

long element = *it>>3;
long face = (*it&7)+1;
if(element == elementOld && face==faceOld)
continue;

trans.push_back(*it);
elementOld = element;
faceOld = face;
}

Py::List result( trans.size() );
int i = 0;
for (std::vector<unsigned long>::const_iterator it = visElmFc.begin();it!=visElmFc.end();++it,i++){
for (std::vector<unsigned long>::const_iterator it = trans.begin();it!=trans.end();++it,i++){
Py::Tuple tup(2);

tup.setItem( 0,Py::Int((long)*it>>3) );
tup.setItem( 1,Py::Int((long)(*it&7)+1) );
long element = *it>>3;
long face = (*it&7)+1;
tup.setItem( 0,Py::Int( element ) );
tup.setItem( 1,Py::Int( face ) );
result.setItem(i,tup);
}

Expand Down

0 comments on commit 9a23926

Please sign in to comment.