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(); }
ColoredPolygon::ColoredPolygon(const ColoredPolygon &c) { _dots = c._dots; CalcWidthAndHeight(); GenerateTriangles(); _mouseDown = false; _dotUnderCursor.clear(); _selectedDots.clear(); _debugDraw = false; InitCorners(); _color = 0xFFFFFFFF; }
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(); }
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; }
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; }
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; }