////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateRow(HoverLayoutRectRow pRow, HoverShapeRect pShape)
        {
            if ( pRow == null ) {
                return;
            }

            pRow.Controllers.Set(HoverLayoutRectRow.SizeXName, this);
            pRow.Controllers.Set(HoverLayoutRectRow.SizeYName, this);

            pRow.SizeX = pShape.SizeX;
            pRow.SizeY = pShape.SizeY;
        }
        /*--------------------------------------------------------------------------------------------*/
        private void FadeRow(HoverLayoutRectRow pRow, float pAlpha)
        {
            if ( pRow == null || !pRow.gameObject.activeSelf ) {
                return;
            }

            pRow.GetComponentsInChildren(true, vItemDataResults);

            for ( int i = 0 ; i < vItemDataResults.Count ; i++ ) {
                FadeItem(vItemDataResults[i], pAlpha);
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateRow(HoverLayoutRectRow pRow, bool pPreventHighlight)
        {
            if ( pRow == null || !pRow.gameObject.activeSelf ) {
                return;
            }

            pRow.GetComponentsInChildren(true, vItemHighStateResults);

            for ( int i = 0 ; i < vItemHighStateResults.Count ; i++ ) {
                UpdateHighState(vItemHighStateResults[i], pPreventHighlight);
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        private void UpdateRow(HoverLayoutRectRow pRow)
        {
            if ( pRow == null || !pRow.gameObject.activeSelf ) {
                return;
            }

            Vector3 panelWorldNorm = pRow.transform.TransformDirection(Vector3.back);
            Vector3 panelToTxWorldDir = (ActiveWhenFacing.position-pRow.transform.position).normalized;
            float dotBetweenDirs = Vector3.Dot(panelWorldNorm, panelToTxWorldDir);

            if ( dotBetweenDirs > 0 ) {
                return;
            }

            pRow.gameObject.SetActive(false);

            //Vector3 panelPos = pRow.transform.position;
            //Debug.DrawLine(panelPos, panelPos+panelWorldNorm, Color.red);
            //Debug.DrawLine(panelPos, panelPos+panelToTxWorldDir, Color.cyan);
        }