OccluderSphere Class
An AR.OccluderSphere is, exactly like the AR.Occluder, an object that can be used to occlude other geometry during the rendering process with all the same rendering characteristics. It differs from it in that it does not accept arbitrary geometry as an input though a wt3 file , but represents a predefined volume which can be parameterized. Befitting its name, this predefined volume is a sphere. The intention of this object and related volume occluders is to allow fast prototyping as well as easy occlusion of models which fit the predefined volumes closely.
this.occluder = new AR.OccluderSphere(1.0, 24, 24, { onClick: function() { alert("onClick"); } });
Constructor
OccluderSphere
-
radius
-
slices
-
stacks
-
options
Parameters:
-
radius
NumberThe radius of the occluder sphere.
-
slices
NumberThe number of slices of the occluder sphere.
-
stacks
NumberThe number of stacks of the occluder sphere.
-
options
Object optionalSetup-Parameters to customize additional object properties.
Accepted options-properties are:-
enabled
(defaults totrue
) Boolean optional -
mirrored
(defaults totrue
) Boolean optional -
onClick
Function optional -
onDragBegan
Function optional -
onDragChanged
Function optional -
onDragEnded
Function optional -
onPanBegan
Function optional -
onPanChanged
Function optional -
onPanEnded
Function optional -
onRotationBegan
Function optional -
onRotationChanged
Function optional -
onRotationEnded
Function optional -
onScaleBegan
Function optional -
onScaleChanged
Function optional -
onScaleEnded
Function optional -
rotate.x
(defaults to0
) Number optional -
rotate.y
(defaults to0
) Number optional -
rotate.z
(defaults to0
) Number optional -
rotate.global.x
(defaults to0
) Number optional -
rotate.global.y
(defaults to0
) Number optional -
rotate.global.z
(defaults to0
) Number optional -
translate.x
(defaults to0
) Number optional -
translate.y
(defaults to0
) Number optional -
translate.z
(defaults to0
) Number optional -
translate.global.x
(defaults to0
) Number optional -
translate.global.y
(defaults to0
) Number optional -
translate.global.z
(defaults to0
) Number optional -
scale.x
(defaults to1
) Number optional -
scale.y
(defaults to1
) Number optional -
scale.z
(defaults to1
) Number optional
-
Item Index
Methods
Properties
- destroyed
- enabled
- mirrored
- radius
- rotate
- rotate.global.x
- rotate.global.y
- rotate.global.z
- rotate.heading deprecated
- rotate.roll deprecated
- rotate.tilt deprecated
- rotate.x
- rotate.y
- rotate.z
- rotatesToCamera
- scale
- scale.x
- scale.y
- scale.z
- slices
- stacks
- translate
- translate.global.x
- translate.global.y
- translate.global.z
- translate.x
- translate.y
- translate.z
Methods
destroy
()
Destroys the object.
Properties
enabled
Boolean
Flag to enable/disable the Drawable. If the Drawable is disabled, it will never appear on the screen and triggers on this Drawable will never be fired. In case it is enabled, it can be rendered on the screen and fire triggers.
Default: true
mirrored
Boolean
Flag to enable/disable mirroring for this Drawable. When using the front camera, a mirrored drawable will be rotated 180 degree around its y axis.
Default: true for generic drawables, false for labels and HTMLDrawables
radius
Number
The radius of the occluder sphere. This property is read-only and cannot be modified after creation.
rotate
Object
Defines the rotation of the Drawable around its center. This property can be used to set the x, y and z components simultaneously in a single call to the native side of the Wikitude SDK for maximum performance. The Object may contain x, y and z or any subset thereof.
rotate.global.x
Number
Defines a rotation of the Drawable around the x-axis of the target image, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree. All global transformations will be applied after the local transformations.
Default: 0
rotate.global.y
Number
Defines a rotation of the Drawable around the y-axis of the target image, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree. All global transformations will be applied after the local transformations.
Default: 0
rotate.global.z
Number
Defines a rotation of the Drawable around the z-axis of the target image, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree. All global transformations will be applied after the local transformations.
Default: 0
rotate.x
Number
Defines a rotation of the Drawable around the x-axis of the Drawable, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree.
Default: 0
rotate.y
Number
Defines a rotation of the Drawable around the y-axis of the Drawable, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree.
Default: 0
rotate.z
Number
Defines a rotation of the Drawable around the z-axis of the Drawable, specified in degrees. Values will be applied modulo 360. A value of 361 degrees has the same effect as setting the value to 1 degree.
Default: 0
rotatesToCamera
Boolean
Defines if the drawable is oriented to face the camera. This is only possible for Drawables attached to a GeoObject.
Default: true for generic drawables, false for Models
scale
Object
Defines the scale of the Drawable. This property can be used to set the x, y and z components simultaneously in a single call to the native side of the Wikitude SDK for maximum performance.The Object may contain x, y and z or any subset thereof.
slices
Number
The number of slices of the occluder sphere. Slices, in this case, refers to the number of subdivisions of the circumference horizontally. More slices result in a 'rounder' shape, but decreased performance. This property is read-only and cannot be modified after creation.
stacks
Number
The number of stacks of the occluder sphere. Stacks, in this case, refers to the number of subdivisions of the circumference vertically. More stacks result in a 'rounder' shape, but decreased performance. This property is read-only and cannot be modified after creation.
translate
Object
Defines the translation of the Drawable. This property can be used to set the x, y and z components simultaneously in a single call to the native side of the Wikitude SDK for maximum performance. The Object may contain x, y and z or any subset thereof.
translate.global.x
Number
The horizontal offset to the calculated position of the Drawable, in SDUs. A positive x causes the Drawable to move right, a negative x causes it to move left. All global transformations will be applied after the local transformations.
Default: 0
translate.global.y
Number
The vertical offset to the calculated position of the Drawable, in SDUs. A positive y causes the Drawable to move up, a negative y causes it to move down. All global transformations will be applied after the local transformations.
Default: 0
translate.global.z
Number
The depth-offset to the calculated position of the Drawable, in SDUs. A positive z causes the Drawable to move towards the user, a negative z causes it to move away. All global transformations will be applied after the local transformations.
Default: 0
translate.x
Number
The horizontal offset to the calculated position of the Drawable, in SDUs. A positive x causes the Drawable to move right, a negative x causes it to move left.
Default: 0
Events
onClick
When the Drawable is clicked, the system will trigger Drawable.onClick(ARObject). A click on the screen might hit multiple Drawables, thus a click creates a "clicked Drawables-queue", with the uppermost Drawable in the front of the queue. The return value of the function determines if, after the onClick()-Function was executed for this Drawable, the queue shall continue to execute onClick() for the next Drawable in the queue. In case the last Drawable in the queue still requests to continue the click-queue, ARObject.onClick() will be executed. If the queue still continues, context.onScreenClick() will be executed.
The return value of the function determines what happens next. If false, the click-queue should not stop with this Drawable. Thus, the next Drawable's onClick() function will be executed. This is the default value in case no return value is set or the function is not defined for this Drawable. If true, the queue-execution will stop at the current Drawable, underlying Drawables will not receive onClick() calls.
Event Payload:
-
arObject
ARObjectthe ARObject the clicked Drawable is attached to.
The trigger is null by default, and will thus result in no action executed when the trigger fires. A developer can add custom functionality by assigning a custom function to onClick.
onDragBegan
Executed when the user starts dragging on a Drawable with a single finger. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch position and the updated touch position [-1, 1]; always 0 in onDragBegan as no change to the drag gesture has occurred yet
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]; always 0 in onDragBegan as no change to the drag gesture has occurred yet
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the initiating touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the initiating touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
onDragChanged
Executed when the user drags on a Drawable with a single finger. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch position and the updated touch position [-1, 1]
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the updated touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the updated touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
onDragEnded
Executed when the user stops dragging on a Drawable with a single finger. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch position and the updated touch position [-1, 1]; always identical to the most recent distance received in onDragChanged
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]; always identical to the most recent distance received in onDragChanged
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the final touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
-
xIntersection
Numberthe world space X-coordinate of the intersection position of the final touch ray and the instant tracking plane [-infinity, infinity]; undefined if no InstantTrackable is available
onPanBegan
Executed when the user starts dragging on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch positions and the updated touch positions [-1, 1]; always 0 in onPanBegan as no change to the pan gesture has occurred yet; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]; always 0 in onPanBegan as no change to the pan gesture has occurred yet; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
onPanChanged
Executed when the user drags on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch positions and the updated touch positions [-1, 1]; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
onPanEnded
Executed when the user stops dragging on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
xNormalized
Numberthe distance on the X-axis between the initiating touch positions and the updated touch positions [-1, 1]; always identical to the most recent distance received in onPanChanged; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
-
yNormalized
Numberthe distance on the Y-axis between the initiating touch position and the updated touch position [-1, 1]; always identical to the most recent distance received in onPanChanged; the mid-points between the first and second touches are used to calculate the distances to allow co-operative behaviour with the scale and rotate gesture
onRotationBegan
Executed when the user starts rotating on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
angle
Numberthe CCW angle in degree between the line defined by the initiating touch positions and the line defined by the updated touch positions [0, 360); always 0 in onRotationBegan as no change to the rotation gesture has occurred yet
onRotationChanged
Executed when the user rotates on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
angle
Numberthe CCW angle in degree between the line defined by the initiating touch positions and the line defined by the updated touch positions [0, 360)
onRotationEnded
Executed when the user stops rotating on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
angle
Numberthe CCW angle in degree between the line defined by the initiating touch positions and the line defined by the updated touch positions [0, 360); always identical to the most recent angle received in onRotationChanged
onScaleBegan
Executed when the user starts scaling on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
scale
Numberthe scale value defined the ratio of the distance between the updated touches over the distance between the initiating touches [0, inf]; always 1 in onScaleBegan as no change to the scale gesture has occurred yet
onScaleChanged
Executed when the user scales on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
scale
Numberthe scale value defined the ratio of the distance between the updated touches over the distance between the initiating touches [0, inf]
onScaleEnded
Executed when the user stops scaling on a Drawable with two fingers. This callback behaves identically to the onClick callback in terms of event propagation.
Event Payload:
-
scale
Numberthe scale value defined the ratio of the distance between the updated touches over the distance between the initiating touches [0, inf]; always identical to the most recent scale received in onScaleChanged