├── Screenshots
├── muster.png
├── pikachu.png
├── raichu.png
└── charmander.png
├── PokemonAR
├── assets
│ ├── Wood.dat
│ ├── pokemon.dat
│ ├── sodacan.dat
│ ├── StonesAndChips.dat
│ ├── sodacan.xml
│ ├── StonesAndChips.xml
│ ├── pokemon.xml
│ └── Wood.xml
├── res
│ ├── raw
│ │ ├── f22.ser
│ │ ├── android.ser
│ │ ├── caterpie_sound.wav
│ │ ├── pikachu_sound.wav
│ │ ├── raichu_sound.wav
│ │ ├── transel_sound.wav
│ │ ├── butterfree_sound.wav
│ │ ├── abra_mtl
│ │ ├── lucario_mtl
│ │ ├── psyduck_mtl
│ │ ├── transel_mtl
│ │ ├── charmander_mtl
│ │ ├── magikarp_mtl
│ │ ├── marowak_mtl
│ │ ├── primeape_mtl
│ │ ├── squirtle_mtl
│ │ ├── bulbasaur_mtl
│ │ ├── butterfree_mtl
│ │ ├── caterpie_mtl
│ │ ├── corsola_mtl
│ │ ├── raichu_mtl
│ │ ├── rioluposed_mtl
│ │ ├── pikachu_mtl
│ │ └── ponyta_mtl
│ ├── drawable-nodpi
│ │ ├── f22.jpg
│ │ ├── caseydh.jpg
│ │ ├── koduckdh.jpg
│ │ ├── ponytadh.jpg
│ │ ├── raichudh.jpg
│ │ ├── rioludh.jpg
│ │ ├── caseyeyedh.jpg
│ │ ├── caterpiedh.jpg
│ │ ├── garagaradh.jpg
│ │ ├── hitokagedh.jpg
│ │ ├── koikingdh.jpg
│ │ ├── lucariodh.jpg
│ │ ├── pikachudh.jpg
│ │ ├── riolueyedh.jpg
│ │ ├── sunnygodh.jpg
│ │ ├── transeldh.jpg
│ │ ├── zenigamedh.jpg
│ │ ├── butterfreedh.jpg
│ │ ├── caterpieeyedh.jpg
│ │ ├── fushigidanedh.jpg
│ │ ├── garagaraeyedh.jpg
│ │ ├── hitokageeyedh.jpg
│ │ ├── koduckeyedh.jpg
│ │ ├── koikingeyedh.jpg
│ │ ├── lucarioeyedh.jpg
│ │ ├── metal_texture.jpg
│ │ ├── okorizarudh.jpg
│ │ ├── pikachueyedh.jpg
│ │ ├── pikachuhohodh.jpg
│ │ ├── ponytaeyedh.jpg
│ │ ├── raichueyedh.jpg
│ │ ├── raichumouthdh.jpg
│ │ ├── riolumousedh.jpg
│ │ ├── sunnygoeyedh.jpg
│ │ ├── transeleyedh.jpg
│ │ ├── zenigameeyedh.jpg
│ │ ├── butterfreeeyedh.jpg
│ │ ├── okorizarueyedh.jpg
│ │ ├── pikachumouthdh.jpg
│ │ ├── ponytafire_001.jpg
│ │ ├── sunnygomouthdh.jpg
│ │ ├── fushigidaneeyedh.jpg
│ │ ├── guard1_body_color.jpg
│ │ ├── guard1_face_color.jpg
│ │ ├── iron_grill_color.jpg
│ │ ├── round_grill_color.jpg
│ │ └── guard1_helmet_color.jpg
│ ├── drawable
│ │ └── pikachu.gif
│ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ ├── values-sw600dp
│ │ └── dimens.xml
│ ├── values
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── menu
│ │ └── rajawali_vuforia_example.xml
│ ├── values-sw720dp-land
│ │ └── dimens.xml
│ ├── values-v11
│ │ └── styles.xml
│ └── values-v14
│ │ └── styles.xml
├── ic_launcher-web.png
├── libs
│ └── android-support-v4.jar
├── .gitignore
├── project.properties
├── proguard-project.txt
├── AndroidManifest.xml
└── src
│ └── com
│ └── sh1r0
│ └── vr2014
│ └── pokemon
│ ├── MainActivity.java
│ ├── Pokemon.java
│ └── Renderer.java
├── vuforia-sdk-android-2-8-8
└── build
│ ├── java
│ └── vuforia
│ │ └── Vuforia.jar
│ ├── lib
│ └── armeabi-v7a
│ │ └── libVuforia.so
│ └── include
│ └── QCAR
│ ├── Matrices.h
│ ├── TrackableSource.h
│ ├── VideoMode.h
│ ├── UpdateCallback.h
│ ├── Area.h
│ ├── MarkerResult.h
│ ├── NonCopyable.h
│ ├── CylinderTargetResult.h
│ ├── WordResult.h
│ ├── Type.h
│ ├── VirtualButtonResult.h
│ ├── CameraCalibration.h
│ ├── Tracker.h
│ ├── Obb2D.h
│ ├── MultiTargetResult.h
│ ├── System.h
│ ├── VideoBackgroundTextureInfo.h
│ ├── ImageTargetResult.h
│ ├── Marker.h
│ ├── TargetSearchResult.h
│ ├── Trackable.h
│ ├── Word.h
│ ├── Frame.h
│ ├── Rectangle.h
│ ├── MarkerTracker.h
│ ├── TrackableResult.h
│ ├── TrackerManager.h
│ ├── Vectors.h
│ ├── State.h
│ ├── VirtualButton.h
│ ├── CylinderTarget.h
│ ├── Renderer.h
│ ├── Image.h
│ ├── ImageTargetBuilder.h
│ ├── ImageTarget.h
│ ├── Tool.h
│ ├── VideoBackgroundConfig.h
│ ├── MultiTarget.h
│ ├── TextTracker.h
│ ├── CameraDevice.h
│ ├── ImageTracker.h
│ ├── QCAR.h
│ ├── DataSet.h
│ ├── WordList.h
│ └── TargetFinder.h
├── .gitmodules
└── README.md
/Screenshots/muster.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/Screenshots/muster.png
--------------------------------------------------------------------------------
/Screenshots/pikachu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/Screenshots/pikachu.png
--------------------------------------------------------------------------------
/Screenshots/raichu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/Screenshots/raichu.png
--------------------------------------------------------------------------------
/PokemonAR/assets/Wood.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/assets/Wood.dat
--------------------------------------------------------------------------------
/PokemonAR/res/raw/f22.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/f22.ser
--------------------------------------------------------------------------------
/Screenshots/charmander.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/Screenshots/charmander.png
--------------------------------------------------------------------------------
/PokemonAR/assets/pokemon.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/assets/pokemon.dat
--------------------------------------------------------------------------------
/PokemonAR/assets/sodacan.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/assets/sodacan.dat
--------------------------------------------------------------------------------
/PokemonAR/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/ic_launcher-web.png
--------------------------------------------------------------------------------
/PokemonAR/res/raw/android.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/android.ser
--------------------------------------------------------------------------------
/PokemonAR/assets/StonesAndChips.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/assets/StonesAndChips.dat
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/f22.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/f22.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable/pikachu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable/pikachu.gif
--------------------------------------------------------------------------------
/PokemonAR/res/raw/caterpie_sound.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/caterpie_sound.wav
--------------------------------------------------------------------------------
/PokemonAR/res/raw/pikachu_sound.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/pikachu_sound.wav
--------------------------------------------------------------------------------
/PokemonAR/res/raw/raichu_sound.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/raichu_sound.wav
--------------------------------------------------------------------------------
/PokemonAR/res/raw/transel_sound.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/transel_sound.wav
--------------------------------------------------------------------------------
/PokemonAR/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/PokemonAR/res/raw/butterfree_sound.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/raw/butterfree_sound.wav
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/caseydh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/caseydh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/koduckdh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/koduckdh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/ponytadh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/ponytadh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/raichudh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/raichudh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/rioludh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/rioludh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/caseyeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/caseyeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/caterpiedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/caterpiedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/garagaradh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/garagaradh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/hitokagedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/hitokagedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/koikingdh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/koikingdh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/lucariodh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/lucariodh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/pikachudh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/pikachudh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/riolueyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/riolueyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/sunnygodh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/sunnygodh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/transeldh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/transeldh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/zenigamedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/zenigamedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/butterfreedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/butterfreedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/caterpieeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/caterpieeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/fushigidanedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/fushigidanedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/garagaraeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/garagaraeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/hitokageeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/hitokageeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/koduckeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/koduckeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/koikingeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/koikingeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/lucarioeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/lucarioeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/metal_texture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/metal_texture.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/okorizarudh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/okorizarudh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/pikachueyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/pikachueyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/pikachuhohodh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/pikachuhohodh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/ponytaeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/ponytaeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/raichueyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/raichueyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/raichumouthdh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/raichumouthdh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/riolumousedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/riolumousedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/sunnygoeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/sunnygoeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/transeleyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/transeleyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/zenigameeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/zenigameeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/butterfreeeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/butterfreeeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/okorizarueyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/okorizarueyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/pikachumouthdh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/pikachumouthdh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/ponytafire_001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/ponytafire_001.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/sunnygomouthdh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/sunnygomouthdh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/fushigidaneeyedh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/fushigidaneeyedh.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/guard1_body_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/guard1_body_color.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/guard1_face_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/guard1_face_color.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/iron_grill_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/iron_grill_color.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/round_grill_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/round_grill_color.jpg
--------------------------------------------------------------------------------
/PokemonAR/res/drawable-nodpi/guard1_helmet_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/PokemonAR/res/drawable-nodpi/guard1_helmet_color.jpg
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/java/vuforia/Vuforia.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/vuforia-sdk-android-2-8-8/build/java/vuforia/Vuforia.jar
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/lib/armeabi-v7a/libVuforia.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sh1r0/PokemonAR/HEAD/vuforia-sdk-android-2-8-8/build/lib/armeabi-v7a/libVuforia.so
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Rajawali"]
2 | path = Rajawali
3 | url = git@github.com:sh1r0/Rajawali.git
4 | [submodule "RajawaliVuforia"]
5 | path = RajawaliVuforia
6 | url = git@github.com:sh1r0/RajawaliVuforia.git
7 |
--------------------------------------------------------------------------------
/PokemonAR/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/PokemonAR/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/PokemonAR/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | PokemonAR
5 | Settings
6 | Hello world!
7 |
8 |
--------------------------------------------------------------------------------
/PokemonAR/assets/sodacan.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/PokemonAR/res/menu/rajawali_vuforia_example.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/PokemonAR/assets/StonesAndChips.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/PokemonAR/res/values-sw720dp-land/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | 128dp
8 |
9 |
--------------------------------------------------------------------------------
/PokemonAR/assets/pokemon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/abra_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd caseydh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd caseyeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/lucario_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd lucariodh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd lucarioeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/psyduck_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd koduckdh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd koduckeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/transel_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd transeldh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd transeleyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/charmander_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd hitokagedh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd hitokageeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/magikarp_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd koikingdh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd koikingeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/marowak_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd garagaradh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd garagaraeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/primeape_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd okorizarudh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd okorizarueyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/squirtle_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd zenigamedh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd zenigameeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/bulbasaur_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd fushigidanedh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd fushigidaneeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/butterfree_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd butterfreedh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd butterfreeeyedh.jpg
22 |
23 |
--------------------------------------------------------------------------------
/PokemonAR/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/PokemonAR/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | .settings/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Eclipse project files
27 | .classpath
28 | .project
29 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/caterpie_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd caterpiedh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd caterpieeyedh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd caterpiedh.jpg
33 |
34 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/corsola_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd sunnygodh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd sunnygoEyedh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd sunnygomouthdh.jpg
33 |
34 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/raichu_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd raichudh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd raichueyedh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd raichumouthdh.jpg
33 |
34 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/rioluposed_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd rioludh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd riolueyedh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd riolumousedh.jpg
33 |
34 |
--------------------------------------------------------------------------------
/PokemonAR/assets/Wood.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | PokemonAR
2 | =========
3 | Exploit [Vuforia](https://developer.vuforia.com/) and [Rajawali](https://github.com/MasDennis/Rajawali) to build simple interactive Pokemon AR game on Android.
4 |
5 | ##Screenshots
6 | 
7 | 
8 |  
9 | Evolve your Pikachu by feeding (touching) it
10 |
11 | ##Libraries
12 | - Vuforia 2.8.8
13 | - Rajawali - [my forked ver.](https://github.com/sh1r0/Rajawali)
14 | - RajawaliVuforia - [my forked ver.](https://github.com/sh1r0/RajawaliVuforia)
15 |
16 | ##Credits
17 | - Pokemon models - http://roestudios.co.uk/project/3d-pokemon-models/
18 |
--------------------------------------------------------------------------------
/PokemonAR/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-17
15 | android.library.reference.1=..\\Rajawali
16 | android.library.reference.2=..\\RajawaliVuforia
17 |
--------------------------------------------------------------------------------
/PokemonAR/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
--------------------------------------------------------------------------------
/PokemonAR/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Matrices.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Matrices.h
8 |
9 | @brief
10 | Header file for Matrix34F and Matrix44F structs.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MATRIX_H_
13 | #define _QCAR_MATRIX_H_
14 |
15 | namespace QCAR
16 | {
17 |
18 | /// Matrix with 3 rows and 4 columns of float items
19 | struct Matrix34F {
20 | float data[3*4]; ///< Array of matrix items
21 | };
22 |
23 |
24 | /// Matrix with 4 rows and 4 columns of float items
25 | struct Matrix44F {
26 | float data[4*4]; ///< Array of matrix items
27 | };
28 |
29 | } // namespace QCAR
30 |
31 | #endif //_QCAR_MATRIX_H_
32 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TrackableSource.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TrackableSource.h
8 |
9 | @brief
10 | Header file for TrackableSource class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TRACKABLESOURCE_H_
13 | #define _QCAR_TRACKABLESOURCE_H_
14 |
15 | // Include files:
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// TrackableSource
23 | /**
24 | * An opaque handle for creating a new Trackable in a DataSet.
25 | */
26 | class QCAR_API TrackableSource : private NonCopyable
27 | {
28 |
29 | };
30 |
31 | } // namespace QCAR
32 |
33 | #endif // _QCAR_TRACKABLESOURCE_H_
34 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/VideoMode.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | VideoMode.h
8 |
9 | @brief
10 | Header file for VideoMode struct.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VIDEOMODE_H_
13 | #define _QCAR_VIDEOMODE_H_
14 |
15 | namespace QCAR
16 | {
17 |
18 | /// Implements access to the phone's built-in camera
19 | struct VideoMode
20 | {
21 |
22 | VideoMode() : mWidth(0), mHeight(0), mFramerate(0.f) {}
23 |
24 | int mWidth; ///< Video frame width
25 | int mHeight; ///< Video frame height
26 | float mFramerate; ///< Video frame rate
27 | };
28 |
29 | } // namespace QCAR
30 |
31 | #endif // _QCAR_VIDEOMODE_H_
32 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/pikachu_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd pikachudh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd pikachueyedh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd pikachuhohodh.jpg
33 |
34 | newmtl mat4
35 | Ns 10
36 | Ni 1.0
37 | d 1.0
38 | Tf 1 1 1
39 | illum 2
40 | Ka 0.5 0.5 0.5
41 | Kd 0.9 0.9 0.9
42 | Ks 0.0 0.0 0.0
43 | map_Kd pikachumouthdh.jpg
44 |
45 | newmtl mat5
46 | Ns 10
47 | Ni 1.0
48 | d 1.0
49 | Tf 1 1 1
50 | illum 2
51 | Ka 0.5 0.5 0.5
52 | Kd 0.9 0.9 0.9
53 | Ks 0.0 0.0 0.0
54 | map_Kd pikachudh.jpg
55 |
56 |
--------------------------------------------------------------------------------
/PokemonAR/res/raw/ponyta_mtl:
--------------------------------------------------------------------------------
1 | newmtl mat1
2 | Ns 10
3 | Ni 1.0
4 | d 1.0
5 | Tf 1 1 1
6 | illum 2
7 | Ka 0.5 0.5 0.5
8 | Kd 0.9 0.9 0.9
9 | Ks 0.0 0.0 0.0
10 | map_Kd ponytadh.jpg
11 |
12 | newmtl mat2
13 | Ns 10
14 | Ni 1.0
15 | d 1.0
16 | Tf 1 1 1
17 | illum 2
18 | Ka 0.5 0.5 0.5
19 | Kd 0.9 0.9 0.9
20 | Ks 0.0 0.0 0.0
21 | map_Kd ponytadh.jpg
22 |
23 | newmtl mat3
24 | Ns 10
25 | Ni 1.0
26 | d 1.0
27 | Tf 1 1 1
28 | illum 2
29 | Ka 0.5 0.5 0.5
30 | Kd 0.9 0.9 0.9
31 | Ks 0.0 0.0 0.0
32 | map_Kd ponytaeyedh.jpg
33 |
34 | newmtl mat4
35 | Ns 10
36 | Ni 1.0
37 | d 1.0
38 | Tf 1 1 1
39 | illum 2
40 | Ka 0.5 0.5 0.5
41 | Kd 0.9 0.9 0.9
42 | Ks 0.0 0.0 0.0
43 | map_Kd ponytafire_001.jpg
44 |
45 | newmtl mat5
46 | Ns 10
47 | Ni 1.0
48 | d 1.0
49 | Tf 1 1 1
50 | illum 2
51 | Ka 0.5 0.5 0.5
52 | Kd 0.9 0.9 0.9
53 | Ks 0.0 0.0 0.0
54 | map_Kd ponytafire_001.jpg
55 |
56 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/UpdateCallback.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | UpdateCallback.h
8 |
9 | @brief
10 | Header file for UpdateCallback class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_UPDATECALLBACK_H_
13 | #define _QCAR_UPDATECALLBACK_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | // Forward declarations
22 | class State;
23 |
24 | /// UpdateCallback interface
25 | class QCAR_API UpdateCallback
26 | {
27 | public:
28 | /// Called by the SDK right after tracking finishes
29 | virtual void QCAR_onUpdate(State& state) = 0;
30 | };
31 |
32 | } // namespace QCAR
33 |
34 | #endif //_QCAR_UPDATECALLBACK_H_
35 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Area.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Area.h
8 |
9 | @brief
10 | Header file for Area class.
11 | ==============================================================================*/
12 |
13 |
14 | #ifndef _QCAR_AREA_H_
15 | #define _QCAR_AREA_H_
16 |
17 |
18 | #include
19 |
20 |
21 | namespace QCAR
22 | {
23 |
24 |
25 | /// Area is the base class for 2D shapes used in Vuforia
26 | class QCAR_API Area
27 | {
28 | public:
29 | enum TYPE {
30 | RECTANGLE,
31 | RECTANGLE_INT,
32 | INVALID
33 | };
34 |
35 | virtual TYPE getType() const = 0;
36 |
37 | virtual ~Area();
38 |
39 | private:
40 | Area& operator=(const Area& other);
41 | };
42 |
43 |
44 | } // namespace QCAR
45 |
46 |
47 | #endif // _QCAR_AREA_H_
48 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/MarkerResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | MarkerResult.h
8 |
9 | @brief
10 | Header file for MarkerResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MARKERRESULT_H_
13 | #define _QCAR_MARKERRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Result for a Marker.
23 | class QCAR_API MarkerResult : public TrackableResult
24 | {
25 | public:
26 |
27 | /// Returns the TrackableResult class' type
28 | static Type getClassType();
29 |
30 | /// Returns the corresponding Trackable that this result represents
31 | virtual const Marker& getTrackable() const = 0;
32 | };
33 |
34 | } // namespace QCAR
35 |
36 | #endif //_QCAR_MARKERRESULT_H_
37 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/NonCopyable.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | NonCopyable.h
8 |
9 | @brief
10 | Header file for NonCopyable class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_NONCOPYABLE_H_
13 | #define _QCAR_NONCOPYABLE_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | /// Base class for objects that can not be copied
22 | class QCAR_API NonCopyable
23 | {
24 | protected:
25 | NonCopyable() {} ///< Standard constructor
26 | ~NonCopyable() {} ///< Standard destructor
27 |
28 | private:
29 | NonCopyable(const NonCopyable &); ///< Hidden copy constructor
30 | NonCopyable& operator= (const NonCopyable &); ///< Hidden assignment operator
31 | };
32 |
33 | } // namespace QCAR
34 |
35 | #endif //_QCAR_NONCOPYABLE_H_
36 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/CylinderTargetResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | CylinderTargetResult.h
8 |
9 | @brief
10 | Header file for CylinderTargetResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_CYLINDERTARGETRESULT_H_
13 | #define _QCAR_CYLINDERTARGETRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Result for a CylinderTarget.
23 | class QCAR_API CylinderTargetResult : public TrackableResult
24 | {
25 | public:
26 |
27 | /// Returns the TrackableResult class' type
28 | static Type getClassType();
29 |
30 | /// Returns the corresponding Trackable that this result represents
31 | virtual const CylinderTarget& getTrackable() const = 0;
32 | };
33 |
34 | } // namespace QCAR
35 |
36 | #endif //_QCAR_CYLINDERTARGETRESULT_H_
37 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/WordResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | WordResult.h
8 |
9 | @brief
10 | Header file for WordResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_WORDRESULT_H_
13 | #define _QCAR_WORDRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | /// Trackable result for a Word.
24 | class QCAR_API WordResult : public TrackableResult
25 | {
26 | public:
27 |
28 | /// Returns the TrackableResult class' type
29 | static Type getClassType();
30 |
31 | /// Returns the corresponding Trackable that this result represents.
32 | virtual const Word& getTrackable() const = 0;
33 |
34 | /// Returns the oriented bounding box in image space of the word.
35 | virtual const Obb2D& getObb() const = 0;
36 | };
37 |
38 | } // namespace QCAR
39 |
40 | #endif //_QCAR_WORDRESULT_H_
41 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Type.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Type.h
8 |
9 | @brief
10 | Header file for Type class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TYPE_H_
13 | #define _QCAR_TYPE_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | /// Class supporting a Vuforia-internal type system
22 | /**
23 | * The size of a Type class instance is only 16 bits, therefore
24 | * it should be passed around by value for efficiency reasons.
25 | */
26 | class QCAR_API Type
27 | {
28 | public:
29 |
30 | Type();
31 | Type(UInt16 data);
32 |
33 | UInt16 getData() const;
34 |
35 | /// Checks whether the type is an exact match with
36 | /// or has been derived from another type:
37 | bool isOfType(const Type type) const;
38 |
39 | private:
40 | /// Internal type data:
41 | UInt16 mData;
42 | };
43 |
44 | } // namespace QCAR
45 |
46 |
47 | #endif // _QCAR_TYPE_H_
48 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/VirtualButtonResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | VirtualButtonResult.h
8 |
9 | @brief
10 | Header file for VirtualButtonResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VIRTUALBUTTONRESULT_H_
13 | #define _QCAR_VIRTUALBUTTONRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | /// Tracking result for a VirtualButton.
24 | class QCAR_API VirtualButtonResult : private NonCopyable
25 | {
26 | public:
27 |
28 | /// Returns the corresponding VirtualButton that this result represents
29 | virtual const VirtualButton& getVirtualButton() const = 0;
30 |
31 | /// Returns true if the virtual button is pressed.
32 | virtual bool isPressed() const = 0;
33 |
34 | protected:
35 | virtual ~VirtualButtonResult() {}
36 | };
37 |
38 | } // namespace QCAR
39 |
40 | #endif //_QCAR_VIRTUALBUTTONRESULT_H_
41 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/CameraCalibration.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | CameraCalibration.h
8 |
9 | @brief
10 | Header file for CameraCalibration class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_CAMERACALIBRATION_H_
13 | #define _QCAR_CAMERACALIBRATION_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Holds intrinsic camera parameters
23 | class QCAR_API CameraCalibration : private NonCopyable
24 | {
25 | public:
26 | /// Returns the resolution of the camera as 2D vector.
27 | virtual Vec2F getSize() const = 0;
28 |
29 | /// Returns the focal length in x- and y-direction as 2D vector.
30 | virtual Vec2F getFocalLength() const = 0;
31 |
32 | /// Returns the principal point as 2D vector.
33 | virtual Vec2F getPrincipalPoint() const = 0;
34 |
35 | /// Returns the radial distortion as 4D vector.
36 | virtual Vec4F getDistortionParameters() const = 0;
37 |
38 | protected:
39 |
40 | virtual ~CameraCalibration() {}
41 | };
42 |
43 | } // namespace QCAR
44 |
45 | #endif // _QCAR_CAMERACALIBRATION_H_
46 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Tracker.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Tracker.h
8 |
9 | @brief
10 | Header file for Tracker class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TRACKER_H_
13 | #define _QCAR_TRACKER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Base class for all tracker types.
23 | /**
24 | * The class exposes generic functionality for starting and stopping a
25 | * given Tracker as well as querying the tracker type.
26 | */
27 | class QCAR_API Tracker : private NonCopyable
28 | {
29 | public:
30 |
31 | /// Returns the Tracker class' type
32 | static Type getClassType();
33 |
34 | /// Returns the Tracker instance's type
35 | virtual Type getType() const = 0;
36 |
37 | /// Checks whether the Tracker instance's type equals or has been
38 | /// derived from a give type
39 | virtual bool isOfType(Type type) const = 0;
40 |
41 | /// Starts the Tracker
42 | virtual bool start() = 0;
43 |
44 | /// Stops the Tracker
45 | virtual void stop() = 0;
46 |
47 | virtual ~Tracker() {}
48 | };
49 |
50 | } // namespace QCAR
51 |
52 | #endif //_QCAR_TRACKER_H_
53 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Obb2D.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Obb2d.h
8 |
9 | @brief
10 | Header file for Obb2d class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_OBB2D_H_
13 | #define _QCAR_OBB2D_H_
14 |
15 |
16 | #include
17 | #include
18 |
19 |
20 | namespace QCAR
21 | {
22 |
23 |
24 | /// An Obb2D represents a 2D oriented bounding box
25 | class QCAR_API Obb2D
26 | {
27 | public:
28 |
29 | Obb2D();
30 |
31 | Obb2D(const Obb2D& other);
32 |
33 | Obb2D(const Vec2F& nCenter, const Vec2F& nHalfExtents,
34 | float nRotation);
35 |
36 | /// Returns the center of the bounding box.
37 | virtual const Vec2F& getCenter() const;
38 |
39 | /// Returns the half width and half height of the bounding box.
40 | virtual const Vec2F& getHalfExtents() const;
41 |
42 | /// Returns the counter-clock-wise rotation angle (in radians)
43 | /// of the bounding box with respect to the X axis.
44 | virtual float getRotation() const;
45 |
46 | virtual ~Obb2D();
47 |
48 | protected:
49 | Vec2F center;
50 | Vec2F halfExtents;
51 | float rotation;
52 | };
53 |
54 |
55 | } // namespace QCAR
56 |
57 |
58 | #endif // _QCAR_OBB2D_H_
59 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/MultiTargetResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | MultiTargetResult.h
8 |
9 | @brief
10 | Header file for MultiTargetResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MULTITARGETRESULT_H_
13 | #define _QCAR_MULTITARGETRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Result for a MultiTarget.
23 | class QCAR_API MultiTargetResult : public TrackableResult
24 | {
25 | public:
26 |
27 | /// Returns the TrackableResult class' type
28 | static Type getClassType();
29 |
30 | /// Returns the corresponding Trackable that this result represents
31 | virtual const MultiTarget& getTrackable() const = 0;
32 |
33 | /// Returns the number of Trackables that form this MultiTarget
34 | virtual int getNumPartResults() const = 0;
35 |
36 | // Provides access to the TrackableResult for a specific part
37 | virtual const TrackableResult* getPartResult(int idx) const = 0;
38 |
39 | // Provides access to the TrackableResult for a specific part
40 | virtual const TrackableResult* getPartResult(const char* name) const = 0;
41 | };
42 |
43 | } // namespace QCAR
44 |
45 | #endif //_QCAR_MULTITARGETRESULT_H_
46 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/System.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | System.h
8 |
9 | @brief
10 | System specific definitions.
11 | ==============================================================================*/
12 | #ifndef _QCAR_SYSTEM_H_
13 | #define _QCAR_SYSTEM_H_
14 |
15 | // Include files
16 | #if defined(_WIN32_WCE) || defined(WIN32)
17 | # define QCAR_IS_WINDOWS
18 | #endif
19 |
20 |
21 | // Define exporting/importing of methods from module
22 | //
23 | #ifdef QCAR_IS_WINDOWS
24 |
25 | # ifdef QCAR_EXPORTS
26 | # define QCAR_API __declspec(dllexport)
27 | # elif defined(QCAR_STATIC)
28 | # define QCAR_API
29 | # else
30 | # define QCAR_API __declspec(dllimport)
31 | # endif
32 |
33 | #else // !QCAR_IS_WINDOWS
34 |
35 | # ifdef QCAR_EXPORTS
36 | # define QCAR_API __attribute__((visibility("default")))
37 | # elif defined(QCAR_STATIC)
38 | # define QCAR_API
39 | # else
40 | # define QCAR_API __attribute__((visibility("default")))
41 | # endif
42 |
43 | #endif
44 |
45 |
46 | // Platform defines
47 | #ifdef QCAR_IS_WINDOWS
48 |
49 | namespace QCAR
50 | {
51 | typedef unsigned __int16 UInt16;
52 | }
53 |
54 | #else // !QCAR_IS_WINDOWS
55 |
56 | #include
57 |
58 | namespace QCAR
59 | {
60 | typedef __uint16_t UInt16;
61 | }
62 |
63 | #endif
64 |
65 | #endif // _QCAR_SYSTEM_H_
66 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/VideoBackgroundTextureInfo.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | VideoBackgroundConfig.h
8 |
9 | @brief
10 | Header file for VideoBackgroundConfig struct.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VIDEOBACKGROUNDTEXTUREINFO_H_
13 | #define _QCAR_VIDEOBACKGROUNDTEXTUREINFO_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// Video background configuration
23 | struct VideoBackgroundTextureInfo
24 | {
25 | /// Width and height of the video background texture in pixels
26 | /**
27 | * Describes the size of the texture in the graphics unit
28 | * depending on the particular hardware it will be a power of two
29 | * value immediately after the image size
30 | */
31 | Vec2I mTextureSize;
32 |
33 | /// Width and height of the video background image in pixels
34 | /**
35 | * Describe the size of the image inside the texture. This corresponds
36 | * to the size of the image delivered by the camera
37 | */
38 | Vec2I mImageSize;
39 |
40 | /// Format of the video background image
41 | /**
42 | * Describe the pixel format of the camera image.
43 | */
44 | PIXEL_FORMAT mPixelFormat;
45 |
46 | };
47 |
48 | } // namespace QCAR
49 |
50 | #endif //_QCAR_VIDEOBACKGROUNDTEXTUREINFO_H_
51 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/ImageTargetResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | ImageTargetResult.h
8 |
9 | @brief
10 | Header file for ImageTargetResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_IMAGETARGETRESULT_H_
13 | #define _QCAR_IMAGETARGETRESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | // Forward declarations:
23 | class VirtualButtonResult;
24 |
25 | /// Result for an ImageTarget.
26 | class QCAR_API ImageTargetResult : public TrackableResult
27 | {
28 | public:
29 |
30 | /// Returns the TrackableResult class' type
31 | static Type getClassType();
32 |
33 | /// Returns the corresponding Trackable that this result represents
34 | virtual const ImageTarget& getTrackable() const = 0;
35 |
36 | /// Returns the number of VirtualButtons defined for this ImageTarget
37 | virtual int getNumVirtualButtons() const = 0;
38 |
39 | /// Returns the VirtualButtonResult for a specific VirtualButton
40 | virtual const VirtualButtonResult* getVirtualButtonResult(int idx) const = 0;
41 |
42 | /// Returns the VirtualButtonResult for a specific VirtualButton
43 | virtual const VirtualButtonResult* getVirtualButtonResult(const char* name) const = 0;
44 | };
45 |
46 | } // namespace QCAR
47 |
48 | #endif //_QCAR_IMAGETARGETRESULT_H_
49 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Marker.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Marker.h
8 |
9 | @brief
10 | Header file for Marker class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MARKER_H_
13 | #define _QCAR_MARKER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | /// A rectangular marker
24 | class QCAR_API Marker : public Trackable
25 | {
26 | public:
27 | /// Type of markers
28 | enum MARKER_TYPE
29 | {
30 | INVALID, ///< Invalid marker type
31 | ID_FRAME ///< An id-encoded marker that stores the id
32 | ///< in the frame
33 | };
34 |
35 | /// Returns the Trackable class' type
36 | static Type getClassType();
37 |
38 | /// Returns the size of the marker in 3D scene units.
39 | virtual Vec2F getSize() const = 0;
40 |
41 | /// Sets a new size (in 3D scene units) for the marker.
42 | virtual bool setSize(const Vec2F& size) = 0;
43 |
44 | /// Returns the marker ID (as opposed to the trackable's id, which can be
45 | /// queried using getId())
46 | virtual int getMarkerId() const = 0;
47 |
48 | /// Returns the marker type (as opposed to the trackable's type, which can
49 | /// be queried using getType())
50 | virtual MARKER_TYPE getMarkerType() const = 0;
51 | };
52 |
53 | } // namespace QCAR
54 |
55 | #endif //_QCAR_MARKER_H_
56 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TargetSearchResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TargetSearchResult.h
8 |
9 | @brief
10 | Header file for TargetSearchResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TARGET_SEARCH_RESULT_H_
13 | #define _QCAR_TARGET_SEARCH_RESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// A search result of a found target returned by the TargetFinder
23 | class TargetSearchResult : private NonCopyable
24 | {
25 | public:
26 | /// Returns the name of the target
27 | virtual const char* getTargetName() const = 0;
28 |
29 | /// Returns the system-wide unique id of the target.
30 | virtual const char* getUniqueTargetId() const = 0;
31 |
32 | /// Returns the width of the target (in 3D scene units)
33 | virtual const float getTargetSize() const = 0;
34 |
35 | /// Returns the metadata associated with this target
36 | virtual const char* getMetaData() const = 0;
37 |
38 | /// Returns the tracking rating for this target
39 | /**
40 | * The tracking rating represents a 5-star rating describing the
41 | * suitability of this target for tracking on a scale from 0 to 5. A low
42 | * tracking rating may result in poor tracking or unstable augmentation.
43 | */
44 | virtual unsigned char getTrackingRating() const = 0;
45 | };
46 |
47 | } // namespace QCAR
48 |
49 | #endif //_QCAR_TARGET_SEARCH_RESULT_H_
50 |
--------------------------------------------------------------------------------
/PokemonAR/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
28 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Trackable.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Trackable.h
8 |
9 | @brief
10 | Header file for Trackable class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TRACKABLE_H_
13 | #define _QCAR_TRACKABLE_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | namespace QCAR
22 | {
23 |
24 | /// Base class for all objects that can be tracked.
25 | /**
26 | * Every Trackable has a name, an id and a type.
27 | */
28 | class QCAR_API Trackable : private NonCopyable
29 | {
30 | public:
31 |
32 | /// Returns the Trackable class' type
33 | static Type getClassType();
34 |
35 | /// Returns the Trackable instance's type
36 | virtual Type getType() const = 0;
37 |
38 | /// Checks whether the Trackable instance's type equals or has been
39 | /// derived from a give type
40 | virtual bool isOfType(Type type) const = 0;
41 |
42 | /// Returns a unique id for all 3D trackable objects
43 | virtual int getId() const = 0;
44 |
45 | /// Returns the Trackable's name
46 | virtual const char* getName() const = 0;
47 |
48 | /// Sets the given user data for this Trackable. Returns true if successful
49 | virtual bool setUserData(void* userData) = 0;
50 |
51 | /// Returns the pointer previously set by setUserData()
52 | virtual void* getUserData() const = 0;
53 |
54 | /// Starts extended tracking for this Trackable. Returns true if successful
55 | virtual bool startExtendedTracking() = 0;
56 |
57 | /// Stops extended tracking for this Trackable. Returns true if successful
58 | virtual bool stopExtendedTracking() = 0;
59 |
60 | virtual ~Trackable() {}
61 | };
62 |
63 | } // namespace QCAR
64 |
65 | #endif //_QCAR_TRACKABLE_H_
66 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Word.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Word.h
8 |
9 | @brief
10 | Header file for Word class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_WORD_H_
13 | #define _QCAR_WORD_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 |
22 | namespace QCAR
23 | {
24 |
25 | /// A Word represents a single element of writing.
26 | class QCAR_API Word : public Trackable
27 | {
28 | public:
29 | /// Returns the Trackable class' type
30 | static Type getClassType();
31 |
32 | /// Returns the Unicode character string for this word.
33 | virtual const UInt16* getStringU() const = 0;
34 |
35 | /// Returns the number of characters in the string excluding the null
36 | /// terminator.
37 | virtual int getLength() const = 0;
38 |
39 | /// Returns the number of code units in the Unicode string.
40 | virtual int getNumCodeUnits() const = 0;
41 |
42 | /// Returns the size (width and height) of the word bounding box
43 | ///(in 3D scene units).
44 | virtual Vec2F getSize() const = 0;
45 |
46 | /// Returns an image representing the bit mask of the letters in the word.
47 | /**
48 | * Each pixel in the image is represented by a byte (8-bit value).
49 | * A value of 255 represents an empty area, i.e. a pixel not covered
50 | * by any letter of the word.
51 | * If a pixel is covered by a letter, then the pixel value represents
52 | * the position of that letter in the word, i.e. 0 for the first character,
53 | * 1 for the second, 2 for the third, and so on.
54 | */
55 | virtual const Image* getMask() const = 0;
56 |
57 | /// Returns the bounding box of the letter at the given index.
58 | virtual const Rectangle* getLetterBoundingBox(int idx) const = 0;
59 | };
60 |
61 | } // namespace QCAR
62 |
63 | #endif //_QCAR_WORD_H_
64 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Frame.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Frame.h
8 |
9 | @brief
10 | Header file for Frame class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_FRAME_H_
13 | #define _QCAR_FRAME_H_
14 |
15 | // Include files
16 | #include
17 |
18 |
19 | namespace QCAR
20 | {
21 |
22 |
23 | // Forward declarations
24 | class Image;
25 | class FrameData;
26 |
27 |
28 | /// Frame is a collection of different representations of a single
29 | /// camerasnapshot
30 | /**
31 | * A Frame object can include an arbitrary number of image representations in
32 | * different formats or resolutions together with a time stamp and frame index.
33 | * Frame implements the RAII pattern: A newly created frame holds
34 | * new image data whereas copies of the share this data. The image data held by
35 | * Frame exists as long as one or more Frame objects referencing this image
36 | * data exist.
37 | */
38 | class QCAR_API Frame
39 | {
40 | public:
41 | /// Creates a new frame
42 | Frame();
43 |
44 | /// Creates a reference to an existing frame
45 | Frame(const Frame& other);
46 |
47 | /// Destructor
48 | ~Frame();
49 |
50 | /// Thread save assignment operator
51 | Frame& operator=(const Frame& other);
52 |
53 | /// A time stamp that defines when the original camera image was shot
54 | /**
55 | * Value in seconds representing the offset to application startup time.
56 | * Independent from image creation the time stamp always refers to the time
57 | * the camera image was shot.
58 | */
59 | double getTimeStamp() const;
60 |
61 | /// Index of the frame
62 | int getIndex() const;
63 |
64 | /// Number of images in the images-array
65 | int getNumImages() const;
66 |
67 | /// Read-only access to an image
68 | const Image* getImage(int idx) const;
69 |
70 | protected:
71 | FrameData* mData;
72 | };
73 |
74 | } // namespace QCAR
75 |
76 | #endif // _QCAR_FRAME_H_
77 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Rectangle.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Rectangle.h
8 |
9 | @brief
10 | Header file for Rectangle class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_RECTANGLE_H_
13 | #define _QCAR_RECTANGLE_H_
14 |
15 |
16 | #include
17 |
18 |
19 | namespace QCAR
20 | {
21 |
22 |
23 | /// Rectangle defines a 2D rectangular area
24 | class QCAR_API Rectangle : public Area
25 | {
26 | public:
27 | Rectangle();
28 |
29 | Rectangle(const Rectangle& other);
30 |
31 | Rectangle(float leftTopX, float leftTopY,
32 | float rightBottomX, float rightBottomY);
33 |
34 | virtual ~Rectangle();
35 |
36 | Rectangle& operator=(const Rectangle& other);
37 |
38 | float getLeftTopX() const;
39 |
40 | float getLeftTopY() const;
41 |
42 | float getRightBottomX() const;
43 |
44 | float getRightBottomY() const;
45 |
46 | float getWidth() const;
47 |
48 | float getHeight() const;
49 |
50 | float getAreaSize() const;
51 |
52 | virtual TYPE getType() const;
53 |
54 | protected:
55 | float left,top,right,bottom;
56 | };
57 |
58 |
59 | // Integer version of the Rectangle class
60 | class QCAR_API RectangleInt : public Area
61 | {
62 | public:
63 | RectangleInt();
64 |
65 | RectangleInt(const RectangleInt& other);
66 |
67 | RectangleInt(int leftTopX, int leftTopY,
68 | int rightBottomX, int rightBottomY);
69 |
70 | virtual ~RectangleInt();
71 |
72 | RectangleInt& operator=(const RectangleInt& other);
73 |
74 | int getLeftTopX() const;
75 |
76 | int getLeftTopY() const;
77 |
78 | int getRightBottomX() const;
79 |
80 | int getRightBottomY() const;
81 |
82 | int getWidth() const;
83 |
84 | int getHeight() const;
85 |
86 | int getAreaSize() const;
87 |
88 | virtual TYPE getType() const;
89 |
90 | protected:
91 | int left,top,right,bottom;
92 | };
93 |
94 | } // namespace QCAR
95 |
96 |
97 |
98 | #endif // _QCAR_RECTANGLE_H_
99 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/MarkerTracker.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | MarkerTracker.h
8 |
9 | @brief
10 | Header file for MarkerTracker class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MARKER_TRACKER_H_
13 | #define _QCAR_MARKER_TRACKER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | // Forward Declaration
23 | class Marker;
24 |
25 | /// MarkerTracker class.
26 | /**
27 | * The MarkerTracker tracks rectangular markers and provides methods for
28 | * creating and destroying these dynamically.
29 | * Note that the methods for creating and destroying markers should not be
30 | * called while the MarkerTracker is working at the same time. Doing so will
31 | * make these methods block and wait until the MarkerTracker has finished.
32 | * The suggested way of doing this is during the execution of UpdateCallback,
33 | * which guarantees that the MarkerTracker is not working concurrently.
34 | * Alternatively the MarkerTracker can be stopped explicitly.
35 | */
36 | class QCAR_API MarkerTracker : public Tracker
37 | {
38 | public:
39 |
40 | /// Returns the Tracker class' type
41 | static Type getClassType();
42 |
43 | /// Creates a new Marker
44 | /**
45 | * Creates a new marker of the given name, size and id. Returns the new
46 | * instance on success, NULL otherwise. Use MarkerTracker::destroyMarker
47 | * to destroy the returned Marker when it is no longer needed.
48 | */
49 | virtual Marker* createFrameMarker(int markerId, const char* name,
50 | const QCAR::Vec2F& size) = 0;
51 |
52 | /// Destroys a Marker
53 | virtual bool destroyMarker(Marker* marker) = 0;
54 |
55 | /// Returns the total number of Markers that have been created.
56 | virtual int getNumMarkers() const = 0;
57 |
58 | /// Returns a pointer to a Marker object
59 | virtual Marker* getMarker(int idx) const = 0;
60 | };
61 |
62 | } // namespace QCAR
63 |
64 | #endif //_QCAR_MARKER_TRACKER_H_
65 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TrackableResult.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TrackableResult.h
8 |
9 | @brief
10 | Header file for TrackableResult class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TRACKABLERESULT_H_
13 | #define _QCAR_TRACKABLERESULT_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | namespace QCAR
22 | {
23 |
24 | /// Base class for all result objects.
25 | /**
26 | * A TrackableResult is an object that represents the state of a Trackable
27 | * which was found in a given frame. Every TrackableResult has a corresponding
28 | * Trackable, a type, a 6DOF pose and a status (e.g. tracked).
29 | */
30 | class QCAR_API TrackableResult : private NonCopyable
31 | {
32 | public:
33 |
34 | /// Returns the TrackableResult class' type
35 | static Type getClassType();
36 |
37 | /// Returns the TrackableResult instance's type
38 | virtual Type getType() const = 0;
39 |
40 | /// Checks whether the TrackableResult instance's type equals or has been
41 | /// derived from a give type
42 | virtual bool isOfType(Type type) const = 0;
43 |
44 | /// Status of a TrackableResults
45 | enum STATUS {
46 | UNKNOWN, ///< The state of the TrackableResult is unknown
47 | UNDEFINED, ///< The state of the TrackableResult is not defined
48 | ///< (this TrackableResult does not have a state)
49 | DETECTED, ///< The TrackableResult was detected
50 | TRACKED, ///< The TrackableResult was tracked
51 | EXTENDED_TRACKED ///< The Trackable Result was extended tracked
52 | };
53 |
54 | /// Returns the tracking status
55 | virtual STATUS getStatus() const = 0;
56 |
57 | /// Returns the corresponding Trackable that this result represents
58 | virtual const Trackable& getTrackable() const = 0;
59 |
60 | /// Returns the current pose matrix in row-major order
61 | virtual const Matrix34F& getPose() const = 0;
62 |
63 | virtual ~TrackableResult() {}
64 | };
65 |
66 | } // namespace QCAR
67 |
68 | #endif //_QCAR_TRACKABLERESULT_H_
69 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TrackerManager.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TrackerManager.h
8 |
9 | @brief
10 | Header file for TrackerManager class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TRACKER_MANAGER_H_
13 | #define _QCAR_TRACKER_MANAGER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// TrackerManager class.
23 | /**
24 | * The TrackerManager singleton provides methods for accessing the trackers
25 | * available in Vuforia as well as initializing specific trackers required by the
26 | * application. See the Tracker base class for a list of available tracker
27 | * types.
28 | */
29 | class QCAR_API TrackerManager : private NonCopyable
30 | {
31 | public:
32 | /// Returns the TrackerManager singleton instance.
33 | static TrackerManager& getInstance();
34 |
35 | /// Initializes the tracker of the given type
36 | /**
37 | * Initializing a tracker must not be done when the CameraDevice
38 | * is initialized or started. This function will return NULL if the
39 | * tracker of the given type has already been initialized or if the
40 | * CameraDevice is currently initialized.
41 | */
42 | virtual Tracker* initTracker(Type type) = 0;
43 |
44 | /// Returns the instance of the given tracker type
45 | /**
46 | * See the Tracker base class for a list of available tracker classes.
47 | * This function will return NULL if the tracker of the given type has
48 | * not been initialized.
49 | */
50 | virtual Tracker* getTracker(Type type) = 0;
51 |
52 | /// Deinitializes the tracker of the given type
53 | /**
54 | * Deinitializes the tracker of the given type and frees any resources
55 | * used by the tracker.
56 | * Deinitializing a tracker must not be done when the CameraDevice
57 | * is initialized or started. This function will return false if the
58 | * tracker of the given type has not been initialized or if the
59 | * CameraDevice is currently initialized.
60 | */
61 | virtual bool deinitTracker(Type type) = 0;
62 | };
63 |
64 | } // namespace QCAR
65 |
66 | #endif //_QCAR_TRACKER_MANAGER_H_
67 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Vectors.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Vectors.h
8 |
9 | @brief
10 | Header file for vector structs.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VECTOR_H_
13 | #define _QCAR_VECTOR_H_
14 |
15 | namespace QCAR
16 | {
17 |
18 | /// 2D vector of float items
19 | struct Vec2F
20 | {
21 | Vec2F() {}
22 |
23 | Vec2F(const float* v)
24 | {
25 | for(int i=0; i<2; i++)
26 | data[i]= v[i];
27 | }
28 |
29 | Vec2F(float v0, float v1)
30 | {
31 | data[0] = v0;
32 | data[1] = v1;
33 | }
34 |
35 | float data[2];
36 | };
37 |
38 |
39 | /// 3D vector of float items
40 | struct Vec3F
41 | {
42 | Vec3F() {}
43 |
44 | Vec3F(const float* v)
45 | {
46 | for(int i=0; i<3; i++)
47 | data[i]= v[i];
48 | }
49 |
50 | Vec3F(float v0, float v1, float v2)
51 | {
52 | data[0] = v0;
53 | data[1] = v1;
54 | data[2] = v2;
55 | }
56 |
57 | float data[3];
58 | };
59 |
60 |
61 | /// 4D vector of float items
62 | struct Vec4F
63 | {
64 | Vec4F() {}
65 |
66 | Vec4F(const float* v)
67 | {
68 | for(int i=0; i<4; i++)
69 | data[i]= v[i];
70 | }
71 |
72 | Vec4F(float v0, float v1, float v2, float v3)
73 | {
74 | data[0] = v0;
75 | data[1] = v1;
76 | data[2] = v2;
77 | data[3] = v3;
78 | }
79 |
80 | float data[4];
81 | };
82 |
83 |
84 | /// 2D vector of int items
85 | struct Vec2I
86 | {
87 | Vec2I() {}
88 | Vec2I(const int* v)
89 | {
90 | for(int i=0; i<2; i++)
91 | data[i]= v[i];
92 | }
93 |
94 | Vec2I(int v0, int v1)
95 | {
96 | data[0] = v0;
97 | data[1] = v1;
98 | }
99 |
100 | int data[2];
101 | };
102 |
103 |
104 | /// 3D vector of int items
105 | struct Vec3I
106 | {
107 | Vec3I() {}
108 | Vec3I(const int* v)
109 | {
110 | for(int i=0; i<3; i++)
111 | data[i]= v[i];
112 | }
113 |
114 | int data[3];
115 | };
116 |
117 |
118 | /// 4D vector of int items
119 | struct Vec4I
120 | {
121 | Vec4I() {}
122 | Vec4I(const int* v)
123 | {
124 | for(int i=0; i<4; i++)
125 | data[i]= v[i];
126 | }
127 |
128 | int data[4];
129 | };
130 |
131 | } // namespace QCAR
132 |
133 | #endif //_QCAR_VECTOR_H_
134 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/State.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | State.h
8 |
9 | @brief
10 | Header file for State class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_STATE_H_
13 | #define _QCAR_STATE_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | class Trackable;
23 | class TrackableResult;
24 | class StateData;
25 |
26 |
27 | /// AR State
28 | /**
29 | * A consistent view on the augmented reality state
30 | * including a camera frame and all trackables.
31 | * Similar to Frame, State is a light weight object that
32 | * shares its data among multiple instances. Copies are
33 | * therefore cheap and suggested over usage of references.
34 | * Notice: Trackables queried by the state can not be
35 | * compared by pointer to Trackables queried by the tracker
36 | * (even though they might reference the same tracked object).
37 | * Trackables queried by the state represent a temporary and
38 | * consistent view on the Augmented Reality state and can
39 | * therefore not be modified. objects must be queried from
40 | * the Tracker in order to modify them.
41 | */
42 | class QCAR_API State
43 | {
44 | public:
45 | /// Default constructor.
46 | State();
47 |
48 | /// Copy constructor.
49 | State(const State& other);
50 |
51 | /// Destructor
52 | ~State();
53 |
54 | /// Thread safe assignment operator
55 | State& operator=(const State& other);
56 |
57 | /// Returns the Frame object that is stored in the State
58 | Frame getFrame() const;
59 |
60 | /// Returns the number of Trackable objects currently known to the SDK
61 | int getNumTrackables() const;
62 |
63 | /// Provides access to a specific Trackable
64 | /**
65 | * The returned object is only valid as long as the State
66 | * object is valid. Do not keep a copy of the pointer!
67 | */
68 | const Trackable* getTrackable(int idx) const;
69 |
70 | /// Returns the number of Trackable objects currently being tracked
71 | int getNumTrackableResults() const;
72 |
73 | /// Provides access to a specific TrackableResult object.
74 | /**
75 | * The returned object is only valid as long as the State
76 | * object is valid. Do not keep a copy of the pointer!
77 | */
78 | const TrackableResult* getTrackableResult(int idx) const;
79 |
80 | protected:
81 | StateData* mData;
82 |
83 | };
84 |
85 | } // namespace QCAR
86 |
87 | #endif //_QCAR_STATE_H_
88 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/VirtualButton.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | VirtualButton.h
8 |
9 | @brief
10 | Header file for VirtualButton class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VIRTUALBUTTON_H_
13 | #define _QCAR_VIRTUALBUTTON_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | class Area;
23 |
24 |
25 | /// A virtual button on a trackable
26 | /**
27 | * Methods to modify a VirtualButton must not be called while the
28 | * corresponding DataSet is active. The dataset must be deactivated first
29 | * before reconfiguring a VirtualButton.
30 | */
31 | class QCAR_API VirtualButton : private NonCopyable
32 | {
33 | public:
34 | /// Sensitivity of press detection
35 | enum SENSITIVITY {
36 | HIGH, ///< Fast detection
37 | MEDIUM, ///< Balananced between fast and robust
38 | LOW ///< Robust detection
39 | };
40 |
41 | /// Defines a new area for the button area in 3D scene units (the
42 | /// coordinate system is local to the ImageTarget).
43 | /**
44 | * This method must not be called while the corresponding DataSet is
45 | * active or it will return false.
46 | */
47 | virtual bool setArea(const Area& area) = 0;
48 |
49 | /// Returns the currently set Area
50 | virtual const Area& getArea() const = 0;
51 |
52 | /// Sets the sensitivity of the virtual button
53 | /**
54 | * Sensitivity allows deciding between fast and robust button press
55 | * measurements. This method must not be called while the corresponding
56 | * DataSet is active or it will return false.
57 | */
58 | virtual bool setSensitivity(SENSITIVITY sensitivity) = 0;
59 |
60 | /// Enables or disables a virtual button
61 | /**
62 | * This method must not be called while the corresponding DataSet is
63 | * active or it will return false.
64 | */
65 | virtual bool setEnabled(bool enabled) = 0;
66 |
67 | /// Returns true if the virtual button is active (updates while tracking).
68 | virtual bool isEnabled() const = 0;
69 |
70 | /// Returns the name of the button as ASCII string.
71 | virtual const char* getName() const = 0;
72 |
73 | /// Returns a unique id for this virtual button.
74 | virtual int getID() const = 0;
75 |
76 | protected:
77 | virtual ~VirtualButton() {}
78 | };
79 |
80 | } // namespace QCAR
81 |
82 | #endif //_QCAR_VIRTUALBUTTON_H_
83 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/CylinderTarget.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | CylinderTarget.h
8 |
9 | @brief
10 | Header file for CylinderTarget class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_CylinderTarget_H_
13 | #define _QCAR_CylinderTarget_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | /// A 3D trackable object of cylindrical or conical shape.
22 | /**
23 | * The CylinderTarget class exposes convenience functionality for setting the
24 | * scene size of the object via any of its three defining geometric parameters:
25 | * side length, top diameter and bottom diameter.
26 | * The object is always scaled uniformly, so changing any of its parameters
27 | * affects all others.
28 | */
29 | class QCAR_API CylinderTarget : public Trackable
30 | {
31 | public:
32 |
33 | /// Returns the Trackable class' type
34 | static Type getClassType();
35 |
36 | /// Returns the side length of the cylinder target (in 3D scene units).
37 | virtual float getSideLength() const = 0;
38 |
39 | /// Sets the side length of the cylinder target (in 3D scene units).
40 | /**
41 | * Note that the top and bottom diameter will be scaled accordingly.
42 | */
43 | virtual bool setSideLength(float sideLength) = 0;
44 |
45 | /// Returns the top diameter of the cylinder target (in 3D scene units).
46 | virtual float getTopDiameter() const = 0;
47 |
48 | /// Sets the top diameter of the cylinder target (in 3D scene units).
49 | /**
50 | * Note that the height and bottom diameter will be scaled accordingly.
51 | */
52 | virtual bool setTopDiameter(float topDiameter) = 0;
53 |
54 | /// Returns the bottom diameter of the cylinder target (in 3D scene units).
55 | virtual float getBottomDiameter() const = 0;
56 |
57 | /// Sets the bottom diameter of the cylinder target (in 3D scene units).
58 | /**
59 | * Note that the height and top diameter will be scaled accordingly.
60 | */
61 | virtual bool setBottomDiameter(float bottomDiameter) = 0;
62 |
63 | /// Returns the system-wide unique id of the target.
64 | /**
65 | * The target id uniquely identifies an CylinderTarget across multiple
66 | * Vuforia sessions. The system wide unique id may be generated off-line.
67 | * This is opposed to the function getId() which is a dynamically
68 | * generated id and which uniquely identifies a Trackable within one run
69 | * of Vuforia only.
70 | */
71 | virtual const char* getUniqueTargetId() const = 0;
72 | };
73 |
74 | } // namespace QCAR
75 |
76 | #endif //_QCAR_CylinderTarget_H_
77 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Renderer.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Renderer.h
8 |
9 | @brief
10 | Header file for Renderer class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_RENDERER_H_
13 | #define _QCAR_RENDERER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 |
22 | namespace QCAR
23 | {
24 |
25 | // Forward declarations
26 | class State;
27 | struct VideoBackgroundConfig;
28 | struct VideoBackgroundTextureInfo;
29 |
30 | /// Renderer class
31 | /**
32 | * The Renderer class provides methods to fulfill typical AR related tasks
33 | * such as rendering the video background and 3D objects with up to date
34 | * pose data. Methods of the Renderer class must only be called from the render
35 | * thread.
36 | */
37 | class QCAR_API Renderer : private NonCopyable
38 | {
39 | public:
40 | /// Returns the Renderer singleton instance.
41 | static Renderer& getInstance();
42 |
43 | /// Marks the beginning of rendering for the current frame and returns the
44 | /// State object.
45 | virtual State begin() = 0;
46 |
47 | /// Marks the beginning of rendering for the given frame. Use this to draw a
48 | /// specific camera frame, rather than the latest available one.
49 | virtual void begin(State state) = 0;
50 |
51 | /// Draws the video background
52 | /// This should only be called between a begin() and end() calls
53 | virtual bool drawVideoBackground() = 0;
54 |
55 | /// Marks the end of rendering for the current frame.
56 | virtual void end() = 0;
57 |
58 | /// Binds the video background texture to a given texture unit
59 | /// This should only be called between a begin() and end() calls
60 | virtual bool bindVideoBackground(int unit) = 0;
61 |
62 | /// Configures the layout of the video background (location on the screen
63 | /// and size).
64 | virtual void setVideoBackgroundConfig(const VideoBackgroundConfig& cfg) = 0;
65 |
66 | /// Retrieves the current layout configuration of the video background.
67 | virtual const VideoBackgroundConfig& getVideoBackgroundConfig() const = 0;
68 |
69 | /// Returns the texture info associated with the current video background
70 | virtual const VideoBackgroundTextureInfo&
71 | getVideoBackgroundTextureInfo() = 0;
72 |
73 | /// Tells Vuforia where the texture id to use for updating video
74 | /// background data
75 | virtual bool setVideoBackgroundTextureID(int textureID) = 0;
76 |
77 | /// Tool method to calculate a perspective projection matrix for AR
78 | /// rendering and apply it to OpenGL
79 | virtual void setARProjection(float nearPlane, float farPlane) = 0;
80 | };
81 |
82 | } // namespace QCAR
83 |
84 | #endif //_QCAR_RENDERER_H_
85 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Image.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Image.h
8 |
9 | @brief
10 | Header file for Image class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_IMAGE_H_
13 | #define _QCAR_IMAGE_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// An image as e.g. returned by the CameraDevice object
23 | /**
24 | * The image's pixel buffer can have a different size than the
25 | * getWidth() and getHeight() methods report. This is e.g. the
26 | * case when an image is used for rendering as a texture without
27 | * non-power-of-two support.
28 | * The real size of the image's pixel buffer can be queried using
29 | * getBufferWidth() and getBufferHeight().
30 | */
31 | class QCAR_API Image : private NonCopyable
32 | {
33 | public:
34 | /// Returns the width of the image in pixels
35 | /**
36 | * getWidth() returns the number of pixels in the pixel buffer that make up
37 | * the used image area. The pixel buffer can be wider than this. Use
38 | * getBufferWidth() to find out the real width of the pixel buffer.
39 | */
40 | virtual int getWidth() const = 0;
41 |
42 | /// Returns the height of the image in pixels
43 | /**
44 | * getHeight() returns the number of pixel rows in the pixel buffer that
45 | * make up the used image area. The pixel buffer can have more rows than
46 | * that. Use getBufferHeight() to find out the real number of rows that fit
47 | * into the buffer.
48 | */
49 | virtual int getHeight() const = 0;
50 |
51 | /// Returns the number bytes from one row of pixels to the next row
52 | /**
53 | * Per default the stride is number-of-pixels times bytes-per-pixel.
54 | * However, in some cases there can be additional padding bytes at
55 | * the end of a row (e.g. to support power-of-two textures).
56 | */
57 | virtual int getStride() const = 0;
58 |
59 | /// Returns the number of pixel columns that fit into the pixel buffer
60 | /**
61 | * Per default the number of columns that fit into the pixel buffer
62 | * is identical to the width of the image.
63 | * However, in some cases there can be additional padding columns at
64 | * the right side of an image (e.g. to support power-of-two textures).
65 | */
66 | virtual int getBufferWidth() const = 0;
67 |
68 | /// Returns the number of rows that fit into the pixel buffer
69 | /**
70 | * Per default the number of rows that fit into the pixel buffer
71 | * is identical to the height of the image.
72 | * However, in some cases there can be additional padding rows at
73 | * the bottom of an image (e.g. to support power-of-two textures).
74 | */
75 | virtual int getBufferHeight() const = 0;
76 |
77 | /// Returns the pixel format of the image
78 | virtual PIXEL_FORMAT getFormat() const = 0;
79 |
80 | /// Provides read-only access to pixel data
81 | virtual const void* getPixels() const = 0;
82 |
83 | protected:
84 | virtual ~Image() {}
85 | };
86 |
87 | } // namespace QCAR
88 |
89 | #endif //_QCAR_IMAGE_H_
90 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/ImageTargetBuilder.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | ImageTargetBuilder.h
8 |
9 | @brief
10 | Header file for ImageTargetBuilder class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_IMAGE_TARGET_BUILDER_H_
13 | #define _QCAR_IMAGE_TARGET_BUILDER_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | class TrackableSource;
22 |
23 | /// ImageTargetBuilder
24 | class QCAR_API ImageTargetBuilder
25 | {
26 | public:
27 |
28 | enum FRAME_QUALITY {
29 | FRAME_QUALITY_NONE = -1, ///< getFrameQualty was called oustside of scanning mode
30 | FRAME_QUALITY_LOW = 0, ///< Poor number of features for tracking
31 | FRAME_QUALITY_MEDIUM, ///< Sufficient number features for tracking
32 | FRAME_QUALITY_HIGH, ///< Ideal number of features for tracking
33 | };
34 |
35 |
36 | /// Build an Image Target Trackable source from the next available camera frame
37 | /**
38 | * Build an Image Target Trackable Source from the next available camera frame.
39 | * This is an asynchronous process, the result of which will be available from
40 | * getTrackableSource().
41 | *
42 | * Note, the ImageTargetBuilder class must be in scan mode for a successful
43 | * target to be built. This allows you to provide feedback to the end user
44 | * as to what the quality of the current frame is before creating a target.
45 | *
46 | * This method will return true if the build was successfully started, and false
47 | * if an invalid name or sceenSizeWidth is provided.
48 | */
49 | virtual bool build(const char* name, float sceneSizeWidth) = 0;
50 |
51 |
52 | /// Start the scanning mode, allowing calls to getFrameQuality()
53 | /**
54 | * Starts the internal frame scanning process, allowing calls to getFrameQuality()
55 | */
56 | virtual void startScan() = 0;
57 |
58 |
59 | /// Stop the scanning mode
60 | /**
61 | * Stop the scanning mode, getFrameQuality will return FRAME_QUALITY_NONE until
62 | * startScan is called again. Stopping scan mode will reduce the overall system
63 | * utilization when not building ImageTargets.
64 | */
65 | virtual void stopScan() = 0;
66 |
67 |
68 | /// Get frame quality, available after startScan is called.
69 | /**
70 | * Will return the frame quality for the last available camera frame, a value
71 | * of FRAME_QUALITY_NONE will be returned if the scanning mode was not enabled.
72 | * via the startScan() method.
73 | */
74 | virtual FRAME_QUALITY getFrameQuality() = 0;
75 |
76 |
77 | /// Returns a trackable source object to be used in adding a new target to a dataset
78 | /**
79 | * This method will return a TrackableSource to be provided to the DataSet. This
80 | * API will return NULL until a trackable source is available. This trackable
81 | * source will be provided via this api until build() is called again, at which
82 | * point it will return NULL again until a successful build step has occured.
83 | */
84 | virtual TrackableSource* getTrackableSource() = 0;
85 |
86 | protected:
87 | virtual ~ImageTargetBuilder() {}
88 |
89 | };
90 |
91 | } // namespace QCAR
92 |
93 | #endif //_QCAR_IMAGE_TARGET_BUILDER_H_
94 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/ImageTarget.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | ImageTarget.h
8 |
9 | @brief
10 | Header file for ImageTarget class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_IMAGETARGET_H_
13 | #define _QCAR_IMAGETARGET_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | // Forward declarations
23 | class Area;
24 | class VirtualButton;
25 |
26 | /// A flat natural feature target
27 | /**
28 | * Methods to modify an ImageTarget must not be called while the
29 | * corresponding DataSet is active. The dataset must be deactivated first
30 | * before reconfiguring an ImageTarget.
31 | */
32 | class QCAR_API ImageTarget : public Trackable
33 | {
34 | public:
35 |
36 | /// Returns the Trackable class' type
37 | static Type getClassType();
38 |
39 | /// Returns the system-wide unique id of the target.
40 | /**
41 | * The target id uniquely identifies an ImageTarget across multiple
42 | * Vuforia sessions. The system wide unique id may be generated off-line.
43 | * This is opposed to the function getId() which is a dynamically
44 | * generated id and which uniquely identifies a Trackable within one run
45 | * of Vuforia only.
46 | */
47 | virtual const char* getUniqueTargetId() const = 0;
48 |
49 | /// Returns the size (width and height) of the target (in 3D scene units).
50 | virtual Vec2F getSize() const = 0;
51 |
52 | /// Set the size (width and height) of the target (in 3D scene units).
53 | /**
54 | * The dataset this ImageTarget belongs to must not be active when calling
55 | * this function or it will fail. Returns true if the size was set
56 | * successfully, false otherwise.
57 | */
58 | virtual bool setSize(const Vec2F& size) = 0;
59 |
60 | /// Returns the number of virtual buttons defined for this ImageTarget.
61 | virtual int getNumVirtualButtons() const = 0;
62 |
63 | /// Provides write access to a specific virtual button.
64 | virtual VirtualButton* getVirtualButton(int idx) = 0;
65 |
66 | /// Provides read-only access to a specific virtual button.
67 | virtual const VirtualButton* getVirtualButton(int idx) const = 0;
68 |
69 | /// Returns a virtual button by its name
70 | /**
71 | * Returns NULL if no virtual button with that name
72 | * exists in this ImageTarget
73 | */
74 | virtual VirtualButton* getVirtualButton(const char* name) = 0;
75 |
76 | /// Returns a virtual button by its name
77 | /**
78 | * Returns NULL if no virtual button with that name
79 | * exists in this ImageTarget
80 | */
81 | virtual const VirtualButton* getVirtualButton(const char* name) const = 0;
82 |
83 | /// Creates a new virtual button and adds it to the ImageTarget
84 | /**
85 | * Returns NULL if the corresponding DataSet is currently active.
86 | */
87 | virtual VirtualButton* createVirtualButton(const char* name, const Area& area) = 0;
88 |
89 | /// Removes and destroys one of the ImageTarget's virtual buttons
90 | /**
91 | * Returns false if the corresponding DataSet is currently active.
92 | */
93 | virtual bool destroyVirtualButton(VirtualButton* button) = 0;
94 |
95 | /// Returns the meta data string for this ImageTarget.
96 | virtual const char* getMetaData() const = 0;
97 |
98 | };
99 |
100 | } // namespace QCAR
101 |
102 | #endif //_QCAR_IMAGETARGET_H_
103 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/Tool.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | Tool.h
8 |
9 | @brief
10 | Header file for global Tool functions.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TOOL_H_
13 | #define _QCAR_TOOL_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | // Forward declarations
24 | class CameraCalibration;
25 |
26 | /// Tool functions
27 | namespace Tool
28 | {
29 | /// Returns a 4x4 col-major OpenGL model-view matrix from a 3x4 Vuforia pose
30 | /// matrix.
31 | /**
32 | * Vuforia uses 3x4 row-major matrices for pose data. convertPose2GLMatrix()
33 | * takes such a pose matrix and returns an OpenGL compatible model-view
34 | * matrix.
35 | */
36 | QCAR_API Matrix44F convertPose2GLMatrix(const Matrix34F& pose);
37 |
38 | /// Returns an OpenGL style projection matrix.
39 | QCAR_API Matrix44F getProjectionGL(const CameraCalibration& calib,
40 | float nearPlane, float farPlane);
41 |
42 | /// Projects a 3D scene point into the camera image(device coordinates)
43 | /// given a pose in form of a 3x4 matrix.
44 | /**
45 | * The projectPoint() function takes a 3D point in scene coordinates and
46 | * transforms it using the given pose matrix. It then projects it into the
47 | * camera image (pixel coordinates) using the given camera calibration.
48 | * Note that camera coordinates are usually different from screen
49 | * coordinates, since screen and camera resolution can be different.
50 | * Transforming from camera to screen coordinates requires another
51 | * transformation using the settings applied to the Renderer via the
52 | * VideoBackgroundConfig structure.
53 | */
54 | QCAR_API Vec2F projectPoint(const CameraCalibration& calib,
55 | const Matrix34F& pose, const Vec3F& point);
56 |
57 | /// Multiplies two Vuforia pose matrices
58 | /**
59 | * In order to apply a transformation A on top of a transformation B,
60 | * perform: multiply(B,A).
61 | */
62 | QCAR_API Matrix34F multiply(const Matrix34F& matLeft,
63 | const Matrix34F& matRight);
64 |
65 | /// Multiplies two Vuforia-style 4x4-matrices (row-major order)
66 | QCAR_API Matrix44F multiply(const Matrix44F& matLeft,
67 | const Matrix44F& matRight);
68 |
69 | /// Multiplies 1 vector and 1 Vuforia-style 4x4-matrix (row-major order)
70 | QCAR_API Vec4F multiply(const Vec4F& vec,
71 | const Matrix44F& mat);
72 |
73 | /// Multiplies two GL-style matrices (col-major order)
74 | QCAR_API Matrix44F multiplyGL(const Matrix44F& matLeft,
75 | const Matrix44F& matRight);
76 |
77 | /// Sets the translation part of a 3x4 pose matrix
78 | QCAR_API void setTranslation(Matrix34F& pose,
79 | const Vec3F& translation);
80 |
81 | /// Sets the rotation part of a 3x4 pose matrix using axis-angle as input
82 | /**
83 | * The axis parameter defines the 3D axis around which the pose rotates.
84 | * The angle parameter defines the angle in degrees for the rotation
85 | * around that axis.
86 | */
87 | QCAR_API void setRotation(Matrix34F& pose,
88 | const Vec3F& axis, float angle);
89 |
90 | } // namespace Tool
91 |
92 | } // namespace QCAR
93 |
94 | #endif //_QCAR_TOOL_H_
95 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/VideoBackgroundConfig.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | VideoBackgroundConfig.h
8 |
9 | @brief
10 | Header file for VideoBackgroundConfig struct.
11 | ==============================================================================*/
12 | #ifndef _QCAR_VIDEOBACKGROUNDCONFIG_H_
13 | #define _QCAR_VIDEOBACKGROUNDCONFIG_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | enum VIDEO_BACKGROUND_REFLECTION
22 | {
23 | VIDEO_BACKGROUND_REFLECTION_DEFAULT, ///< Allows the SDK to set the recommended reflection settings for the current camera
24 | VIDEO_BACKGROUND_REFLECTION_ON, ///< Overrides the SDK recommendation to force a reflection
25 | VIDEO_BACKGROUND_REFLECTION_OFF ///< Overrides the SDK recommendation to disable reflection
26 | };
27 |
28 | /// Video background configuration
29 | struct VideoBackgroundConfig
30 | {
31 | /// Constructor to provide basic initalization.
32 | VideoBackgroundConfig()
33 | {
34 | mEnabled = true;
35 | mSynchronous = true;
36 | mPosition.data[0] = 0;
37 | mPosition.data[1] = 0;
38 | mSize.data[0] = 0;
39 | mSize.data[1] = 0;
40 | mReflection = VIDEO_BACKGROUND_REFLECTION_DEFAULT;
41 | }
42 |
43 | /// Enables/disables rendering of the video background.
44 | bool mEnabled;
45 |
46 | /// Enables/disables synchronization of render and camera frame rate.
47 | /**
48 | * If synchronization is enabled the SDK will attempt to match the
49 | * rendering frame rate with the camera frame rate. This may result
50 | * in a performance gain as potentially redundant render calls are
51 | * avoided. Enabling this is not recommended if your augmented content
52 | * needs to be animated at a rate higher than the rate at which the
53 | * camera delivers frames.
54 | */
55 | bool mSynchronous;
56 |
57 | /// Relative position of the video background in the render target in
58 | /// pixels.
59 | /**
60 | * Describes the offset of the center of video background to the
61 | * center of the screen (viewport) in pixels. A value of (0,0) centers the
62 | * video background, whereas a value of (-10,15) moves the video background
63 | * 10 pixels to the left and 15 pixels upwards.
64 | */
65 | Vec2I mPosition;
66 |
67 | /// Width and height of the video background in pixels
68 | /**
69 | * Using the device's screen size for this parameter scales the image to
70 | * fullscreen. Notice that if the camera's aspect ratio is different than
71 | * the screen's aspect ratio this will create a non-uniform stretched
72 | * image.
73 | */
74 | Vec2I mSize;
75 |
76 | /// Reflection parameter to control how the video background is rendered
77 | /**
78 | * By setting this to VIDEO_BACKGROUND_REFLECTION_DEFAULT, the SDK will
79 | * update the projection matrix and video background automatically to provide
80 | * the best AR mode possible for the given camera on your specific device.
81 | * For the BACK camera, this will generally result in no reflection at all.
82 | * For the FRONT camera, this will generally result in a reflection to provide
83 | * an "AR Mirror" effect.
84 | *
85 | * This can also be overridden by selecting VIDEO_BACKGROUND_REFLECTION_ON or
86 | * VIDEO_BACKGROUND_REFLECTION_OFF. This may be desirable in advanced use
87 | * cases.
88 | */
89 | VIDEO_BACKGROUND_REFLECTION mReflection;
90 | };
91 |
92 | } // namespace QCAR
93 |
94 | #endif //_QCAR_RENDERER_H_
95 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/MultiTarget.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | MultiTarget.h
8 |
9 | @brief
10 | Header file for MultiTarget class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_MULTITARGETHEADERFILE__
13 | #define _QCAR_MULTITARGETHEADERFILE__
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | // Forward declarations
24 | struct Matrix34F;
25 |
26 | /// A set of multiple targets with a fixed spatial relation
27 | /**
28 | * Methods to modify a MultiTarget must not be called while the
29 | * corresponding DataSet is active. The dataset must be deactivated first
30 | * before reconfiguring a MultiTarget.
31 | */
32 | class QCAR_API MultiTarget : public Trackable
33 | {
34 | public:
35 |
36 | /// Returns the Trackable class' type
37 | static Type getClassType();
38 |
39 | /// Returns the number of Trackables that form the MultiTarget.
40 | virtual int getNumParts() const = 0;
41 |
42 | /// Provides write access to a specific Trackable.
43 | /**
44 | * Returns NULL if the index is invalid.
45 | */
46 | virtual Trackable* getPart(int idx) = 0;
47 |
48 | /// Provides read-only access to a specific Trackable.
49 | /**
50 | * Returns NULL if the index is invalid.
51 | */
52 | virtual const Trackable* getPart(int idx) const = 0;
53 |
54 | /// Provides write access to a specific Trackable.
55 | /**
56 | * Returns NULL if no Trackable with the given name exists
57 | * in the MultiTarget.
58 | */
59 | virtual Trackable* getPart(const char* name) = 0;
60 |
61 | /// Provides read-only access to a specific Trackable.
62 | /**
63 | * Returns NULL if no Trackable with the given name exists
64 | * in the MultiTarget.
65 | */
66 | virtual const Trackable* getPart(const char* name) const = 0;
67 |
68 | /// Adds a Trackable to the MultiTarget.
69 | /**
70 | * Returns the index of the new part on success.
71 | * Returns -1 in case of error, e.g. when adding a Part that is already
72 | * added or if the corresponding DataSet is currently active. Use the
73 | * returned index to set the Part's pose via setPartPose().
74 | */
75 | virtual int addPart(Trackable* trackable) = 0;
76 |
77 | /// Removes a Trackable from the MultiTarget.
78 | /**
79 | * Returns true on success.
80 | * Returns false if the index is invalid or if the corresponding DataSet
81 | * is currently active.
82 | */
83 | virtual bool removePart(int idx) = 0;
84 |
85 | /// Defines a Part's spatial offset to the MultiTarget center
86 | /**
87 | * Per default a new Part has zero offset (no translation, no rotation).
88 | * In this case the pose of the Part is identical with the pose of the
89 | * MultiTarget. If there is more than one Part in a MultiTarget
90 | * then at least one must have an offset, or the Parts are co-located.
91 | * Returns false if the index is invalid or if the corresponding DataSet
92 | * is currently active.
93 | */
94 | virtual bool setPartOffset(int idx, const Matrix34F& offset) = 0;
95 |
96 | /// Retrieves the spatial offset of a Part to the MultiTarget center
97 | /**
98 | * Returns false if the Part's index is invalid.
99 | */
100 | virtual bool getPartOffset(int idx, Matrix34F& offset) const = 0;
101 | };
102 |
103 | } // namespace QCAR
104 |
105 | #endif //_QCAR_MULTITARGETHEADERFILE__
106 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TextTracker.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TextTracker.h
8 |
9 | @brief
10 | Header file for TextTracker class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TEXT_TRACKER_H_
13 | #define _QCAR_TEXT_TRACKER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 | #include
20 |
21 | namespace QCAR
22 | {
23 |
24 | /// The TextTracker controls the text recognition and tracking sub-system
25 | /// of Vuforia.
26 | /**
27 | * The TextTracker detects and tracks a single or multiple words in six
28 | * degrees of freedom (6DOF).
29 | */
30 | class QCAR_API TextTracker : public Tracker
31 | {
32 | public:
33 |
34 | enum UP_DIRECTION
35 | {
36 | REGIONOFINTEREST_UP_IS_0_HRS = 1,
37 | REGIONOFINTEREST_UP_IS_3_HRS = 2,
38 | REGIONOFINTEREST_UP_IS_6_HRS = 3,
39 | REGIONOFINTEREST_UP_IS_9_HRS = 4
40 | };
41 |
42 | /// Returns the Tracker class' type
43 | static Type getClassType();
44 |
45 | /// Defines the area of the image where text can be detected and tracked.
46 | /**
47 | * Allows to define rectangular regions that represent the
48 | * area where text can be detected and tracked respectively.
49 | * For optimal performance the detection window should be kept small.
50 | * Larger detection windows will result in longer detection times and may
51 | * affect the user experience on some devices. A recommended detection
52 | * window size is shown in the sample application.
53 | * There is no performance impact to tracking text across the full camera
54 | * image, but it may make sense to limit the tracking area if only parts
55 | * of the camera image are visible to the user.
56 | * The regions are defined in pixel units in the space defined by
57 | * the input camera image. Please query the VideoMode from the
58 | * CameraDevice to query the resolution of the input camera image.
59 | * Note that the detection window must be fully contained in the tracking
60 | * window for this operation to succeed.
61 | */
62 | virtual bool setRegionOfInterest(const RectangleInt& detectionROI,
63 | const RectangleInt& trackingROI,
64 | const UP_DIRECTION upDirection) = 0;
65 |
66 | /// Returns the area of the input camera image where text can be detected.
67 | /**
68 | * If no region of interest has been set using setRegionOfInterest, then
69 | * the TextTracker will use a default sub-region of the full camera image.
70 | * In this case this function will only return valid values
71 | * after the first camera frame has been processed.
72 | */
73 | virtual void getRegionOfInterest(RectangleInt& detectionROI,
74 | RectangleInt& trackingROI,
75 | UP_DIRECTION& upDirection) const = 0;
76 |
77 | /// Returns the area of the input camera image where text can be detected.
78 | /**
79 | * Please note that getRegionOfInterest(RectangleInt&, RectangleInt&,
80 | * unsigned int&) is deprecated. Use getRegionOfInterest(RectangleInt&,
81 | * RectangleInt&, UP_DIRECTION&) instead.
82 | * If no region of interest has been set using setRegionOfInterest, then
83 | * the TextTracker will use a default sub-region of the full camera image.
84 | * In this case this function will only return valid values
85 | * after the first camera frame has been processed.
86 | */
87 | virtual void getRegionOfInterest(RectangleInt& detectionROI,
88 | RectangleInt& trackingROI,
89 | unsigned int& upDirection) const = 0;
90 |
91 | /// Returns the WordList associated to this tracker.
92 | virtual WordList* getWordList() = 0;
93 | };
94 |
95 | } // namespace QCAR
96 |
97 | #endif //_QCAR_TEXT_TRACKER_H_
98 |
--------------------------------------------------------------------------------
/PokemonAR/src/com/sh1r0/vr2014/pokemon/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.sh1r0.vr2014.pokemon;
2 |
3 | import rajawali.util.RajLog;
4 | import rajawali.vuforia.RajawaliVuforiaActivity;
5 | import android.content.pm.ActivityInfo;
6 | import android.media.MediaPlayer;
7 | import android.os.Bundle;
8 | import android.view.Gravity;
9 | import android.view.ViewGroup.LayoutParams;
10 | import android.widget.ImageView;
11 | import android.widget.LinearLayout;
12 |
13 | public class MainActivity extends RajawaliVuforiaActivity {
14 | private Renderer mRenderer;
15 | // private RajawaliVuforiaActivity mUILayout;
16 | private MediaPlayer mp;
17 |
18 | @Override
19 | public void onCreate(Bundle savedInstanceState) {
20 | super.onCreate(savedInstanceState);
21 | setScreenOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
22 |
23 | LinearLayout ll = new LinearLayout(this);
24 | ll.setOrientation(LinearLayout.VERTICAL);
25 | ll.setGravity(Gravity.CENTER);
26 |
27 | ImageView logoView = new ImageView(this);
28 | logoView.setImageResource(R.drawable.pikachu);
29 | ll.addView(logoView);
30 |
31 | mp = MediaPlayer.create(this, R.raw.pikachu_sound);
32 | mp.start();
33 |
34 | addContentView(ll, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
35 |
36 | startVuforia();
37 | }
38 |
39 | @Override
40 | protected void setupTracker() {
41 | int result = initTracker(TRACKER_TYPE_MARKER);
42 | if (result == 1) {
43 | result = initTracker(TRACKER_TYPE_IMAGE);
44 | if (result == 1) {
45 | super.setupTracker();
46 | } else {
47 | RajLog.e("Couldn't initialize image tracker.");
48 | }
49 | } else {
50 | RajLog.e("Couldn't initialize marker tracker.");
51 | }
52 | }
53 |
54 | @Override
55 | protected void initApplicationAR() {
56 | super.initApplicationAR();
57 |
58 | createFrameMarker(0, "Marker0", 250, 250);
59 | createFrameMarker(1, "Marker1", 250, 250);
60 | createFrameMarker(2, "Marker2", 250, 250);
61 | createFrameMarker(3, "Marker3", 250, 250);
62 | createFrameMarker(4, "Marker4", 250, 250);
63 | createFrameMarker(5, "Marker5", 250, 250);
64 | createFrameMarker(6, "Marker6", 250, 250);
65 | createFrameMarker(7, "Marker7", 250, 250);
66 | createFrameMarker(8, "Marker8", 250, 250);
67 | createFrameMarker(9, "Marker9", 250, 250);
68 |
69 | createImageMarker("StonesAndChips.xml");
70 |
71 | createImageMarker("Wood.xml");
72 | setVirtualButtonOnDataSet("Wood.xml", 0, "wood", "red", -108.68f, -53.52f, -75.75f, -65.87f);
73 | setVirtualButtonOnDataSet("Wood.xml", 0, "wood", "blue", -45.28f, -53.52f, -12.35f, -65.87f);
74 | setVirtualButtonOnDataSet("Wood.xml", 0, "wood", "yellow", 14.82f, -53.52f, 47.75f, -65.87f);
75 | setVirtualButtonOnDataSet("Wood.xml", 0, "wood", "green", 76.57f, -53.52f, 109.50f, -65.87f);
76 |
77 | createImageMarker("pokemon.xml");
78 | setVirtualButtonOnDataSet("pokemon.xml", 0, "circle", "feed", -50f, 50f, 50f, -50f);
79 | setVirtualButtonOnDataSet("pokemon.xml", 0, "circle", "reset", 300f, 50f, 400f, -50f);
80 | setVirtualButtonOnDataSet("pokemon.xml", 1, "rectangle", "feed", -50f, 50f, 50f, -50f);
81 | setVirtualButtonOnDataSet("pokemon.xml", 1, "rectangle", "reset", -500f, 300f, -400f, 200f);
82 |
83 | // -- this is how you add a cylinder target:
84 | // https://developer.vuforia.com/resources/dev-guide/cylinder-targets
85 | // createImageMarker("sodacan.xml");
86 |
87 | // -- this is how you add a multi-target:
88 | // https://developer.vuforia.com/resources/dev-guide/multi-targets
89 | // createImageMarker("MyMultiTarget.xml");
90 | }
91 |
92 | @Override
93 | protected void initRajawali() {
94 | super.initRajawali();
95 | mRenderer = new Renderer(this);
96 | mRenderer.setSurfaceView(mSurfaceView);
97 | super.setRenderer(mRenderer);
98 | /*
99 | ToggleButton extendedTrackingButton = new ToggleButton(this);
100 | extendedTrackingButton.setTextOn("Extended Tracking On");
101 | extendedTrackingButton.setTextOff("Extended Tracking Off");
102 | extendedTrackingButton.setChecked(false);
103 | extendedTrackingButton.setOnClickListener(new View.OnClickListener() {
104 | public void onClick(View v) {
105 | if (((ToggleButton) v).isChecked()) {
106 | if (!startExtendedTracking())
107 | RajLog.e("Could not start extended tracking");
108 | } else {
109 | if (!stopExtendedTracking())
110 | RajLog.e("Could not stop extended tracking");
111 | }
112 | }
113 | });
114 |
115 | mUILayout = this;
116 | LinearLayout ll = new LinearLayout(this);
117 | ll.addView(extendedTrackingButton);
118 | mUILayout.addContentView(ll, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
119 | */
120 | }
121 | }
122 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/CameraDevice.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | CameraDevice.h
8 |
9 | @brief
10 | Header file for CameraDevice class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_CAMERADEVICE_H_
13 | #define _QCAR_CAMERADEVICE_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | /// Implements access to the phone's built-in camera
24 | class QCAR_API CameraDevice : private NonCopyable
25 | {
26 | public:
27 | enum MODE
28 | {
29 | MODE_DEFAULT = -1, ///< Default camera mode
30 | MODE_OPTIMIZE_SPEED = -2, ///< Fast camera mode
31 | MODE_OPTIMIZE_QUALITY = -3, ///< High-quality camera mode
32 | };
33 |
34 | enum FOCUS_MODE
35 | {
36 | FOCUS_MODE_NORMAL, ///< Default focus mode
37 | FOCUS_MODE_TRIGGERAUTO, ///< Triggers a single autofocus operation
38 | FOCUS_MODE_CONTINUOUSAUTO, ///< Continuous autofocus mode
39 | FOCUS_MODE_INFINITY, ///< Focus set to infinity
40 | FOCUS_MODE_MACRO ///< Macro mode for close-up focus
41 | };
42 |
43 | enum CAMERA
44 | {
45 | CAMERA_DEFAULT, ///< Default camera device. Usually BACK
46 | CAMERA_BACK, ///< Rear facing camera
47 | CAMERA_FRONT ///< Front facing camera
48 | };
49 |
50 | /// Returns the CameraDevice singleton instance.
51 | static CameraDevice& getInstance();
52 |
53 | /// Initializes the camera.
54 | virtual bool init(CAMERA camera = CAMERA_DEFAULT) = 0;
55 |
56 | /// Deinitializes the camera.
57 | /**
58 | * Any resources created or used so far are released. Note that this
59 | * function should not be called during the execution of the
60 | * UpdateCallback and if so will return false.
61 | */
62 | virtual bool deinit() = 0;
63 |
64 | /// Starts the camera. Frames are being delivered.
65 | /**
66 | * Depending on the type of the camera it may be necessary to perform
67 | * configuration tasks before it can be started.
68 | */
69 | virtual bool start() = 0;
70 |
71 | /// Stops the camera if video feed is not required (e.g. in non-AR mode
72 | /// of an application).
73 | virtual bool stop() = 0;
74 |
75 | /// Returns the number of available video modes.
76 | /**
77 | * This is device specific and can differ between mobile devices or operating
78 | * system versions.
79 | */
80 | virtual int getNumVideoModes() = 0;
81 |
82 | /// Returns the video mode currently selected.
83 | /**
84 | * If no video mode is set then Vuforia chooses a video mode.
85 | */
86 | virtual VideoMode getVideoMode(int nIndex) = 0;
87 |
88 | /// Chooses a video mode out of the list of modes
89 | /*
90 | * This function can be only called after the camera device has been
91 | * initialized but not started yet. Once you have started the camera and
92 | * you need the select another video mode, you need to stop(), deinit(),
93 | * then init() the camera before calling selectVideoMode() again.
94 | */
95 | virtual bool selectVideoMode(int index) = 0;
96 |
97 | /// Provides read-only access to camera calibration data.
98 | virtual const CameraCalibration& getCameraCalibration() const = 0;
99 |
100 | /// Enable/disable torch mode if the device supports it.
101 | /**
102 | * Returns true if the requested operation was successful, False
103 | * otherwise.
104 | */
105 | virtual bool setFlashTorchMode(bool on) = 0;
106 |
107 | /// Set the requested focus mode if the device supports it.
108 | /**
109 | * The allowed values are FOCUS_MODE_NORMAL, FOCUS_MODE_TRIGGERAUTO,
110 | * FOCUS_MODE_CONTINUOUSAUTO, FOCUS_MODE_INFINITY, FOCUS_MODE_MACRO,
111 | * though not all modes are supported on all devices. Returns true if
112 | * the requested operation was successful, False otherwise.
113 | * Also note that triggering a single autofocus event using
114 | * FOCUS_MODE_TRIGGERAUTO may stop continuous autofocus if that focus
115 | * mode was set earlier.
116 | */
117 | virtual bool setFocusMode(int focusMode) = 0;
118 | };
119 |
120 | } // namespace QCAR
121 |
122 | #endif // _QCAR_CAMERADEVICE_H_
123 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/ImageTracker.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | ImageTracker.h
8 |
9 | @brief
10 | Header file for ImageTracker class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_IMAGE_TRACKER_H_
13 | #define _QCAR_IMAGE_TRACKER_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | // Forward Declaration
22 | class Trackable;
23 | class DataSet;
24 | class ImageTargetBuilder;
25 | class TargetFinder;
26 |
27 | /// ImageTracker class.
28 | /**
29 | * The ImageTracker tracks ImageTargets and MultiTargets contained
30 | * in a DataSet.
31 | * The ImageTracker class provides methods for creating, activating and
32 | * deactivating datasets. Note that methods for swapping the active dataset
33 | * should not be called while the ImageTracker is working at the same time.
34 | * Doing so will make these methods block and wait until the tracker has
35 | * finished.
36 | * The suggested way of swapping datasets is during the execution of
37 | * UpdateCallback, which guarantees that the ImageTracker is not working
38 | * concurrently. Alternatively the ImageTracker can be stopped explicitly.
39 | * However, this is a very expensive operation.
40 | */
41 | class QCAR_API ImageTracker : public Tracker
42 | {
43 | public:
44 |
45 | /// Returns the Tracker class' type
46 | static Type getClassType();
47 |
48 | /// Factory function for creating an empty dataset.
49 | /**
50 | * Returns the new instance on success, NULL otherwise. Use
51 | * DataSet::destroyDataSet() to destroy a DataSet that is no longer needed.
52 | */
53 | virtual DataSet* createDataSet() = 0;
54 |
55 | /// Destroys the given dataset and releases allocated resources.
56 | /// Returns false if the given dataset is currently active.
57 | virtual bool destroyDataSet(DataSet* dataset) = 0;
58 |
59 | /// Activates the given dataset.
60 | /**
61 | * This function will return true if the DataSet was successfully
62 | * activated and false otherwise.
63 | * The recommended way to swap datasets is during the execution of the
64 | * UpdateCallback, which guarantees that the ImageTracker is not working
65 | * concurrently.
66 | */
67 | virtual bool activateDataSet(DataSet* dataset) = 0;
68 |
69 | /// Deactivates the given dataset.
70 | /**
71 | * This function will return true if the DataSet was successfully
72 | * deactivated and false otherwise (E.g. because this dataset is not
73 | * currently active).
74 | * The recommended way to swap datasets is during the execution of the
75 | * UpdateCallback, which guarantees that the ImageTracker is not working
76 | * concurrently.
77 | */
78 | virtual bool deactivateDataSet(DataSet* dataset) = 0;
79 |
80 | /// Returns the idx-th active dataset. Returns NULL if no DataSet has
81 | /// been activated or if idx is out of range.
82 | virtual DataSet* getActiveDataSet(const int idx = 0) = 0;
83 |
84 | /// Returns the number of currently activated dataset.
85 | virtual int getActiveDataSetCount() const = 0;
86 |
87 | /// Returns instance of ImageTargetBuilder to be used for generated
88 | /// target image from current scene.
89 | virtual ImageTargetBuilder* getImageTargetBuilder() = 0;
90 |
91 | /// Returns instance of TargetFinder to be used for retrieving
92 | /// targets by cloud-based recognition.
93 | virtual TargetFinder* getTargetFinder() = 0;
94 |
95 | /// Persist/Reset Extended Tracking
96 | /**
97 | * In persistent Extended Tracking mode, the environment map will only
98 | * ever be reset when the developer calls resetExtendedTracking().
99 | * This function will return true if persistent Extended Tracking
100 | * was set successfully (or was already set to the specified value)
101 | * and false otherwise.
102 | */
103 | virtual bool persistExtendedTracking(bool on) = 0;
104 |
105 | /// Resets environment map for Extended Tracking
106 | /**
107 | * Environment map can only be reset by the developer if persistent
108 | * extended tracking is enabled.
109 | * This function will return true if environment map was reset
110 | * successfully and false otherwise.
111 | */
112 | virtual bool resetExtendedTracking() = 0;
113 |
114 | };
115 |
116 | } // namespace QCAR
117 |
118 | #endif //_QCAR_IMAGE_TRACKER_H_
119 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/QCAR.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | QCAR.h
8 |
9 | @brief
10 | Header file for global QCAR methods.
11 | ==============================================================================*/
12 | #ifndef _QCAR_QCAR_H_
13 | #define _QCAR_QCAR_H_
14 |
15 | // Include files
16 | #include
17 |
18 | namespace QCAR
19 | {
20 |
21 | // Forward declarations
22 | class UpdateCallback;
23 | class VideoSource;
24 |
25 | /// Initialization flags
26 | /**
27 | * Use when calling init()
28 | */
29 | enum INIT_FLAGS {
30 | GL_11 = 1, ///< Enables OpenGL ES 1.1 rendering
31 | GL_20 = 2 ///< Enables OpenGL ES 2.0 rendering
32 | };
33 |
34 | /// Return codes for init() function
35 | enum {
36 | INIT_ERROR = -1, ///< Error during initialization
37 | INIT_DEVICE_NOT_SUPPORTED = -2, ///< The device is not supported
38 | };
39 |
40 |
41 | /// Pixel encoding types
42 | enum PIXEL_FORMAT {
43 | UNKNOWN_FORMAT = 0, ///< Unknown format - default pixel type for
44 | ///< undefined images
45 | RGB565 = 1, ///< A color pixel stored in 2 bytes using 5
46 | ///< bits for red, 6 bits for green and 5 bits
47 | ///< for blue
48 | RGB888 = 2, ///< A color pixel stored in 3 bytes using
49 | ///< 8 bits each
50 | GRAYSCALE = 4, ///< A grayscale pixel stored in one byte
51 | YUV = 8, ///< A color pixel stored in 12 or more bits
52 | ///< using Y, U and V planes
53 | RGBA8888 = 16, ///< A color pixel stored in 32 bits using 8 bits
54 | ///< each and an alpha channel.
55 | INDEXED = 32, ///< One byte per pixel where the value maps to
56 | ///< a domain-specific range.
57 | };
58 |
59 |
60 | /// Use when calling setHint()
61 | enum HINT {
62 | /// How many image targets to detect and track at the same time
63 | /**
64 | * This hint tells the tracker how many image shall be processed
65 | * at most at the same time. E.g. if an app will never require
66 | * tracking more than two targets this value should be set to 2.
67 | * Default is: 1.
68 | */
69 | HINT_MAX_SIMULTANEOUS_IMAGE_TARGETS = 0,
70 | };
71 |
72 |
73 | /// Deinitializes Vuforia
74 | void QCAR_API deinit();
75 |
76 |
77 | /// Sets a hint for the Vuforia SDK
78 | /**
79 | * Hints help the SDK to understand the developer's needs.
80 | * However, depending on the device or SDK version the hints
81 | * might not be taken into consideration.
82 | * Returns false if the hint is unknown or deprecated.
83 | * For a boolean value 1 means true and 0 means false.
84 | */
85 | bool QCAR_API setHint(unsigned int hint, int value);
86 |
87 |
88 | /// Registers an object to be called when new tracking data is available
89 | void QCAR_API registerCallback(UpdateCallback* object);
90 |
91 |
92 | /// Enables the delivery of certain pixel formats via the State object
93 | /**
94 | * Per default the state object will only contain images in formats
95 | * that are required for internal processing, such as gray scale for
96 | * tracking. setFrameFormat() can be used to enforce the creation of
97 | * images with certain pixel formats. Notice that this might include
98 | * additional overhead.
99 | */
100 | bool QCAR_API setFrameFormat(PIXEL_FORMAT format, bool enabled);
101 |
102 |
103 | /// Returns the number of bits used to store a single pixel of a given format
104 | /**
105 | * Returns 0 if the format is unknown.
106 | */
107 | int QCAR_API getBitsPerPixel(PIXEL_FORMAT format);
108 |
109 |
110 | /// Indicates whether the rendering surface needs to support an alpha channel
111 | /// for transparency
112 | bool QCAR_API requiresAlpha();
113 |
114 |
115 | /// Returns the number of bytes for a buffer with a given size and format
116 | /**
117 | * Returns 0 if the format is unknown.
118 | */
119 | int QCAR_API getBufferSize(int width, int height, PIXEL_FORMAT format);
120 |
121 |
122 | /// Executes AR-specific tasks upon the onResume activity event
123 | void QCAR_API onResume();
124 |
125 |
126 | /// Executes AR-specific tasks upon the onResume activity event
127 | void QCAR_API onPause();
128 |
129 |
130 | /// Executes AR-specific tasks upon the onSurfaceCreated render surface event
131 | void QCAR_API onSurfaceCreated();
132 |
133 |
134 | /// Executes AR-specific tasks upon the onSurfaceChanged render surface event
135 | void QCAR_API onSurfaceChanged(int width, int height);
136 |
137 | } // namespace QCAR
138 |
139 | #endif //_QCAR_QCAR_H_
140 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/DataSet.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2010-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | DataSet.h
8 |
9 | @brief
10 | Header file for DataSet class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_DATASET_H_
13 | #define _QCAR_DATASET_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 |
19 | namespace QCAR
20 | {
21 |
22 | // Forward declarations:
23 | class Trackable;
24 | class MultiTarget;
25 | class TrackableSource;
26 |
27 | /// A container of one or more trackables.
28 | /**
29 | * A dataset may contain multiple ImageTargets and MultiTargets.
30 | * An empty DataSet instance is created using the DataSet factory function
31 | * provided by the ImageTracker class. The dataset is then loaded given a
32 | * dataset XML and corresponding dataset DAT file. The dataset may be loaded
33 | * from the storage locations defined below. Note that the root filename of the
34 | * dataset DAT file and XML file must be the same. Once loaded the dataset can
35 | * be activated using ImageTracker::activateDataSet().
36 | * Methods to modify a DataSet must not be called while it is active. The
37 | * DataSet must be deactivated first before reconfiguring it.
38 | */
39 | class QCAR_API DataSet : private NonCopyable
40 | {
41 | public:
42 |
43 | /// Types of storage locations for datasets
44 | enum STORAGE_TYPE {
45 | STORAGE_APP, ///< Storage private to the application
46 | STORAGE_APPRESOURCE, ///< Storage for assets bundled with the
47 | ///< application
48 | STORAGE_ABSOLUTE ///< Helper type for specifying an absolute path
49 | };
50 |
51 | /// Checks if the dataset exists at the specified path and storage location
52 | /**
53 | * Returns true if both the dataset XML and DAT file exist at the
54 | * given storage location. The relative path to the dataset XML must be
55 | * passed to this function for all storage locations other than
56 | * STORAGE_ABSOLUTE.
57 | */
58 | static bool exists(const char* path, STORAGE_TYPE storageType);
59 |
60 | /// Loads the dataset at the specified path and storage location
61 | /**
62 | * Returns true if the dataset was loaded successfully. After loading,
63 | * individual Trackables can be accessed using getNumTrackables() and
64 | * getTrackable(). The relative path to the dataset XML must be passed to
65 | * this function for all storage locations other than STORAGE_ABSOLUTE.
66 | * Note that loading a dataset may take significant time and therefore
67 | * it is recommended to load datasets in the background.
68 | */
69 | virtual bool load(const char* path, STORAGE_TYPE storageType) = 0;
70 |
71 | /// Returns the overall number of 3D trackable objects in this data set.
72 | /**
73 | * Trackables that are part of other trackables (e.g. an ImageTarget that
74 | * is part of a MultiTarget) is not counted here and not delivered
75 | * by DataSet::getTrackable().
76 | */
77 | virtual int getNumTrackables() const = 0;
78 |
79 | /// Returns a pointer to a trackable object.
80 | /**
81 | * Trackables that are part of other trackables (e.g. an ImageTarget that
82 | * is part of a MultiTarget) is not delivered by this method.
83 | * Such trackables can be accesses via the trackable they are part of.
84 | * E.g. use MultiTarget::getPart() to access the respective ImageTargets.
85 | */
86 | virtual Trackable* getTrackable(int idx) = 0;
87 |
88 | /// Creates a new Trackable from the given TrackableSource and registers
89 | /// it with the dataset
90 | /**
91 | * Use DataSet::destroy() to destroy the returned Trackable
92 | * if it is no longer required.
93 | * This method must not be called while the dataset is active or it will
94 | * return NULL.
95 | */
96 | virtual Trackable* createTrackable(const TrackableSource* source) = 0;
97 |
98 | /// Creates a new MultiTarget and registers it with the dataset
99 | /**
100 | * Use DataSet::destroy() to destroy the returned MultiTarget
101 | * if it is no longer required.
102 | * This method must not be called while the dataset is active or it will
103 | * return NULL.
104 | */
105 | virtual MultiTarget* createMultiTarget(const char* name) = 0;
106 |
107 | /// Destroys a Trackable
108 | /**
109 | * This method must not be called while the dataset is active or it will
110 | * return false.
111 | */
112 | virtual bool destroy(Trackable* trackable) = 0;
113 |
114 | /// Checks if this DataSet's Trackable capacity is reached.
115 | /**
116 | * Returns true if the number of Trackables created in this DataSet
117 | * has reached the maximum capacity, false otherwise.
118 | */
119 | virtual bool hasReachedTrackableLimit() = 0;
120 |
121 | /// Checks if this dataset is active
122 | /**
123 | * Returns true if the dataset is active
124 | */
125 | virtual bool isActive() const = 0;
126 |
127 | virtual ~DataSet() {}
128 | };
129 |
130 | } // namespace QCAR
131 |
132 | #endif //_QCAR_DATASET_H_
133 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/WordList.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | WordList.h
8 |
9 | @brief
10 | Header file for WordList class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_WORD_LIST_H_
13 | #define _QCAR_WORD_LIST_H_
14 |
15 | #include
16 | #include
17 |
18 |
19 | namespace QCAR
20 | {
21 |
22 | /// A list of words that the TextTracker can detect and track
23 | /**
24 | * The WordList represents the set of detectable Words. This list is
25 | * loaded from a binary data file using loadWordList.
26 | * By default a WordList for the English language is provided with the SDK.
27 | * The application may choose to add a small set of additional custom words to
28 | * the WordList using the APIs below.
29 | * The filter list allows an application to specify a subset of Words
30 | * from the WordList that will be detected and tracked.
31 | * Due to the large number of words in the WordList it is not possible to
32 | * query the contents of the WordList at run-time.
33 | * Note that the TextTracker needs to be stopped prior to making modifications
34 | * to the WordList.
35 | */
36 | class QCAR_API WordList : public NonCopyable
37 | {
38 | public:
39 |
40 | /// Types of storage locations
41 | enum STORAGE_TYPE {
42 | STORAGE_APP, ///< Storage private to the application
43 | STORAGE_APPRESOURCE, ///< Storage for assets bundled with the
44 | ///< application
45 | STORAGE_ABSOLUTE ///< Helper type for specifying an absolute path
46 | };
47 |
48 | /// Types of filter modes
49 | enum FILTER_MODE {
50 | FILTER_MODE_NONE, ///< Word filtering is disabled
51 | FILTER_MODE_BLACK_LIST, ///< Prevent specific words from being detected
52 | FILTER_MODE_WHITE_LIST ///< Enable selected words only to be detected
53 | };
54 |
55 | /// Loads the word list from a binary file at the specified path
56 | /// and storage location.
57 | /**
58 | * Loads the word list from the given input file.
59 | * Returns false if the path is NULL.
60 | */
61 | virtual bool loadWordList(const char* path, STORAGE_TYPE storageType) = 0;
62 |
63 | /// Loads a set of custom words from a plain text file
64 | /**
65 | * The word list is extended with the custom words in the plain text file.
66 | * Each word must be between 2-45 characters in length. Returns the
67 | * number of loaded custom words. The text file shall be encoded in UTF-8.
68 | * If path is NULL the return value is -1.
69 | */
70 | virtual int addWordsFromFile(const char* path, STORAGE_TYPE storageType) = 0;
71 |
72 | /// Add a single custom word to the word list (Unicode)
73 | /**
74 | * Use containsWord to check if the word is already in the word list prior
75 | * calling this.
76 | * Returns false if word is NULL;
77 | */
78 | virtual bool addWordU(const UInt16* word) = 0;
79 |
80 | /// Remove a custom word from the word list (Unicode)
81 | virtual bool removeWordU(const UInt16* word) = 0;
82 |
83 | /// Returns true if the given word is present in the WordList (Unicode)
84 | /**
85 | * This function can be used to check if a word already exists in the
86 | * WordList prior to adding it as a custom word.
87 | * Returns false if word is NULL;
88 | */
89 | virtual bool containsWordU(const UInt16* word) = 0;
90 |
91 | /// Clears the word list as well as the filter list.
92 | /**
93 | * Call this to reset the word list and release all acquired system
94 | * resources.
95 | * Return false if word is NULL;
96 | */
97 | virtual bool unloadAllLists() = 0;
98 |
99 | /// Sets the mode for the filter list
100 | /**
101 | * The filter list allows an application to specify a subset of Words
102 | * from the word list that will be detected and tracked. It can do this
103 | * in two modes of operation. In black list mode, any word in the filter
104 | * list will be prevented from being detected. In the white list mode,
105 | * only words in the the filter list can be detected.
106 | * By default the filter mode is FILTER_MODE_NONE where no words are
107 | * filtered.
108 | */
109 | virtual bool setFilterMode(FILTER_MODE mode) = 0;
110 |
111 | /// Returns the filter mode.
112 | virtual FILTER_MODE getFilterMode() const = 0;
113 |
114 | /// Add a single word to the filter list (Unicode)
115 | /**
116 | * Adds a word to the filter list.
117 | * Returns true if successful, false if unsuccessful or if word
118 | * is NULL.
119 | */
120 | virtual bool addWordToFilterListU(const UInt16* word) = 0;
121 |
122 | /// Remove a word from the filter list (Unicode)
123 | /**
124 | * Remove a word from the filter list
125 | * Returns true if successful, false if unsuccessful or if word
126 | * is NULL.
127 | */
128 | virtual bool removeWordFromFilterListU(const UInt16* word) = 0;
129 |
130 | /// Clear the filter list.
131 | virtual bool clearFilterList() = 0;
132 |
133 | /// Loads the filter list from a plain text file.
134 | /**
135 | * The text file shall be encoded in UTF-8.
136 | * Returns false if the filter list cannot be loaded. Note
137 | * some words may have been added to the filter list so it
138 | * may be necessary to call getFilterListWordCount to find
139 | * out what, if any, words have been loaded by this routine
140 | * if it fails.
141 | */
142 | virtual bool loadFilterList(const char* path, STORAGE_TYPE storageType) = 0;
143 |
144 | /// Query the number of words in the filter list.
145 | virtual int getFilterListWordCount() = 0;
146 |
147 | /// Return the ith element in the filter list (Unicode)
148 | virtual const UInt16* getFilterListWordU(int i) = 0;
149 |
150 | };
151 | } // namespace QCAR
152 |
153 | #endif /* _QCAR_WORD_LIST_H_ */
154 |
--------------------------------------------------------------------------------
/PokemonAR/src/com/sh1r0/vr2014/pokemon/Pokemon.java:
--------------------------------------------------------------------------------
1 | package com.sh1r0.vr2014.pokemon;
2 |
3 | import java.util.Timer;
4 | import java.util.TimerTask;
5 | import java.util.concurrent.atomic.AtomicBoolean;
6 | import java.util.concurrent.atomic.AtomicInteger;
7 |
8 | import android.media.MediaPlayer;
9 |
10 | import rajawali.Object3D;
11 | import rajawali.animation.Animation;
12 | import rajawali.animation.Animation3D;
13 | import rajawali.animation.AnimationGroup;
14 | import rajawali.animation.IAnimationListener;
15 | import rajawali.animation.RotateOnAxisAnimation;
16 | import rajawali.animation.ScaleAnimation3D;
17 | import rajawali.animation.TranslateAnimation3D;
18 | import rajawali.math.Quaternion;
19 | import rajawali.math.vector.Vector3;
20 | import rajawali.math.vector.Vector3.Axis;
21 | import rajawali.scene.RajawaliScene;
22 |
23 | public class Pokemon {
24 | private static final int HAPPINESS_THRESHOLD = 5;
25 |
26 | private RajawaliScene mScene;
27 | private Object3D mModel;
28 | private Pokemon mEvolved;
29 | private AnimationGroup evolveAnim;
30 | private Animation3D feedAnim;
31 | private AtomicBoolean isEvolved;
32 | private AtomicBoolean isEvolving;
33 | private AtomicBoolean isFeeding;
34 | private AtomicInteger happiness;
35 | private TimerTask tmTask;
36 | private Vector3 origScale;
37 | private MediaPlayer sound;
38 |
39 | public Pokemon(RajawaliScene scene, Object3D model, Pokemon evolved) {
40 | this(scene, model, evolved, null);
41 | }
42 |
43 | public Pokemon(RajawaliScene scene, Object3D model, Pokemon evolved, MediaPlayer mp) {
44 | this.mScene = scene;
45 | this.mModel = model;
46 | this.origScale = model.getScale();
47 | this.sound = mp;
48 | this.feedAnim = new TranslateAnimation3D(new Vector3(0, 0, 0));
49 | this.isEvolved = new AtomicBoolean();
50 | this.isEvolving = new AtomicBoolean();
51 | this.isFeeding = new AtomicBoolean();
52 |
53 | if (evolved != null) {
54 | this.mEvolved = evolved;
55 | createEvolveAnimation();
56 | }
57 |
58 | this.happiness = new AtomicInteger();
59 | this.tmTask = new TimerTask() {
60 | @Override
61 | public void run() {
62 | if (happiness.decrementAndGet() < 0) {
63 | happiness.set(-1);
64 | }
65 | }
66 | };
67 | Timer tm = new Timer();
68 | tm.schedule(tmTask, 5000, 10000);
69 | }
70 |
71 | public void show(Vector3 position, Quaternion orientation) {
72 | this.show(position, orientation, false);
73 | }
74 |
75 | public void show(Vector3 position, Quaternion orientation, boolean interactive) {
76 | if (isEvolved.get()) {
77 | this.mEvolved.show(position, orientation, interactive);
78 | } else {
79 | if (!interactive || happiness.get() >= 0) {
80 | mModel.setScale(origScale);
81 | } else {
82 | mModel.setScale(origScale.multiplyAndCreate(0.5));
83 | }
84 | this.mModel.setVisible(true);
85 | this.mModel.setPosition(position);
86 | this.mModel.setOrientation(orientation);
87 | }
88 | }
89 |
90 | public void feed() {
91 | if (isEvolved.get()) {
92 | this.mEvolved.feed();
93 | } else if (!isFeeding.get() && !isEvolving.get()) {
94 | isFeeding.set(true);
95 | createFeedAnimation();
96 | if (sound != null && !sound.isPlaying()) {
97 | sound.start();
98 | }
99 | this.feedAnim.play();
100 | }
101 | }
102 |
103 | public void reset() {
104 | if (this.mEvolved != null) {
105 | this.mEvolved.reset();
106 | this.evolveAnim.reset();
107 | }
108 |
109 | isEvolved.set(false);
110 | isEvolving.set(false);
111 | isFeeding.set(false);
112 | happiness.set(0);
113 | }
114 |
115 | private void evolve() {
116 | if (mEvolved == null)
117 | return;
118 |
119 | isEvolving.set(true);
120 | this.evolveAnim.play();
121 | }
122 |
123 | private void createFeedAnimation() {
124 | mScene.unregisterAnimation(this.feedAnim);
125 | Animation3D anim = new TranslateAnimation3D(this.mModel.getPosition(), this.mModel.getPosition().addAndCreate(
126 | 0, 0, 200));
127 | anim.setDurationMilliseconds(200);
128 | anim.setRepeatCount(3);
129 | anim.setRepeatMode(Animation3D.RepeatMode.REVERSE);
130 | anim.setTransformable3D(this.mModel);
131 | anim.registerListener(new IAnimationListener() {
132 | @Override
133 | public void onAnimationUpdate(Animation animation, double interpolatedTime) {
134 | }
135 |
136 | @Override
137 | public void onAnimationStart(Animation animation) {
138 | }
139 |
140 | @Override
141 | public void onAnimationRepeat(Animation animation) {
142 | }
143 |
144 | @Override
145 | public void onAnimationEnd(Animation animation) {
146 | if (happiness.incrementAndGet() >= HAPPINESS_THRESHOLD) {
147 | evolve();
148 | }
149 | isFeeding.set(false);
150 | }
151 | });
152 | this.feedAnim = anim;
153 | mScene.registerAnimation(this.feedAnim);
154 | }
155 |
156 | private void createEvolveAnimation() {
157 | if (evolveAnim != null) {
158 | return;
159 | }
160 |
161 | this.evolveAnim = new AnimationGroup();
162 |
163 | Vector3 fromScale = this.mModel.getScale();
164 | Vector3 toScale = fromScale.multiplyAndCreate(2.0);
165 | Animation3D anim = new ScaleAnimation3D(fromScale, toScale);
166 | anim.setDurationMilliseconds(400);
167 | anim.setTransformable3D(this.mModel);
168 | anim.setRepeatCount(3);
169 | anim.setRepeatMode(Animation3D.RepeatMode.REVERSE);
170 | this.evolveAnim.addAnimation(anim);
171 |
172 | anim = new RotateOnAxisAnimation(Axis.Y, 0, 360);
173 | anim.setDurationMilliseconds(800);
174 | anim.setRepeatCount(1);
175 | anim.setRepeatMode(Animation3D.RepeatMode.RESTART);
176 | anim.setTransformable3D(this.mModel);
177 | this.evolveAnim.addAnimation(anim);
178 |
179 | this.evolveAnim.registerListener(new IAnimationListener() {
180 | @Override
181 | public void onAnimationUpdate(Animation animation, double interpolatedTime) {
182 | }
183 |
184 | @Override
185 | public void onAnimationStart(Animation animation) {
186 | }
187 |
188 | @Override
189 | public void onAnimationRepeat(Animation animation) {
190 | }
191 |
192 | @Override
193 | public void onAnimationEnd(Animation animation) {
194 | mEvolved.reset();
195 | isEvolved.set(true);
196 | isEvolving.set(false);
197 | }
198 | });
199 |
200 | this.mScene.registerAnimation(this.evolveAnim);
201 | }
202 | }
203 |
--------------------------------------------------------------------------------
/vuforia-sdk-android-2-8-8/build/include/QCAR/TargetFinder.h:
--------------------------------------------------------------------------------
1 | /*==============================================================================
2 | Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc.
3 | All Rights Reserved.
4 | Proprietary - Qualcomm Connected Experiences, Inc.
5 |
6 | @file
7 | TargetFinder.h
8 |
9 | @brief
10 | Header file for TargetFinder class.
11 | ==============================================================================*/
12 | #ifndef _QCAR_TARGET_FINDER_H_
13 | #define _QCAR_TARGET_FINDER_H_
14 |
15 | // Include files
16 | #include
17 | #include
18 | #include
19 |
20 | namespace QCAR
21 | {
22 |
23 | // Forward Declaration
24 | class DataSet;
25 | class ImageTarget;
26 |
27 | /// A service that retrieves Targets using cloud-based recognition
28 | class QCAR_API TargetFinder : private NonCopyable
29 | {
30 | public:
31 |
32 | /// Status codes returned by the init() function
33 | enum
34 | {
35 | INIT_DEFAULT = 0, ///< Initialization has not started
36 | INIT_RUNNING = 1, ///< Initialization is running
37 | INIT_SUCCESS = 2, ///< Initialization completed successfully
38 | INIT_ERROR_NO_NETWORK_CONNECTION = -1, ///< No network connection
39 | INIT_ERROR_SERVICE_NOT_AVAILABLE = -2 ///< Service is not available
40 | };
41 |
42 | /// Status codes returned by the updateSearchResults() function
43 | enum
44 | {
45 | UPDATE_NO_MATCH = 0, ///< No matches since the last update
46 | UPDATE_NO_REQUEST = 1, ///< No recognition request since the last update
47 | UPDATE_RESULTS_AVAILABLE = 2, ///< New search results have been found
48 | UPDATE_ERROR_AUTHORIZATION_FAILED = -1, ///< Credentials are wrong or outdated
49 | UPDATE_ERROR_PROJECT_SUSPENDED = -2, ///< The specified project was suspended.
50 | UPDATE_ERROR_NO_NETWORK_CONNECTION = -3, ///< Device has no network connection
51 | UPDATE_ERROR_SERVICE_NOT_AVAILABLE = -4, ///< Server not found, down or overloaded.
52 | UPDATE_ERROR_BAD_FRAME_QUALITY = -5, ///< Low frame quality has been continuously observed
53 | UPDATE_ERROR_UPDATE_SDK = -6, ///< SDK Version outdated.
54 | UPDATE_ERROR_TIMESTAMP_OUT_OF_RANGE = -7,///< Client/Server clocks too far away.
55 | UPDATE_ERROR_REQUEST_TIMEOUT = -8 ///< No response to network request after timeout.
56 | };
57 |
58 |
59 | /// Starts initialization of the cloud-based recognition system.
60 | /**
61 | * Initialization of the cloud-based recognition system may take significant
62 | * time and is thus handled in a background process. Use getInitState() to
63 | * query the initialization progress and result. Pass in the user/password
64 | * for authenticating with the visual search server.
65 | */
66 | virtual bool startInit(const char* userAuth, const char* secretAuth) = 0;
67 |
68 | /// Returns the current state of the initialization process
69 | /**
70 | * Returns INIT_SUCCESS if the cloud-based recognition system was
71 | * initialized successfully. Initialization requires a network connection
72 | * to be available on the device, otherwise INIT_ERROR_NO_NETWORK_CONNECTION
73 | * is returned. If the cloud-based recognition service is not available this
74 | * function will return INIT_ERROR_SERVICE_NOT_AVAILABLE. Returns
75 | * INIT_DEFAULT if initialization has not been started. Returns INIT_RUNNING
76 | * if the initialization process has not completed.
77 | */
78 | virtual int getInitState() = 0;
79 |
80 | /// Wait for the the cloud-based recognition system initialization to complete.
81 | /**
82 | * This functions blocks execution until initialization is complete.
83 | */
84 | virtual void waitUntilInitFinished() = 0;
85 |
86 | /// Deinitializes the cloud-based recognition system
87 | virtual bool deinit() = 0;
88 |
89 |
90 | /// Starts visual recognition
91 | /**
92 | * Starts continuous recognition of Targets from the cloud.
93 | * Use updateSearchResults() and getResult() to retrieve search matches.
94 | */
95 | virtual bool startRecognition() = 0;
96 |
97 | /// Stops visual recognition
98 | virtual bool stop() = 0;
99 |
100 |
101 |
102 | /// Returns true if the TargetFinder is in 'requesting' mode
103 | /**
104 | * When in 'requesting' mode the TargetFinder has issued a search
105 | * query to the recognition server and is waiting for the results.
106 | */
107 | virtual bool isRequesting() = 0;
108 |
109 |
110 |
111 | /// Update visual search results
112 | /**
113 | * Clears and rebuilds the list of TargetSearchResults with results found
114 | * since the last call to updateSearchResults(). Returns the status code
115 | * UPDATE_RESULTS_AVAILABLE if new search results have been found.
116 | * Targets that are already enabled for tracking are not included
117 | * in the list of TargetSearchResults unless the target or its associated
118 | * meta data has been updated since they were last enabled for tracking.
119 | */
120 | virtual int updateSearchResults() = 0;
121 |
122 | /// Get the number of visual search results
123 | virtual int getResultCount() const = 0;
124 |
125 | /// Returns a pointer to a search result instance
126 | /**
127 | * Search results are owned by the TargetFinder. Each call to
128 | * updateSearchResults() destroys and rebuilds the list of
129 | * TargetSearchResult search.
130 | */
131 | virtual const TargetSearchResult* getResult(int idx) = 0;
132 |
133 |
134 |
135 | /// Enable this search result for tracking
136 | /**
137 | * Creates an ImageTarget for local detection and tracking of this target.
138 | * The pose of this target will be reported in the Vuforia State. Note that
139 | * this call may result in an earlier ImageTarget that was enabled for
140 | * tracking to be destroyed. Thus it is not advised to hold a pointer to an
141 | * earlier created ImageTarget after calling enableTracking again. Returns
142 | * NULL if the target failed to be enabled for tracking.
143 | */
144 | virtual ImageTarget* enableTracking(const TargetSearchResult& result) = 0;
145 |
146 | /// Clears all targets enabled for tracking
147 | /**
148 | * Destroy all ImageTargets that have been created via enableTracking().
149 | */
150 | virtual void clearTrackables() = 0;
151 |
152 | /// Returns the number targets currently enabled for tracking.
153 | virtual int getNumImageTargets() const = 0;
154 |
155 | /// Returns a pointer to an ImageTarget object.
156 | virtual ImageTarget* getImageTarget(int idx) = 0;
157 |
158 |
159 |
160 | /// Sets the base color of the scanline in the scanning UI
161 | /**
162 | * The parameters allow you to set the Red, Green and Blue colors
163 | * for the Scanline. They should be normalized values between 0 and 1.
164 | */
165 | virtual void setUIScanlineColor(float r, float g, float b) = 0;
166 |
167 | /// Sets the base color of the points in the scanning UI
168 | /**
169 | * The parameters allow you to set the Red, Green and Blue colors
170 | * for the Points. They should be normalized values between 0 and 1.
171 | * Note that this call triggers the keypoint texture to be recreated and
172 | * it should thus be avoided to called this every frame.
173 | */
174 | virtual void setUIPointColor(float r, float g, float b) = 0;
175 | };
176 |
177 | } // namespace QCAR
178 |
179 | #endif //_QCAR_TARGET_FINDER_H_
180 |
--------------------------------------------------------------------------------
/PokemonAR/src/com/sh1r0/vr2014/pokemon/Renderer.java:
--------------------------------------------------------------------------------
1 | package com.sh1r0.vr2014.pokemon;
2 |
3 | import java.util.ArrayList;
4 |
5 | import javax.microedition.khronos.opengles.GL10;
6 |
7 | import rajawali.Object3D;
8 | import rajawali.lights.DirectionalLight;
9 | import rajawali.math.Quaternion;
10 | import rajawali.math.vector.Vector3;
11 | import rajawali.parser.LoaderOBJ;
12 | import rajawali.vuforia.RajawaliVuforiaRenderer;
13 | import android.content.Context;
14 | import android.media.MediaPlayer;
15 |
16 | public class Renderer extends RajawaliVuforiaRenderer {
17 | private DirectionalLight mLight;
18 | // private SkeletalAnimationObject3D mBob;
19 | // private Object3D mF22;
20 | // private Object3D mAndroid;
21 |
22 | private Pokemon pBulbasaur;
23 | private Pokemon pCharmander;
24 | private Pokemon pSquirtle;
25 | private Pokemon pPikachu;
26 | private Pokemon pRaichu;
27 | private Pokemon pCaterpie;
28 | private Pokemon pTransel;
29 | private Pokemon pButterfree;
30 | private Pokemon pRiolu;
31 | private Pokemon pLucario;
32 |
33 | private Vector3 woodPosition;
34 | private Quaternion woodOrientation;
35 |
36 | private ArrayList pokemonList;
37 |
38 | // private Animation3D caterpieFeedAnim;
39 |
40 | public Renderer(Context context) {
41 | super(context);
42 | }
43 |
44 | protected void initScene() {
45 | mLight = new DirectionalLight(.1f, 0, -1.0f);
46 | mLight.setColor(1.0f, 1.0f, 0.8f);
47 | mLight.setPower(1);
48 |
49 | getCurrentScene().addLight(mLight);
50 |
51 | pokemonList = new ArrayList(0);
52 |
53 | pBulbasaur = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.bulbasaur_obj, 25), null);
54 | pCharmander = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.charmander_obj, 50), null);
55 | pSquirtle = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.squirtle_obj, 50), null);
56 |
57 | pRaichu = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.raichu_obj, 50), null,
58 | MediaPlayer.create(mContext, R.raw.raichu_sound));
59 | pPikachu = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.pikachu_obj, 50), pRaichu,
60 | MediaPlayer.create(mContext, R.raw.pikachu_sound));
61 |
62 | pButterfree = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.butterfree_obj, 50), null,
63 | MediaPlayer.create(mContext, R.raw.butterfree_sound));
64 | pTransel = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.transel_obj, 50), pButterfree,
65 | MediaPlayer.create(mContext, R.raw.transel_sound));
66 | pCaterpie = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.caterpie_obj, 100), pTransel,
67 | MediaPlayer.create(mContext, R.raw.caterpie_sound));
68 |
69 | pLucario = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.lucario_obj, 50), null);
70 | pRiolu = new Pokemon(getCurrentScene(), loadPokemonObj(R.raw.rioluposed_obj, 50), pLucario);
71 | /*
72 | try {
73 | //
74 | // -- Load Bob (model by Katsbits
75 | // http://www.katsbits.com/download/models/)
76 | //
77 | LoaderMD5Mesh meshParser = new LoaderMD5Mesh(this, R.raw.boblampclean_mesh);
78 | meshParser.parse();
79 | mBob = (SkeletalAnimationObject3D) meshParser.getParsedAnimationObject();
80 | mBob.setScale(2);
81 |
82 | LoaderMD5Anim animParser = new LoaderMD5Anim("dance", this, R.raw.boblampclean_anim);
83 | animParser.parse();
84 | mBob.setAnimationSequence((SkeletalAnimationSequence) animParser.getParsedAnimationSequence());
85 |
86 | getCurrentScene().addChild(mBob);
87 |
88 | mBob.play();
89 | mBob.setVisible(false);
90 |
91 | //
92 | // -- Load F22 (model by KuhnIndustries
93 | // http://www.blendswap.com/blends/view/67634)
94 |
95 | GZIPInputStream gzi = new GZIPInputStream(mContext.getResources().openRawResource(R.raw.f22));
96 | ObjectInputStream fis = new ObjectInputStream(gzi);
97 | SerializedObject3D serializedObj = (SerializedObject3D) fis.readObject();
98 | fis.close();
99 |
100 | mF22 = new Object3D(serializedObj);
101 | mF22.setScale(30);
102 | getCurrentScene().addChild(mF22);
103 |
104 | Material f22Material = new Material();
105 | f22Material.enableLighting(true);
106 | f22Material.setDiffuseMethod(new DiffuseMethod.Lambert());
107 | f22Material.addTexture(new Texture("f22Texture", R.drawable.f22));
108 | f22Material.setColorInfluence(0);
109 |
110 | mF22.setMaterial(f22Material);
111 |
112 | //
113 | // -- Load Android
114 | //
115 |
116 | gzi = new GZIPInputStream(mContext.getResources().openRawResource(R.raw.android));
117 | fis = new ObjectInputStream(gzi);
118 | serializedObj = (SerializedObject3D) fis.readObject();
119 | fis.close();
120 |
121 | mAndroid = new Object3D(serializedObj);
122 | mAndroid.setScale(14);
123 | getCurrentScene().addChild(mAndroid);
124 |
125 | Material androidMaterial = new Material();
126 | androidMaterial.enableLighting(true);
127 | androidMaterial.setDiffuseMethod(new DiffuseMethod.Lambert());
128 | androidMaterial.setSpecularMethod(new SpecularMethod.Phong());
129 | mAndroid.setColor(0x00dd00);
130 | mAndroid.setMaterial(androidMaterial);
131 | } catch (Exception e) {
132 | e.printStackTrace();
133 | }
134 | */
135 | }
136 |
137 | @Override
138 | protected void foundImageMarker(String trackableName, Vector3 position, Quaternion orientation) {
139 | if (trackableName.equals("wood")) {
140 | woodPosition = position;
141 | woodOrientation = orientation;
142 | }
143 |
144 | if (trackableName.equals("rectangle")) {
145 | pCaterpie.show(position, orientation, true);
146 | }
147 |
148 | if (trackableName.equals("circle")) {
149 | pPikachu.show(position, orientation, true);
150 | }
151 |
152 | // -- also handle cylinder targets here
153 | // if (trackableName.equals("CylinderApp")) {
154 | // }
155 |
156 | // -- also handle multi-targets here
157 | }
158 |
159 | @Override
160 | protected void onButtonPressed(String trackableName, String buttonName) {
161 | if (trackableName.equals("circle")) {
162 | if (buttonName.equals("feed")) {
163 | pPikachu.feed();
164 | } else if (buttonName.equals("reset")) {
165 | pPikachu.reset();
166 | }
167 | } else if (trackableName.equals("rectangle")) {
168 | if (buttonName.equals("feed")) {
169 | pCaterpie.feed();
170 | } else if (buttonName.equals("reset")) {
171 | pCaterpie.reset();
172 | }
173 | } else if (trackableName.equals("wood")) {
174 | if (buttonName.equals("red")) {
175 | pCharmander.show(woodPosition, woodOrientation);
176 | } else if (buttonName.equals("blue")) {
177 | pSquirtle.show(woodPosition, woodOrientation);
178 | } else if (buttonName.equals("green")) {
179 | pBulbasaur.show(woodPosition, woodOrientation);
180 | } else if (buttonName.equals("yellow")) {
181 | pPikachu.show(woodPosition, woodOrientation);
182 | }
183 | }
184 | }
185 |
186 | @Override
187 | protected void foundFrameMarker(int markerId, Vector3 position, Quaternion orientation) {
188 | switch (markerId) {
189 | case 0:
190 | pPikachu.show(position, orientation);
191 | break;
192 | case 1:
193 | pRaichu.show(position, orientation);
194 | break;
195 | case 2:
196 | pRiolu.show(position, orientation);
197 | break;
198 | case 3:
199 | pLucario.show(position, orientation);
200 | break;
201 | case 4:
202 | pCaterpie.show(position, orientation);
203 | break;
204 | case 5:
205 | pTransel.show(position, orientation);
206 | break;
207 | case 6:
208 | pButterfree.show(position, orientation);
209 | break;
210 | case 7:
211 | pBulbasaur.show(position, orientation);
212 | break;
213 | case 8:
214 | pCharmander.show(position, orientation);
215 | break;
216 | case 9:
217 | pSquirtle.show(position, orientation);
218 | break;
219 | default:
220 | break;
221 | }
222 | }
223 |
224 | @Override
225 | public void noFrameMarkersFound() {
226 | }
227 |
228 | public void onDrawFrame(GL10 glUnused) {
229 | for (Object3D object : pokemonList) {
230 | object.setVisible(false);
231 | }
232 | // mBob.setVisible(false);
233 | // mF22.setVisible(false);
234 | // mAndroid.setVisible(false);
235 | super.onDrawFrame(glUnused);
236 | }
237 |
238 | private Object3D loadPokemonObj(int resourceId, double scale) {
239 | Object3D object = null;
240 | try {
241 | LoaderOBJ objParser = new LoaderOBJ(mContext.getResources(), mTextureManager, resourceId);
242 | objParser.parse();
243 | object = objParser.getParsedObject();
244 | object.setScale(scale);
245 | getCurrentScene().addChild(object);
246 | pokemonList.add(object);
247 | } catch (Exception e) {
248 | e.printStackTrace();
249 | }
250 |
251 | return object;
252 | }
253 | }
254 |
--------------------------------------------------------------------------------