void Update()
    {
        // Note - our gameObject is *not* the gameObject that we are watching here, that's a
        // different gameObject which is provided by the CurrentModelProvider.
        if (this.isMulticastingTransforms)
        {
            var transform = this.gameObject.transform;

            if (!this.currentRotation.HasValue ||
                !this.currentRotation.Value.EqualToTolerance(transform.localRotation, ROTATION_TOLERANCE) ||
                !this.currentTranslation.Value.EqualToTolerance(transform.localPosition, POSITION_TOLERANCE) ||
                !this.currentScale.Value.EqualToTolerance(transform.localScale, SCALE_TOLERANCE))
            {
                // We need to broadcast.
                Debug.Log("We have a change in transform to talk about");
                this.currentRotation    = transform.localRotation;
                this.currentTranslation = transform.localPosition;
                this.currentScale       = transform.localScale;

                NetworkMessagingProvider.SendTransformChangeMessage(
                    (Guid)this.ModelIdentifier.Identifier,
                    (Vector3)this.currentScale,
                    (Quaternion)this.currentRotation,
                    (Vector3)this.currentTranslation);
            }
        }
    }