void PathGroup::render() { Renderer* g = ARK2D::getRenderer(); g->setDrawColor(Color::white); // render points. for(unsigned int i = 0; i < paths.size(); i++) { for(unsigned int j = 0; j < paths.at(i)->subpaths.at(0)->points.size(); j++) { Vector2<float>* p = paths.at(i)->subpaths.at(0)->points.at(j); renderPoint(p->getX(), p->getY(), (j == 0 || j == paths.at(i)->subpaths.at(0)->points.size()-1)); } } // render curve. renderCurve(); // render straight lines. for(unsigned int i = 0; i < paths.size(); i++) { SubPath* mainPath = paths.at(i)->subpaths.at(0); for(unsigned int j = 0; j < mainPath->points.size(); j++) { if (j+1 != mainPath->points.size()) { renderLine( mainPath->points.at(j)->getX(), mainPath->points.at(j)->getY(), mainPath->points.at(j+1)->getX(), mainPath->points.at(j+1)->getY() ); } } } }
void BezierCurve::renderCurves(const std::vector<Vector3> &_cpts, int _steps, float _lineWidth, Vector3 _color) { for (int i=0; i<_cpts.size()-2; i=i+2) { Vector3 p1 = _cpts.at(i); Vector3 p2 = _cpts.at(i+1); Vector3 p3 = _cpts.at(i+2); renderCurve(p1, p2, p3, _steps, _lineWidth, _color); } }
void PathGroup::renderCurve() { renderCurve(Color::red); }