DeepCopy() public method

Deep copy from poseToCopy into this.
public DeepCopy ( TangoPoseData poseToCopy ) : void
poseToCopy TangoPoseData Pose to copy.
return void
Exemplo n.º 1
0
 /// <summary>
 /// Handle the callback sent by the Tango Service when a new pose is sampled.
 /// </summary>
 /// <param name="callbackContext">Callback context.</param>
 /// <param name="pose">The pose data returned from Tango.</param>
 private void _OnPoseAvailable(IntPtr callbackContext, TangoPoseData pose)
 {
     if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE &&
         pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
     {
         // MotionTracking
         lock (m_lockObject)
         {
             m_motionTrackingData.DeepCopy(pose);
             m_isMotionTrackingPoseAvailable = true;
         }
     }
     else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
              pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
     {
         // ADF Localized
         lock (m_lockObject)
         {
             m_areaLearningData.DeepCopy(pose);
             m_isAreaLearningPoseAvailable = true;
         }
     }
     else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
              pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE)
     {
         // Relocalized against ADF
         lock (m_lockObject)
         {
             m_relocalizationData.DeepCopy(pose);
             m_isRelocalizaitonPoseAvailable = true;
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Handle the callback sent by the Tango Service when a new pose is sampled.
        /// </summary>
        /// <param name="callbackContext">Callback context.</param>
        /// <param name="pose">Pose.</param>
        private void _OnPoseAvailable(IntPtr callbackContext, TangoPoseData pose)
        {
            if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE &&
                pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
            {
                // MotionTracking
                lock (m_lockObject)
                {
                    // Only set new pose once the previous pose has been returned.
                    if (m_motionTrackingData == null)
                    {
                        TangoPoseData currentPose = m_poseDataPool.Pop();
                        currentPose.DeepCopy(pose);
                        m_motionTrackingData = currentPose;
                    }
                }
            }
            else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
                     pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_DEVICE)
            {
                // ADF Localized
                lock (m_lockObject)
                {
                    // Only set new pose once the previous pose has been returned.
                    if (m_areaLearningData == null)
                    {
                        TangoPoseData currentPose = m_poseDataPool.Pop();
                        currentPose.DeepCopy(pose);
                        m_areaLearningData = currentPose;
                    }
                }
            }
            else if (pose.framePair.baseFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_AREA_DESCRIPTION &&
                     pose.framePair.targetFrame == TangoEnums.TangoCoordinateFrameType.TANGO_COORDINATE_FRAME_START_OF_SERVICE)
            {
                // Relocalized against ADF
                lock (m_lockObject)
                {
                    // Only set new pose once the previous pose has been returned.
                    if (m_relocalizationData == null)
                    {
                        TangoPoseData currentPose = m_poseDataPool.Pop();
                        currentPose.DeepCopy(pose);
                        m_relocalizationData = currentPose;
                    }
                }
            }

            m_isDirty = true;
        }