天天看點

Device類(Leap:: Device)和 DeviceList類(Leap:: DeviceList)

Device類(Leap:: Device)

這個類代表了一個實體連接配接裝置。這個類包括了與一個特定的連接配接裝置相關的資訊,比如裝置的ID、與裝置相關的視線、以及在相對坐标系中裝置的位置和方向。位置和方向描述了相對于使用者裝置的校準,對使用者調整裝置提供了在描述使用者互動的參數中的一緻性。這個類也許是無效的,需要用Device::isValid()函數來測試。

enum Type: 表示Leap Motion控制器可用的幾種類型。

TYPE_PERIPHERAL = 1表示獨立的USB外部裝置。

TYPE_LAPTOP表示Controller嵌入在一個筆記本電腦上。

TYPE_KEYBOARD表示Controller嵌入在一個鍵盤上。

Device(): 構造一個Device對象。沒有初始化的裝置被認為是無效的。從Controller::devices()得到的這個DeviceList對象中獲得有效的Device對象。

用法:Leap::Device device = controller.devices()[0];

float horizontalViewAngle(): 表示順着這個裝置的x軸的視角。如下圖。Leap Motion控制器的掃描區域像一個倒置的金字塔,中心在裝置的中心,然後向上延伸。這個函數報告了沿着裝置的長邊的視角。

用法:float angleOnLongDimension = device.horizontalViewAngle();

Device類(Leap:: Device)和 DeviceList類(Leap:: DeviceList)
Device類(Leap:: Device)和 DeviceList類(Leap:: DeviceList)

float verticalViewAngle(): 表示順着這個裝置的z軸的視角。如上圖。這個函數報告了沿着裝置的短邊的視角。

用法:float angleOnShortDimension = device.verticalViewAngle();

float range(): 表示從裝置的中心開始的最大有效跟蹤範圍。這個距離不是個硬限制,在這個距離以上或開始略低于這個距離跟蹤仍然有效,主要取決于校準和極端環境條件。

用法:float range=device.range();

float baseline(): 表示立體視覺傳感器的中心點之間的距離。這個值和最大分辨率影響着最大的範圍。

float distanceToBoundary(const Vector& position): 表示到Leap Motion控制器視體最近的邊的距離。視體是一個坐标對齊的倒金字塔,中心在裝置的中心,向上延伸至範圍限制。這個函數估計了指定的輸入位置到最近的視體的牆或屋頂的距離。

用法:Leap::Pointable frontFinger = controller.frame().fingers().frontmost();

float distanceToBoxWall = device.distanceToBoundary(frontFinger.tipPosition());

bool isEmbedded(): 判斷這個裝置是否嵌入在另一個電腦或電腦外部裝置中。

bool isStreaming(): 判斷這個裝置對于你的應用程式來說是否是流資料。目前在某一刻隻有一個控制器可以提供資料。

bool isFlipped(): 這個函數棄用了,總是傳回false。

Type type(): 表示裝置的類型。在你有一個依賴于特定類型裝置的應用程式特性的情況下,使用這個裝置類型值。目前裝置類型見枚舉類型。

std::string serialNumber(): 一個字母序列數字,每個裝置是特有的。使用者裝置序列号由2個字母+11位數組成。當用多個裝置時,這個序列數為每個裝置提供了明确的辨別符。

bool isValid(): 判斷是否是一個有效的Device對象。

const Device& invalid(): 傳回一個無效的Device對象。

bool operator==(const Device&): 比較Device對象的相等性。

bool operator !=(const Device&): 比較Device對象的不相等性。

std::string toString(): 表示包含Device對象描述資訊的字元串。

DeviceList類(Leap:: DeviceList)

這個類代表了Device對象的清單。調用Controller::devices()得到DeviceList對象。

DeviceList(): 構造一個空的裝置清單。

int count(): 傳回清單中裝置的數目。

bool isEmpty(): 判斷這個清單是否為空。

Device operator[](int index): 表示對清單中一個成員位置的通路。傳回的是指定索引下的Device對象。

DeviceList & append(const DeviceList & other): 表示把指定的一個DeviceList的成員添加到這個DeviceList對象中。參數other表示一個DeviceList對象,其中包含Device對象,将要添加到這個DeviceList對象末端。

const_iterator begin(): 表示C++的疊代器,設定在這個DeviceList對象的開始。

const_iterator end(): 表示C++的疊代器,設定在這個DeviceList對象的結束。

譯自:https://developer.leapmotion.com/documentation/cpp/api/Leap.Device.html

https://developer.leapmotion.com/documentation/cpp/api/Leap.DeviceList.html

繼續閱讀