/// <summary>
    /// ImageBlock constructor, it will link its ImageObject to the input GameObject
    /// </summary>
    /// <param name="image">The image object that this ImageBlock will link to</param>
    public ImageBlock(GameObject image)
    {
        ImageObject = image;
        imageState  = ImageStateEnum.DEFAULT;
        scaleFactor = 1.0f;

        LoadDefaultImage();
    }
 /// <summary>
 /// Run the zoom out animation
 /// </summary>
 private void RunZoomOut()
 {
     if (Ncount == Nframe)
     {
         // The scaling animation is complete, finish up the zoom out
         ImageObject.transform.localPosition = origPosition;
         ImageObject.transform.localScale    = origScale;
         imageState = ImageStateEnum.DEFAULT;
         OnScaleComplete();
     }
     else
     {
         ImageObject.transform.localPosition += stepPosition;
         ImageObject.transform.localScale    += stepScale;
         Ncount++;
     }
 }
 /// <summary>
 /// Run the zoom in animation
 /// </summary>
 private void RunZoomIn()
 {
     if (Ncount == Nframe)
     {
         // The scaling animation is complete, finish up the zoom in
         ImageObject.transform.localPosition = scaledPosition;
         ImageObject.transform.localScale    = scaledScale;
         imageState = ImageStateEnum.SCALED;
         OnScaleComplete();
     }
     else
     {
         ImageObject.transform.localPosition += stepPosition;
         ImageObject.transform.localScale    += stepScale;
         Ncount++;
     }
 }
 private void ChangeImageState(ImageStateEnum newState)
 {
     imageState = newState;
 }