/// <summary>
 /// recompute the size spanned by this node, may fires Changed() event
 /// </summary>
 public override void Configure()
 {
     if (m_invalidated && m_shape != null)
     {
         bool sizechanged = false;
         m_shape.Configure();
         if (m_shape.PositionMin != m_positionMin)
         {
             sizechanged = true;
         }
         if (m_shape.PositionMax != m_positionMax)
         {
             sizechanged = true;
         }
         m_positionMax = m_shape.PositionMax;
         m_positionMin = m_shape.PositionMin;
         m_invalidated = false;
         if (sizechanged)
         {
             OnSizeChanged();
         }
     }
 }