Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/geometry/Bezier.cpp')
-rw-r--r--source/blender/freestyle/intern/geometry/Bezier.cpp130
1 files changed, 65 insertions, 65 deletions
diff --git a/source/blender/freestyle/intern/geometry/Bezier.cpp b/source/blender/freestyle/intern/geometry/Bezier.cpp
index aeac71fca11..3f6b6b25f76 100644
--- a/source/blender/freestyle/intern/geometry/Bezier.cpp
+++ b/source/blender/freestyle/intern/geometry/Bezier.cpp
@@ -34,90 +34,90 @@ BezierCurveSegment::~BezierCurveSegment()
{
}
-void BezierCurveSegment::AddControlPoint(const Vec2d& iPoint)
+void BezierCurveSegment::AddControlPoint(const Vec2d &iPoint)
{
- _ControlPolygon.push_back(iPoint);
- if (_ControlPolygon.size() == 4)
- Build();
+ _ControlPolygon.push_back(iPoint);
+ if (_ControlPolygon.size() == 4)
+ Build();
}
void BezierCurveSegment::Build()
{
- if (_ControlPolygon.size() != 4)
- return;
-
- // Compute the rightmost part of the matrix:
- vector<Vec2d>::const_iterator p0, p1, p2, p3;
- p0 = _ControlPolygon.begin();
- p1 = p0;
- ++p1;
- p2 = p1;
- ++p2;
- p3 = p2;
- ++p3;
- float x[4], y[4];
-
- x[0] = -p0->x() + 3 * p1->x() - 3 * p2->x() + p3->x();
- x[1] = 3 * p0->x() - 6 * p1->x() + 3 * p2->x();
- x[2] = -3 * p0->x() + 3 * p1->x();
- x[3] = p0->x();
-
- y[0] = -p0->y() + 3 * p1->y() - 3 * p2->y() + p3->y();
- y[1] = 3 * p0->y() - 6 * p1->y() + 3 * p2->y();
- y[2] = -3 * p0->y() + 3 * p1->y();
- y[3] = p0->y();
-
- int nvertices = 12;
- float increment = 1.0 / (float)nvertices;
- float t = 0.0f;
- for (int i = 0; i <= nvertices; ++i) {
- _Vertices.push_back(Vec2d((x[3] + t * (x[2] + t * (x[1] + t * x[0]))),
- (y[3] + t * (y[2] + t * (y[1] + t * y[0])))));
- t += increment;
- }
+ if (_ControlPolygon.size() != 4)
+ return;
+
+ // Compute the rightmost part of the matrix:
+ vector<Vec2d>::const_iterator p0, p1, p2, p3;
+ p0 = _ControlPolygon.begin();
+ p1 = p0;
+ ++p1;
+ p2 = p1;
+ ++p2;
+ p3 = p2;
+ ++p3;
+ float x[4], y[4];
+
+ x[0] = -p0->x() + 3 * p1->x() - 3 * p2->x() + p3->x();
+ x[1] = 3 * p0->x() - 6 * p1->x() + 3 * p2->x();
+ x[2] = -3 * p0->x() + 3 * p1->x();
+ x[3] = p0->x();
+
+ y[0] = -p0->y() + 3 * p1->y() - 3 * p2->y() + p3->y();
+ y[1] = 3 * p0->y() - 6 * p1->y() + 3 * p2->y();
+ y[2] = -3 * p0->y() + 3 * p1->y();
+ y[3] = p0->y();
+
+ int nvertices = 12;
+ float increment = 1.0 / (float)nvertices;
+ float t = 0.0f;
+ for (int i = 0; i <= nvertices; ++i) {
+ _Vertices.push_back(Vec2d((x[3] + t * (x[2] + t * (x[1] + t * x[0]))),
+ (y[3] + t * (y[2] + t * (y[1] + t * y[0])))));
+ t += increment;
+ }
}
BezierCurve::BezierCurve()
{
- _currentSegment = new BezierCurveSegment;
+ _currentSegment = new BezierCurveSegment;
}
-BezierCurve::BezierCurve(vector<Vec2d>& iPoints, double error)
+BezierCurve::BezierCurve(vector<Vec2d> &iPoints, double error)
{
- FitCurveWrapper fitcurve;
- _currentSegment = new BezierCurveSegment;
- vector<Vec2d> curve;
-
- fitcurve.FitCurve(iPoints, curve, error);
- int i = 0;
- vector<Vec2d>::iterator v, vend;
- for (v = curve.begin(), vend = curve.end(); v != vend; ++v) {
- if ((i == 0) || (i % 4 != 0))
- AddControlPoint(*v);
- ++i;
- }
+ FitCurveWrapper fitcurve;
+ _currentSegment = new BezierCurveSegment;
+ vector<Vec2d> curve;
+
+ fitcurve.FitCurve(iPoints, curve, error);
+ int i = 0;
+ vector<Vec2d>::iterator v, vend;
+ for (v = curve.begin(), vend = curve.end(); v != vend; ++v) {
+ if ((i == 0) || (i % 4 != 0))
+ AddControlPoint(*v);
+ ++i;
+ }
}
BezierCurve::~BezierCurve()
{
- if (!_Segments.empty()) {
- vector<BezierCurveSegment*>::iterator v, vend;
- for (v = _Segments.begin(), vend = _Segments.end(); v != vend; ++v)
- delete *v;
- }
- if (_currentSegment)
- delete _currentSegment;
+ if (!_Segments.empty()) {
+ vector<BezierCurveSegment *>::iterator v, vend;
+ for (v = _Segments.begin(), vend = _Segments.end(); v != vend; ++v)
+ delete *v;
+ }
+ if (_currentSegment)
+ delete _currentSegment;
}
-void BezierCurve::AddControlPoint(const Vec2d& iPoint)
+void BezierCurve::AddControlPoint(const Vec2d &iPoint)
{
- _ControlPolygon.push_back(iPoint);
- _currentSegment->AddControlPoint(iPoint);
- if (_currentSegment->size() == 4) {
- _Segments.push_back(_currentSegment);
- _currentSegment = new BezierCurveSegment;
- _currentSegment->AddControlPoint(iPoint);
- }
+ _ControlPolygon.push_back(iPoint);
+ _currentSegment->AddControlPoint(iPoint);
+ if (_currentSegment->size() == 4) {
+ _Segments.push_back(_currentSegment);
+ _currentSegment = new BezierCurveSegment;
+ _currentSegment->AddControlPoint(iPoint);
+ }
}
} /* namespace Freestyle */