UNPKG

react-native-3d-model-view

Version:

React Native plugin for showing .obj, .dae and .scn models.

58 lines (46 loc) 1.51 kB
import React from 'react' import { View, findNodeHandle, NativeModules } from 'react-native' import { DefaultPropTypes, ARPropTypes } from './PropTypes' import BaseModelView from './BaseModelView' import RCTARModelView from './RCTARModelView' class ARModelView extends BaseModelView { rctView = null setRef = view => { this.rctView = view } startAnimation () { NativeModules['3DARModelViewManager'].startAnimation(findNodeHandle(this.rctView)) } stopAnimation () { NativeModules['3DARModelViewManager'].stopAnimation(findNodeHandle(this.rctView)) } setProgress (value) { let progress = value >= 1.0 ? 0.999999 : value progress = progress < 0.0 ? 0.0 : progress NativeModules['3DARModelViewManager'].setProgress(findNodeHandle(this.rctView), progress) } restart () { NativeModules['3DARModelViewManager'].restart(findNodeHandle(this.rctView)) } getSnapshot (saveToLibrary) { return NativeModules['3DARModelViewManager'].getSnapshot(findNodeHandle(this.rctView), saveToLibrary) } render () { const {modelSrc, textureSrc} = this.state const scale = this.props.scale || 1 return modelSrc && textureSrc ? <RCTARModelView {...this.props} ref={this.setRef} scale={scale} modelSrc={modelSrc} textureSrc={textureSrc} autoPlayAnimations={this.props.autoPlay} /> : <View {...this.props} /> } } ARModelView.propTypes = { ...DefaultPropTypes, ...ARPropTypes } export default ARModelView