X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fmetaball-explosion%2Fmetaball-explosion-example.cpp;h=0c65e001f3df8faa8672f4aa454fd91f38657a7e;hb=1b19fd140ff139b5854a1a62447faf31b175d8f6;hp=d5332d713a556e6b0045594dfa995bbd25cb0838;hpb=bccdc62e31ed309e815007780b5f0e64ec575796;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/metaball-explosion/metaball-explosion-example.cpp b/examples/metaball-explosion/metaball-explosion-example.cpp index d5332d7..0c65e00 100644 --- a/examples/metaball-explosion/metaball-explosion-example.cpp +++ b/examples/metaball-explosion/metaball-explosion-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 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. @@ -16,15 +16,15 @@ */ // EXTERNAL INCLUDES +#include // uint32_t, uint16_t etc #include #include -#include // uint32_t, uint16_t etc +#include +#include #include -#include #include -#include -#include +#include // INTERNAL INCLUDES #include "shared/utility.h" // DemoHelper::LoadTexture @@ -34,7 +34,7 @@ using namespace Dali; namespace // unnamed namespace for constants { // background image -const char * const BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-2.jpg" ); +const char* const BACKGROUND_IMAGE(DEMO_IMAGE_DIR "background-2.jpg"); // number of metaballs constexpr uint32_t METABALL_NUMBER = 6; @@ -42,6 +42,7 @@ constexpr uint32_t METABALL_NUMBER = 6; /** * Vertex shader code for metaball */ +// clang-format off const char* const METABALL_VERTEX_SHADER = DALI_COMPOSE_SHADER ( attribute mediump vec2 aPosition;\n attribute mediump vec2 aTexture;\n @@ -157,16 +158,17 @@ const char* const REFRACTION_FRAG_SHADER = DALI_COMPOSE_SHADER ( gl_FragColor.a = 1.0; }\n ); +// clang-format on /** * Metadata for each ball */ struct MetaballInfo { - Actor actor; - Vector2 position; - float radius; - float initRadius; + Actor actor; + Vector2 position; + float radius; + float initRadius; //new shader stuff Property::Index positionIndex; @@ -183,12 +185,11 @@ struct MetaballInfo class MetaballExplosionController : public ConnectionTracker { public: - /** * Constructor * @param application */ - MetaballExplosionController( Application& application ); + MetaballExplosionController(Application& application); /** * Destructor @@ -198,13 +199,13 @@ public: /** * Creates the metaballs and initializes the scene */ - void Create( Application& app ); + void Create(Application& app); /** * Touch event handler to center metaballs at touch position * and start explosion animation on release */ - bool OnTouch( Actor actor, const TouchData& touch ); + bool OnTouch(Actor actor, const TouchEvent& touch); /** * Key event handler to quit application on escape or back key @@ -212,35 +213,34 @@ public: void OnKeyEvent(const KeyEvent& event); private: // Data + Application& mApplication; + Vector2 mScreenSize; - Application& mApplication; - Vector2 mScreenSize; + Texture mBackgroundTexture; + FrameBuffer mMetaballFBO; - Texture mBackgroundTexture; - FrameBuffer mMetaballFBO; + Actor mMetaballRoot; + MetaballInfo mMetaballs[METABALL_NUMBER]; - Actor mMetaballRoot; - MetaballInfo mMetaballs[METABALL_NUMBER]; - - Property::Index mPositionIndex; - Actor mCompositionActor; + Property::Index mPositionIndex; + Actor mCompositionActor; //Motion - Vector2 mCurrentTouchPosition; - Vector2 mMetaballPosVariation; - Vector2 mMetaballPosVariationFrom; - Vector2 mMetaballPosVariationTo; - Vector2 mMetaballCenter; + Vector2 mCurrentTouchPosition; + Vector2 mMetaballPosVariation; + Vector2 mMetaballPosVariationFrom; + Vector2 mMetaballPosVariationTo; + Vector2 mMetaballCenter; //Animations - Animation mPositionVarAnimation[METABALL_NUMBER]; + Animation mPositionVarAnimation[METABALL_NUMBER]; - uint32_t mDispersion; - Animation mDispersionAnimation[METABALL_NUMBER]; + uint32_t mDispersion; + Animation mDispersionAnimation[METABALL_NUMBER]; - Timer mTimerDispersion; + Timer mTimerDispersion; - float mTimeMultiplier; + float mTimeMultiplier; // Private helper functions @@ -248,7 +248,7 @@ private: // Data * Create a mesh data with the geometry for the metaball rendering * @param aspectMappedTexture whether texture coords should be mapped based on aspect ratio */ - Geometry CreateGeometry( bool aspectMappedTexture = true ); + Geometry CreateGeometry(bool aspectMappedTexture = true); /** * Create a actors and renderers for the metaballs @@ -273,22 +273,22 @@ private: // Data /** * Function to reset metaball state */ - void ResetMetaballs( bool resetAnims ); + void ResetMetaballs(bool resetAnims); /** * Function to create disperse each of the ball that compose the metaball when exploding */ - void DisperseBallAnimation( uint32_t ball ); + void DisperseBallAnimation(uint32_t ball); /** * Function to make metaballs come back to reset position */ - void LaunchResetMetaballPosition( Animation& source ); + void LaunchResetMetaballPosition(Animation& source); /** * Function to set things at the end of the animation */ - void EndDisperseAnimation( Animation& source ); + void EndDisperseAnimation(Animation& source); /** * Function to init dispersion of the metaballs one by one using a timer @@ -299,15 +299,15 @@ private: // Data /** * Function to set the actual position of the metaballs when the user clicks the screen */ - void SetPositionToMetaballs( const Vector2& metaballCenter ); + void SetPositionToMetaballs(const Vector2& metaballCenter); }; /** * Implementation */ -MetaballExplosionController::MetaballExplosionController( Application& application ) -: mApplication( application ), +MetaballExplosionController::MetaballExplosionController(Application& application) +: mApplication(application), mScreenSize(), mBackgroundTexture(), mMetaballFBO(), @@ -321,13 +321,13 @@ MetaballExplosionController::MetaballExplosionController( Application& applicati mMetaballPosVariationTo(), mMetaballCenter(), mPositionVarAnimation(), - mDispersion( 0 ), + mDispersion(0), mDispersionAnimation(), mTimerDispersion(), - mTimeMultiplier( 1.0f ) + mTimeMultiplier(1.0f) { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &MetaballExplosionController::Create ); + mApplication.InitSignal().Connect(this, &MetaballExplosionController::Create); } MetaballExplosionController::~MetaballExplosionController() @@ -335,22 +335,22 @@ MetaballExplosionController::~MetaballExplosionController() // Nothing to do here; } -void MetaballExplosionController::Create( Application& app ) +void MetaballExplosionController::Create(Application& app) { - Stage stage = Stage::GetCurrent(); + Window window = app.GetWindow(); - stage.KeyEventSignal().Connect( this, &MetaballExplosionController::OnKeyEvent ); + window.KeyEventSignal().Connect(this, &MetaballExplosionController::OnKeyEvent); - mScreenSize = stage.GetSize(); + mScreenSize = window.GetSize(); mTimeMultiplier = 1.0f; - stage.SetBackgroundColor(Color::BLACK); + window.SetBackgroundColor(Color::BLACK); // Load background texture - mBackgroundTexture = DemoHelper::LoadTexture( BACKGROUND_IMAGE ); + mBackgroundTexture = DemoHelper::LoadTexture(BACKGROUND_IMAGE); - srand( static_cast( time(0) ) ); + srand(static_cast(time(0))); //Create internal data CreateMetaballActors(); @@ -359,15 +359,15 @@ void MetaballExplosionController::Create( Application& app ) CreateAnimations(); - mDispersion = 0; - mTimerDispersion = Timer::New( 150 ); - mTimerDispersion.TickSignal().Connect( this, &MetaballExplosionController::OnTimerDispersionTick ); + mDispersion = 0; + mTimerDispersion = Timer::New(150); + mTimerDispersion.TickSignal().Connect(this, &MetaballExplosionController::OnTimerDispersionTick); // Connect the callback to the touch signal on the mesh actor - stage.GetRootLayer().TouchSignal().Connect( this, &MetaballExplosionController::OnTouch ); + window.GetRootLayer().TouchedSignal().Connect(this, &MetaballExplosionController::OnTouch); } -Geometry MetaballExplosionController::CreateGeometry( bool aspectMappedTexture ) +Geometry MetaballExplosionController::CreateGeometry(bool aspectMappedTexture) { const float aspect = mScreenSize.y / mScreenSize.x; @@ -375,49 +375,53 @@ Geometry MetaballExplosionController::CreateGeometry( bool aspectMappedTexture ) const float xsize = mScreenSize.x * 0.5; // Create the meshdata for the metaballs - struct VertexPosition { Vector2 position; }; - struct VertexTexture { Vector2 texture; }; - - VertexPosition vertices[] = + struct VertexPosition { - { Vector2( -xsize, -xsize * aspect ) }, - { Vector2( xsize, -xsize * aspect ) }, - { Vector2( -xsize, xsize * aspect ) }, - { Vector2( xsize, xsize * aspect ) } + Vector2 position; }; - - const float textureAspect = (aspectMappedTexture) ? aspect : 1.0f; - VertexTexture textures[] = + struct VertexTexture { - { Vector2( 0.0f, 0.0f ) }, - { Vector2( 1.0f, 0.0f ) }, - { Vector2( 0.0f, 1.0f * textureAspect ) }, - { Vector2( 1.0f, 1.0f * textureAspect ) } + Vector2 texture; }; - uint32_t numberOfVertices = sizeof(vertices)/sizeof(VertexPosition); + VertexPosition vertices[] = + { + {Vector2(-xsize, -xsize * aspect)}, + {Vector2(xsize, -xsize * aspect)}, + {Vector2(-xsize, xsize * aspect)}, + {Vector2(xsize, xsize * aspect)}}; + + const float textureAspect = (aspectMappedTexture) ? aspect : 1.0f; + VertexTexture textures[] = + { + {Vector2(0.0f, 0.0f)}, + {Vector2(1.0f, 0.0f)}, + {Vector2(0.0f, 1.0f * textureAspect)}, + {Vector2(1.0f, 1.0f * textureAspect)}}; + + uint32_t numberOfVertices = sizeof(vertices) / sizeof(VertexPosition); // Vertices Property::Map positionVertexFormat; positionVertexFormat["aPosition"] = Property::VECTOR2; - PropertyBuffer positionVertices = PropertyBuffer::New( positionVertexFormat ); - positionVertices.SetData( vertices, numberOfVertices ); + VertexBuffer positionVertices = VertexBuffer::New(positionVertexFormat); + positionVertices.SetData(vertices, numberOfVertices); // Textures Property::Map textureVertexFormat; textureVertexFormat["aTexture"] = Property::VECTOR2; - PropertyBuffer textureVertices = PropertyBuffer::New( textureVertexFormat ); - textureVertices.SetData( textures, numberOfVertices ); + VertexBuffer textureVertices = VertexBuffer::New(textureVertexFormat); + textureVertices.SetData(textures, numberOfVertices); // Indices - const uint16_t indices[] = { 0, 3, 1, 0, 2, 3 }; + const uint16_t indices[] = {0, 3, 1, 0, 2, 3}; // Create the geometry object Geometry texturedQuadGeometry = Geometry::New(); - texturedQuadGeometry.AddVertexBuffer( positionVertices ); - texturedQuadGeometry.AddVertexBuffer( textureVertices ); + texturedQuadGeometry.AddVertexBuffer(positionVertices); + texturedQuadGeometry.AddVertexBuffer(textureVertices); - texturedQuadGeometry.SetIndexBuffer ( &indices[0], sizeof( indices )/ sizeof( indices[0] ) ); + texturedQuadGeometry.SetIndexBuffer(&indices[0], sizeof(indices) / sizeof(indices[0])); return texturedQuadGeometry; } @@ -425,230 +429,229 @@ Geometry MetaballExplosionController::CreateGeometry( bool aspectMappedTexture ) void MetaballExplosionController::CreateMetaballActors() { // Create the shader for the metaballs, tell DALi that shader modifies geometry so we dont need to set a meaningless size - Shader shader = Shader::New( METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER, Shader::Hint::MODIFIES_GEOMETRY ); + Shader shader = Shader::New(METABALL_VERTEX_SHADER, METABALL_FRAG_SHADER, Shader::Hint::MODIFIES_GEOMETRY); Geometry metaballGeom = CreateGeometry(); // Reuse same renderer for each actor - Renderer renderer = Renderer::New( metaballGeom, shader ); - renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON ); - renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::ONE ); - renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE ); - renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE ); - renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE ); + Renderer renderer = Renderer::New(metaballGeom, shader); + renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::ON); + renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::ONE); + renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE); + renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE); + renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE); //Initialization of each of the metaballs - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { mMetaballs[i].position = Vector2(0.0f, 0.0f); - mMetaballs[i].radius = mMetaballs[i].initRadius = Random::Range(0.05f,0.07f); + mMetaballs[i].radius = mMetaballs[i].initRadius = Random::Range(0.05f, 0.07f); - mMetaballs[i].actor = Actor::New( ); - mMetaballs[i].actor.SetName( "Metaball" ); - mMetaballs[i].actor.SetScale( 1.0f ); - mMetaballs[i].actor.SetParentOrigin( ParentOrigin::CENTER ); - mMetaballs[i].actor.AddRenderer( renderer ); + mMetaballs[i].actor = Actor::New(); + mMetaballs[i].actor.SetProperty(Dali::Actor::Property::NAME, "Metaball"); + mMetaballs[i].actor.SetProperty(Actor::Property::SCALE, 1.0f); + mMetaballs[i].actor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + mMetaballs[i].actor.AddRenderer(renderer); - mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty( "uPositionMetaball", mMetaballs[i].position ); + mMetaballs[i].positionIndex = mMetaballs[i].actor.RegisterProperty("uPositionMetaball", mMetaballs[i].position); - mMetaballs[i].positionVarIndex = mMetaballs[i].actor.RegisterProperty( "uPositionVar", Vector2(0.f,0.f) ); + mMetaballs[i].positionVarIndex = mMetaballs[i].actor.RegisterProperty("uPositionVar", Vector2(0.f, 0.f)); - mMetaballs[i].actor.RegisterProperty( "uGravityVector", Vector2(Random::Range(-0.2,0.2),Random::Range(-0.2,0.2)) ); - mMetaballs[i].actor.RegisterProperty( "uRadius", mMetaballs[i].radius ); - mMetaballs[i].actor.RegisterProperty( "uRadiusVar", 0.f ); + mMetaballs[i].actor.RegisterProperty("uGravityVector", Vector2(Random::Range(-0.2, 0.2), Random::Range(-0.2, 0.2))); + mMetaballs[i].actor.RegisterProperty("uRadius", mMetaballs[i].radius); + mMetaballs[i].actor.RegisterProperty("uRadiusVar", 0.f); } // Root creation mMetaballRoot = Actor::New(); - mMetaballRoot.SetParentOrigin( ParentOrigin::CENTER ); - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + mMetaballRoot.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { - mMetaballRoot.Add( mMetaballs[i].actor ); + mMetaballRoot.Add(mMetaballs[i].actor); } - } void MetaballExplosionController::CreateMetaballImage() { // Create an FBO and a render task to create to render the metaballs with a fragment shader - Stage stage = Stage::GetCurrent(); + Window window = mApplication.GetWindow(); - mMetaballFBO = FrameBuffer::New( mScreenSize.x, mScreenSize.y ); + mMetaballFBO = FrameBuffer::New(mScreenSize.x, mScreenSize.y); - stage.Add(mMetaballRoot); + window.Add(mMetaballRoot); // Create the render task used to render the metaballs - RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); - RenderTask task = taskList.CreateTask(); - task.SetRefreshRate( RenderTask::REFRESH_ALWAYS ); - task.SetSourceActor( mMetaballRoot ); - task.SetExclusive( true ); - task.SetClearColor( Color::BLACK ); - task.SetClearEnabled( true ); - task.SetFrameBuffer( mMetaballFBO ); + RenderTaskList taskList = window.GetRenderTaskList(); + RenderTask task = taskList.CreateTask(); + task.SetRefreshRate(RenderTask::REFRESH_ALWAYS); + task.SetSourceActor(mMetaballRoot); + task.SetExclusive(true); + task.SetClearColor(Color::BLACK); + task.SetClearEnabled(true); + task.SetFrameBuffer(mMetaballFBO); } void MetaballExplosionController::CreateComposition() { //Create new shader - Shader shader = Shader::New( METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER ); + Shader shader = Shader::New(METABALL_VERTEX_SHADER, REFRACTION_FRAG_SHADER); // Create new texture set auto textureSet = TextureSet::New(); - textureSet.SetTexture( 0u, mBackgroundTexture ); - textureSet.SetTexture( 1u, mMetaballFBO.GetColorTexture() ); + textureSet.SetTexture(0u, mBackgroundTexture); + textureSet.SetTexture(1u, mMetaballFBO.GetColorTexture()); // Create geometry - Geometry metaballGeom = CreateGeometry( false ); + Geometry metaballGeom = CreateGeometry(false); - Renderer mRenderer = Renderer::New( metaballGeom, shader ); - mRenderer.SetTextures( textureSet ); + Renderer mRenderer = Renderer::New(metaballGeom, shader); + mRenderer.SetTextures(textureSet); // Create actor - mCompositionActor = Actor::New( ); - mCompositionActor.SetParentOrigin(ParentOrigin::CENTER); - mCompositionActor.SetPosition(Vector3(0.0f, 0.0f, 0.0f)); - mCompositionActor.SetSize(mScreenSize.x, mScreenSize.y); - mCompositionActor.AddRenderer( mRenderer ); + mCompositionActor = Actor::New(); + mCompositionActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + mCompositionActor.SetProperty(Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f)); + mCompositionActor.SetProperty(Actor::Property::SIZE, Vector2(mScreenSize.x, mScreenSize.y)); + mCompositionActor.AddRenderer(mRenderer); - Vector2 metaballCenter(0.0,0); + Vector2 metaballCenter(0.0, 0); metaballCenter.x = metaballCenter.x * 0.5; metaballCenter.y = metaballCenter.y * 0.5; - mPositionIndex = mCompositionActor.RegisterProperty( "uPositionMetaball", metaballCenter ); + mPositionIndex = mCompositionActor.RegisterProperty("uPositionMetaball", metaballCenter); - SetPositionToMetaballs( metaballCenter ); + SetPositionToMetaballs(metaballCenter); - mCompositionActor.SetSize(mScreenSize.x, mScreenSize.y); + mCompositionActor.SetProperty(Actor::Property::SIZE, Vector2(mScreenSize.x, mScreenSize.y)); - Stage stage = Stage::GetCurrent(); - stage.Add( mCompositionActor ); + Window window = mApplication.GetWindow(); + window.Add(mCompositionActor); } void MetaballExplosionController::CreateAnimations() { Vector2 direction; - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { KeyFrames keySinCosVariation = KeyFrames::New(); - Vector2 sinCosVariation( 0,0 ); + Vector2 sinCosVariation(0, 0); - direction.x = Random::Range( -100.f,100.f ); - direction.y = Random::Range( -100.f,100.f ); + direction.x = Random::Range(-100.f, 100.f); + direction.y = Random::Range(-100.f, 100.f); direction.Normalize(); direction *= 0.1f; - for( uint32_t j = 0; j < 360; j++ ) + for(uint32_t j = 0; j < 360; j++) { - sinCosVariation.x = sinf( j * Math::PI/180.f ) * direction.x; - sinCosVariation.y = cosf( j * Math::PI/180.f ) * direction.y; - float key = j/360.f; - keySinCosVariation.Add( key, sinCosVariation ); + sinCosVariation.x = sinf(j * Math::PI / 180.f) * direction.x; + sinCosVariation.y = cosf(j * Math::PI / 180.f) * direction.y; + float key = j / 360.f; + keySinCosVariation.Add(key, sinCosVariation); } - mPositionVarAnimation[i] = Animation::New( 3.f ); - mPositionVarAnimation[i].AnimateBetween( Property( mMetaballs[i].actor, mMetaballs[i].positionVarIndex ), keySinCosVariation ); - mPositionVarAnimation[i].SetLooping( true ); + mPositionVarAnimation[i] = Animation::New(3.f); + mPositionVarAnimation[i].AnimateBetween(Property(mMetaballs[i].actor, mMetaballs[i].positionVarIndex), keySinCosVariation); + mPositionVarAnimation[i].SetLooping(true); mPositionVarAnimation[i].Play(); } } -void MetaballExplosionController::ResetMetaballs( bool resetAnims ) +void MetaballExplosionController::ResetMetaballs(bool resetAnims) { - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { - if( mDispersionAnimation[i] ) + if(mDispersionAnimation[i]) { mDispersionAnimation[i].Clear(); } - mMetaballs[i].position = Vector2( 0.0f, 0.0f ); - mMetaballs[i].actor.SetProperty( mMetaballs[i].positionIndex, mMetaballs[i].position ); + mMetaballs[i].position = Vector2(0.0f, 0.0f); + mMetaballs[i].actor.SetProperty(mMetaballs[i].positionIndex, mMetaballs[i].position); } mTimerDispersion.Stop(); mDispersion = 0; - mCompositionActor.SetProperty( mPositionIndex, Vector2(0,0) ); + mCompositionActor.SetProperty(mPositionIndex, Vector2(0, 0)); } -void MetaballExplosionController::DisperseBallAnimation( uint32_t ball ) +void MetaballExplosionController::DisperseBallAnimation(uint32_t ball) { Vector2 position; - position.x = Random::Range(-1.5f,1.5f); - position.y = Random::Range(-1.5f,1.5f); + position.x = Random::Range(-1.5f, 1.5f); + position.y = Random::Range(-1.5f, 1.5f); mDispersionAnimation[ball] = Animation::New(2.0f * mTimeMultiplier); - mDispersionAnimation[ball].AnimateTo( Property(mMetaballs[ball].actor, mMetaballs[ball].positionIndex), position); + mDispersionAnimation[ball].AnimateTo(Property(mMetaballs[ball].actor, mMetaballs[ball].positionIndex), position); mDispersionAnimation[ball].Play(); - if( ball == METABALL_NUMBER - 1 ) + if(ball == METABALL_NUMBER - 1) { - mDispersionAnimation[ball].FinishedSignal().Connect( this, &MetaballExplosionController::LaunchResetMetaballPosition ); + mDispersionAnimation[ball].FinishedSignal().Connect(this, &MetaballExplosionController::LaunchResetMetaballPosition); } } -void MetaballExplosionController::LaunchResetMetaballPosition( Animation& source ) +void MetaballExplosionController::LaunchResetMetaballPosition(Animation& source) { - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { - mDispersionAnimation[i] = Animation::New( 1.5f + i * 0.25f * mTimeMultiplier ); - mDispersionAnimation[i].AnimateTo(Property( mMetaballs[i].actor, mMetaballs[i].positionIndex), Vector2(0,0) ); + mDispersionAnimation[i] = Animation::New(1.5f + i * 0.25f * mTimeMultiplier); + mDispersionAnimation[i].AnimateTo(Property(mMetaballs[i].actor, mMetaballs[i].positionIndex), Vector2(0, 0)); mDispersionAnimation[i].Play(); - if( i == METABALL_NUMBER - 1 ) + if(i == METABALL_NUMBER - 1) { - mDispersionAnimation[i].FinishedSignal().Connect( this, &MetaballExplosionController::EndDisperseAnimation ); + mDispersionAnimation[i].FinishedSignal().Connect(this, &MetaballExplosionController::EndDisperseAnimation); } } } -void MetaballExplosionController::EndDisperseAnimation( Animation& source ) +void MetaballExplosionController::EndDisperseAnimation(Animation& source) { - mCompositionActor.SetProperty( mPositionIndex, Vector2(0,0) ); + mCompositionActor.SetProperty(mPositionIndex, Vector2(0, 0)); } bool MetaballExplosionController::OnTimerDispersionTick() { - if( mDispersion < METABALL_NUMBER ) + if(mDispersion < METABALL_NUMBER) { - DisperseBallAnimation( mDispersion ); + DisperseBallAnimation(mDispersion); mDispersion++; } return true; } -void MetaballExplosionController::SetPositionToMetaballs( const Vector2& metaballCenter ) +void MetaballExplosionController::SetPositionToMetaballs(const Vector2& metaballCenter) { //We set the position for the metaballs based on click position - for( uint32_t i = 0; i < METABALL_NUMBER; i++ ) + for(uint32_t i = 0; i < METABALL_NUMBER; i++) { mMetaballs[i].position = metaballCenter; - mMetaballs[i].actor.SetProperty( mMetaballs[i].positionIndex, mMetaballs[i].position ); + mMetaballs[i].actor.SetProperty(mMetaballs[i].positionIndex, mMetaballs[i].position); } - mCompositionActor.SetProperty( mPositionIndex, metaballCenter ); + mCompositionActor.SetProperty(mPositionIndex, metaballCenter); } -bool MetaballExplosionController::OnTouch( Actor actor, const TouchData& touch ) +bool MetaballExplosionController::OnTouch(Actor actor, const TouchEvent& touch) { float aspectR = mScreenSize.y / mScreenSize.x; - switch( touch.GetState( 0 ) ) + switch(touch.GetState(0)) { case PointState::DOWN: { ResetMetaballs(true); - const Vector2 screen = touch.GetScreenPosition( 0 ); - Vector2 metaballCenter = Vector2( (screen.x / mScreenSize.x) - 0.5f, (aspectR * (mScreenSize.y - screen.y) / mScreenSize.y) - 0.5f ) * 2.0f; + const Vector2 screen = touch.GetScreenPosition(0); + Vector2 metaballCenter = Vector2((screen.x / mScreenSize.x) - 0.5f, (aspectR * (mScreenSize.y - screen.y) / mScreenSize.y) - 0.5f) * 2.0f; SetPositionToMetaballs(metaballCenter); break; } case PointState::MOTION: { - const Vector2 screen = touch.GetScreenPosition( 0 ); - Vector2 metaballCenter = Vector2( (screen.x / mScreenSize.x) - 0.5f, (aspectR * (mScreenSize.y - screen.y) / mScreenSize.y) - 0.5f ) * 2.0f; + const Vector2 screen = touch.GetScreenPosition(0); + Vector2 metaballCenter = Vector2((screen.x / mScreenSize.x) - 0.5f, (aspectR * (mScreenSize.y - screen.y) / mScreenSize.y) - 0.5f) * 2.0f; SetPositionToMetaballs(metaballCenter); break; } @@ -661,15 +664,15 @@ bool MetaballExplosionController::OnTouch( Actor actor, const TouchData& touch ) } default: break; - } + } return true; } void MetaballExplosionController::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(); } @@ -679,11 +682,11 @@ void MetaballExplosionController::OnKeyEvent(const KeyEvent& event) /** * Main entry point */ -int32_t DALI_EXPORT_API main( int argc, char **argv ) +int32_t DALI_EXPORT_API main(int argc, char** argv) { - Application application = Application::New( &argc, &argv ); + Application application = Application::New(&argc, &argv); - MetaballExplosionController test( application ); + MetaballExplosionController test(application); application.MainLoop();