X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fmodel3d-view%2Fmodel3d-view-example.cpp;h=c02d5261b3ca7385e27a08593ec398d0c788d34e;hb=74d1c0223d3597dfbdb427a58c56feb86857303e;hp=d9b5ec261bfeae61d695e8f531637909c4d862ab;hpb=7374f93dc7855f4cc263601215c84aea8f7d276b;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/model3d-view/model3d-view-example.cpp b/examples/model3d-view/model3d-view-example.cpp index d9b5ec2..c02d526 100644 --- a/examples/model3d-view/model3d-view-example.cpp +++ b/examples/model3d-view/model3d-view-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,7 +57,16 @@ class Model3dViewController : public ConnectionTracker public: Model3dViewController( Application& application ) - : mApplication( application ) + : mApplication( application ), + mModelCounter( 0 ), + mModel3dView(), + mButtonLayer(), + mTapDetector(), + mIlluminationShader( Model3dView::DIFFUSE ), + mRotationAnimation(), + mLightAnimation(), + mPlaying( false ), + mScaled( false ) { // Connect to the Application's Init signal mApplication.InitSignal().Connect( this, &Model3dViewController::Create ); @@ -71,71 +80,62 @@ public: // The Init signal is received once (only) during the Application lifetime void Create( Application& application ) { - // Get a handle to the stage - Stage stage = Stage::GetCurrent(); - Vector2 screenSize = stage.GetSize(); + // Get a handle to the window + Window window = application.GetWindow(); + Vector2 screenSize = window.GetSize(); //Add background - Image imageBackground = ResourceImage::New( BACKGROUND_IMAGE ); - Toolkit::ImageView backView = Toolkit::ImageView::New(imageBackground); - backView.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - stage.Add(backView); - - //Add 3D model control - m3DLayer = Layer::New(); - stage.GetRootLayer().Add(m3DLayer); - - //3D models require 3D based rendering method, so it can use depth buffer, etc. - m3DLayer.SetBehavior(Layer::LAYER_3D); - m3DLayer.SetParentOrigin( ParentOrigin::CENTER ); - m3DLayer.SetAnchorPoint( AnchorPoint::CENTER ); + Toolkit::ImageView backView = Toolkit::ImageView::New( BACKGROUND_IMAGE ); + backView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + backView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + window.Add( backView ); mModelCounter = 0; mModel3dView = Model3dView::New( MODEL_FILE[0], MATERIAL_FILE[0], IMAGE_PATH ); - mModel3dView.SetParentOrigin( ParentOrigin::CENTER ); - mModel3dView.SetAnchorPoint( AnchorPoint::CENTER ); - mModel3dView.SetName( "model3dViewControl" ); + mModel3dView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mModel3dView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + mModel3dView.SetProperty( Dali::Actor::Property::NAME, "model3dViewControl" ); mModel3dView.SetResizePolicy(ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS); - mModel3dView.SetSize(screenSize); + mModel3dView.SetProperty( Actor::Property::SIZE, screenSize); mModel3dView.SetProperty(Model3dView::Property::LIGHT_POSITION, Vector3(5,10.,0)); - m3DLayer.Add( mModel3dView ); + backView.Add( mModel3dView ); mIlluminationShader = Model3dView::IlluminationType(mModel3dView.GetProperty(Model3dView::Property::ILLUMINATION_TYPE)); mButtonLayer = Layer::New(); mButtonLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - mButtonLayer.SetParentOrigin( ParentOrigin::CENTER ); - mButtonLayer.SetAnchorPoint( AnchorPoint::CENTER ); - stage.GetRootLayer().Add(mButtonLayer); + mButtonLayer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mButtonLayer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + window.Add(mButtonLayer); // Create button for model changing Toolkit::PushButton editButton = Toolkit::PushButton::New(); editButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); editButton.ClickedSignal().Connect( this, &Model3dViewController::OnChangeModelClicked); - editButton.SetParentOrigin( ParentOrigin::TOP_LEFT ); - editButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - editButton.SetLabelText( "Change Model" ); + editButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + editButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + editButton.SetProperty( Toolkit::Button::Property::LABEL, "Change Model" ); mButtonLayer.Add( editButton ); // Create button for shader changing editButton = Toolkit::PushButton::New(); editButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); editButton.ClickedSignal().Connect( this, &Model3dViewController::OnChangeLightingClicked); - editButton.SetParentOrigin( ParentOrigin::TOP_RIGHT ); - editButton.SetAnchorPoint( AnchorPoint::TOP_RIGHT ); - editButton.SetLabelText( "Change Shader" ); + editButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_RIGHT ); + editButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_RIGHT ); + editButton.SetProperty( Toolkit::Button::Property::LABEL, "Change Shader" ); mButtonLayer.Add( editButton ); // Create button for pause/resume animation editButton = Toolkit::PushButton::New(); editButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); editButton.ClickedSignal().Connect( this, &Model3dViewController::OnPauseAnimationsClicked); - editButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - editButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); - editButton.SetLabelText( "Pause Animations" ); + editButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER ); + editButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER ); + editButton.SetProperty( Toolkit::Button::Property::LABEL, "Pause Animations" ); mButtonLayer.Add( editButton ); //Create animations @@ -153,8 +153,8 @@ public: mPlaying = true; mScaled = false; - // Respond to a click anywhere on the stage - stage.KeyEventSignal().Connect(this, &Model3dViewController::OnKeyEvent); + // Respond to a click anywhere on the window + window.KeyEventSignal().Connect(this, &Model3dViewController::OnKeyEvent); //Create a tap gesture detector for zoom mTapDetector = TapGestureDetector::New( 2 ); @@ -170,14 +170,14 @@ public: { if (mScaled) { - mModel3dView.SetScale(1.0); - mModel3dView.SetPosition(0,0,0); + mModel3dView.SetProperty( Actor::Property::SCALE, 1.0f ); + mModel3dView.SetProperty( Actor::Property::POSITION, Vector3( 0, 0, 0 ) ); mScaled = false; } else { - Stage stage = Stage::GetCurrent(); - Vector2 screenSize = stage.GetSize(); + Window window = mApplication.GetWindow(); + Vector2 screenSize = window.GetSize(); Vector2 position; position.x = tap.screenPoint.x - screenSize.x * 0.5; @@ -185,8 +185,8 @@ public: float size = 2.5; - mModel3dView.SetScale(size); - mModel3dView.SetPosition(-position.x * size,-position.y * size, 0); + mModel3dView.SetProperty( Actor::Property::SCALE, size ); + mModel3dView.SetProperty( Actor::Property::POSITION, Vector3( -position.x * size, -position.y * size, 0 ) ); mScaled = true; } } @@ -199,8 +199,6 @@ public: mModelCounter = (mModelCounter + 1) % MODEL_NUMBER; mModel3dView.SetProperty(Model3dView::Property::GEOMETRY_URL, MODEL_FILE[mModelCounter]); mModel3dView.SetProperty(Model3dView::Property::MATERIAL_URL, MATERIAL_FILE[mModelCounter]); - mModel3dView.SetProperty(Model3dView::Property::IMAGES_URL, IMAGE_PATH); - return true; } @@ -264,7 +262,7 @@ public: */ void OnKeyEvent(const KeyEvent& event) { - if(event.state == KeyEvent::Down) + if(event.GetState() == KeyEvent::Down) { if( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) ) { @@ -284,7 +282,6 @@ private: int mModelCounter; Model3dView mModel3dView; - Layer m3DLayer; Layer mButtonLayer; TapGestureDetector mTapDetector; @@ -297,20 +294,10 @@ private: bool mScaled; }; -void RunTest( Application& application ) -{ - Model3dViewController test( application ); - - application.MainLoop(); -} - -// Entry point for Linux & Tizen applications -// int DALI_EXPORT_API main( int argc, char **argv ) { Application application = Application::New( &argc, &argv ); - - RunTest( application ); - + Model3dViewController test( application ); + application.MainLoop(); return 0; }