├── 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 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /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 | ![Frame Markers](./Screenshots/muster.png) 7 | ![Virtual Buttons](Screenshots/charmander.png) 8 | ![Pikachu](Screenshots/pikachu.png) ![Raichu](Screenshots/raichu.png) 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 | --------------------------------------------------------------------------------