Ejemplo n.º 1
0
	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));
		}
	}
Ejemplo n.º 2
0
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();
    }
}
Ejemplo n.º 5
0
/// <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();
    }
}
Ejemplo n.º 6
0
/// <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;
	}

}
Ejemplo n.º 7
0
/// <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();
	}
}