Services from the Google Cardboard SDK for virtual reality on Android

Projects using this module should keep the cardboard.jar archive in the libs folder at the root of the project.

External resources:

  • Download cardboard.jar from https://raw.githubusercontent.com/googlesamples/cardboard-java/master/CardboardSample/libs/cardboard.jar
  • Read about Cardboard at https://developers.google.com/cardboard/
  • Find the Cardboard SDK documentation at https://developers.google.com/cardboard/android/latest/reference/com/google/vrtoolkit/cardboard/package-summary

Introduced classes

extern class NativeHeadTracker

android :: NativeHeadTracker

Provides head tracking information from the device IMU

All class definitions

extern class NativeHeadTracker

android $ NativeHeadTracker

Provides head tracking information from the device IMU
package_diagram android::cardboard cardboard android::native_app_glue native_app_glue android::cardboard->android::native_app_glue android::log log android::native_app_glue->android::log android::dalvik dalvik android::native_app_glue->android::dalvik ...android::log ... ...android::log->android::log ...android::dalvik ... ...android::dalvik->android::dalvik gamnit::cardboard cardboard gamnit::cardboard->android::cardboard gamnit::vr vr gamnit::vr->gamnit::cardboard gamnit::vr... ... gamnit::vr...->gamnit::vr

Ancestors

module abstract_collection

core :: abstract_collection

Abstract collection classes and services.
module abstract_text

core :: abstract_text

Abstract class for manipulation of sequences of characters
module activities

android :: activities

Android Activities wrapper
module app

app :: app

app.nit is a framework to create cross-platform applications
module app_base

app :: app_base

Base of the app.nit framework, defines App
module array

core :: array

This module introduces the standard array structure.
module assets

app :: assets

Portable services to load resources from the assets folder
module aware

android :: aware

Android compatibility module
module bitset

core :: bitset

Services to handle BitSet
module bytes

core :: bytes

Services for byte streams and arrays
module circular_array

core :: circular_array

Efficient data structure to access both end of the sequence.
module codec_base

core :: codec_base

Base for codecs to use with streams
module codecs

core :: codecs

Group module for all codec-related manipulations
module collection

core :: collection

This module define several collection classes.
module collections

java :: collections

Basic Java collections
module core

core :: core

Standard classes and methods used by default by Nit programs and libraries.
module dalvik

android :: dalvik

Java related services specific to Android and its Dalvik VM
module environ

core :: environ

Access to the environment variables of the process
module error

core :: error

Standard error-management infrastructure.
module exec

core :: exec

Invocation and management of operating system sub-processes.
module ffi_support

java :: ffi_support

Core supporting services for the FFI with Java
module file

core :: file

File manipulations (create, read, write, etc.)
module fixed_ints

core :: fixed_ints

Basic integers of fixed-precision
module fixed_ints_text

core :: fixed_ints_text

Text services to complement fixed_ints
module flat

core :: flat

All the array-based text representations
module gc

core :: gc

Access to the Nit internal garbage collection mechanism
module hash_collection

core :: hash_collection

Introduce HashMap and HashSet.
module iso8859_1

core :: iso8859_1

Codec for ISO8859-1 I/O
module java

java :: java

Supporting services for the FFI with Java and to access Java libraries
module jvm

jvm :: jvm

Java Virtual Machine invocation API and others services from the JNI C API
module kernel

core :: kernel

Most basic classes and methods.
module list

core :: list

This module handle double linked lists
module log

android :: log

Advanced Android logging services
module math

core :: math

Mathematical operations
module native

core :: native

Native structures for text and bytes
module numeric

core :: numeric

Advanced services for Numeric types
module platform

android :: platform

Triggers compilation for the android platform
module protocol

core :: protocol

module queue

core :: queue

Queuing data structures and wrappers
module range

core :: range

Module for range of discrete objects.
module re

core :: re

Regular expression support for all services based on Pattern
module ropes

core :: ropes

Tree-based representation of a String.
module sorter

core :: sorter

This module contains classes used to compare things and sorts arrays.
module stream

core :: stream

Input and output streams of characters
module text

core :: text

All the classes and methods related to the manipulation of text entities
module time

core :: time

Management of time and dates
module union_find

core :: union_find

union–find algorithm using an efficient disjoint-set data structure
module utf8

core :: utf8

Codec for UTF-8 I/O

Parents

module native_app_glue

android :: native_app_glue

Wrapper of the Android native_app_glue framework to implement app.nit

Children

module cardboard

gamnit :: cardboard

Update the orientation of world_camera at each frame using the head position given by android::cardboard

Descendants

module a_star-m

a_star-m

module vr

gamnit :: vr

VR support for gamnit depth, for Android only
# Services from the Google Cardboard SDK for virtual reality on Android
#
# Projects using this module should keep the `cardboard.jar` archive in the
# `libs` folder at the root of the project.
#
# External resources:
# * Download `cardboard.jar` from
# https://raw.githubusercontent.com/googlesamples/cardboard-java/master/CardboardSample/libs/cardboard.jar
# * Read about Cardboard at
# https://developers.google.com/cardboard/
# * Find the Cardboard SDK documentation at
# https://developers.google.com/cardboard/android/latest/reference/com/google/vrtoolkit/cardboard/package-summary
module cardboard

import java::collections
import native_app_glue

in "Java" `{
	import com.google.vrtoolkit.cardboard.CardboardActivity;
	import com.google.vrtoolkit.cardboard.sensors.HeadTracker;
`}

# Provides head tracking information from the device IMU
#
# The corresponding Java class is no longer documented, but it is still useful.
extern class NativeHeadTracker in "Java" `{ com.google.vrtoolkit.cardboard.sensors.HeadTracker `}
	super JavaObject

	# Instantiate a new `NativeHeadTracker` for the given `context`
	new (context: NativeContext) in "Java" `{
		return HeadTracker.createFromContext(context);
	`}

	# Start tracking head movement
	fun start_tracking in "Java" `{ self.startTracking(); `}

	# Stop tracking head movement
	fun stop_tracking in "Java" `{ self.stopTracking(); `}

	# Enable finer analysis using the neck as center of movement
	fun neck_model_enabled=(value: Bool) in "Java" `{
		self.setNeckModelEnabled(value);
	`}

	# Fill `matrix` with the last rotation matrix calculated from head movements
	#
	# Require: matrix.length >= offset + 16
	fun last_head_view(matrix: JavaFloatArray, offset: Int) in "Java" `{
		self.getLastHeadView(matrix, (int)offset);
	`}
end
lib/android/cardboard.nit:15,1--65,3