static inline void pack_ctrl_msg(NetworkXioRequest *req) { NetworkXioMsg o_msg(req->op); o_msg.retval(req->retval); o_msg.errval(req->errval); o_msg.size(req->size); o_msg.dtl_in_sync(req->dtl_in_sync); o_msg.opaque(req->opaque); req->s_msg= o_msg.pack_msg(); }
MStatus pbdSolverCmd::redoIt() { //create solver node MStatus stat; MObject transform = dgMod.createNode("transform"); MObject solver= dgMod.createNode(pbdSolverNode::typeId, transform, &stat); //connect time attribute MPlug plgInTime(solver,pbdSolverNode::time); MItDependencyNodes dnTime(MFn::kTime); MObject time = dnTime.thisNode(); MPlug plgOutTime = MFnDependencyNode(time).findPlug("outTime", false); dgMod.connect(plgOutTime, plgInTime); //connect msattr MSelectionList activeSelect; MGlobal::getActiveSelectionList(activeSelect); int pnum = 0, mnum = 0; for(int i = 0;i < activeSelect.length(); ++i) { MObject tNode; activeSelect.getDependNode(i,tNode); MFnDagNode fnDagNode(tNode); MObject pNode=fnDagNode.child(0); MFnDependencyNode fnNode(pNode); //MString name=fnNode1.name().asChar(); if(fnNode.typeId() == OParticleNode::typeId) { //get solver message attribute from particleNode MPlug s_msg(pNode,OParticleNode::pbd_solver); //get particle message attribute from solverNode MPlug o_msg(solver,pbdSolverNode::orientedParticle); dgMod.connect(o_msg,s_msg); ++pnum; } else if(pNode.apiType()==MFn::kMesh) { MString name=MFnDependencyNode(pNode).name().asChar(); MPlug m_vs=fnNode.findPlug("ogc",false); MPlug s_vs(solver,pbdSolverNode::inMesh); dgMod.connect(m_vs,s_vs); ++mnum; } } if( pnum == 0 ) MGlobal::displayError(" No oriented particles are selected"); if( mnum == 0 ) MGlobal::displayError(" No mesh is selected"); MGlobal::displayInfo("PBD solver is created"); return dgMod.doIt(); }
void send_all(const ID& client_id) { update_packet msg; msg.type = update_packet::complete; msg.num_entries = list_.size(); msg.start_index = 0; msg.end_index = state_index_; outbound_data<serializer::boost_serializer, update_packet> o_msg(msg); outbound_data<serializer::boost_serializer, list_type> o_list(list_); outbound_pair o_pair(o_msg, o_list); send_to_instance(client_id, header_packet::update, o_pair); }
void send_updates(const ID& client_id) { update_packet msg; msg.type = update_packet::partial; msg.num_entries = list_.size(); msg.start_index = last_update_sent_; msg.end_index = state_index_; outbound_data<serializer::boost_serializer, update_packet> o_msg(msg); outbound_data<serializer::boost_serializer, list_type> o_list1(added_list_); outbound_data<serializer::boost_serializer, list_type> o_list2(removed_list_); outbound_pair o_list(o_list1, o_list2); outbound_pair o_pair(o_msg, o_list); send_to_instance(client_id, header_packet::update, o_pair); }