fix reading/writting quadratic edges

This commit is contained in:
eap 2006-04-03 09:10:37 +00:00
parent a701eb4ca3
commit 9a5fe30faf
2 changed files with 5 additions and 6 deletions

View File

@ -74,14 +74,13 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
const TElementLab& aLabel = anIter->first;
const TRecord& aRec = anIter->second;
if(IsBeam(aRec.fe_descriptor_id)) {
if(aRec.fe_descriptor_id == 11) {
// edge with two nodes
switch ( aRec.fe_descriptor_id.size() ) {
case 2: // edge with two nodes
anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
aRec.node_labels[1],
aLabel);
}
else {
// quadratic edge (with 3 nodes)
break;
case 3: // quadratic edge (with 3 nodes)
anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
aRec.node_labels[2],
aRec.node_labels[1],

View File

@ -92,7 +92,7 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
if( anElem->IsQuadratic() ) {
aNodesIter = static_cast<const SMDS_QuadraticEdge* >
( anElem )->interlacedNodesElemIterator();
aRec.fe_descriptor_id = 21;
aRec.fe_descriptor_id = 22;
} else {
aNodesIter = anElem->nodesIterator();
aRec.fe_descriptor_id = 11;