Ejemplo n.º 1
0
OCME::OCME(){
					lgn = new Logging("edit_ocme_log.txt");
					this->oce.AddNameTypeBound<GIndex>("GIndex");
					this->oce.AddNameTypeBound<OFace>("OFace");
					this->oce.AddNameTypeBound<OVertex>("OVertex");
					this->oce.AddNameTypeBound<BorderIndex>("BIndex");

					this->oce.AddNameTypeBound<vcg::Point3f>("Coord3f");
					this->oce.AddNameTypeBound<vcg::Color4b>("Color4b");
					this->oce.AddNameTypeBound<vcg::Point3f>("Normal3f");

                    InitCellSizes();
                    InitCorners();
//				InitRender();
                    //this->oce.CreateFromString_UserTypes = &ocme_types_allocator;

					gbi = 1;

                    params.side_factor = 50;
                    kernelSetMark = 1;
                    lockedMark = 1;
                   
                    impostor_updated = 1;
                    to_render_fbool = 1;
                    streaming_mode = false;
										record_cells_set_modification = false;
                    renderParams.one_level = false;
                    renderParams.level = 0;
					renderCache.Init(this);
					renderCache.Start();
					splat_renderer.Clear();
	}
Ejemplo n.º 2
0
ColoredPolygon::ColoredPolygon(const ColoredPolygon &c)
{
    _dots = c._dots;
    CalcWidthAndHeight();
    GenerateTriangles();
    _mouseDown = false;
    _dotUnderCursor.clear();
    _selectedDots.clear();
    _debugDraw = false;
    InitCorners();
    _color = 0xFFFFFFFF;
}
Ejemplo n.º 3
0
void ColoredPolygon::UpdatePoints(const PointList &points)
{
    _dots.resize(points.size());
    for (uint i = 0; i < points.size(); ++i)
    {
        _dots[i].pos = points[i];
    }
    CalcWidthAndHeight();
    GenerateTriangles();
    _dotUnderCursor.clear();
    _selectedDots.clear();
    InitCorners();
}
Ejemplo n.º 4
0
ColoredPolygon::ColoredPolygon(const PointList &points)
{
    _dots.resize(points.size());
    for (uint i = 0; i < points.size(); ++i)
    {
        _dots[i].pos = points[i];
    }
    CalcWidthAndHeight();
    GenerateTriangles();
    _mouseDown = false;
    _dotUnderCursor.clear();
    _selectedDots.clear();
    _debugDraw = false;
    InitCorners();
    _color = 0xFFFFFFFF;
}
Ejemplo n.º 5
0
BlockMap BlockMap_Construct(const Size *pixelSize, int maxBlockSize)
{
    BlockMap bm;

    bm.pixelCount = *pixelSize;
    bm.blockCount = Size_Construct(Calc_DivRoundUp(bm.pixelCount.width, maxBlockSize),
                                   Calc_DivRoundUp(bm.pixelCount.height, maxBlockSize));
    bm.cornerCount = BlockToCornerCount(&bm.blockCount);
    bm.allBlocks = RectangleC_ConstructFromSize(&bm.blockCount);
    bm.allCorners = RectangleC_ConstructFromSize(&bm.cornerCount);
    bm.corners = InitCorners(&bm);
    bm.blockAreas = RectangleGrid_Construct(&bm.corners);
    bm.blockCenters = InitBlockCenters(&bm);
    bm.cornerAreas = InitCornerAreas(&bm);
    return bm;
}
Ejemplo n.º 6
0
ColoredPolygon::ColoredPolygon(rapidxml::xml_node<> *xe)
{
    _boneName = xe->first_attribute("bone")->value();

    rapidxml::xml_attribute<> *size = xe->first_attribute("size");
    if (size)
    {
        _dots.resize(atoi(size->value()));
        std::string array = xe->first_attribute("dots")->value();
        std::string::size_type start = 0;
        std::string::size_type sigma = array.find(";");
        for (unsigned int j = 0; j < _dots.size(); ++j)
        {
            sscanf(array.substr(start, sigma - start).c_str(), "%g %g", &_dots[j].pos.x, &_dots[j].pos.y);
            start = sigma + 1;
            sigma = array.find(";", start);
        }
    }
    else
    {
        rapidxml::xml_node<> *mesh = xe->first_node("mesh");
        if (mesh)
        {
            int vert = atoi(mesh->first_attribute("vert")->value());
            int ind = atoi(mesh->first_attribute("ind")->value());
            _triangles.GetVB().Resize(vert, ind);
            _dots.resize(vert);
            //_dots.resize(atoi(mesh->first_attribute("vert")->value()));
            unsigned int count = 0;
            for (rapidxml::xml_node<> *i = mesh->first_node(); i; i = i->next_sibling())
            {
                sscanf(i->first_attribute("geom")->value(), "%g;%g;%g;%g"
                       , &_triangles.GetVB().VertXY(count).x
                       , &_triangles.GetVB().VertXY(count).y
                       , &_triangles.GetVB().VertUV(count).x
                       , &_triangles.GetVB().VertUV(count).y
                      );
                _dots[count].pos = _triangles.GetVB().VertXY(count);
                std::string s(i->first_attribute("mass")->value());
                std::string::size_type start = 0;
                std::string::size_type end = s.find(" ", start);
                _dots[count].p[0].boneName = s.substr(start, end - start);
                start = end + 1;
                end = s.find(";", start);
                _dots[count].p[0].mass = atof(s.substr(start, end - start).c_str());
                start = end + 1;
                end = s.find(" ", start);
                _dots[count].p[1].boneName = s.substr(start, end - start);
                start = end + 1;
                _dots[count].p[1].mass = atof(s.substr(start).c_str());
                count++;
            }
        }
    }

    CalcWidthAndHeight();
    GenerateTriangles();
    _mouseDown = false;
    _dotUnderCursor.clear();
    _selectedDots.clear();
    _debugDraw = false;
    InitCorners();
    _color = 0xFFFFFFFF;
}