public void OnChange(string text)
        {
            int   intValue;
            float floatValue;
            bool  changed    = false;
            bool  haveMinMax = minValue != maxValue || minValue != -1;

            if (StringFieldUtils.TryEvaluate(text, out floatValue))
            {
                intValue = (int)floatValue;
                if (haveMinMax)
                {
                    if (intValue < minValue)
                    {
                        intValue = minValue;
                        changed  = true;
                    }
                    else if (maxValue > minValue && intValue > maxValue)
                    {
                        intValue = maxValue;
                        changed  = true;
                    }
                }
                parameter.intsList[paramItemId] = intValue;
                if (changed)
                {
                    _field.text = "" + intValue;
                }
            }
        }
        public FixedVector3 GetPoint1()
        {
            float x, y, z;

            StringFieldUtils.TryEvaluate(_x1Field.text, out x);
            StringFieldUtils.TryEvaluate(_y1Field.text, out y);
            StringFieldUtils.TryEvaluate(_z1Field.text, out z);
            x /= 15; y /= 15; z /= 15;
            return(new FixedVector3(x, y, z));
        }
        public FixedVector3 GetPoint2()
        {
            float x, y, z;

            StringFieldUtils.TryEvaluate(_x2Field.text, out x);
            StringFieldUtils.TryEvaluate(_y2Field.text, out y);
            StringFieldUtils.TryEvaluate(_z2Field.text, out z);
            x /= 15; y /= 15; z /= 15;
            FixedVector3 p1 = GetPoint1();

            x = (float)p1.X - x; y = (float)p1.Y - y; z = (float)p1.Z - z;
            return(new FixedVector3(x, y, z));
        }