/* ------------------------------------------------------------------------------------ */ geXForm3d CCameraManager::ViewPoint() { geXForm3d theViewPoint; TrackMotion(); // changed QD 10715/05 //geXForm3d_SetIdentity(&theViewPoint); // Clear the matrix //geXForm3d_RotateZ(&theViewPoint, Rotation.Z); // Rotate then translate geXForm3d_SetZRotation(&theViewPoint, Rotation.Z); // end change geXForm3d_RotateX(&theViewPoint, Rotation.X); geXForm3d_RotateY(&theViewPoint, Rotation.Y); geXForm3d_Translate(&theViewPoint, Translation.X, Translation.Y, Translation.Z); return theViewPoint; }
bool CVisionPipeline::ProcessImage (CIplImage& image, float& xVel, float& yVel) { AllocWorkingSpace (image); // TODO: fine grained synchronization m_imageCopyMutex.Enter(); TrackMotion (image, xVel, yVel); // Store current image as previous m_imgPrev.Swap (&m_imgCurr); m_imageCopyMutex.Leave(); // Notifies face detection thread when needed if (m_trackFace) { m_trackArea.SetDegradation(255 - m_trackAreaTimeout.PercentagePassed() * 255 / 100); m_condition.Signal(); } if (m_trackFace && m_enableWhenFaceDetected && !IsFaceDetected()) return false; else return true; }