Positionableクラス
PositionableはDrawableがアタッチされた仮想オブジェクトを表します。Wikitude SDKでは、Positionableオブジェクトはトラッキングアルゴリズムによって認識されないので、プラグイン内で手動で配置する必要があります。Positionableを使用すると、Wikitude SDKのレンダリング機能でカスタム追跡アルゴリズムを指定できます。
Positionableは、
- プラグイン中に2D画面の位置または変換マトリクスを指定することによって変換できます。
- 関連付けられたDrawableを持つことができます。これらのDrawableはカメラビュー内でPositionableを表現します。
- 関連付けられたトリガーを持つことができます。トリガーは特定のイベント時に発生し、関数を実行してそれらのアクションに反応します。
- 視野に関連付けられたトリガーがプラグインに呼び出す必要があります。
インスタンス生成時にユニークな文字列識別子を渡す必要があります。この識別子を使用してハッシュテーブルからプラグインのUpdateメソッドにPositionableを取得できます。その後、Positionableは適切な変換マトリクスまたは2D画面の位置を指定することによって変換されます。Positionableは有効または無効にできます。Positionableが無効な場合はアタッチされたDrawableは描画されません。
インスタンス生成時にパラメーターを渡して、Positionableのプロパティをカスタマイズできます。
// a circle used for representation var circle = new AR.Circle(0.5); // a Positionable having the circle attached as its drawable var positionable = new AR.Positionable("myPositionable", { drawables : { cam : circle } });
アタッチされたDrawableのレンダリングサイズについては、SDUのセクションを参照してください。
コンストラクター
Positionable
-
name
-
options
パラメーター:
-
name
StringPositionableのユニークな文字列識別子。
-
options
Object オプション追加のオブジェクトプロパティをカスタマイズするためのパラメーター。
設定可能なプロパティは以下のとおりです。-
enabled
(デフォルト値:true
) Boolean オプション -
renderingOrder
(デフォルト値:0
) Number オプション -
onEnterFieldOfVision
Function オプション -
onExitFieldOfVision
Function オプション -
onClick
Function オプション -
onDragBegan
Function オプション -
onDragChanged
Function オプション -
onDragEnded
Function オプション -
onPanBegan
Function オプション -
onPanChanged
Function オプション -
onPanEnded
Function オプション -
onRotationBegan
Function オプション -
onRotationChanged
Function オプション -
onRotationEnded
Function オプション -
onScaleBegan
Function オプション -
onScaleChanged
Function オプション -
onScaleEnded
Function オプション -
drawables.cam
Drawable[] オプション -
snapToScreen.enabled
Boolean オプション -
snapToScreen.enableDelayed
Number オプション -
snapToScreen.enabledOnExitFieldOfVision
Boolean オプション -
snapToScreen.snapContainer
DOM Element オプション -
snapToScreen.onSnappedToScreen
Function オプション -
snapToScreen.onDelayedSnapInterruption
Function オプション
-
項目索引
プロパティ
メソッド
destroy
()
オブジェクトを破棄します。
drawables.addCamDrawable
-
drawable
-
position
拡張オブジェクトをARObjectに追加します。
パラメーター:
-
drawable
Drawable | Drawable[]追加する拡張オブジェクト。単一、または複数の拡張オブジェクトを配列で指定できます。
-
position
Number オプション拡張オブジェクトを追加する配列内の位置。指定しない場合は、配列の最後に追加されます。整数にする必要があります。
drawables.removeCamDrawable
-
drawable|position
拡張オブジェクトをARObjectから削除します。
パラメーター:
-
drawable|position
Drawable | [Drawable] | Number単一、または複数の拡張オブジェクトを配列で指定すると、それらが配列から削除されます。整数を指定すると、指定した位置にある拡張オブジェクトが削除されます。
プロパティ
drawables.cam
Drawable[]
カメラビュー内で使用される拡張オブジェクト。
拡張オブジェクトが、配列の添え字順に表示されます。順序が後の拡張オブジェクトは、先に描画された拡張オブジェクトの上に重なります。
配列の内容を[]演算子によって操作しないでください。それらの変更がアプリケーションに反映されるかどうかは保証されません。このプロパティを操作するときは、arobject.drawables.addCamDrawable()とarobject.drawables.removeCamDrawable()を使用するか、arobject.drawables.cam = new Array(...);を使用して直接設定してください。
name
String
カスタムプラグインのUpdate関数にPositionableを取得するためのユニークな識別子。名前はユニークである必要があります。このプロパティは読み取り専用で、生成時のみに設定することができます。
renderingOrder
Number
異なるARObjectの拡張オブジェクトが重なる場合があります。その場合、renderingOrderによって、そのARObject間の拡張オブジェクトのレンダリング順序が決まります。renderingOrder値の高いARObjectに属する拡張オブジェクトが、renderingOrder値の低いARObjectに属する拡張オブジェクトの前面に描画されます。2つのARObjectに同じrenderingOrderが設定されている場合、それらの拡張オブジェクトは距離に基づいてレンダリングされ、ユーザーに近い方のオブジェクトが遠い方のオブジェクトより前面に描画されます。
たとえば、特定のARObjectの拡張オブジェクトを最前面に移動する場合は、対応するARObjectのrenderingOrder値を非常に大きい値に設定します。
同じARObject内の拡張オブジェクトの描画順序については、Drawable2D.zOrderを参照してください。
整数にする必要があります。
デフォルト値: 0
snapToScreen.enabled
Boolean
trueに設定した場合、すべての拡張オブジェクトが、snapToScreen.snapContainer要素によって指定されたdivにレンダリングされます。このとき、Trackable2DObjectはonEnterFieldOfVision状態にある必要があります。そうでない場合、enabledをtrueに設定しても効果はありません。その代わりに、onEnterFieldOfVision状態にないときにenabledをfalseに設定することは有効です。したがって、Trackable2DObjectをカメラビューに固定表示できるのはターゲットが認識されているときだけですが、固定表示されているTrackable2DObjectはいつでも通常に戻すことができます。
デフォルト値: false
snapToScreen.enableDelayed
Number
onEnterFieldOfVisionトリガーが実行されてからアタッチされたDrawableがカメラビューに固定表示されるまでの遅延時間。負の値を設定すると固定表示が無効になります。遅延中にターゲットが失われると、onDelayedSnapInterruptionトリガーが実行されます。
デフォルト値: -1
snapToScreen.enableOnExitFieldOfVision
Boolean
trueに設定した場合、onExitFieldOfVisionトリガーが発生したときに、関連付けられた拡張オブジェクトがカメラビューに固定表示されます。このプロパティを使用すると、ターゲットがカメラビューから外れた場合にも拡張オブジェクトをカメラビューに固定表示できます。このような動作はenabledプロパティでは実現できません。固定表示を無効にするには、たとえば、onEnterFieldOfVisionトリガーなどの任意の時点でenabledプロパティをfalseに設定します。
デフォルト値: false
snapToScreen.snapContainer
DOM Element
固定表示が有効な場合にこのTrackable2DObjectに関連付けられたすべての拡張オブジェクトを収容するDOM要素。すべての拡張オブジェクトがこの要素に収まるように、拡張オブジェクトにスケーリングを適用しなければならない場合があります。また、DOM要素のアスペクト比も確認する必要があります。
デフォルト値: null
イベント
onClick
ARObjectのいずれかの拡張オブジェクトがクリックされたとき、どの拡張オブジェクトのonClick()トリガーでもクリックキューが停止されない場合に実行されます。ARObject.onClick()トリガーは、すべてのDrawable.onClick()トリガーが実行された後に実行されます。
複数のARObjectがクリックされた場合、実行順序はユーザーに対するARObjectの距離によって決定され、最も近いARObjectのonClickトリガーが最初に実行されます。
onClick()トリガーの戻り値は、このARObjectのonClick()トリガーが実行された後にキューの次のARObjectのonClick()トリガーを実行するかどうかを決定します。キューの最後のARObjectがさらにクリックキューの実行を要求した場合は、context.onScreenClick()トリガーが実行されます。
このトリガーの戻り値により後続のクリックキューの処理を決定します。falseの場合、クリックキューの実行はこのARObjectで停止しません。したがって、次のARObjectのonClick()トリガーが実行されます。これは、戻り値が設定されていない場合、またはこのARObjectに対してonClick()トリガーが定義されていない場合のデフォルト値です。trueの場合、キューの実行は現在のARObjectで停止し、後続のARObjectのonClick()トリガーは実行されません。
onDragBegan
ユーザーが1本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onDragChanged
ユーザーが1本の指で少なくとも1つのDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onDragEnded
ユーザーが1本の指で1つ以上のDrawableをドラッグして停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onEnterFieldOfVision
このトリガーは、ARObjectの可視/不可視状態が不可視から可視に変更されたときに発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonEnterFieldOfVisionトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onExitFieldOfVision
Positionableの可視性が可視から不可視に変わったときに実行されます。
トリガーはデフォルトでは null であり、トリガーが発生したときに実行されるアクションはありません。開発者は、カスタム関数をonExitFieldOfVisionに割り当てることによってカスタム機能を追加できます。
onPanBegan
ユーザーが2本の指で1つ以上のDrawableをドラッグし始めたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
onPanChanged
ユーザーが2本の指で少なくとも1つのDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onPanEnded
ユーザーが1本の指で2つ以上のDrawableをドラッグして停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onRotationBegan
ユーザーが2本の指で少なくとも1つのDrawableの回転を開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。回転ジェスチャの変更が発生していない場合、onRotationBeganは常に0です。
onRotationChanged
ユーザーが2本の指で少なくとも1つのDrawableの回転をさせたときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。
onRotationEnded
ユーザーが2本の指で少なくとも1つのDrawableの回転を停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。 onRotationChangedで受け取った最新の角度と常に同じ。
onScaleBegan
ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小を開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。 スケールジェスチャへの変更が発生していない場合、onScaleBeganは常に1です。
onScaleChanged
ユーザーが2本の指で少なくとも1つのDrawableの拡大縮小したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。
onScaleEnded
ユーザーが2本の指で少なくとも1つのDrawable拡大縮小を停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。onScaleChangedで受信した最新のスケールと常に同じ。
snapToScreen.onDelayedSnapInterruption
Function
onExitFieldOfVisionイベントによって画面の固定表示が遅延した場合に呼び出されるトリガー。
イベントペイロード:
-
interruptionTimestamp
NumberenabledDelayedプロパティによってアクティブ化されてからonExitFieldOfVisionイベントによって中断されるまでの経過時間(ミリ秒単位)。
snapToScreen.onSnappedToScreen
Function
拡張オブジェクトの固定表示時に呼び出されるトリガー。
イベントペイロード:
-
element
DOM Element拡張オブジェクトを固定表示する対象のDOM要素。