本文整理汇总了C++中leapsdk::DeviceRef::isConnected方法的典型用法代码示例。如果您正苦于以下问题:C++ DeviceRef::isConnected方法的具体用法?C++ DeviceRef::isConnected怎么用?C++ DeviceRef::isConnected使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类leapsdk::DeviceRef
的用法示例。
在下文中一共展示了DeviceRef::isConnected方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void LeapPalmDirectionApp::update()
{
if ( mLeap && mLeap->isConnected() )
{
mLeap->update();
}
}
示例2: update
// Runs update logic
void LeapApp::update()
{
// Update frame rate
mFrameRate = getAverageFps();
// Toggle fullscreen
if ( mFullScreen != isFullScreen() ) {
setFullScreen( mFullScreen );
}
// Update device
if ( mLeap && mLeap->isConnected() ) {
mLeap->update();
}
}
示例3: update
void BrainbowApp::update()
{
//LEAP
if ( mLeap && mLeap->isConnected() ) {
mLeap->update();
}
//GET HAND
for ( LeapSdk::HandMap::const_iterator handIter = mHands.begin(); handIter != mHands.end(); ++handIter ) {
const LeapSdk::Hand& hand = handIter->second;
// cout << hand.getPosition().x << endl;
// cout << hand.getDirection();
scaledX = (hand.getPosition().x *(getWindowWidth()/400))+(getWindowWidth()/2);
scaledY = (-hand.getPosition().y*(getWindowHeight()/400) + getWindowHeight())*2.5 - 400;
scaledZ = hand.getPosition().z*2+300;
handPos = Vec3f(scaledX, scaledY, scaledZ);
}
//AUDIO
// mAudio.update();
//SCENES
if (sceneOne)
scene1();
if (sceneTwo)
scene2();
//LIGHT
mLight->lookAt( handPos, Vec3f::zero() );
//ROTATE DIAMOND
if (gong)
mDiamond.getModelMatrix().rotate( Vec3f( 0.0f, 0.5f, 0), 0.01f );
}
示例4: update
void ChargesApp::update()
{
mFps = getAverageFps();
// Update device
if ( mLeap && mLeap->isConnected() )
{
mLeap->update();
}
vector< int32_t > currentFingersIds;
for ( const std::pair< int32_t, LeapSdk::Hand > hand : mHands )
{
const LeapSdk::FingerMap &fingers = hand.second.getFingers();
for ( const auto &fkv : fingers )
{
int32_t id = fkv.first;
const LeapSdk::Finger &finger = fkv.second;
currentFingersIds.push_back( id );
// new finger?
if ( mActiveFingers.find( id ) == mActiveFingers.end() )
{
mActiveFingers[ id ] = mTimestamp;
mEffectCharge.addCursor( id, 0.f, 0.f, 1.f ); // init with (0, 0), will be updated below
}
// update finger
const LeapSdk::ScreenMap &screens = mLeap->getScreens();
if ( screens.begin() != screens.end() )
{
mActiveFingers[ id ] = mTimestamp;
const LeapSdk::Screen &screen = screens.begin()->second;
Vec3f normPos;
screen.intersects( finger, normPos, true, 1.5f ); // normalized screen coordinates with 1.5 clamp ratio
Vec2f fingertip = normPos.xy() * Vec2f( mFbo.getSize() );
Vec3f screenPos;
screen.intersects( finger, screenPos, false, 1.5f ); // screen coordinates with 1.5 clamp ratio
float d = screenPos.distance( finger.getPosition() );
const float dMin = 50.f;
const float dMax = 500.f;
const float sMin = 1.f;
const float sMax = 100.f;
d = math< float >::clamp( d, dMin, dMax );
float strength = lmap( d, dMin, dMax, sMax, sMin );
mEffectCharge.updateCursor( id, fingertip.x, fingertip.y, strength );
}
}
}
// erase disappeared fingers
int64_t disappearThr = mFingerDisapperanceThreshold * 1000000;
for ( auto it = mActiveFingers.begin(); it != mActiveFingers.end(); )
{
int32_t id = it->first;
if ( find( currentFingersIds.begin(), currentFingersIds.end(), id ) == currentFingersIds.end() )
{
// seen earlier than the threshold?
if ( mTimestamp - it->second > disappearThr )
{
mEffectCharge.removeCursor( id );
it = mActiveFingers.erase( it );
}
else
{
it++;
}
}
else
{
it++;
}
}
}
示例5: update
// Runs update logic
void UiApp::update()
{
// Update frame rate
mFrameRate = getAverageFps();
// Toggle fullscreen
if ( mFullScreen != isFullScreen() ) {
setFullScreen( mFullScreen );
}
// Update device
if ( mLeap && mLeap->isConnected() ) {
mLeap->update();
}
// Interact with first hand
if ( mHands.empty() ) {
mCursorType = CursorType::NONE;
} else {
const Hand& hand = mHands.begin()->second;
// Update cursor position
mCursorPositionTarget = warp( hand.getPosition() );
if ( mCursorType == CursorType::NONE ) {
mCursorPosition = mCursorPositionTarget;
}
// Choose cursor type based on number of exposed fingers
switch ( hand.getFingers().size() ) {
case 0:
mCursorType = CursorType::GRAB;
break;
case 1:
mCursorType = CursorType::TOUCH;
break;
default:
mCursorType = CursorType::HAND;
break;
}
}
// Smooth cursor animation
mCursorPosition = mCursorPosition.lerp( 0.21f, mCursorPositionTarget );
mCursorPosition.z = 0.0f;
// Hit buttons
for ( size_t i = 0; i < 3; ++i ) {
mButtonState[ i ] = false;
if ( mCursorType == CursorType::TOUCH &&
mCursorPosition.distance( mButtonPosition[ i ] ) < (float)mButton[ 0 ].getSize().length() * 0.5f ) {
mButtonState[ i ] = true;
}
}
// Slider
if ( mCursorType == CursorType::GRAB &&
math<float>::abs( mCursorPosition.x - mSliderPosition.x ) < (float)mSlider.getWidth() * 0.5f &&
math<float>::abs( mCursorPosition.y - mSliderPosition.y ) < (float)mSlider.getHeight() * 0.5f ) {
float x1 = mTrackPosition.x;
float x2 = mTrackPosition.x + (float)( mTrack.getWidth() - mSlider.getWidth() );
mSliderPosition.x = math<float>::clamp( mCursorPosition.x, x1, x2 );
}
}
示例6: update
void _TBOX_PREFIX_App::update()
{
if ( mLeap && mLeap->isConnected() ) {
mLeap->update();
}
}
示例7: update
// Runs update logic
void GestureApp::update()
{
// Update frame rate
mFrameRate = getAverageFps();
// Toggle fullscreen
if ( mFullScreen != isFullScreen() ) {
setFullScreen( mFullScreen );
}
// Update device
if ( mLeap && mLeap->isConnected() ) {
mLeap->update();
}
const vector<Leap::Gesture>& gestures = mFrame.getGestures();
for ( vector<Leap::Gesture>::const_iterator iter = gestures.begin(); iter != gestures.end(); ++iter ) {
Gesture::Type type = iter->type();
if ( type == Gesture::Type::TYPE_CIRCLE ) {
// Cast to circle gesture
const Leap::CircleGesture& gesture = (Leap::CircleGesture)*iter;
// Control dial
mDialBrightness = 1.0f;
mDialValueDest = gesture.progress();
} else if ( type == Gesture::Type::TYPE_KEY_TAP ) {
// Cast to circle gesture and read data
const Leap::KeyTapGesture& gesture = (Leap::KeyTapGesture)*iter;
Vec2f center = warpVector( fromLeapVector( gesture.position() ) );
center -= mOffset;
// Press key
for ( vector<Key>::iterator iter = mKeys.begin(); iter != mKeys.end(); ++iter ) {
if ( iter->mBounds.contains( center ) ) {
iter->mBrightness = 1.0f;
break;
}
}
} else if ( type == Gesture::Type::TYPE_SCREEN_TAP ) {
// Turn background white for screen tap
mBackgroundBrightness = 1.0f;
} else if ( type == Gesture::Type::TYPE_SWIPE ) {
// Cast to swipe gesture and read data
const Leap::SwipeGesture& gesture = (Leap::SwipeGesture)*iter;
ci::Vec2f a = warpVector( fromLeapVector( gesture.startPosition() ) );
ci::Vec2f b = warpVector( fromLeapVector( gesture.position() ) );
// Update swipe position
mSwipeBrightness = 1.0f;
if ( gesture.state() == Gesture::State::STATE_STOP ) {
mSwipePosDest = b.x < a.x ? 0.0f : 1.0f;
} else {
float step = mSwipeStep;
mSwipePosDest += b.x < a.x ? -step : step;
}
mSwipePosDest = math<float>::clamp( mSwipePosDest, 0.0f, 1.0f );
}
}
// UI animation
mDialValue = lerp( mDialValue, mDialValueDest, mDialSpeed );
mSwipePos = lerp( mSwipePos, mSwipePosDest, mSwipePosSpeed );
mBackgroundBrightness *= mFadeSpeed;
mDialBrightness *= mFadeSpeed;
mSwipeBrightness *= mFadeSpeed;
for ( vector<Key>::iterator iter = mKeys.begin(); iter != mKeys.end(); ++iter ) {
iter->mBrightness *= mFadeSpeed;
}
}