virtual void keyPressed(const KeyEventPtr e) { if(e->getKey() == KeyEvent::KEY_Q && e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { TutorialWindowEventProducer->closeWindow(); } switch(e->getKey()) { case KeyEvent::KEY_S: { buildSphere(); } break; case KeyEvent::KEY_B: { buildBox(); } break; case KeyEvent::KEY_Z: { //SceneFileHandler::the().write(rootNode, "scene.osb"); } break; case KeyEvent::KEY_T: { buildTriMesh(); } break; } }
void keyPressed(KeyEventDetails* const details, Node* const TriGeometryBase, Node* const spaceGroupNode, Node* const PhysDrawableNode, PhysicsWorld* const physicsWorld, PhysicsHashSpace* const physicsSpace) { if(details->getKey() == KeyEventDetails::KEY_Q && details->getModifiers() & KeyEventDetails::KEY_MODIFIER_COMMAND) { dynamic_cast<WindowEventProducer*>(details->getSource())->closeWindow(); } switch(details->getKey()) { case KeyEventDetails::KEY_S: { buildSphere(spaceGroupNode, physicsWorld, physicsSpace); } break; case KeyEventDetails::KEY_B: { buildBox(spaceGroupNode, physicsWorld, physicsSpace); } break; case KeyEventDetails::KEY_T: { buildTriMesh(TriGeometryBase, spaceGroupNode, physicsWorld, physicsSpace); } break; case KeyEventDetails::KEY_D: { if(PhysDrawableNode->getTravMask()) { PhysDrawableNode->setTravMask(TypeTraits<UInt32>::getMin()); } else { PhysDrawableNode->setTravMask(TypeTraits<UInt32>::getMax()); } } break; } }
virtual void keyPressed(const KeyEventUnrecPtr e) { if(e->getKey() == KeyEvent::KEY_Q && e->getModifiers() & KeyEvent::KEY_MODIFIER_COMMAND) { TutorialWindow->closeWindow(); } switch(e->getKey()) { case KeyEvent::KEY_S: { buildSphere(); } break; case KeyEvent::KEY_B: { buildBox(); } break; case KeyEvent::KEY_T: { buildTriMesh(); } break; case KeyEvent::KEY_D: { if(PhysDrawableNode->getTravMask()) { PhysDrawableNode->setTravMask(TypeTraits<UInt32>::getMin()); } else { PhysDrawableNode->setTravMask(TypeTraits<UInt32>::getMax()); } } break; } }
// quad tests TEUCHOS_UNIT_TEST(tSquareTriMeshDOFManager, buildTest_tri) { // build global (or serial communicator) #ifdef HAVE_MPI stk::ParallelMachine Comm = MPI_COMM_WORLD; #else stk::ParallelMachine Comm = WHAT_TO_DO_COMM; #endif int numProcs = stk::parallel_machine_size(Comm); int myRank = stk::parallel_machine_rank(Comm); TEUCHOS_ASSERT(numProcs==2); // build a geometric pattern from a single basis RCP<const panzer::FieldPattern> patternC1 = buildFieldPattern<Intrepid2::Basis_HGRAD_TRI_C1_FEM<PHX::exec_space,double,double> >(); RCP<panzer::ConnManager<int,int> > connManager = buildTriMesh(Comm,2,2,1,1); RCP<panzer::DOFManager<int,int> > dofManager = rcp(new panzer::DOFManager<int,int>()); TEST_EQUALITY(dofManager->getOrientationsRequired(),false); TEST_EQUALITY(dofManager->getConnManager(),Teuchos::null); dofManager->setConnManager(connManager,MPI_COMM_WORLD); TEST_EQUALITY(dofManager->getConnManager(),connManager); dofManager->addField("ux",patternC1); dofManager->addField("uy",patternC1); dofManager->addField("p",patternC1); std::vector<std::string> fieldOrder; fieldOrder.push_back("p"); fieldOrder.push_back("ux"); fieldOrder.push_back("uy"); dofManager->setFieldOrder(fieldOrder); dofManager->buildGlobalUnknowns(); dofManager->printFieldInformation(out); TEST_EQUALITY(dofManager->getFieldNum("p"),0); TEST_EQUALITY(dofManager->getFieldNum("ux"),1); TEST_EQUALITY(dofManager->getFieldNum("uy"),2); const std::vector<int> & uy_offsets = dofManager->getGIDFieldOffsets("eblock-0_0",dofManager->getFieldNum("uy")); const std::vector<int> & p_offsets = dofManager->getGIDFieldOffsets("eblock-0_0",dofManager->getFieldNum("p")); const std::vector<int> & ux_offsets = dofManager->getGIDFieldOffsets("eblock-0_0",dofManager->getFieldNum("ux")); TEST_EQUALITY(uy_offsets.size(),p_offsets.size()); TEST_EQUALITY(uy_offsets.size(),ux_offsets.size()); if(myRank==0) { std::vector<int> gids; dofManager->getElementGIDs(0,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],0); TEST_EQUALITY(gids[1],1); TEST_EQUALITY(gids[2],2); TEST_EQUALITY(gids[3],9); TEST_EQUALITY(gids[4],10); TEST_EQUALITY(gids[5],11); TEST_EQUALITY(gids[6],15); TEST_EQUALITY(gids[7],16); TEST_EQUALITY(gids[8],17); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } dofManager->getElementGIDs(1,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],0); TEST_EQUALITY(gids[1],1); TEST_EQUALITY(gids[2],2); TEST_EQUALITY(gids[3],15); TEST_EQUALITY(gids[4],16); TEST_EQUALITY(gids[5],17); TEST_EQUALITY(gids[6],3); TEST_EQUALITY(gids[7],4); TEST_EQUALITY(gids[8],5); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } dofManager->getElementGIDs(3,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],3); TEST_EQUALITY(gids[1],4); TEST_EQUALITY(gids[2],5); TEST_EQUALITY(gids[3],21); TEST_EQUALITY(gids[4],22); TEST_EQUALITY(gids[5],23); TEST_EQUALITY(gids[6],6); TEST_EQUALITY(gids[7],7); TEST_EQUALITY(gids[8],8); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } } else if(myRank==1) { std::vector<int> gids; dofManager->getElementGIDs(0,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],9); TEST_EQUALITY(gids[1],10); TEST_EQUALITY(gids[2],11); TEST_EQUALITY(gids[3],12); TEST_EQUALITY(gids[4],13); TEST_EQUALITY(gids[5],14); TEST_EQUALITY(gids[6],18); TEST_EQUALITY(gids[7],19); TEST_EQUALITY(gids[8],20); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } dofManager->getElementGIDs(1,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],9); TEST_EQUALITY(gids[1],10); TEST_EQUALITY(gids[2],11); TEST_EQUALITY(gids[3],18); TEST_EQUALITY(gids[4],19); TEST_EQUALITY(gids[5],20); TEST_EQUALITY(gids[6],15); TEST_EQUALITY(gids[7],16); TEST_EQUALITY(gids[8],17); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } dofManager->getElementGIDs(3,gids); TEST_EQUALITY(gids.size(),9); TEST_EQUALITY(gids[0],15); TEST_EQUALITY(gids[1],16); TEST_EQUALITY(gids[2],17); TEST_EQUALITY(gids[3],24); TEST_EQUALITY(gids[4],25); TEST_EQUALITY(gids[5],26); TEST_EQUALITY(gids[6],21); TEST_EQUALITY(gids[7],22); TEST_EQUALITY(gids[8],23); for(std::size_t i=0;i<p_offsets.size();i++) { TEST_ASSERT(gids[p_offsets[i]]<gids[ux_offsets[i]]); TEST_ASSERT(gids[p_offsets[i]]<gids[uy_offsets[i]]); TEST_ASSERT(gids[ux_offsets[i]]<gids[uy_offsets[i]]); } } }