/*
- * 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.
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 );
// 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
- Toolkit::ImageView backView = Toolkit::ImageView::New(BACKGROUND_IMAGE);
- 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<int>(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
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 );
{
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;
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;
}
}
*/
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) )
{
int mModelCounter;
Model3dView mModel3dView;
- Layer m3DLayer;
Layer mButtonLayer;
TapGestureDetector mTapDetector;
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;
}