X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fmodel3d-view%2Fmodel3d-view-example.cpp;h=d8d0316198865c570fd057668ec5d53cedb85563;hb=1b19fd140ff139b5854a1a62447faf31b175d8f6;hp=0e251a4de04d0612643ef40373711574e4a35985;hpb=cc6ea8d9723ab3a5415bb550acfbf27501de7a62;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 0e251a4..d8d0316 100644 --- a/examples/model3d-view/model3d-view-example.cpp +++ b/examples/model3d-view/model3d-view-example.cpp @@ -24,23 +24,21 @@ namespace { const int MODEL_NUMBER(3); -const char * const MODEL_FILE[] = { - DEMO_MODEL_DIR "Dino.obj", - DEMO_MODEL_DIR "ToyRobot-Metal.obj", - DEMO_MODEL_DIR "Toyrobot-Plastic.obj" -}; +const char* const MODEL_FILE[] = { + DEMO_MODEL_DIR "Dino.obj", + DEMO_MODEL_DIR "ToyRobot-Metal.obj", + DEMO_MODEL_DIR "Toyrobot-Plastic.obj"}; -const char * const MATERIAL_FILE[] = { - DEMO_MODEL_DIR "Dino.mtl", - DEMO_MODEL_DIR "ToyRobot-Metal.mtl", - DEMO_MODEL_DIR "Toyrobot-Plastic.mtl" -}; +const char* const MATERIAL_FILE[] = { + DEMO_MODEL_DIR "Dino.mtl", + DEMO_MODEL_DIR "ToyRobot-Metal.mtl", + DEMO_MODEL_DIR "Toyrobot-Plastic.mtl"}; -const char * const IMAGE_PATH( DEMO_IMAGE_DIR "" ); +const char* const IMAGE_PATH(DEMO_IMAGE_DIR ""); -const char * BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-1.jpg"); +const char* BACKGROUND_IMAGE(DEMO_IMAGE_DIR "background-1.jpg"); -} +} // namespace /* * This example shows how to create and display a model3d-view control. @@ -55,21 +53,20 @@ const char * BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-1.jpg"); class Model3dViewController : public ConnectionTracker { public: - - Model3dViewController( Application& application ) - : mApplication( application ), - mModelCounter( 0 ), + Model3dViewController(Application& application) + : mApplication(application), + mModelCounter(0), mModel3dView(), mButtonLayer(), mTapDetector(), - mIlluminationShader( Model3dView::DIFFUSE ), + mIlluminationShader(Model3dView::DIFFUSE), mRotationAnimation(), mLightAnimation(), - mPlaying( false ), - mScaled( false ) + mPlaying(false), + mScaled(false) { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &Model3dViewController::Create ); + mApplication.InitSignal().Connect(this, &Model3dViewController::Create); } ~Model3dViewController() @@ -78,115 +75,116 @@ public: } // The Init signal is received once (only) during the Application lifetime - void Create( Application& application ) + void Create(Application& application) { // Get a handle to the window - Window window = application.GetWindow(); + Window window = application.GetWindow(); Vector2 screenSize = window.GetSize(); //Add background - 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 ); + 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.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); - mModel3dView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); - mModel3dView.SetProperty( Dali::Actor::Property::NAME, "model3dViewControl" ); + mModel3dView = Model3dView::New(MODEL_FILE[0], MATERIAL_FILE[0], IMAGE_PATH); + 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.SetProperty( Actor::Property::SIZE, screenSize); + mModel3dView.SetProperty(Actor::Property::SIZE, screenSize); - mModel3dView.SetProperty(Model3dView::Property::LIGHT_POSITION, Vector3(5,10.,0)); + mModel3dView.SetProperty(Model3dView::Property::LIGHT_POSITION, Vector3(5, 10., 0)); - backView.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.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); - mButtonLayer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + mButtonLayer.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); + 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.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 ); + editButton.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS); + editButton.ClickedSignal().Connect(this, &Model3dViewController::OnChangeModelClicked); + 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.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 ); + editButton.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS); + editButton.ClickedSignal().Connect(this, &Model3dViewController::OnChangeLightingClicked); + 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.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 ); + editButton.SetResizePolicy(ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS); + editButton.ClickedSignal().Connect(this, &Model3dViewController::OnPauseAnimationsClicked); + 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 mLightAnimation = Animation::New(6.f); - mLightAnimation.AnimateTo(Property(mModel3dView, Model3dView::Property::LIGHT_POSITION), Vector3(-5,10.0,0), TimePeriod( 0.0f, 3.0f )); - mLightAnimation.AnimateTo(Property(mModel3dView, Model3dView::Property::LIGHT_POSITION), Vector3(5,10.0,0), TimePeriod( 3.0f, 3.0f )); + mLightAnimation.AnimateTo(Property(mModel3dView, Model3dView::Property::LIGHT_POSITION), Vector3(-5, 10.0, 0), TimePeriod(0.0f, 3.0f)); + mLightAnimation.AnimateTo(Property(mModel3dView, Model3dView::Property::LIGHT_POSITION), Vector3(5, 10.0, 0), TimePeriod(3.0f, 3.0f)); mLightAnimation.SetLooping(true); mLightAnimation.Play(); mRotationAnimation = Animation::New(15.f); - mRotationAnimation.AnimateBy(Property(mModel3dView, Actor::Property::ORIENTATION), Quaternion(Degree(0.f), Degree(360.f), Degree(0.f)) ); + mRotationAnimation.AnimateBy(Property(mModel3dView, Actor::Property::ORIENTATION), Quaternion(Degree(0.f), Degree(360.f), Degree(0.f))); mRotationAnimation.SetLooping(true); mRotationAnimation.Play(); mPlaying = true; - mScaled = false; + mScaled = false; // 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 ); + mTapDetector = TapGestureDetector::New(2); mTapDetector.DetectedSignal().Connect(this, &Model3dViewController::OnTap); - mTapDetector.Attach( backView ); + mTapDetector.Attach(backView); } /** * Main Tap event handler */ - void OnTap( Actor actor, const TapGesture& tap ) + void OnTap(Actor actor, const TapGesture& tap) { - if (mScaled) + if(mScaled) { - mModel3dView.SetProperty( Actor::Property::SCALE, 1.0f ); - mModel3dView.SetProperty( Actor::Property::POSITION, Vector3( 0, 0, 0 ) ); + mModel3dView.SetProperty(Actor::Property::SCALE, 1.0f); + mModel3dView.SetProperty(Actor::Property::POSITION, Vector3(0, 0, 0)); mScaled = false; } else { - Window window = mApplication.GetWindow(); + Window window = mApplication.GetWindow(); Vector2 screenSize = window.GetSize(); - Vector2 position; - position.x = tap.screenPoint.x - screenSize.x * 0.5; - position.y = tap.screenPoint.y - screenSize.y * 0.5; + const Vector2& screenPoint = tap.GetScreenPoint(); + Vector2 position; + position.x = screenPoint.x - screenSize.x * 0.5; + position.y = screenPoint.y - screenSize.y * 0.5; float size = 2.5; - mModel3dView.SetProperty( Actor::Property::SCALE, size ); - mModel3dView.SetProperty( Actor::Property::POSITION, Vector3( -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; } } @@ -207,21 +205,21 @@ public: */ bool OnChangeLightingClicked(Toolkit::Button button) { - if( mIlluminationShader == Model3dView::DIFFUSE_WITH_NORMAL_MAP ) + if(mIlluminationShader == Model3dView::DIFFUSE_WITH_NORMAL_MAP) { mModel3dView.SetProperty(Model3dView::Property::ILLUMINATION_TYPE, Model3dView::DIFFUSE_WITH_TEXTURE); mIlluminationShader = Model3dView::IlluminationType(mModel3dView.GetProperty(Model3dView::Property::ILLUMINATION_TYPE)); } - else if( mIlluminationShader == Model3dView::DIFFUSE_WITH_TEXTURE ) + else if(mIlluminationShader == Model3dView::DIFFUSE_WITH_TEXTURE) { mModel3dView.SetProperty(Model3dView::Property::ILLUMINATION_TYPE, Model3dView::DIFFUSE); mIlluminationShader = Model3dView::IlluminationType(mModel3dView.GetProperty(Model3dView::Property::ILLUMINATION_TYPE)); - } - else if( mIlluminationShader == Model3dView::DIFFUSE ) + } + else if(mIlluminationShader == Model3dView::DIFFUSE) { mModel3dView.SetProperty(Model3dView::Property::ILLUMINATION_TYPE, Model3dView::DIFFUSE_WITH_NORMAL_MAP); mIlluminationShader = Model3dView::IlluminationType(mModel3dView.GetProperty(Model3dView::Property::ILLUMINATION_TYPE)); - } + } return true; } @@ -231,7 +229,7 @@ public: */ void PauseAnimations() { - if( mPlaying ) + if(mPlaying) { mRotationAnimation.Pause(); mLightAnimation.Pause(); @@ -262,9 +260,9 @@ 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) ) + if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK)) { mApplication.Quit(); } @@ -275,29 +273,28 @@ public: } } - private: - Application& mApplication; + Application& mApplication; - int mModelCounter; + int mModelCounter; Model3dView mModel3dView; - Layer mButtonLayer; + Layer mButtonLayer; TapGestureDetector mTapDetector; Model3dView::IlluminationType mIlluminationShader; Animation mRotationAnimation; Animation mLightAnimation; - bool mPlaying; + bool mPlaying; bool mScaled; }; -int DALI_EXPORT_API main( int argc, char **argv ) +int DALI_EXPORT_API main(int argc, char** argv) { - Application application = Application::New( &argc, &argv ); - Model3dViewController test( application ); + Application application = Application::New(&argc, &argv); + Model3dViewController test(application); application.MainLoop(); return 0; }