X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fbubble-effect%2Fbubble-actor.cpp;h=0b3a18632a7cbe5d3dd14dd10095c97953d6e26a;hb=bf55f2a930b7fb89786b58a511cde6e987154034;hp=50df6af8fb16aa9230e01a693e3e2ffdb0abc88e;hpb=31df2b9472ccbe0ae460a958535be8ef790c96f2;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/bubble-effect/bubble-actor.cpp b/dali-toolkit/internal/controls/bubble-effect/bubble-actor.cpp index 50df6af..0b3a186 100644 --- a/dali-toolkit/internal/controls/bubble-effect/bubble-actor.cpp +++ b/dali-toolkit/internal/controls/bubble-effect/bubble-actor.cpp @@ -36,7 +36,8 @@ namespace Internal BubbleActor::BubbleActor( unsigned int numberOfBubble, const Vector2& movementArea) : mMovementArea( movementArea ), - mNumBubble( numberOfBubble ) + mNumBubble( numberOfBubble ), + mRandomSeed( 0 ) { mActor = Actor::New(); } @@ -61,18 +62,20 @@ void BubbleActor::MakeRenderable( Geometry geometry, Material material ) mIndexInvertedMovementArea = mActor.RegisterProperty( "uInvertedMovementArea", Vector2(1.f,1.f) / mMovementArea ); - srand(time(NULL)); mIndicesOffset.resize(9); int offset = mMovementArea.Length() / 10.f; - mIndicesOffset[0] = mActor.RegisterProperty( "uOffset[0]", Vector2(0.f,0.f)); - mIndicesOffset[1] = mActor.RegisterProperty( "uOffset[1]", Vector2(rand()%offset,rand()%offset) ); - mIndicesOffset[2] = mActor.RegisterProperty( "uOffset[2]", Vector2(rand()%offset,-rand()%offset) ); - mIndicesOffset[3] = mActor.RegisterProperty( "uOffset[3]", Vector2(-rand()%offset,rand()%offset) ); - mIndicesOffset[4] = mActor.RegisterProperty( "uOffset[4]", Vector2(-rand()%offset,-rand()%offset) ); - mIndicesOffset[5] = mActor.RegisterProperty( "uOffset[5]", Vector2(rand()%offset,0.f)); - mIndicesOffset[6] = mActor.RegisterProperty( "uOffset[6]", Vector2(-rand()%offset,0.f)); - mIndicesOffset[7] = mActor.RegisterProperty( "uOffset[7]", Vector2(0.f,rand()%offset)); - mIndicesOffset[8] = mActor.RegisterProperty( "uOffset[8]", Vector2(0.f,-rand()%offset)); + + mRandomSeed = time( NULL ); + + mIndicesOffset[0] = mActor.RegisterProperty( "uOffset[0]", Vector2( 0.f,0.f ) ); + mIndicesOffset[1] = mActor.RegisterProperty( "uOffset[1]", Vector2( rand_r( &mRandomSeed ) % offset, rand_r( &mRandomSeed ) % offset ) ); + mIndicesOffset[2] = mActor.RegisterProperty( "uOffset[2]", Vector2( rand_r( &mRandomSeed ) % offset, -rand_r( &mRandomSeed ) % offset ) ); + mIndicesOffset[3] = mActor.RegisterProperty( "uOffset[3]", Vector2(-rand_r( &mRandomSeed ) % offset, rand_r( &mRandomSeed ) % offset ) ); + mIndicesOffset[4] = mActor.RegisterProperty( "uOffset[4]", Vector2(-rand_r( &mRandomSeed ) % offset, -rand_r( &mRandomSeed ) % offset ) ); + mIndicesOffset[5] = mActor.RegisterProperty( "uOffset[5]", Vector2( rand_r( &mRandomSeed ) % offset, 0.f ) ); + mIndicesOffset[6] = mActor.RegisterProperty( "uOffset[6]", Vector2(-rand_r( &mRandomSeed ) % offset, 0.f ) ); + mIndicesOffset[7] = mActor.RegisterProperty( "uOffset[7]", Vector2( 0.f, rand_r( &mRandomSeed ) % offset ) ); + mIndicesOffset[8] = mActor.RegisterProperty( "uOffset[8]", Vector2( 0.f, -rand_r( &mRandomSeed ) % offset ) ); Vector4 zeroVector; mIndiceStartEndPos.resize( mNumBubble ); @@ -111,14 +114,15 @@ void BubbleActor::SetMovementArea( const Vector2& movementArea ) mActor.SetProperty( mIndexInvertedMovementArea, Vector2(1.f,1.f) / mMovementArea ); int offset = mMovementArea.Length() / 10.f; - mActor.SetProperty( mIndicesOffset[1], Vector2(rand()%offset,rand()%offset) ); - mActor.SetProperty( mIndicesOffset[2], Vector2(rand()%offset,-rand()%offset) ); - mActor.SetProperty( mIndicesOffset[3], Vector2(-rand()%offset,rand()%offset) ); - mActor.SetProperty( mIndicesOffset[4], Vector2(-rand()%offset,-rand()%offset) ); - mActor.SetProperty( mIndicesOffset[5], Vector2(rand()%offset,0.f)); - mActor.SetProperty( mIndicesOffset[6], Vector2(-rand()%offset,0.f)); - mActor.SetProperty( mIndicesOffset[7], Vector2(0.f,rand()%offset)); - mActor.SetProperty( mIndicesOffset[8], Vector2(0.f,-rand()%offset)); + + mActor.SetProperty( mIndicesOffset[1], Vector2( rand_r( &mRandomSeed ) % offset, rand_r( &mRandomSeed ) % offset ) ); + mActor.SetProperty( mIndicesOffset[2], Vector2( rand_r( &mRandomSeed ) % offset, -rand_r( &mRandomSeed ) % offset ) ); + mActor.SetProperty( mIndicesOffset[3], Vector2(-rand_r( &mRandomSeed ) % offset, rand_r( &mRandomSeed ) % offset ) ); + mActor.SetProperty( mIndicesOffset[4], Vector2(-rand_r( &mRandomSeed ) % offset, -rand_r( &mRandomSeed ) % offset ) ); + mActor.SetProperty( mIndicesOffset[5], Vector2( rand_r( &mRandomSeed ) % offset, 0.f ) ); + mActor.SetProperty( mIndicesOffset[6], Vector2(-rand_r( &mRandomSeed ) % offset, 0.f ) ); + mActor.SetProperty( mIndicesOffset[7], Vector2( 0.f, rand_r( &mRandomSeed ) % offset ) ); + mActor.SetProperty( mIndicesOffset[8], Vector2( 0.f, -rand_r( &mRandomSeed ) % offset ) ); } void BubbleActor::SetStartAndEndPosition( unsigned int index, const Vector4& startAndEndPosition )