//-------------------------------------------------------------------- public void prepare() { coord_type[] coord = new coord_type[3]; base.arrange_vertices(coord); m_y2 = (int)(coord[1].y); m_swap = agg_math.cross_product(coord[0].x, coord[0].y, coord[2].x, coord[2].y, coord[1].x, coord[1].y) < 0.0; m_rgba1.init(coord[0], coord[2]); m_rgba2.init(coord[0], coord[1]); m_rgba3.init(coord[1], coord[2]); }
//-------------------------------------------------------------------- public void Prepare() { unsafe { coord_type[] coord = new coord_type[3]; base.arrange_vertices(coord); m_y2 = (int)(coord[1].y); m_swap = PictorMath.CrossProduct(coord[0].x, coord[0].y, coord[2].x, coord[2].y, coord[1].x, coord[1].y) < 0.0; m_rgba1.Init(coord[0], coord[2]); m_rgba2.Init(coord[0], coord[1]); m_rgba3.Init(coord[1], coord[2]); } }
//-------------------------------------------------------------------- protected void arrange_vertices(coord_type[] coord) { unsafe { coord[0] = m_coord[0]; coord[1] = m_coord[1]; coord[2] = m_coord[2]; if (m_coord[0].y > m_coord[2].y) { coord[0] = m_coord[2]; coord[2] = m_coord[0]; } coord_type tmp; if (coord[0].y > coord[1].y) { tmp = coord[1]; coord[1] = coord[0]; coord[0] = tmp; } if (coord[1].y > coord[2].y) { tmp = coord[2]; coord[2] = coord[1]; coord[1] = tmp; } } }