Ejemplo n.º 1
0
        public spline_ctrl(Vector2 location, Vector2 size, int num_pnt)
            : base(location, false)
        {
            LocalBounds  = new RectangleDouble(0, 0, size.x, size.y);
            m_curve_pnt  = new PathStorage();
            m_curve_poly = new Stroke(m_curve_pnt);
            m_ellipse    = new Ellipse();

            m_background_color   = new RGBA_Bytes(1.0, 1.0, 0.9);
            m_border_color       = new RGBA_Bytes(0.0, 0.0, 0.0);
            m_curve_color        = new RGBA_Bytes(0.0, 0.0, 0.0);
            m_inactive_pnt_color = new RGBA_Bytes(0.0, 0.0, 0.0);
            m_active_pnt_color   = new RGBA_Bytes(1.0, 0.0, 0.0);

            m_num_pnt      = (num_pnt);
            m_border_width = (1.0);
            m_border_extra = (0.0);
            m_curve_width  = (1.0);
            m_point_size   = (3.0);
            m_curve_poly   = new Stroke(m_curve_pnt);
            m_idx          = (0);
            m_vertex       = (0);
            m_active_pnt   = (-1);
            m_move_pnt     = (-1);
            m_pdx          = (0.0);
            m_pdy          = (0.0);
            if (m_num_pnt < 4)
            {
                m_num_pnt = 4;
            }
            if (m_num_pnt > 32)
            {
                m_num_pnt = 32;
            }

            for (int i = 0; i < m_num_pnt; i++)
            {
                m_xp[i] = (double)(i) / (double)(m_num_pnt - 1);
                m_yp[i] = 0.5;
            }
            calc_spline_box();
            update_spline();
            {
                m_spline.init((int)m_num_pnt, m_xp, m_yp);
                for (int i = 0; i < 256; i++)
                {
                    m_spline_values[i] = m_spline.get((double)(i) / 255.0);
                    if (m_spline_values[i] < 0.0)
                    {
                        m_spline_values[i] = 0.0;
                    }
                    if (m_spline_values[i] > 1.0)
                    {
                        m_spline_values[i] = 1.0;
                    }
                    m_spline_values8[i] = (byte)(m_spline_values[i] * 255.0);
                }
            }
        }
Ejemplo n.º 2
0
		public spline_ctrl(Vector2 location, Vector2 size, int num_pnt)
			: base(location, false)
		{
			LocalBounds = new RectangleDouble(0, 0, size.x, size.y);
			m_curve_pnt = new PathStorage();
			m_curve_poly = new Stroke(m_curve_pnt);
			m_ellipse = new Ellipse();

			m_background_color = new RGBA_Bytes(1.0, 1.0, 0.9);
			m_border_color = new RGBA_Bytes(0.0, 0.0, 0.0);
			m_curve_color = new RGBA_Bytes(0.0, 0.0, 0.0);
			m_inactive_pnt_color = new RGBA_Bytes(0.0, 0.0, 0.0);
			m_active_pnt_color = new RGBA_Bytes(1.0, 0.0, 0.0);

			m_num_pnt = (num_pnt);
			m_border_width = (1.0);
			m_border_extra = (0.0);
			m_curve_width = (1.0);
			m_point_size = (3.0);
			m_curve_poly = new Stroke(m_curve_pnt);
			m_idx = (0);
			m_vertex = (0);
			m_active_pnt = (-1);
			m_move_pnt = (-1);
			m_pdx = (0.0);
			m_pdy = (0.0);
			if (m_num_pnt < 4) m_num_pnt = 4;
			if (m_num_pnt > 32) m_num_pnt = 32;

			for (int i = 0; i < m_num_pnt; i++)
			{
				m_xp[i] = (double)(i) / (double)(m_num_pnt - 1);
				m_yp[i] = 0.5;
			}
			calc_spline_box();
			update_spline();
			{
				m_spline.init((int)m_num_pnt, m_xp, m_yp);
				for (int i = 0; i < 256; i++)
				{
					m_spline_values[i] = m_spline.get((double)(i) / 255.0);
					if (m_spline_values[i] < 0.0) m_spline_values[i] = 0.0;
					if (m_spline_values[i] > 1.0) m_spline_values[i] = 1.0;
					m_spline_values8[i] = (byte)(m_spline_values[i] * 255.0);
				}
			}
		}