Skip to main content

インクデータ

ink modelは、一連のStrokeインスタンスを保持するデータレポジトリであるStroke Repository内にデジタルインクコンテンツを保持します (図1を参照)brush-spline 図1:インクストローク

以下のセクションでさらに詳細を示します。

Geometry

インクストロークのジオメトリは、そのStrokeによって表現されます。

Stroke

Strokeは以下の組み合わせとして定義されます。

  • データ点のシーケンスという形のCatmull-Rom spline (必須)、および点ごとの変換データ (オプション)
  • スプラインのビジュアル表示方法に関するレンダリング設定 (オプション)
  • パスの起点となる生の入力データ(SensorDataインスタンス)への参照 (オプション)

メモ:

Strokeインスタンスは、Strokesレポジトリに追加された時点で変更不可とみなされます。 Strokeインスタンスは、セクション8.2「Protocol Buffersのシリアル化スキーム」に従い、protobuf message Stroke.を使用してシリアル化されます。

Catmull-Rom splineは、Strokeの範囲で次の属性を使用して定義されます。

  • splineTs, splineTf - スプラインの開始および終了パラメータ
  • spline - スプラインデータ点のシーケンス
  • color - カラー値のシーケンス(スプラインデータ点ごと。提供される場合、このシーケンスの長さはスプラインの点の数と等しい必要があります)
  • perPointTransform - 変換行列のシーケンス(スプラインデータ点ごと。提供される場合、このシーケンスの長さはスプラインの点の数と等しい必要があります)

Strokeは、その元の生の入力データフレームに関する情報を保持する場合があります。 この関係は、次の属性を使用してエンコードされます。

  • sensorData - SensorDataレポジトリによって提供される、SensorDataインスタンスへの参照
  • sensorDataOffset - の最初の点にマッピングされる、生の入力データフレーム内のポイントインデックスCatmull-Rom spline
  • sensorDataMapping - Catmull-Rom splineのそれぞれの点にマッピングされる、生の入力データフレーム内のインデックスの配列(提供される場合、この配列の長さはスプラインの点の数と等しい必要があります)

また、Strokeは、下の「レンダリング」セクションに詳述されるStyle属性を定義することにより、スプラインのビジュアル表示方法に関する追加情報も保持する場合があります。

Rendering

Strokeインスタンスは、プラットフォーム固有のレンダリングエンジンによる補間およびレンダリング方法に関する情報を保持する場合があります。 この追加設定は、ストロークのStyle属性を使用して定義されます。

Style

Styleは、PathPointProperties設定、Brushへの参照、乱数生成器のシード値、およびレンダリングメソッドタイプの組み合わせとして定義されます。 Style属性を設定することにより、特定のストロークポイント属性、カラーコンポーネント、および/または行列変換コンポーネントのオーバーライドが可能になります。 通常、定数パスコンポーネントを定義するには、PathPointPropertiesを設定したStyleを使用する必要があります。

メモ: Styleインスタンスは、セクション8.2「Protocol Buffersのシリアル化スキーム」に従い、protobuf message Style.を使用してシリアル化されます。

例: Strokeに点ごとのカラーデータを使用し、Styleにアルファ値を使用すると、Strokeは定数アルファでレンダリングされます。

PathPointProperties

シンプルなデータモデルで、サイズ、カラーコンポーネント、および行列変換コンポーネントを保持する場合があります。

メモ: PathPointPropertiesインスタンスは、セクション8.2「Protocol Buffersのシリアル化スキーム」に従い、protobuf message PathPointProperties.を使用してシリアル化されます。

Strokeのレンダリング方法に関する情報は、レンダリングメソッドタイプ(renderModeURI)や、Brush、保持中のレンダリング、およびラスタライズ設定への参照を使用して、Styleに組み込まれます。 ink modelは、一連のBrushインスタンスを保持するデータレポジトリであるBrush Repositoryに、使用可能なすべてのレンダリング設定を保持します。 次の定義が適用されます。

Brush

パスのレンダリング段階で使用されるレンダリング/ラスター化設定です。クラス階層において、Brushは次のクラスに特化された抽象クラスとみなす必要があります。

  • VectorBrush - この設定により、サイズやその後のマージ結果に応じて補間されたそれぞれの点に一定のポリゴンを適用し、補間されるCatmull-Romスプラインをベクトルスプラインとしてレンダリングすることが可能。
  • RasterBrush - この設定により、サイズに応じて補間されたそれぞれの点に一定のスプライトを適用し、補間されるCatmull-Romスプラインをラスター画像としてレンダリングすることが可能。

メモ:

VectorBrushインスタンスは、セクション8.2「Protocol Buffersのシリアル化スキーム」に従い、protobuf message VectorBrush.を使用してシリアル化されます。 RasterBrushインスタンスは、セクション8.2「Protocol Buffersのシリアル化スキーム」に従い、protobuf message RasterBrushを使用してシリアル化されます。 Brushレポジトリは、反復するメッセージフィールドBrushes.vectorBrushesおよびBrushes.rasterBrushesのprotobuf message Brushes を使用して、下位のブラシインスタンスの集合をシリアル化します。