public virtual void ReadFromXMLNode(XmlNode node)
 {
     try
     {
         // Deal with sub models
         XmlNodeList fillSegmentsNode = node.SelectNodes(ModelXMLDefinition.FillSegment);
         foreach (XmlNode fillSegmentNode in fillSegmentsNode)
         {
             CFillSegment fillSegment = new CFillSegment(this);
             fillSegment.ReadFromXMLNode(fillSegmentNode);
         }
     }
     catch (SystemException ex)
     {
         string errMsg = ex.Message + "\n" + ex.StackTrace;
         vtk.vtkOutputWindow.GetInstance().DisplayErrorText(errMsg);
         throw;
     }
 }
 private void ScaleFillSegment(CFillSegment segment, double dScale)
 {
     try
     {
         ScaleModel(segment.ModelNode, segment.StartPosition, segment.ScaleDirection, dScale);
     }
     catch(Exception ex)
     {
         string errMsg = ex.Message + "\n" + ex.StackTrace;
         vtk.vtkOutputWindow.GetInstance().DisplayErrorText(errMsg);
     }
 }