void sb7fbxmodel::ProcessNode(FbxNode* pNode) { if(pNode->GetNodeAttribute()) { switch(pNode->GetNodeAttribute()->GetAttributeType()) { case FbxNodeAttribute::eMesh: ProcessMesh(pNode); break; case FbxNodeAttribute::eSkeleton: ProcessSkeleton(pNode); break; case FbxNodeAttribute::eLight: ProcessLight(pNode); break; case FbxNodeAttribute::eCamera: ProcessCamera(); break; } } for(int i = 0 ; i < pNode->GetChildCount() ; ++i) { ProcessNode(pNode->GetChild(i)); } }
void FBXSceneInstance::ProcessNode(FbxNode* pNode, FbxNodeAttribute::EType attributeType) { if( !pNode ) return; FbxNodeAttribute* pNodeAttribute = pNode->GetNodeAttribute(); if (pNodeAttribute) { if( pNodeAttribute->GetAttributeType() == attributeType ) { switch(pNodeAttribute->GetAttributeType()) { case FbxNodeAttribute::EType::eSkeleton: { ProcessSkeleton(pNode); break; } default: break; }; } } for( int i = 0; i < pNode->GetChildCount(); ++i ) { ProcessNode(pNode->GetChild(i), attributeType); } }
/// <summary> /// Main processing function /// </summary> void CBackgroundRemovalBasics::Update() { if (NULL == m_pNuiSensor) { return; } if (WAIT_OBJECT_0 == WaitForSingleObject(m_hNextBackgroundRemovedFrameEvent, 0)) { ComposeImage(); } if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextDepthFrameEvent, 0) ) { ProcessDepth(); } if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextColorFrameEvent, 0) ) { ProcessColor(); } if (WAIT_OBJECT_0 == WaitForSingleObject(m_hNextSkeletonFrameEvent, 0) ) { ProcessSkeleton(); } }
/// <summary> /// Check if incoming frame is ready /// </summary> void NuiSkeletonStream::ProcessStreamFrame() { if (WAIT_OBJECT_0 == WaitForSingleObject(GetFrameReadyEvent(), 0)) { // if we have received any valid new depth data we may need to draw ProcessSkeleton(); } }
/// <summary> /// Main processing function /// </summary> void CSkeletonBasics::Update() { if (NULL == m_pNuiSensor) { return; } // Wait for 0ms, just quickly test if it is time to process a skeleton if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextSkeletonEvent, 0) ) { ProcessSkeleton(); } }
/// <summary> /// Main processing function /// </summary> void CColorBasics::Update(DASHout* dasher, DWORD event_res) { u64 timeref = 0; //TODO fix/move this if (NULL == m_pNuiSensor) { return; } if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextColorFrameEvent, INFINITE) ) { ProcessColor(dasher); } if (event_res == 1 && WAIT_OBJECT_0 == WaitForSingleObject(m_hNextSkeletonEvent, INFINITE) ) { //TODO add process skel function timeref = gf_sys_clock_high_res() - dasher->sys_start; ProcessSkeleton(dasher, timeref); } if(dasher->nextColourFrame){ int res = muxer_encode(dasher, (u8 *) dasher->nextColourFrame->kinectFrame, dasher->nextColourFrame->size,dasher->nextColourFrame->pts); if((res>=0)&&(!dasher->segment_started)){ res = muxer_open_segment(dasher, "x64/Debug/out", "seg", dasher->seg_num); timeref = gf_sys_clock_high_res() - dasher->sys_start; printf("\t\tOpening segment time : %llu\n", timeref); } if(res>=0){ res = muxer_write_frame(dasher, dasher->colFrameCount); dasher->colFrameCount++; } if(res==1){ res = muxer_close_segment(dasher); if(res==GF_OK){ dasher->seg_num = write_playlist_segment(dasher->seg_num, timeref); } } dasher->nextColourFrame = NULL; } }
/// <summary> /// Main processing function /// </summary> void CDataCollection::Update() { if (NULL == m_pNuiSensor) { return; } if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextColorFrameEvent, 0) ) { ProcessColor(); } else if ( WAIT_OBJECT_0 == WaitForSingleObject(m_hNextSkeletonEvent, 0) ) { ProcessSkeleton(); } }