SMART Emulator

Toolkits.SMARTEmulator History

Hide minor edits - Show changes to output

Changed line 40 from:
** If you don't have it, get it at [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
to:
** If you don't have it, get it at [[http://www.microsoft.com/downloads/details.aspx?FamilyID=f1ae9a30-4928-411d-970b-e682ab179e17&displaylang=en|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
Changed lines 107-108 from:
* [[Attach:SimpleInkPotsWithEventManagement.zip |Example of Event Management]] This example illustrates how to stop events from propagating from the touch handler on the canvas vs. on a Draggable Border.
to:
* [[Attach:SimpleInkPotsWithEventManagement.zip |Example of Event Management]] This example illustrates the e.TouchContact.CapturedElement, where a canvas touch will produce drawing actions only if no other object (e.g. a DraggableObject) is handling the touch as well.
Changed lines 107-108 from:
to:
* [[Attach:SimpleInkPotsWithEventManagement.zip |Example of Event Management]] This example illustrates how to stop events from propagating from the touch handler on the canvas vs. on a Draggable Border.
Added lines 103-108:
[[#recipes]]
>>yellowbox<<
!!! Tips
* [[SMART-HowToIncludeBlendSimulations | How To Include Blend Simulations]]

>><<
Deleted line 117:
[[#recipes]]
October 26, 2009, at 12:15 PM by 136.159.117.2 -
Added line 66:
Changed lines 70-72 from:
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
to:
!!!!TouchContacts
* (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
Changed lines 1-3 from:

!!!!TouchContacts (based on the template)
* displays ellipses showing your ID and Position when you touch and drag. \\
to:
%define=box padding-left=1em padding-right=1em margin='3px 3px 0'%
%define=yellowbox box bgcolor=#fdfaea border='1px solid #ffad80'%
%define=redbox box bgcolor=#fff3f3 border='1px solid #ffc9c9'%
%define=bluebox box bgcolor=#f4fbff border='1px solid #a1cae6'%
%define=skybox box bgcolor=#f8fcff border='1px solid #aaaaaa'%
%define=greybox box bgcolor=#fbfbfb border='1px solid #aaaaaa'%
%define=greenbox box bgcolor=#e6f3e5 border='1px solid #8fd586'%
%define=whitebox box bgcolor=#ffffff border='1px solid #999999'%
\\
%rfloat% Attach:smart_emulator.png
The SMART Table Emulator is provided by SMART Technologies Inc. Under the covers, it uses the technology developed by Edward Tse in his SDG Toolkit to use mice to emulate touch events. This allows tabletop systems to be developed on a standard computer (at least to some extent).

'''Table vs. Emulator touches.''' The SMART Table normally returns touches as contact events (Down, Move, and UP) along with a variety of properties (ID, Position, Intensity, Height, PCAAngle, PCAMajor, PCAMinor). The SMART Table Emulator is more limited:
* it returns only the equivalent of the center point of a finger touch.
* each touch has a corresponding ID unique to each mouse, and a point position (the equivalent of the center point of a finger touch).
* other contact properties are set to 0 (Intensity, Height, PCA Angle/Major/Minor) .
* button press state in not available; you only get events when the left button is pressed.

!!! Contents

* [[#download | Download and Installation]]
* [[#tutorials | Tutorials and Examples]]
\\
\\

[[#download]]
>>greenbox<<
!!! Download and Installation

'''''WARNING:''' The installation does NOT work with a 64 bit operating system (even if you use a 32 bit virtual machine)''

Follow these step by step instructions '''once''' to install the emulator. Note that we are working with an internal SDK, so its not yet as polished as it could be.
# '''''Prerequisite 1:''''' Install Visual Studio 2008 + SP1 if you have not already done so.
# '''''Prerequisite 2:''''' Install .NET 3.5 '''ServicePack 1''' if you have not already done so.
** To check, open Visual Studio, and select ''Help/About Microsoft Visual Studio''. The top of the dialog box describes the versions of Visual Studio and the .NET framework you have, including the service packs (if any).
*** If you are missing it, go [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | here]], Download the service pack. If it doesn't seem to do anything, or if you also need the compact framework, scroll to the end of that page and download the full package (note that this takes a while).
# '''''Prerequisite 3:''''' ''(Recommended)'' Install Expression Blend 3.0 SDK.
** If you have already install Microsoft Expression Blend, you should have it.
** To check if its already installed, look for ''Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/''.
** If you don't have it, get it at [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
# '''''Install''''' the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
** Just keep clicking next until it is installed
# '''''Try the examples''''' below. Don't forget to plug in a second mouse!
>><<


[[#tutorials]]
>>bluebox<<
!!! Examples supplied by SMART Technologies (some use deprecated APIs)
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder)
* Try them!
>><<

>>bluebox<<
!!! Our Examples
'''Download examples:''' [[Attach:SMART-TableExamples.zip | Our SMART Table Examples ]]. \\
'''Notes''':
* The code here provides a good starting point for developing your applications.
* These projects assume that the SMART libraries are located in the standard installation place (C:Program Files, etc.).
* You should have at least two mice plugged in to see the desired behaviour.

The contents are described below.
!!!!Template
* an 'empty' template complete with event handlers, useful as a starting point
* it includes an IDProperties class to associate state with an ID
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
October 26, 2009, at 11:29 AM by 136.159.117.2 -
Changed lines 2-3 from:
!!!!TouchContacts (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
to:
!!!!TouchContacts (based on the template)
*
displays ellipses showing your ID and Position when you touch and drag. \\
October 26, 2009, at 11:28 AM by 136.159.117.2 -
Changed lines 1-69 from:
%define=box padding-left=1em padding-right=1em margin='3px 3px 0'%
%define=yellowbox box bgcolor=#fdfaea border='1px solid #ffad80'%
%define=redbox box bgcolor=#fff3f3 border='1px solid #ffc9c9'%
%define=bluebox box bgcolor=#f4fbff border='1px solid #a1cae6'%
%define=skybox box bgcolor=#f8fcff border='1px solid #aaaaaa'%
%define=greybox box bgcolor=#fbfbfb border='1px solid #aaaaaa'%
%define=greenbox box bgcolor=#e6f3e5 border='1px solid #8fd586'%
%define=whitebox box bgcolor=#ffffff border='1px solid #999999'%
\\
%rfloat% Attach:smart_emulator.png
The SMART Table Emulator is provided by SMART Technologies Inc. Under the covers, it uses the technology developed by Edward Tse in his SDG Toolkit to use mice to emulate touch events. This allows tabletop systems to be developed on a standard computer (at least to some extent).

'''Table vs. Emulator touches.''' The SMART Table normally returns touches as contact events (Down, Move, and UP) along with a variety of properties (ID, Position, Intensity, Height, PCAAngle, PCAMajor, PCAMinor). The SMART Table Emulator is more limited:
* it returns only the equivalent of the center point of a finger touch.
* each touch has a corresponding ID unique to each mouse, and a point position (the equivalent of the center point of a finger touch).
* other contact properties are set to 0 (Intensity, Height, PCA Angle/Major/Minor) .
* button press state in not available; you only get events when the left button is pressed.

!!! Contents

* [[#download | Download and Installation]]
* [[#tutorials | Tutorials and Examples]]
\\
\\

[[#download]]
>>greenbox<<
!!! Download and Installation

'''''WARNING:''' The installation does NOT work with a 64 bit operating system (even if you use a 32 bit virtual machine)''

Follow these step by step instructions '''once''' to install the emulator. Note that we are working with an internal SDK, so its not yet as polished as it could be.
# '''''Prerequisite 1:''''' Install Visual Studio 2008 + SP1 if you have not already done so.
# '''''Prerequisite 2:''''' Install .NET 3.5 '''ServicePack 1''' if you have not already done so.
** To check, open Visual Studio, and select ''Help/About Microsoft Visual Studio''. The top of the dialog box describes the versions of Visual Studio and the .NET framework you have, including the service packs (if any).
*** If you are missing it, go [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | here]], Download the service pack. If it doesn't seem to do anything, or if you also need the compact framework, scroll to the end of that page and download the full package (note that this takes a while).
# '''''Prerequisite 3:''''' ''(Recommended)'' Install Expression Blend 3.0 SDK.
** If you have already install Microsoft Expression Blend, you should have it.
** To check if its already installed, look for ''Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/''.
** If you don't have it, get it at [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
# '''''Install''''' the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
** Just keep clicking next until it is installed
# '''''Try the examples''''' below. Don't forget to plug in a second mouse!
>><<


[[#tutorials]]
>>bluebox<<
!!! Examples supplied by SMART Technologies (some use deprecated APIs)
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder)
* Try them!
>><<

>>bluebox<<
!!! Our Examples
'''Download examples:''' [[Attach:SMART-TableExamples.zip | Our SMART Table Examples ]]. \\
'''Notes''':
* The code here provides a good starting point for developing your applications.
* These projects assume that the SMART libraries are located in the standard installation place (C:Program Files, etc.).
* You should have at least two mice plugged in to see the desired behaviour.

The contents are described below.
!!!!Template
* an 'empty' template complete with event handlers, useful as a starting point
* it includes an IDProperties class to associate state with an ID
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
to:


!!!!TouchContacts (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
Changed line 106 from:
* '''[[Attach:DrggableVideos.zip |DraggableVideos]]'''
to:
* '''[[Attach:DraggableVideos.zip |DraggableVideos]]'''
Added line 106:
* '''[[Attach:DrggableVideos.zip |DraggableVideos]]'''
Changed lines 101-105 from:
!!IGNORE THE STUFF BELOW THIS LINE. WE ARE REDOING THESE EXAMPLES

!!!!The following has not been translated to the new examples
.
Illustrates how to create and exploit a canvas that gets touch events.
to:
!!Old Stuff (Ignore)

!!!!The following examples have not been translated to the new coding format
.
Changed line 37 from:
# '''''Prerequisite 3:''''' '('Recommended)'' Install Expression Blend 3.0 SDK.
to:
# '''''Prerequisite 3:''''' ''(Recommended)'' Install Expression Blend 3.0 SDK.
Changed line 35 from:
** To check, open up Visual Studio, and select H''elp/About Microsoft Visual Studio''. The top left of the dialog box describes the version of Visual Studio you have (including the service pack, if any), and the top right describes what version of the .NET framework you have (also including service pack, if any).
to:
** To check, open Visual Studio, and select ''Help/About Microsoft Visual Studio''. The top of the dialog box describes the versions of Visual Studio and the .NET framework you have, including the service packs (if any).
Changed line 35 from:
** To check, go into your control panel, look at the installed programs for Microsoft .NET Compact Framework 3.5 SP1.
to:
** To check, open up Visual Studio, and select H''elp/About Microsoft Visual Studio''. The top left of the dialog box describes the version of Visual Studio you have (including the service pack, if any), and the top right describes what version of the .NET framework you have (also including service pack, if any).
Changed lines 102-106 from:
!!!Old Examples from Saul and Nic (some use deprecated APIs)
'''Download:''' [[Attach:SMART-TouchExamples
.zip | All Touch Examples ]]. \\
'''Note ''': The main folder includes a folder called 'library'. This library contains the SMART dlls. If you copy an example to some other location, , you may have to relink the references to the dlls in that library.

!!!!Set 1: Using the MultiTouch Client approach
to:
!!!!The following has not been translated to the new examples.
Deleted lines 105-110:
* '''TouchEvents template'''. This 'empty' application:
** registers for the Down, Move and Up events,
** translates mouse IDs into 0-based IDs via an IDProperty class (handy to use as array indexes).
* '''Touch Contact'''. Visualizes touch down/move events by:
** showing a circle around the contact point,
** displaying the ID and x,y position of the touch event.
Deleted lines 107-117:
* '''Multi User Line'''. This program uses the same event handlers to let several mice adjust different points on a line.
** illustrates hit testing on handles using an asynchronous call for hit testing to get all elements, and then uses inline delegates
* '+''' NEW.'''+''''Simpler Paint With Color Chips'''. This program is identical to simpler paint, except that it also displays a color palette. Each touch draws with its own selected color.

!!!!Example Set 2: Using DraggableBorders within the TableApplicationControl
Illustrates how to use draggable touch-sensitive objects within a Table Application Control

* '''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
* '''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
*'+''' NEW.'''+''''Draggable Images That Interact'''. A variant of the above that shows how we can see if the center point of one border is within another border (i.e., you can use this to implement drag and drop behaviour, and you can elaborate on it to produce a form of collision detection).
Deleted line 109:
Deleted lines 116-121:
!!!Still to be tested
'''Note :''' May not work; depends on if you had installation security issues
* [[Attach:SMART-EmptyTemplate.zip|Empty Template (Canvas)]]. This is the default template for development. It includes all the necessary libraries and code to create a basic table application.
* [[Attach:NotReady-SMARTLocalTools.zip | Local Tools]] Doesn't yet behave the way I want it to.
Changed lines 96-99 from:
to:
!!!Draggable Borders That Interact
* A variant of Draggable Borders that show a variety of them interacting with each other, where dragging one border atop the other causes it to acquire its color \\
Attach:SMART-DraggableBordersThatInteract.png
Added lines 83-87:
!!!!Multi User Line
* Adjusts a line via several touches
* Illustrates hit-testing \\
Attach:SMART-MultiUserLine.png
Changed lines 96-100 from:
!!!!Multi User Line
* Adjusts a line via several touches
* Illustrates hit-testing \\
Attach:SMART-MultiUserLine.png
to:
Changed line 91 from:
!!!!'Multi User Line
to:
!!!!Multi User Line
Changed line 93 from:
* Illustrates hit-testing
to:
* Illustrates hit-testing \\
Changed lines 91-93 from:
to:
!!!!'Multi User Line
* Adjusts a line via several touches
* Illustrates hit-testing
Attach:SMART-MultiUserLine.png
Changed lines 66-67 from:
'''Template:''' an 'empty' template complete with event handlers, useful as a starting point
to:
!!!!Template
* an 'empty' template complete with event handlers, useful as a starting point
Changed line 72 from:
'''InkPots Version 1''' (by Ed Tse). It shows:
to:
!!!!InkPots Version 1 (by Ed Tse).
Changed lines 77-78 from:
'''InkPots Version 2''' Version 2 (by Saul) is modified to show a few more things
to:
!!!!InkPots Version 2(by Saul)
* a modification of the above
to show a few more things
Changed lines 83-84 from:
'''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled. \\
to:
!!!!Draggable Borders
* displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled. \\
Changed lines 87-88 from:
'''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled \\
to:
!!!!Draggable Images
* A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled \\
Changed lines 55-57 from:
to:
>><<

>>bluebox<<
Changed lines 49-53 from:
!!! Tutorials and Examples


!!! The Best Example Set
'''Download examples:''' [[Attach:SMART-TableExamples.zip | The Best Set of
Examples ]]. \\
to:
!!! Examples supplied by SMART Technologies (some use deprecated APIs)
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder)
* Try them!

!!! Our Examples
'''Download examples:''' [[Attach:SMART-TableExamples.zip | Our SMART Table
Examples ]]. \\
Added line 59:
* The code here provides a good starting point for developing your applications.
Changed lines 86-92 from:
!!! Other Examples supplied by SMART Technologies (some use deprecated APIs)
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder)
* Try them!
to:
Changed lines 88-89 from:
to:
---
!!IGNORE THE STUFF BELOW THIS LINE. WE ARE REDOING THESE EXAMPLES
Changed lines 118-119 from:
---
!!IGNORE THE STUFF BELOW THIS LINE
to:
Changed lines 58-60 from:
'''Contents'''
* '''Template:''' an 'empty' template complete with event handlers, useful as a starting point
** it includes an IDProperties class to associate state with an ID
to:
The contents are described below.
'''Template:''' an 'empty' template complete with event handlers, useful as a starting point
* it includes an IDProperties class to associate state with an ID
Changed lines 63-65 from:
* '''InkPots Version 1''' (by Ed Tse). It shows:
** a canvas where each user can touch and draw in his / her own color
** it includes multi-user touch buttons \\
to:
'''InkPots Version 1''' (by Ed Tse). It shows:
* a canvas where each user can touch and draw in his / her own color
* it includes multi-user touch buttons \\
Changed lines 68-70 from:
* '''InkPots Version 2''' Version 2 (by Saul) is modified to show a few more things
** it uses the IDProperties class to associate state with the touch ID
** it shows how to add DraggableBoxes and capture touch events from them \\
to:
'''InkPots Version 2''' Version 2 (by Saul) is modified to show a few more things
* it uses the IDProperties class to associate state with the touch ID
* it shows how to add DraggableBoxes and capture touch events from them \\
Changed lines 73-74 from:
* '''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled. \\
to:
'''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled. \\
Changed lines 76-77 from:
* '''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled \\
Attach:SMART-DraggableBorders.png
to:
'''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled \\
Attach:SMART-DraggableImages.png
Changed lines 71-74 from:
to:
* '''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled. \\
Attach:SMART-DraggableBorders.png
* '''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled \\
Attach:SMART-DraggableBorders.png
Changed line 51 from:
'''Note''': You should have at least two mice plugged in to see the desired behaviour.
to:
Changed lines 53-55 from:
'''Download:''' [[Attach:SMART-TableExamples.zip | The Best Set of Examples ]]. \\
'''NOTE''': These projects assume that the SMART libraries are located in the standard installation place (C:Program Files, etc.). \\
These examples include:
to:
'''Download examples:''' [[Attach:SMART-TableExamples.zip | The Best Set of Examples ]]. \\
'''Notes''':
*
These projects assume that the SMART libraries are located in the standard installation place (C:Program Files, etc.).
* You should have at least two mice plugged in to see the desired behaviour.

'''Contents'''
Changed line 58 from:
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you touch and drag
to:
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you touch and drag. \\
Changed lines 62-63 from:
** it includes multi-user touch buttons
to:
** it includes multi-user touch buttons \\
Attach:SMART-InkPotsVersion1.png
Changed lines 66-67 from:
** it shows how to add DraggableBoxes and capture touch events from them
to:
** it shows how to add DraggableBoxes and capture touch events from them \\
Attach:SMART-InkPotsVersion2.png
Added line 59:
Attach:SMART-TouchContacts.png
Changed line 52 from:
!!! The Best Example
to:
!!! The Best Example Set
Changed line 66 from:
!!! Examples supplied by SMART Technologies (some use deprecated APIs)
to:
!!! Other Examples supplied by SMART Technologies (some use deprecated APIs)
Changed line 74 from:
!!!Examples from Saul and Nic (some use deprecated APIs)
to:
!!!Old Examples from Saul and Nic (some use deprecated APIs)
Changed line 53 from:
'''Download:''' [[Attach:SMART-InkPots.zip | Ink Pots ]]. \\
to:
'''Download:''' [[Attach:SMART-TableExamples.zip | The Best Set of Examples ]]. \\
Changed lines 55-62 from:
These examples illustrate two versions of a drawing program
* Version 1 by Ed Tse illustrates
** a canvas where each user can select and draw in his / her own color
** how to add touch events to both the canvas and to multi-user
touch buttons
* Version 2 is modified
by Saul to show a few more things and a better template for you to follow, e.g.,
** to use an IDProperties class to associate state with an ID
**
how to add DraggableBoxes and capture touch events from them
to:
These examples include:
* '''Template:''' an 'empty' template complete with event handlers, useful as a starting point
** it includes an IDProperties class to associate state with an ID
* '''TouchContacts''' (based on the template) that displays ellipses showing your ID and Position when you
touch and drag
* '''InkPots Version 1''' (
by Ed Tse). It shows:
**
a canvas where each user can touch and draw in his / her own color
** it includes multi-user touch buttons
* '''InkPots Version 2''' Version 2 (by Saul) is modified to show a few more things
** it uses the IDProperties class to associate state with the touch ID
** it shows
how to add DraggableBoxes and capture touch events from them
Added lines 30-31:
'''''WARNING:''' The installation does NOT work with a 64 bit operating system (even if you use a 32 bit virtual machine)''
Changed lines 44-50 from:
[[#recipes]]
>>yellowbox<<
!!! Tips
* [[SMART-ExplaningMultiTouchClient | DEPRECATED: Dont USE. Explaining the MultiTouch Client]]

>><<
to:
Added lines 97-105:
---
!!IGNORE THE STUFF BELOW THIS LINE
[[#recipes]]
>>yellowbox<<
!!! Tips
* [[SMART-ExplaningMultiTouchClient | DEPRECATED: Dont USE. Explaining the MultiTouch Client]]

>><<
Changed line 67 from:
!!! Examples supplied by SMART Technologies
to:
!!! Examples supplied by SMART Technologies (some use deprecated APIs)
Changed line 75 from:
!!!Examples from Saul and Nic
to:
!!!Examples from Saul and Nic (some use deprecated APIs)
Changed line 55 from:
'''Note''': You should have at least two mice plugged in to see the desired behaviour. \\
to:
'''Note''': You should have at least two mice plugged in to see the desired behaviour.
Changed lines 47-48 from:
* [[SMART-ExplaningMultiTouchClient | Explaining the MultiTouch Client]]
to:
* [[SMART-ExplaningMultiTouchClient | DEPRECATED: Dont USE. Explaining the MultiTouch Client]]
Changed lines 56-66 from:
to:
!!! The Best Example
'''Download:''' [[Attach:SMART-InkPots.zip | Ink Pots ]]. \\
'''NOTE''': These projects assume that the SMART libraries are located in the standard installation place (C:Program Files, etc.). \\
These examples illustrate two versions of a drawing program
* Version 1 by Ed Tse illustrates
** a canvas where each user can select and draw in his / her own color
** how to add touch events to both the canvas and to multi-user touch buttons
* Version 2 is modified by Saul to show a few more things and a better template for you to follow, e.g.,
** to use an IDProperties class to associate state with an ID
** how to add DraggableBoxes and capture touch events from them
Changed line 66 from:
'''Download:''' [[Attach:SMART-MultiTouchCientExamples.zip | All Touch Examples ]]. \\
to:
'''Download:''' [[Attach:SMART-TouchExamples.zip | All Touch Examples ]]. \\
Changed lines 89-90 from:
'''Draggable Images That Interact'''. A variant of the above that shows how we can see if the center point of one border is within another border (i.e., you can use this to implement drag and drop behaviour, and you can elaborate on it to produce a form of collision detection).
to:
*'+''' NEW.'''+''''Draggable Images That Interact'''. A variant of the above that shows how we can see if the center point of one border is within another border (i.e., you can use this to implement drag and drop behaviour, and you can elaborate on it to produce a form of collision detection).
Changed lines 87-89 from:
* '''DraggableBorders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
* '''DraggableImages'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
to:
* '''Draggable Borders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
* '''Draggable Images'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
'''Draggable Images That Interact'''. A variant of the above that shows how we can see if the center point of one border is within another border (i.e., you can use this to implement drag and drop behaviour, and you can elaborate on it to produce a form of collision detection).
Changed lines 82-83 from:
* '+''' NEW.'''+''''Simpler Paint With Color Chips'''. This program is identical to simpler paint, except that it also displays a color palette. Each touch draws with its own selected color. Note
to:
* '+''' NEW.'''+''''Simpler Paint With Color Chips'''. This program is identical to simpler paint, except that it also displays a color palette. Each touch draws with its own selected color.
Changed lines 82-83 from:
to:
* '+''' NEW.'''+''''Simpler Paint With Color Chips'''. This program is identical to simpler paint, except that it also displays a color palette. Each touch draws with its own selected color. Note
Changed lines 55-56 from:
'''Note 1''': You should have at least two mice plugged in to see the desired behaviour. \\
'''Note 2''': For all examples except the SMART ones, the examples include a folder called 'library'. This library contains the SMART dlls. If you use an example as a template and move it to a different (Relative) location, you may have to relink the references to the dlls in that libary.
to:
'''Note''': You should have at least two mice plugged in to see the desired behaviour. \\
Changed lines 65-69 from:
!!!Example Set 1: Using the MultiTouch Client approach
to:
!!!Examples from Saul and Nic
'''Download:''' [[Attach:SMART-MultiTouchCientExamples.zip | All Touch Examples ]]. \\
'''Note ''': The main folder includes a folder called 'library'. This library contains the SMART dlls. If you copy an example to some other location, , you may have to relink the references to the dlls in that library.

!!!!
Set 1: Using the MultiTouch Client approach
Deleted line 71:
'''Download:''' [[Attach:SMART-MultiTouchCientExamples.zip | All MultiTouchClient Examples ]]. It contains the following.
Changed line 83 from:
!!!Example Set 2: Using DraggableBorders within the TableApplicationControl
to:
!!!!Example Set 2: Using DraggableBorders within the TableApplicationControl
Deleted line 85:
'''Download:''' [[Attach:SMART-Draggables.zip | SMART-Draggables.zip ]]. It contains the following.
Changed line 55 from:
'''Note 1''': You should have at least two mice plugged in to see the desired behaviour.
to:
'''Note 1''': You should have at least two mice plugged in to see the desired behaviour. \\
Changed lines 55-56 from:
'''Note''': You should have at least two mice plugged in to see the desired behaviour
to:
'''Note 1''': You should have at least two mice plugged in to see the desired behaviour.
'''Note 2''': For all examples except the SMART ones, the examples include a folder called 'library'. This library contains the SMART dlls. If you use an example as a template and move it to a different (Relative) location, you may have to relink the references to the dlls in that libary.
Added line 64:
Changed lines 66-67 from:
Illustrates how to create and exploit a canvas that gets touch events
to:
Illustrates how to create and exploit a canvas that gets touch events.
Deleted lines 90-91:
* [[Attach:SMART-ExampleControls.zip|Example Drag Controls]]. In this template, several draggable boxes are added to the table -- these can be moved, resized, and rotated. Please remember to connect at least two mice to your computer before running the application in the simulator.
* [[http://www.nicolaimarquardt.com/ta/code/SMART Table Example Images.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
Changed lines 83-85 from:
'''DraggableBorders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
'''DraggableImages'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
to:
* '''DraggableBorders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
* '''DraggableImages'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
Changed lines 79-82 from:
!!!Example Set 2: Using the TableApplicationControl and DraggableBorders
* '''TableExampleImages'''. Displays several multi-user pictures that can be dragged, rotated, and scaled. Easy but really cool
.
to:
!!!Example Set 2: Using DraggableBorders within the TableApplicationControl
Illustrates how to use draggable touch-sensitive objects within a Table Application Control

'''Download:''' [[Attach:SMART-Draggables.zip | SMART-Draggables.zip ]]
. It contains the following.
'''DraggableBorders'''. Displays several labeled draggable borders (rectangles) that have different abilities to be rotated, translated, and scaled.
'''DraggableImages'''. A minor variant of the above that show how Draggable borders can contain anything, including images that are automatically scaled
Changed lines 67-68 from:
Should be uploaded shortly. Check back in a few minutes.
Download [[Attach:SMART-MultiTouchCientExamples.zip | All MultiTouchClient Examples ]]. It contains the following.
to:
'''Download:''' [[Attach:SMART-MultiTouchCientExamples.zip | All MultiTouchClient Examples ]]. It contains the following.
Changed lines 57-59 from:
!!!Examples using the MultiTouch Client approach (i.e., canvas-wide touch events)
to:
!!! Examples supplied by SMART Technologies
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder
)
* Try them!

!!!Example Set 1: Using the MultiTouch Client approach
Illustrates how to create and exploit a canvas that gets touch events
Changed lines 80-86 from:
!!! Examples supplied by SMART Technologies
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder)
* Try them!
to:
!!!Example Set 2: Using the TableApplicationControl and DraggableBorders
* '''TableExampleImages'''. Displays several multi-user pictures that can be dragged, rotated, and scaled. Easy but really cool.
Changed lines 70-72 from:
* '''Multi User Line'''. This program uses the same event handlers to let several mice adjust different points on a line. It illustrates hit testing on handles, where multiple mice can simultaneously move parts of the line.
** '-Note on hit testing. This example uses the asynchronous call for hit testing to get all elements, and then uses inline
delegates to check for a particular element type (in this case and Ellipse) and also to retrieve the mouseID at the same time. It works with multiple mice simultaneously, and has a simple floor control test method (so that not two people can pick the same handle simultaneously). The HitTest method looks a bit complicated because of the inline delegates,but are very useful and worth knowing.-'
to:
* '''Multi User Line'''. This program uses the same event handlers to let several mice adjust different points on a line.
**
illustrates hit testing on handles using an asynchronous call for hit testing to get all elements, and then uses inline delegates
Changed line 62 from:
* '''TouchEvents template]'''. This 'empty' application:
to:
* '''TouchEvents template'''. This 'empty' application:
Changed line 64 from:
** translates mouse IDs into 0-based IDs (handy to use as array indexes).
to:
** translates mouse IDs into 0-based IDs via an IDProperty class (handy to use as array indexes).
Added lines 59-60:

Should be uploaded shortly. Check back in a few minutes.
Changed lines 58-60 from:
* [[Attach:SMART-TouchEventsTemplate.zip|TouchEvents template]]. This 'empty' application:
to:
Download [[Attach:SMART-MultiTouchCientExamples.zip | All MultiTouchClient Examples ]]. It contains the following.
* '''TouchEvents template]'''
. This 'empty' application:
Changed line 63 from:
* [[Attach:SMART-TouchContacts.zip|Touch Contacts]]. Visualizes touch down/move events by:
to:
* '''Touch Contact'''. Visualizes touch down/move events by:
Changed lines 66-68 from:
* [[Attach:SMART-SimplerPaint.zip|Simpler Paint]]. Uses the same event handlers to draw circles, where each person's color is different. Illustrates a very basic paint program that recognizes mouse ID, and equivalents to mouse down, mouse move, and mouse up events.
* [[Attach:SMART-SimplePaint.zip|Simple Paint Example]]. This program uses the same event handlers as the previous example, but uses the touch information to draw strokes on the canvas.
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let several mice adjust different points on a line. It illustrates hit testing on handles, where multiple mice can simultaneously move parts of the line.
to:
* '''Simpler Paint.''' Uses the same event handlers to draw circles, where each person's color is different. Illustrates a very basic paint program that recognizes mouse ID, and equivalents to mouse down, mouse move, and mouse up events.
* '''Simple Paint Example'''. This program uses the same event handlers as the previous example, but uses the touch information to draw strokes on the canvas.
* '''Multi User Line'''. This program uses the same event handlers to let several mice adjust different points on a line. It illustrates hit testing on handles, where multiple mice can simultaneously move parts of the line.
Changed line 78 from:
!!!Examples based on Smart controls
to:
!!!Still to be tested
Deleted lines 82-89:

!!!Examples supplied by Smart (from the SDK / C# examples folder)
* [[Attach:SMART-ColorFun.zip | Color Fun]] A fun drawing application that combines various things. In particular, it shows you how to make your own InteractiveControl - Important!
* [[Attach:SMART-InkCanvas.zip | Ink Canvas]] Another way to create an inkable canvas
* [[Attach:SMART-DemoGo.zip | Demo Go]] Creates a multi-user Go game. Note that this example looks great, but is of limited value as it does not handle touch events at run time under program control. Still it shows how a game (without rules) can be created simply by adding touch-sensitive objects to the canvas
* [[Attach:SMART-DemoWhiteboard.zip | Demo Whiteboard]] Another whiteboard, but this one uses a multi-touch button.

!!!Examples under development
Deleted lines 77-96:
!!
IGNORE THIS FOR NOW.
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Board%20Drivers.msi|SMART Board drivers]].
## If you get a dialog box that says you don't have administrator permission to do this, you should do the following
*** Click the Start button , click All Programs, and then click Accessories.
*** Right-click Command Prompt, and then click Run as administrator.
*** Use the CD command to navigate to the folder where you downloaded the SMART Board Drivers.msi file
*** Type SMART Board Drivers.msi. It should now begin the installation
## During installation, you will see an option ''Add SMART tools to the startup folder''. Uncheck this option
## Later on, it will say "Could not find a SMART interactive product connected to your computer...". Click the ''Don't show this dialog again'' option, and then select ''No''.
## When asked to register, don't.
# Install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
# Try any of the examples below and compile/run them in Visual Studio 2008.
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.
Changed line 57 from:
!!!Examples based on simple touch events
to:
!!!Examples using the MultiTouch Client approach (i.e., canvas-wide touch events)
Deleted lines 41-43:

Added lines 44-50:
[[#recipes]]
>>yellowbox<<
!!! Tips
* [[SMART-ExplaningMultiTouchClient | Explaining the MultiTouch Client]]

>><<
Deleted lines 56-58:
!!!Documentation
* [[SMART-ExplaningMultiTouchClient | Explaining the MultiTouch Client]]
Changed lines 69-71 from:
Go to the Start Menu, and select SMART Technologies / SMART Table SDK / C# examples folder)
to:
* Go to the Start Menu, and select All Programs / SMART Technologies / SMART Table SDK / Examples / CSharp Demos
* A
folder should appear
* Go up one level to SMART Table SDK
* Copy the entire CSharp Demos folder ''and'' the bin folder into your own areas (to save space, SMART constructs their CSharp programs to reference the binaries in that folder
)
* Try them!
Changed line 40 from:
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
to:
** Just keep clicking next until it is installed
Added lines 67-71:

!!! Examples supplied by SMART Technologies
Go to the Start Menu, and select SMART Technologies / SMART Table SDK / C# examples folder)
Deleted line 38:
**
Changed line 54 from:
!!!Examples based on simple touch events
to:
!!!Documentation
Added lines 56-57:

!!!Examples based on simple touch events
Changed lines 68-69 from:
to:
>><<
Changed lines 104-105 from:
>><<
to:
Changed lines 31-32 from:
# Prerequisite 1: Install Visual Studio 2008 + SP1 if you have not already done so.
# Prerequisite 2: Install .NET 3.5 '''ServicePack 1''' if you have not already done so.
to:
# '''''Prerequisite 1:''''' Install Visual Studio 2008 + SP1 if you have not already done so.
# '''''Prerequisite 2:''''' Install .NET 3.5 '''ServicePack 1''' if you have not already done so.
Changed line 35 from:
# Prerequisite 3. '('Recommended)'' Install Expression Blend 3.0 SDK.
to:
# '''''Prerequisite 3:''''' '('Recommended)'' Install Expression Blend 3.0 SDK.
Changed line 40 from:
# Install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
to:
# '''''Install''''' the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
Changed lines 42-45 from:
# Now try the examples below. Don't forget to plug in a second mouse!
to:
# '''''Try the examples''''' below. Don't forget to plug in a second mouse!
Changed lines 52-53 from:
'''Note''': You must have two mice plugged in for any of these examples to work. Programs may crash otherwise.
to:
'''Note''': You should have at least two mice plugged in to see the desired behaviour
Changed lines 42-59 from:
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
# Try any of the examples below and compile/run them in Visual Studio 2008.
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.


IGNORE THIS FOR NOW.
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Board%20Drivers.msi|SMART Board drivers]].
## If you get a dialog box that says you don't have administrator permission to do this, you should do the following
*** Click the Start button , click All Programs, and then click Accessories.
*** Right-click Command Prompt, and then click Run as administrator.
*** Use the CD command to navigate to the folder where you downloaded the SMART Board Drivers.msi file
*** Type SMART Board Drivers.msi. It should now begin the installation
## During installation, you will see an option ''Add SMART tools to the startup folder''. Uncheck this option
## Later on, it will say "Could not find a SMART interactive product connected to your computer...". Click the ''Don't show this dialog again'' option, and then select ''No''.
## When asked to register, don't.
to:
# Now try the examples below. Don't forget to plug in a second mouse!

Changed lines 67-68 from:
to:
!!
IGNORE THIS FOR NOW.
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Board%20Drivers.msi|SMART Board drivers]].
## If you get a dialog box that says you don't have administrator permission to do this, you should do the following
*** Click the Start button , click All Programs, and then click Accessories.
*** Right-click Command Prompt, and then click Run as administrator.
*** Use the CD command to navigate to the folder where you downloaded the SMART Board Drivers.msi file
*** Type SMART Board Drivers.msi. It should now begin the installation
## During installation, you will see an option ''Add SMART tools to the startup folder''. Uncheck this option
## Later on, it will say "Could not find a SMART interactive product connected to your computer...". Click the ''Don't show this dialog again'' option, and then select ''No''.
## When asked to register, don't.
# Install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
# Try any of the examples below and compile/run them in Visual Studio 2008.
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.
Changed lines 13-16 from:
Differences between ''Table'' vs ''Emulator'' touches. The SMART Table normally returns touches as contact events (Down, Move, and UP) along with a variety of properties (ID, Position, Intensity, Height, PCAAngle, PCAMajor, PCAMinor). The SMART Table Emulator is more limited, as it returns only the equivalent of the center point of a finger touch. Each touch has a corresponding ID unique to each mouse, and a point position (the equivalent of the center point of a finger touch).The other properties don't really apply to a mouse, so they are set to 0 (e.g., Intensity, Height, PCA Angle/Major/Minor). Unlike a mouse, there is no notion of 'buttons' in a touch event. That is, you only get events when the left button is pressed.
to:
'''Table vs. Emulator touches.''' The SMART Table normally returns touches as contact events (Down, Move, and UP) along with a variety of properties (ID, Position, Intensity, Height, PCAAngle, PCAMajor, PCAMinor). The SMART Table Emulator is more limited:
*
it returns only the equivalent of the center point of a finger touch.
* each
touch has a corresponding ID unique to each mouse, and a point position (the equivalent of the center point of a finger touch).
*
other contact properties are set to 0 (Intensity, Height, PCA Angle/Major/Minor) .
* button press state in not available; you only get events when the left button is pressed.
Changed line 33 from:
# ''Recommended:'' Prerequisite 3. Install Expression Blend 3.0 SDK.
to:
# Prerequisite 3. '('Recommended)'' Install Expression Blend 3.0 SDK.
Changed line 38 from:
# Download and install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
to:
# Install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
Changed lines 29-30 from:
# Prerequisite 1: You should have already installed Visual Studio 2008 + SP1
# Prerequisite 2: You should have already installed
.NET 3.5 + SP1
to:
# Prerequisite 1: Install Visual Studio 2008 + SP1 if you have not already done so.
# Prerequisite 2: Install
.NET 3.5 '''ServicePack 1''' if you have not already done so.
Changed lines 33-35 from:
** Expression Blend 3.0.
# (optional) If you aren't going to install Microsoft Expression Blend, you may want to download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required
.
** To check if its already installed, look for ''Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/''.
to:
# ''Recommended:'' Prerequisite 3. Install Expression Blend 3.0 SDK.
** If you have already install Microsoft Expression Blend, you should have it.

** To check if its already installed, look for ''Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/''.
** If you don't have it, get it at [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
**
# Download and install the [[http://grouplab.cpsc.ucalgary.ca/cookbook/uploads/Toolkits/SMART%20Table%20SDK.exe|SMART Table SDK]].
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
# Try any of the examples below and compile/run them in Visual Studio 2008.
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.


IGNORE THIS FOR NOW.
Deleted lines 57-65:
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Table%20SDK.exe|SMART Table SDK]].
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
# Try any of the examples below and compile/run them in Visual Studio 2008.
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.
Changed lines 13-16 from:
We include it here as the SMART Table Emulator also serves as a framework for designing single display groupware applications by managing multiple mice within WPF (the SDG Toolkit does not work in WPF due to its reliance on standard window controls). Unlike the SDG Toolkit, the emulator does not do multiple keyboards. There are a few other differences, as well as additional facilities included with the Emulator.

Note that while we talk about multiple mice, this emulator is
really set up to emulate multiple touches, where it pretends that mice input are simple finger presses.
to:
Differences between ''Table'' vs ''Emulator'' touches. The SMART Table normally returns touches as contact events (Down, Move, and UP) along with a variety of properties (ID, Position, Intensity, Height, PCAAngle, PCAMajor, PCAMinor). The SMART Table Emulator is more limited, as it returns only the equivalent of the center point of a finger touch. Each touch has a corresponding ID unique to each mouse, and a point position (the equivalent of the center point of a finger touch).The other properties don't really apply to a mouse, so they are set to 0 (e.g., Intensity, Height, PCA Angle/Major/Minor). Unlike a mouse, there is no notion of 'buttons' in a touch event. That is, you only get events when the left button is pressed.
October 19, 2009, at 09:06 AM by 136.159.7.119 -
Changed line 63 from:
* [[SMARTExplaningTouchEvents | Explaning touch events]]
to:
* [[SMART-ExplaningMultiTouchClient | Explaining the MultiTouch Client]]
October 19, 2009, at 09:04 AM by 136.159.7.119 -
Changed line 63 from:
* [[SMARTExplanationOfTouchEvents | Explanations of programming touch events]]
to:
* [[SMARTExplaningTouchEvents | Explaning touch events]]
October 19, 2009, at 09:03 AM by 136.159.7.119 -
Added line 63:
* [[SMARTExplanationOfTouchEvents | Explanations of programming touch events]]
October 19, 2009, at 09:02 AM by 136.159.7.119 -
Changed lines 72-73 from:
to:
** '-Note on hit testing. This example uses the asynchronous call for hit testing to get all elements, and then uses inline delegates to check for a particular element type (in this case and Ellipse) and also to retrieve the mouseID at the same time. It works with multiple mice simultaneously, and has a simple floor control test method (so that not two people can pick the same handle simultaneously). The HitTest method looks a bit complicated because of the inline delegates,but are very useful and worth knowing.-'
October 19, 2009, at 09:00 AM by 136.159.7.119 -
Changed lines 74-75 from:
!!!Examples based on Smart controls
to:
!!!Examples based on Smart controls
'''Note :''' May not work; depends on if you had installation security issues
Added lines 84-86:

!!!Examples under development
* [[Attach:NotReady-SMARTLocalTools.zip | Local Tools]] Doesn't yet behave the way I want it to.
Changed line 83 from:
* [[Attach:SMART-DemoWhiteboard.zip | Demo Whiteboard]] Shows yet another way to capture events
to:
* [[Attach:SMART-DemoWhiteboard.zip | Demo Whiteboard]] Another whiteboard, but this one uses a multi-touch button.
Changed line 83 from:
to:
* [[Attach:SMART-DemoWhiteboard.zip | Demo Whiteboard]] Shows yet another way to capture events
Changed lines 82-83 from:
[[Attach:SMART-DemoGo.zip | Demo Go]] Creates a multi-user Go game. Note that this example looks great, but is of limited value as it does not handle touch events at run time under program control. Still it shows how a game (without rules) can be created simply by adding touch-sensitive objects to the canvas
to:
* [[Attach:SMART-DemoGo.zip | Demo Go]] Creates a multi-user Go game. Note that this example looks great, but is of limited value as it does not handle touch events at run time under program control. Still it shows how a game (without rules) can be created simply by adding touch-sensitive objects to the canvas
Changed lines 82-83 from:
to:
[[Attach:SMART-DemoGo.zip | Demo Go]] Creates a multi-user Go game. Note that this example looks great, but is of limited value as it does not handle touch events at run time under program control. Still it shows how a game (without rules) can be created simply by adding touch-sensitive objects to the canvas
Changed lines 81-82 from:
to:
* [[Attach:SMART-InkCanvas.zip | Ink Canvas]] Another way to create an inkable canvas
Changed lines 80-81 from:
* [[Attach:SMART-ColorFun.zip | Color Fun]] A fun drawing application that combines various things
to:
* [[Attach:SMART-ColorFun.zip | Color Fun]] A fun drawing application that combines various things. In particular, it shows you how to make your own InteractiveControl - Important!
Added line 73:
Changed lines 79-81 from:
to:
!!!Examples supplied by Smart (from the SDK / C# examples folder)
* [[Attach:SMART-ColorFun.zip | Color Fun]] A fun drawing application that combines various things
Changed lines 71-73 from:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let up to 3 mice adjust different points on a line.
* [[Attach:SMART-MultiUserLineHitTest.zip|Multi User Line (with hit testing)]]. This example extends the previous one by providing hit testing at the handles between the lines. Multiple mice can move the handles around.
to:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let several mice adjust different points on a line. It illustrates hit testing on handles, where multiple mice can simultaneously move parts of the line.
Changed line 63 from:
* [[Attach:SMART-TouchEventsTemplate.zip|An empty template]]. This 'empty' application:
to:
* [[Attach:SMART-TouchEventsTemplate.zip|TouchEvents template]]. This 'empty' application:
Changed line 66 from:
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. Visualizes touch down/move events by:
to:
* [[Attach:SMART-TouchContacts.zip|Touch Contacts]]. Visualizes touch down/move events by:
Changed line 63 from:
* [[Attach:SMART-TouchEventsTemplate.zip|An empty template]]. This template:
to:
* [[Attach:SMART-TouchEventsTemplate.zip|An empty template]]. This 'empty' application:
Changed lines 66-68 from:
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. Visualizes touch down/move events by showing a circle around the contact point, and displaying the ID and x,y position of the touch event.
to:
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. Visualizes touch down/move events by:
**
showing a circle around the contact point,
**
displaying the ID and x,y position of the touch event.
Changed lines 64-66 from:
* registers for the Down, Move and Up events,
* translates mouse IDs into 0-based IDs (handy to use as array indexes).
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. This application visualizes all received touch events by showing a circle around the contact point, and displaying the ID and x,y position of the touch event.
to:
** registers for the Down, Move and Up events,
** translates mouse IDs into 0-based IDs (handy to use as array indexes).
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. Visualizes touch down/move events by showing a circle around the contact point, and displaying the ID and x,y position of the touch event.
Changed line 64 from:
* registeres for the Down, Move and Up events,
to:
* registers for the Down, Move and Up events,
Changed line 66 from:
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. This application registeres for the ContactDown and ContactUp events and visualizes all received touch events.
to:
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. This application visualizes all received touch events by showing a circle around the contact point, and displaying the ID and x,y position of the touch event.
Changed lines 61-64 from:

*
[[Attach:SMART-EmptyTemplate.zip|Empty Template (Canvas)]]. This is the default template for development. It includes all the necessary libraries and code to create a basic table application.
* [[Attach:SMART-ExampleControls.zip|Example Drag Controls]]. In this template, several draggable boxes are added to the table -- these can be moved, resized, and rotated. Please remember to connect at least two mice to your computer before running the application in the simulator.
* [[http://www.nicolaimarquardt.com/ta/code/SMART Table Example Images.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
to:
!!!Examples based on simple touch events
*
[[Attach:SMART-TouchEventsTemplate.zip|An empty template]]. This template:
* registeres
for the Down, Move and Up events,
* translates mouse IDs into 0-based IDs (handy to use as array indexes).
Added lines 72-77:
!!!Examples based on Smart controls
* [[Attach:SMART-EmptyTemplate.zip|Empty Template (Canvas)]]. This is the default template for development. It includes all the necessary libraries and code to create a basic table application.
* [[Attach:SMART-ExampleControls.zip|Example Drag Controls]]. In this template, several draggable boxes are added to the table -- these can be moved, resized, and rotated. Please remember to connect at least two mice to your computer before running the application in the simulator.
* [[http://www.nicolaimarquardt.com/ta/code/SMART Table Example Images.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
Deleted line 23:
Deleted lines 62-63:
Changed lines 51-54 from:
to:
# If the examples produce an error, then its due to a security issue, as the installer (depending on your operating system) failed to write into the registry. To fix this:
** Right Click ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK / Table Activities'', and select ''Run as administrator''
** The Smart Board will start. Exit it, but hit Escape to avoid the countdown (which will shut down your system). You only have to do this once.
Changed line 33 from:
*** If you are missing it, go [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | here], Download the service pack. If it doesn't seem to do anything, or if you also need the compact framework, scroll to the end of that page and download the full package (note that this takes a while).
to:
*** If you are missing it, go [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | here]], Download the service pack. If it doesn't seem to do anything, or if you also need the compact framework, scroll to the end of that page and download the full package (note that this takes a while).
Changed lines 33-34 from:
*** If you are missing .NET 3.5, you can download it [[|here]]
** - Go to [[
http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | Service pack 1], Download it. If it doesn't seem to do anything, scroll to the end of that page and download the full package (note that this takes a while).
to:
*** If you are missing it, go [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | here], Download the service pack. If it doesn't seem to do anything, or if you also need the compact framework, scroll to the end of that page and download the full package (note that this takes a while).
Changed lines 30-32 from:
# Prerequisites: :You should have already installed:
**
Visual Studio 2008 + SP1,
** .NET 3.5 + SP1
to:
# Prerequisite 1: You should have already installed Visual Studio 2008 + SP1
# Prerequisite 2: You should have already installed .NET 3.5 + SP1
** To check, go into your control panel, look at the installed programs for Microsoft .NET Compact Framework 3.5 SP1.
*** If you are missing .NET 3.5, you can download it [[|here]]
** - Go to [[http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en | Service pack 1], Download it. If it doesn't seem to do anything, scroll to the end of that page and download the full package (note that this takes a while).
Added lines 57-58:
'''Note''': You must have two mice plugged in for any of these examples to work. Programs may crash otherwise.
Changed line 29 from:
Follow these step by step instructions '''once''' to finalize how the emulator should be installed
to:
Follow these step by step instructions '''once''' to install the emulator. Note that we are working with an internal SDK, so its not yet as polished as it could be.
Added line 48:
# It may add a SMART Board Floating Pallete to your display, and an icon on your task bar. Right click the task bar icon, and then exit.
Added lines 46-47:
** It will give you a list of things where it says what is installed and not installed, and then warn you to cancel the install because some silverlight SDKs are missing. Ignore this and continue.
** You will find a bunch of examples and documentation in the ''Start Menu / SMART Technologies / SMART Table / SMART Table SDK''
Deleted line 43:
If The operation completed successfully displays, close the Administrator: Command Prompt window to complete this procedure. If "ERROR: Access is denied" displays, repeat this procedure from the top, making sure you clicked Run as administrator in step two.
Added lines 37-45:
## If you get a dialog box that says you don't have administrator permission to do this, you should do the following
*** Click the Start button , click All Programs, and then click Accessories.
*** Right-click Command Prompt, and then click Run as administrator.
*** Use the CD command to navigate to the folder where you downloaded the SMART Board Drivers.msi file
*** Type SMART Board Drivers.msi. It should now begin the installation
## During installation, you will see an option ''Add SMART tools to the startup folder''. Uncheck this option
## Later on, it will say "Could not find a SMART interactive product connected to your computer...". Click the ''Don't show this dialog again'' option, and then select ''No''.
If The operation completed successfully displays, close the Administrator: Command Prompt window to complete this procedure. If "ERROR: Access is denied" displays, repeat this procedure from the top, making sure you clicked Run as administrator in step two.
## When asked to register, don't.
Changed lines 30-31 from:
# Make sure you have installed Visual Studio 2008 + SP1, .NET 3.5 + SP1, and Expression Blend 3.0.
# (optional) If you have not installed Microsoft Expression Blend, you may want to download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. You can check to see if you have already have it: look for Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/. Note that this will let you do a few of the advanced object animations; it is not strictly required.
to:
# Prerequisites: :You should have already installed:
**
Visual Studio 2008 + SP1,
** .NET 3.5 + SP1
** Expression Blend 3.0.
# (optional) If you aren't going to install Microsoft Expression Blend, you may want to download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. It will let you do a few of the advanced table object animations; it is not strictly required.
** To check if its already installed, look for ''Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/''.
Changed line 31 from:
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]] (optional). On a few systems this SDK is already installed -- you can then continue with the next step.
to:
# (optional) If you have not installed Microsoft Expression Blend, you may want to download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]]. You can check to see if you have already have it: look for Start Menu / Microsoft Expression / Microsoft Expression Blend 3 SDK/. Note that this will let you do a few of the advanced object animations; it is not strictly required.
Changed lines 33-35 from:
# Finally, download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Table%20SDK.exe|SMART Table SDK]].
# That's it: You can now download any of the examples below and compile/run them in Visual Studio 2008.
to:
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Table%20SDK.exe|SMART Table SDK]].
# Try any of the examples below and compile/run them in Visual Studio 2008.
Changed lines 15-16 from:
Note that while we talk about multiple mice, this emulator is really set up to emulate multiple touches.
to:
Note that while we talk about multiple mice, this emulator is really set up to emulate multiple touches, where it pretends that mice input are simple finger presses.
Changed line 10 from:
%rfloat% Attach:XXX.jpg
to:
%rfloat% Attach:smart_emulator.png
Changed lines 34-35 from:
# You can now download any of the examples below and compile/run them in Visual Studio 2008.
to:
# That's it: You can now download any of the examples below and compile/run them in Visual Studio 2008.
Changed lines 29-31 from:
* To be included shortly
* Follow these step by step instructions '''once''' to finalize how the emulator should be installed
to:
Follow these step by step instructions '''once''' to finalize how the emulator should be installed
# Make sure you have installed Visual Studio 2008 + SP1, .NET 3.5 + SP1, and Expression Blend 3.0.
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/BlendSDK.msi|Blend SDK]] (optional). On a few systems this SDK is already
installed -- you can then continue with the next step.
# Download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Board%20Drivers.msi|SMART Board drivers]].
# Finally, download and install the [[http://pages.cpsc.ucalgary.ca/~nmarquar/SMART%20Table%20SDK.exe|SMART Table SDK]].
# You can now download any of the examples below and compile/run them in Visual Studio 2008.
Changed lines 47-48 from:
* [[Attach:SMART-MultiUserLineHiTest.zip|Multi User Line (with hit testing)]]. This example extends the previous one by providing hit testing at the handles between the lines. Multiple mice can move the handles around.
to:
* [[Attach:SMART-MultiUserLineHitTest.zip|Multi User Line (with hit testing)]]. This example extends the previous one by providing hit testing at the handles between the lines. Multiple mice can move the handles around.
Changed lines 46-47 from:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let up to 3 mice adjust different points on a line. It really should be extended to demonstrate hit testing.
to:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let up to 3 mice adjust different points on a line.
* [[Attach:SMART-MultiUserLineHiTest.zip|Multi User Line (with hit
testing)]]. This example extends the previous one by providing hit testing at the handles between the lines. Multiple mice can move the handles around.
Changed line 42 from:
* [[Attach:SMART-ExampleImages.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
to:
* [[http://www.nicolaimarquardt.com/ta/code/SMART Table Example Images.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
Changed line 40 from:
* [[Attach:SMART-SimplerPaint.zip|Simpler Paint]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
to:
Added line 44:
* [[Attach:SMART-SimplerPaint.zip|Simpler Paint]]. Uses the same event handlers to draw circles, where each person's color is different. Illustrates a very basic paint program that recognizes mouse ID, and equivalents to mouse down, mouse move, and mouse up events.
Changed lines 45-46 from:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses event handlers to let up to 3 mice adjust different points on a line.
to:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses the same event handlers to let up to 3 mice adjust different points on a line. It really should be extended to demonstrate hit testing.
Changed lines 45-46 from:
to:
* [[Attach:SMART-MultiUserLine.zip|Multi User Line]]. This program uses event handlers to let up to 3 mice adjust different points on a line.
Added lines 38-39:
* [[Attach:SMART-EmptyTemplate.zip|Empty Template (Canvas)]]. This is the default template for development. It includes all the necessary libraries and code to create a basic table application.
Changed lines 41-45 from:
to:
* [[Attach:SMART-ExampleControls.zip|Example Drag Controls]]. In this template, several draggable boxes are added to the table -- these can be moved, resized, and rotated. Please remember to connect at least two mice to your computer before running the application in the simulator.
* [[Attach:SMART-ExampleImages.zip|Example Drag Images]]. When running this application, several images are loaded from the '/art/' subfolder and displayed as draggable images on the table canvas.
* [[Attach:SMART-TouchContacts.zip|Visualize Contact Points]]. This application registeres for the ContactDown and ContactUp events and visualizes all received touch events.
* [[Attach:SMART-SimplePaint.zip|Simple Paint Example]]. This program uses the same event handlers as the previous example, but uses the touch information to draw strokes on the canvas.
Changed lines 38-39 from:
* [[Attach:SimplerPaint.zip|Simpler Paint]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
to:
* [[Attach:SMART-SimplerPaint.zip|Simpler Paint]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
Changed lines 38-41 from:
* [[Simpler Sketch]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
* [[Simple Sketch]]. Learn how to use multiple mice and adjust their properties.
to:
* [[Attach:SimplerPaint.zip|Simpler Paint]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
Added lines 1-43:
%define=box padding-left=1em padding-right=1em margin='3px 3px 0'%
%define=yellowbox box bgcolor=#fdfaea border='1px solid #ffad80'%
%define=redbox box bgcolor=#fff3f3 border='1px solid #ffc9c9'%
%define=bluebox box bgcolor=#f4fbff border='1px solid #a1cae6'%
%define=skybox box bgcolor=#f8fcff border='1px solid #aaaaaa'%
%define=greybox box bgcolor=#fbfbfb border='1px solid #aaaaaa'%
%define=greenbox box bgcolor=#e6f3e5 border='1px solid #8fd586'%
%define=whitebox box bgcolor=#ffffff border='1px solid #999999'%
\\
%rfloat% Attach:XXX.jpg
The SMART Table Emulator is provided by SMART Technologies Inc. Under the covers, it uses the technology developed by Edward Tse in his SDG Toolkit to use mice to emulate touch events. This allows tabletop systems to be developed on a standard computer (at least to some extent).

We include it here as the SMART Table Emulator also serves as a framework for designing single display groupware applications by managing multiple mice within WPF (the SDG Toolkit does not work in WPF due to its reliance on standard window controls). Unlike the SDG Toolkit, the emulator does not do multiple keyboards. There are a few other differences, as well as additional facilities included with the Emulator.

Note that while we talk about multiple mice, this emulator is really set up to emulate multiple touches.

!!! Contents

* [[#download | Download and Installation]]
* [[#tutorials | Tutorials and Examples]]
\\
\\


[[#download]]
>>greenbox<<
!!! Download and Installation

* To be included shortly
* Follow these step by step instructions '''once''' to finalize how the emulator should be installed

>><<

[[#tutorials]]
>>bluebox<<
!!! Tutorials and Examples

* [[Simpler Sketch]]. Use multiple mice to draw circles, where each person's color is different. Illustrates a very basic SDG system that recognizes mouse ID, mouse down, mouse move, and mouse up events.
* [[Simple Sketch]]. Learn how to use multiple mice and adjust their properties.


>><<