public void OnReceivedMotionData( BvhDataHeader header, IntPtr data ) { this.header = header; try { Marshal.Copy( data, this.data, 0, (int)header.DataCount ); timeStamp = GetTimeStamp(); } catch( Exception e ) { Debug.LogException( e ); } }
public virtual void OnFrameDataReceived( IntPtr DataHeader, IntPtr data ) { BvhDataHeader header = new BvhDataHeader(); try { header = (BvhDataHeader)Marshal.PtrToStructure( DataHeader, typeof( BvhDataHeader ) ); } catch( Exception e ) { Debug.LogException( e ); } int actorID = (int)header.AvatarIndex; NeuronActor actor = null; // find active actor actor = FindActiveActor( actorID ); if( actor != null ) { // if actor is active actor.OnReceivedMotionData( header, data ); } else { // find suspended actor actor = FindSuspendedActor( actorID ); if( actor == null ) { // if no such actor, create one actor = CreateActor( actorID ); } actor.OnReceivedMotionData( header, data ); } }