Menu

manipulation Posts

Surface : Affine2DInertiaProcessor

Pour faire suite à mon dernier billet, je vais maintenant expliquer une autre classe du SDK Microsoft Surface, l’Affine2DInertiaProcessor. Cette classe permet de gérer de l’inertie sur des objets. Comme pour l’Affine2DManipulationProcessor, cette classe s’utilise quasiment pareil.

La principale utilisation de cette classe réside dans l’ajout d’une inertie sur un objet suite à une manipulation (le plus souvent grâce à un Affine2DManipulationProcessor) pour ajouter du réalisme dans son interface NUI (Natural User Interface).

Le code ci-dessous vous montre comment utiliser l’Affine2DInertiaProcessor après une manipulation.

Read More

Surface : Affine2DManipulationProcessor

Quand on travaille sur Microsoft Surface, il y a une chose qui nous préoccupe, c’est la compréhension des gestuelles que peuvent faire les utilisateurs sur la table. Tap, ContactDown, agrandissement, rotation, translation, etc… Comment savoir, et surtout comment traiter cette information de façon efficace.

Le SDK Microsoft Surface nous apporte un outil pour cette problématique, l’Affine2DManipulationProcessor. Cette classe assez méconnue, qui se trouve dans le namespace Microsoft.Surface.Presentation.Manipulations, permet facilement de connaitre les gestuelles présente sur la table, voir même de les filtrer.

Le principe est simple, une fois instancié, cette classe permet de scruter et d’analyser les contacts sur la table. Pour faire simple, on donne à l’Affine2DManipulationProcessor des contacts à scruter et celle-ci les analyses pendant tout leur cycle de vie et nous informe des gestuelles qui peuvent être déduite de l’évolution de ses contacts.

Les manipulations sont calculées par rappart à un container UIElement donné. Au moment de l’instanciation de l’Affine2DManipulationProcessor, il y a deux paramètres. Le premier est le type de manipulation que l’on veut observer et le second dans quel contexte graphique. Ainsi, une manipulation est toujours déterminée par son container source, même si celui-ci subit des transformations (rotation, translation, etc..) l’Affine2DManipulationProcessor fournira des informations de manipulation comme si celui-ci n’avait subit ses transformations.

Read More