This repository has been archived by the owner on Nov 2, 2021. It is now read-only.
forked from ReactVision/viro
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathViroOrbitCamera.js
119 lines (107 loc) · 2.94 KB
/
ViroOrbitCamera.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/**
* Copyright (c) 2015-present, Viro, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule ViroOrbitCamera
* @flow
*/
'use strict';
import { requireNativeComponent, View, StyleSheet } from 'react-native';
import React, { Component } from 'react';
import PropTypes from 'prop-types';
var createReactClass = require('create-react-class');
import { checkMisnamedProps } from './Utilities/ViroProps';
var ViroOrbitCamera = createReactClass({
propTypes: {
...View.propTypes,
position: PropTypes.arrayOf(PropTypes.number),
focalPoint: PropTypes.arrayOf(PropTypes.number),
active: PropTypes.bool.isRequired,
animation: PropTypes.shape({
name: PropTypes.string,
delay: PropTypes.number,
loop: PropTypes.bool,
onStart: PropTypes.func,
onFinish: PropTypes.func,
run: PropTypes.bool,
interruptible: PropTypes.bool,
}),
fieldOfView: PropTypes.number,
},
componentDidMount() {
this.context.cameraDidMount(this);
},
componentWillUnmount() {
this.context.cameraWillUnmount(this);
},
componentDidUpdate(prevProps, prevState) {
if(prevProps.active != this.props.active) {
this.context.cameraDidUpdate(this, this.props.active);
}
},
setNativeProps: function(nativeProps) {
this._component.setNativeProps(nativeProps);
},
render: function() {
// Uncomment this line to check for misnamed props
//checkMisnamedProps("ViroOrbitCamera", this.props);
return (
<VRTOrbitCamera
ref={ component => {this._component = component; }}
{...this.props}
/>
);
},
});
ViroOrbitCamera.contextTypes = {
cameraDidMount: PropTypes.func,
cameraWillUnmount: PropTypes.func,
cameraDidUpdate: PropTypes.func,
};
var VRTOrbitCamera = requireNativeComponent(
'VRTOrbitCamera',
ViroOrbitCamera, {
nativeOnly: {
scale:[1,1,1],
materials:[],
visible: true,
canHover: true,
canClick: true,
canTouch: true,
canScroll: true,
canSwipe: true,
canDrag: true,
canPinch: true,
canRotate: true,
onPinchViro: true,
onRotateViro: true,
onHoverViro:true,
onClickViro:true,
onTouchViro:true,
onScrollViro:true,
onSwipeViro:true,
onDragViro:true,
transformBehaviors:true,
canFuse: true,
onFuseViro:true,
timeToFuse: true,
viroTag: true,
scalePivot: true,
rotationPivot: true,
canCollide:true,
onCollisionViro:true,
onNativeTransformDelegateViro:true,
hasTransformDelegate:true,
physicsBody:true,
dragType: true,
dragPlane:true,
animation:true,
ignoreEventHandling: true,
renderingOrder:true,
}
});
module.exports = ViroOrbitCamera;