/*
- * Copyright (c) 2019 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.
const Vector3 RIGHT_POINT( R3_2, 0.5f, 0.0f);
const Vector3 FRONT_POINT( 0.0f, 0.0f, 20.0f);
-const Vector2 DEFAULT_STAGE_SIZE( 480.0f, 800.0f );
+const Vector2 DEFAULT_WINDOW_SIZE( 480.0f, 800.0f );
const float X_ROTATION_DISPLACEMENT_FACTOR = 60.f;
const float Y_ROTATION_DISPLACEMENT_FACTOR = 60.f;
{
srand(0); // Want repeatable path
- Stage::GetCurrent().KeyEventSignal().Connect(this, &TestApp::OnKeyEvent);
+ app.GetWindow().KeyEventSignal().Connect(this, &TestApp::OnKeyEvent);
CreateToolbarAndView(app);
CreateShadowViewAndLights();
void CreateToolbarAndView(Application& app)
{
// Creates a default view with a default tool bar.
- // The view is added to the stage.
+ // The view is added to the window.
Toolkit::ToolBar toolBar;
mContents = DemoHelper::CreateView( app,
mView,
toolBar.AddControl( resetButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalCenter, DemoHelper::DEFAULT_PLAY_PADDING );
// Setup
- mView.SetPosition(Vector3(0.0f, 0.0f, 0.0f));
+ mView.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ) );
- mContents.SetBehavior(Layer::LAYER_3D);
- mContents.SetPosition(mTranslation);
- mContents.SetOrientation( CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
- mContents.SetScale(mPinchScale, mPinchScale, mPinchScale);
+ mContents.SetProperty( Layer::Property::BEHAVIOR, Layer::LAYER_3D );
+ mContents.SetProperty( Actor::Property::POSITION, mTranslation );
+ mContents.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
+ mContents.SetProperty( Actor::Property::SCALE, Vector3( mPinchScale, mPinchScale, mPinchScale ) );
mPanGestureDetector = PanGestureDetector::New();
mPanGestureDetector.Attach( mView );
void CreateShadowViewAndLights()
{
mShadowView = Toolkit::ShadowView::New();
- mShadowView.SetName("Container");
- mShadowView.SetParentOrigin(ParentOrigin::CENTER);
- mShadowView.SetAnchorPoint(AnchorPoint::CENTER);
+ mShadowView.SetProperty( Dali::Actor::Property::NAME,"Container");
+ mShadowView.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ mShadowView.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
mShadowView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f);
mContents.Add(mShadowView);
mShadowPlaneBg = ImageView::New( DEMO_IMAGE_DIR "brick-wall.jpg" );
- mShadowPlaneBg.SetParentOrigin(ParentOrigin::CENTER);
- mShadowPlaneBg.SetAnchorPoint(AnchorPoint::CENTER);
- mShadowPlaneBg.SetName("Plane");
- mShadowPlaneBg.SetSize(1000.0f, 1000.0f);
+ mShadowPlaneBg.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ mShadowPlaneBg.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ mShadowPlaneBg.SetProperty( Dali::Actor::Property::NAME,"Plane");
+ mShadowPlaneBg.SetProperty( Actor::Property::SIZE, Vector2(1000.0f, 1000.0f) );
mContents.Add(mShadowPlaneBg);
- mShadowPlaneBg.SetPosition(Vector3(50.0f, 50.0f, -200.0f));
+ mShadowPlaneBg.SetProperty( Actor::Property::POSITION, Vector3(50.0f, 50.0f, -200.0f));
mShadowView.SetShadowPlaneBackground(mShadowPlaneBg);
mShadowView.Activate();
mLightAnchor = Actor::New();
- mLightAnchor.SetParentOrigin(ParentOrigin::CENTER);
- mLightAnchor.SetAnchorPoint(AnchorPoint::CENTER);
- mLightAnchor.SetOrientation( CalculateWorldRotation( mLightXRotation, mLightYRotation ) );
+ mLightAnchor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ mLightAnchor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ mLightAnchor.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mLightXRotation, mLightYRotation ) );
// Work out a scaling factor as the initial light position was calculated for desktop
- // Need to scale light position as scene actor size is based on stage size (i.e. much bigger on device)
- Vector2 stageSize( Stage::GetCurrent().GetSize() );
- float scaleFactor = stageSize.x / DEFAULT_STAGE_SIZE.x;
+ // Need to scale light position as scene actor size is based on window size (i.e. much bigger on device)
+ Vector2 windowSize( mApp.GetWindow().GetSize() );
+ float scaleFactor = windowSize.x / DEFAULT_WINDOW_SIZE.x;
mCastingLight = Actor::New();
- mCastingLight.SetParentOrigin(ParentOrigin::CENTER);
- mCastingLight.SetAnchorPoint(AnchorPoint::CENTER);
- mCastingLight.SetPosition( Vector3( 0.0f, 0.0f, 800.0f ) * scaleFactor );
+ mCastingLight.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ mCastingLight.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ mCastingLight.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 800.0f ) * scaleFactor );
TextLabel text = TextLabel::New( "Light" );
text.SetProperty( TextLabel::Property::POINT_SIZE, 20.0f );
text.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
- text.SetColor( Color::BLUE );
+ text.SetProperty( Actor::Property::COLOR, Color::BLUE );
mCastingLight.Add(text);
mLightAnchor.Add(mCastingLight);
mShadowPlaneBg.Add(mLightAnchor);
- text.SetParentOrigin(ParentOrigin::CENTER);
+ text.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
mShadowView.SetPointLight(mCastingLight);
}
void CreateScene()
{
mSceneActor = Actor::New();
- mSceneActor.SetParentOrigin(ParentOrigin::CENTER);
+ mSceneActor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
// Create and add images to the scene actor:
mImageActor1 = ImageView::New( SCENE_IMAGE_1 );
mImageActor2.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
mImageActor3.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
- mImageActor2.SetParentOrigin(ParentOrigin::CENTER);
+ mImageActor2.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
- mImageActor1.SetParentOrigin(ParentOrigin::CENTER_LEFT);
- mImageActor1.SetAnchorPoint(AnchorPoint::CENTER_RIGHT);
+ mImageActor1.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER_LEFT);
+ mImageActor1.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER_RIGHT);
- mImageActor3.SetParentOrigin(ParentOrigin::CENTER_RIGHT);
- mImageActor3.SetAnchorPoint(AnchorPoint::CENTER_LEFT);
+ mImageActor3.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER_RIGHT);
+ mImageActor3.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER_LEFT);
mSceneActor.Add(mImageActor2);
mImageActor2.Add(mImageActor1);
mSceneAnimation.SetLooping(true);
mSceneAnimation.Play();
- mSceneActor.SetSize(250.0f, 250.0f);
- mSceneActor.SetPosition(0.0f, 0.0f, 130.0f);
+ mSceneActor.SetProperty( Actor::Property::SIZE, Vector2( 250.0f, 250.0f ) );
+ mSceneActor.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 130.0f ) );
mShadowView.Add(mSceneActor);
}
mLightXRotation = Clamp(mLightXRotation, -Dali::ANGLE_45, Dali::ANGLE_45 );
mLightYRotation = mLightYRotation + gesture.displacement.x * LIGHT_PAN_Y_DISPLACEMENT_FACTOR; // Y displacement rotates around X axis
mLightYRotation = Clamp(mLightYRotation, -Dali::ANGLE_45, Dali::ANGLE_45 );
- mLightAnchor.SetOrientation( CalculateWorldRotation( mLightXRotation, mLightYRotation ) );
+ mLightAnchor.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mLightXRotation, mLightYRotation ) );
break;
}
case PAN_SCENE:
{
mTranslation += Vector3(gesture.displacement.x, gesture.displacement.y, 0.f);
- mContents.SetPosition(mTranslation);
+ mContents.SetProperty( Actor::Property::POSITION, mTranslation );
break;
}
mSceneXRotation = Clamp( mSceneXRotation, -Dali::ANGLE_90, Dali::ANGLE_90 );
mSceneYRotation = mSceneYRotation + gesture.displacement.x / Y_ROTATION_DISPLACEMENT_FACTOR; // Y displacement rotates around X axis
mSceneYRotation = Clamp( mSceneYRotation, -Dali::ANGLE_90, Dali::ANGLE_90 );
- mContents.SetOrientation( CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
+ mContents.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
break;
}
{
mObjectXRotation = mObjectXRotation - gesture.displacement.y / X_ROTATION_DISPLACEMENT_FACTOR; // X displacement rotates around Y axis
mObjectYRotation = mObjectYRotation + gesture.displacement.x / Y_ROTATION_DISPLACEMENT_FACTOR; // Y displacement rotates around X axis
- mSceneActor.SetOrientation( CalculateWorldRotation( mObjectXRotation, mObjectYRotation ) );
+ mSceneActor.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mObjectXRotation, mObjectYRotation ) );
break;
}
}
{
if (gesture.state == Gesture::Started)
{
- mScaleAtPinchStart = mContents.GetCurrentScale().x;
+ mScaleAtPinchStart = mContents.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ).x;
}
mPinchScale = Clamp(mScaleAtPinchStart * gesture.scale, MIN_PINCH_SCALE, MAX_PINCH_SCALE);
- mContents.SetScale(mPinchScale, mPinchScale, mPinchScale);
+ mContents.SetProperty( Actor::Property::SCALE, Vector3( mPinchScale, mPinchScale, mPinchScale ) );
}
void Terminate(Application& app)
{
if( mSceneActor )
{
- Stage::GetCurrent().Remove(mSceneActor);
+ mApp.GetWindow().Remove(mSceneActor);
}
if( mView )
{
- Stage::GetCurrent().Remove(mView);
+ mApp.GetWindow().Remove(mView);
}
}
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) )
{
{
// Reset translation
mTranslation = Vector3::ZERO;
- mContents.SetPosition(mTranslation);
+ mContents.SetProperty( Actor::Property::POSITION, mTranslation );
// Align scene so that light anchor orientation is Z Axis
mSceneXRotation = -mLightXRotation;
mSceneYRotation = -mLightYRotation;
- mContents.SetOrientation( CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
+ mContents.SetProperty( Actor::Property::ORIENTATION, CalculateWorldRotation( mSceneXRotation, mSceneYRotation ) );
return true;
}