Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
//// I adapted this very slightly from the sparkar docs to use with world template as is https://sparkar.facebook.com/ar-studio/learn/tutorials/scripting?utm_campaign=welcome_screen_learn_more&utm_medium=learn&utm_offering=spark-ar&utm_product=spark-ar&utm_source=product#scaling-the-boombox-with-pinch-gestures
const Scene = require('Scene');
const TouchGestures = require('TouchGestures');
const sceneRoot = Scene.root;
Promise.all([
sceneRoot.findFirst('planeTracker0'),
sceneRoot.findFirst('dragHere')
])
.then(function (objects) {
const planeTracker = objects[0];
const placer = objects[1];
TouchGestures.onPan().subscribe(function (gesture) {
planeTracker.trackPoint(gesture.location, gesture.state);
});
const placerTransform = placer.transform;
TouchGestures.onPinch().subscribeWithSnapshot({
'lastScaleX': placerTransform.scaleX,
'lastScaleY': placerTransform.scaleY,
'lastScaleZ': placerTransform.scaleZ
}, function (gesture, snapshot) {
placerTransform.scaleX = gesture.scale.mul(snapshot.lastScaleX);
placerTransform.scaleY = gesture.scale.mul(snapshot.lastScaleY);
placerTransform.scaleZ = gesture.scale.mul(snapshot.lastScaleZ);
});
TouchGestures.onRotate().subscribeWithSnapshot({
'lastRotationY': placerTransform.rotationY,
}, function (gesture, snapshot) {
const correctRotation = gesture.rotation.mul(-1);
placerTransform.rotationY = correctRotation.add(snapshot.lastRotationY);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment