static void sort_hint(t_hint *hint, int *i, int j) { int var; t_range rg; bzero_rangval(&rg); init_rangval(&rg, hint->lst_data, j); var = ((t_pile*)(((t_list*)(*(hint->lst_a)))->content))->val; if (var >= rg.one && var < rg.two) { p_local(hint->lst_a, hint->lst_b, hint->mark); r_local(hint->lst_b, hint->mark); (*i)++; } else if (var >= rg.three && var < rg.four) { p_local(hint->lst_a, hint->lst_b, hint->mark); if (ft_lstcount(*(hint->lst_b)) > 1) { if (!check_next(*(hint->lst_b))) s_local(hint->lst_b, hint->mark); } (*i)++; } else { hint->mark->asc = 1; if (check_rothint(hint, rg)) r_local(hint->lst_a, hint->mark); else rev_local(hint->lst_a, hint->mark); hint->mark->asc = 0; } }
std::shared_ptr<Geometry> generateTexQuadGeometry( float width, float height, Eigen::Vector3f pos, Eigen::Matrix3f rot) { Eigen::Matrix<float, 6, 3 + 2, Eigen::RowMajor> vertex; GLfloat vertex_pos_uv[] = { -1.0f, 0, -1.0f, 0, 1, 1.0f, 0, 1.0f, 1, 0, -1.0f, 0, 1.0f, 0, 0, 1.0f, 0, 1.0f, 1, 0, -1.0f, 0, -1.0f, 0, 1, 1.0f, 0, -1.0f, 1, 1, }; for(int i = 0; i < 6; i++) { Eigen::Vector3f p_local( vertex_pos_uv[i * 5 + 0] * width / 2, vertex_pos_uv[i * 5 + 1], vertex_pos_uv[i * 5 + 2] * height / 2); vertex.row(i).head(3) = rot * p_local + pos; vertex.row(i).tail(2) = Eigen::Vector2f( vertex_pos_uv[i * 5 + 3], vertex_pos_uv[i * 5 + 4]); } return Geometry::createPosUV(vertex.rows(), vertex.data()); }
static void sort_hint_2(t_hint *hint, int *i) { int var; int first; int last; first = get_first(hint->lst_data); last = get_last(hint->lst_data); var = ((t_pile*)(((t_list*)(*(hint->lst_a)))->content))->val; if (var < first) { p_local(hint->lst_a, hint->lst_b, hint->mark); r_local(hint->lst_b, hint->mark); (*i)++; } else if (var >= last) { p_local(hint->lst_a, hint->lst_b, hint->mark); (*i)++; } }