void CohesiveSurface3d :: drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType type) { GraphicObj *go1, *go2; if ( !gc.testElementGraphicActivity(this) ) { return; } double defScale = gc.getDefScale(); WCRec p [ 2 ]; EASValsSetLineWidth(OOFEG_DEFORMED_GEOMETRY_WIDTH); EASValsSetColor( gc.getDeformedElementColor() ); EASValsSetLayer(OOFEG_DEFORMED_GEOMETRY_LAYER); // get the displaced particle coordinates Particle *nodeA = ( Particle * ) giveNode(1); Particle *nodeB = ( Particle * ) giveNode(2); p [ 0 ].x = nodeA->giveUpdatedCoordinate(1, tStep, defScale); p [ 0 ].y = nodeA->giveUpdatedCoordinate(2, tStep, defScale); p [ 0 ].z = nodeA->giveUpdatedCoordinate(3, tStep, defScale); p [ 1 ].x = nodeB->giveUpdatedCoordinate(1, tStep, defScale); p [ 1 ].y = nodeB->giveUpdatedCoordinate(2, tStep, defScale); p [ 1 ].z = nodeB->giveUpdatedCoordinate(3, tStep, defScale); // plot the displaced particles EASValsSetMType(FILLED_CIRCLE_MARKER); EASValsSetColor( gc.getNodeColor() ); EASValsSetMSize(6); // plot the first particle go1 = CreateMarker3D(p); EGWithMaskChangeAttributes(COLOR_MASK | LAYER_MASK | MTYPE_MASK | MSIZE_MASK, go1); EMAddGraphicsToModel(ESIModel(), go1); // take into account periodic conditions if ( giveNumberOfNodes() == 3 ) { Node *nodeC = ( Particle * ) giveNode(3); p [ 1 ].x += kxa + kxa * defScale * ( nodeC->giveDofWithID(D_u)->giveUnknown(VM_Total, tStep) ) + kyb * defScale * ( nodeC->giveDofWithID(R_u)->giveUnknown(VM_Total, tStep) ); p [ 1 ].y += kyb + kyb * defScale * ( nodeC->giveDofWithID(D_v)->giveUnknown(VM_Total, tStep) ) + kzc * defScale * ( nodeC->giveDofWithID(R_v)->giveUnknown(VM_Total, tStep) ); p [ 1 ].z += kzc + kzc * defScale * ( nodeC->giveDofWithID(D_w)->giveUnknown(VM_Total, tStep) ) + kxa * defScale * ( nodeC->giveDofWithID(R_w)->giveUnknown(VM_Total, tStep) ); EASValsSetMType(CIRCLE_MARKER); } // plot the second particle go2 = CreateMarker3D(p + 1); EGWithMaskChangeAttributes(COLOR_MASK | LAYER_MASK | MTYPE_MASK | MSIZE_MASK, go2); EMAddGraphicsToModel(ESIModel(), go2); }