sceneform-android
sceneform-android copied to clipboard
Rotate model in Sceneview
hi,
I would like to implement rotation 360 a model on SceneView. I used TransformableNode and set rotationController and scaleController to true, translationController to false. However, it does not work. I only can scale model (zoom it). here is my code:
TransformableNode model = new TransformableNode(transformationSystem);
model.setParent(transparentSceneView.getScene());
model.getRotationController().setEnabled(true);
model.getScaleController().setEnabled(true);
model.getTranslationController().setEnabled(false);
model.setRenderable(dragon.get());
model.setLocalScale(new Vector3(0.3f, 0.3f, 0.3f));
model.setLocalRotation(Quaternion.axisAngle(new Vector3(0f, 0f, 0f), 35));
model.setLocalPosition(new Vector3(0f, 0f, -4.0f));
model.select();
transformationSystem.selectNode(model);
this is onCreate() code
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
backgroundSceneView = findViewById(R.id.backgroundSceneView);
transparentSceneView = findViewById(R.id.transparentSceneView);
transparentSceneView.setTransparent(true);
transformationSystem=new TransformationSystem(getResources().getDisplayMetrics(),new FootprintSelectionVisualizer());
transparentSceneView.getScene().addOnPeekTouchListener(new Scene.OnPeekTouchListener() {
@Override
public void onPeekTouch(HitTestResult hitTestResult, MotionEvent motionEvent) {
transformationSystem.onTouch(hitTestResult,motionEvent);
}
});
//move camera a littlebit 'up' from its default position to have a better view
transparentSceneView.getScene().getCamera().setLocalPosition(new Vector3(0,0f,0));
loadModels();
}
could you please help ?
Thank you, Hiep