31 #include "../system/PseudoNoise.h"
32 #include "../system/RandGen.h"
33 #include "../system/StringUtils.h"
35 #include "../view_map/Functions0D.h"
36 #include "../view_map/Functions1D.h"
58 if ((1 == i) || (
size - 2 == i)) {
59 v->attribute().setThickness(_thickness / 4.0, _thickness / 4.0);
61 if ((0 == i) || (
size - 1 == i)) {
62 v->attribute().setThickness(0, 0);
65 v->attribute().setThickness(_thickness / 2.0, _thickness / 2.0);
78 if ((1 == i) || (
size - 2 == i)) {
79 v->attribute().setThickness(_thickness / 2.0, 0);
81 if ((0 == i) || (
size - 1 == i)) {
82 v->attribute().setThickness(0, 0);
85 v->attribute().setThickness(_thickness, 0);
97 if (i < (
float)n / 2.0f) {
98 t = (1.0 - (
float)i / (
float)n) * _ThicknessMin + (
float)i / (
float)n * _ThicknessMax;
101 t = (1.0 - (
float)i / (
float)n) * _ThicknessMax + (
float)i / (
float)n * _ThicknessMin;
103 v->attribute().setThickness(
t / 2.0,
t / 2.0);
111 float maxT =
min(_ratio * slength, _ThicknessMax);
119 if (i < (
float)n / 2.0f) {
120 t = (1.0 - (
float)i / (
float)n) * _ThicknessMin + (
float)i / (
float)n * maxT;
123 t = (1.0 - (
float)i / (
float)n) * maxT + (
float)i / (
float)n * _ThicknessMin;
125 v->attribute().setThickness(
t / 2.0,
t / 2.0);
127 v->attribute().setThickness(_ThicknessMin / 2.0, _ThicknessMin / 2.0);
135 float step = (_maxThickness - _minThickness) / 3.0f;
137 float thickness = 0.0f;
139 thickness = _minThickness + 3.0f * step;
141 else if ((
l < 300.0f) && (
l > 100.0f)) {
142 thickness = _minThickness + 2.0f * step;
144 else if ((
l < 100.0f) && (
l > 50.0f)) {
145 thickness = _minThickness + 1.0f * step;
148 thickness = _minThickness;
157 if ((1 == i) || (
size - 2 == i)) {
158 v->attribute().setThickness(thickness / 4.0, thickness / 4.0);
160 if ((0 == i) || (
size - 1 == i)) {
161 v->attribute().setThickness(0, 0);
164 v->attribute().setThickness(thickness / 2.0, thickness / 2.0);
179 _amplitude = iAmplitude;
198 const float *originalThickness =
v->attribute().getThickness();
199 float r = bruit * _amplitude + originalThickness[0];
200 float l = bruit2 * _amplitude + originalThickness[1];
201 v->attribute().setThickness(
r,
l);
216 v->attribute().setColor(_color[0], _color[1], _color[2]);
217 v->attribute().setAlpha(_color[3]);
229 for (
int i = 0; i < 4; ++i) {
230 newcolor[i] = (1.0 - (
float)yo / (
float)n) * _colorMin[i] +
231 (
float)yo / (
float)n * _colorMax[i];
233 v->attribute().setColor(newcolor[0], newcolor[1], newcolor[2]);
234 v->attribute().setAlpha(newcolor[3]);
251 diffuse[0] * _coefficient, diffuse[1] * _coefficient, diffuse[2] * _coefficient);
265 _amplitude = iAmplitude;
280 const float *originalColor =
v->attribute().getColor();
281 float r = bruit * _amplitude + originalColor[0];
282 float g = bruit * _amplitude + originalColor[1];
283 float b = bruit * _amplitude + originalColor[2];
284 v->attribute().setColor(
r, g, b);
332 Vec2d first((v0)->
x(), (v0)->
y());
340 Vec2d newFirst(first + _amount * d1);
341 (v0)->setPoint(newFirst[0], newFirst[1]);
342 Vec2d newLast(last + _amount * dn);
343 (
vn)->setPoint(newLast[0], newLast[1]);
368 Vec2d newPoint(sv->
x() + _amount * n.
x(), sv->
y() + _amount * n.
y());
369 sv->
setPoint(newPoint[0], newPoint[1]);
385 data.emplace_back(
v->x(),
v->y());
391 data.emplace_back(
v->x(),
v->y());
400 vector<Vec2d> CurveVertices;
401 vector<BezierCurveSegment *> &bsegments = bcurve.
segments();
402 vector<BezierCurveSegment *>::iterator s = bsegments.begin(), send;
403 vector<Vec2d> &segmentsVertices = (*s)->vertices();
404 vector<Vec2d>::iterator p, pend;
406 CurveVertices.push_back(segmentsVertices[0]);
407 for (send = bsegments.end(); s != send; ++s) {
408 segmentsVertices = (*s)->vertices();
409 p = segmentsVertices.begin();
411 for (pend = segmentsVertices.end(); p != pend; ++p) {
412 CurveVertices.push_back((*p));
417 int originalSize = CurveVertices.size();
424 int nExtraVertex = 0;
425 if (newsize < originalSize) {
426 cerr <<
"Warning: insufficient resampling" << endl;
429 nExtraVertex = newsize - originalSize;
430 if (nExtraVertex != 0) {
432 cout <<
"Bezier Shader : Stroke " << stroke.
getId() <<
" have not been resampled" << endl;
438 p = CurveVertices.begin();
439 vector<Vec2d>::iterator last = p;
445 pend = CurveVertices.end();
446 (it != itend) && (p != pend);
455 if (nExtraVertex == 0) {
460 vector<StrokeAttribute> attributes;
461 vector<StrokeVertex *> verticesToRemove;
462 for (
int i = 0; i < nExtraVertex; ++i, ++it, ++n) {
463 verticesToRemove.push_back(&(*it));
467 cout <<
"messed up!" << endl;
475 for (vector<StrokeVertex *>::iterator vr = verticesToRemove.begin(),
476 vrend = verticesToRemove.end();
482 vector<StrokeAttribute>::iterator
a = attributes.begin(), aend = attributes.end();
484 int index1 = (int)
floor((
float)originalSize / 2.0);
485 int index2 = index1 + nExtraVertex;
487 (it != itend) && (
a != aend);
489 (it)->setAttribute(*
a);
490 if ((index <= index1) || (index > index2)) {
523 Vec2d P(it->x(), it->y());
542 for (
int i = 0; i < ns1; ++it, ++i) {
556 vector<CurvePiece *> _pieces;
557 vector<CurvePiece *> _results;
558 vector<CurvePiece *>::iterator cp, cpend;
567 _pieces.push_back(piece);
569 while (!_pieces.empty()) {
570 piece = _pieces.back();
572 if (piece->
size > 2 && piece->
error() > _error) {
574 _pieces.push_back(second);
575 _pieces.push_back(piece);
578 _results.push_back(piece);
583 for (cp = _results.begin(), cpend = _results.end(); cp != cpend; ++cp) {
586 Vec2d u = (*cp)->B - (*cp)->A;
587 Vec2d n(u[1], -u[0]);
590 float offset = ((*cp)->_error);
592 for (
v =
a;
v != b; ++
v) {
593 v->setPoint((*cp)->A.x() +
v->u() * u.
x() + n.
x() * offset,
594 (*cp)->A.y() +
v->u() * u.
y() + n.
y() * offset);
598 (*a)->setPoint((*a)->x() - u.
x() * 10, (*a)->y() - u.
y() * 10);
604 for (cp = _results.begin(), cpend = _results.end(); cp != cpend; ++cp) {
621 Vec2f n(u[1], -u[0]);
623 if (norm_fun(stroke) < 0) {
627 if (n * strokeN < 0) {
631 float offset = (piece.
error()) / 2.0f * _offset;
634 v->setPoint(piece.
A.
x() +
v->u() * u.
x() + n.
x() * offset,
635 piece.
A.
y() +
v->u() * u.
y() + n.
y() * offset);
656 if (originalSize < 4) {
661 vector<StrokeVertex *> verticesToRemove;
662 vector<StrokeAttribute> oldAttributes;
665 (
v->strokeLength() -
v->curvilinearAbscissa() <
_tipLength)) {
666 verticesToRemove.push_back(&(*
v));
668 oldAttributes.push_back(
v->attribute());
671 if (originalSize - verticesToRemove.size() < 2) {
675 vector<StrokeVertex *>::iterator sv, svend;
676 for (sv = verticesToRemove.begin(), svend = verticesToRemove.end(); sv != svend; ++sv) {
684 cerr <<
"Warning: resampling problem" << endl;
688 vector<StrokeAttribute>::iterator
a = oldAttributes.begin(), aend = oldAttributes.end();
690 (
v != vend) && (
a != aend);
Functions taking 0D input.
Functions taking 1D input.
typedef float(TangentPoint)[2]
Class gathering basic stroke shaders.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint vn
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
Contains defines and structs used throughout the imbuf module.
Functions to manage I/O for the stroke.
Iterators used to iterate over the elements of the Stroke.
Classes to render a stroke with OpenGL.
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert * v
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
std::vector< BezierCurveSegment * > & segments()
const float * diffuse() const
virtual bool isEnd() const
real turbulenceSmooth(real x, unsigned nbOctave=8)
void setColor(float r, float g, float b)
void setAlpha(float alpha)
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
! Bezier curve stroke shader
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
StrokeInternal::StrokeVertexIterator _begin
CurvePiece * subdivide()
Subdivides the curve into two pieces.
StrokeInternal::StrokeVertexIterator _last
CurvePiece(StrokeInternal::StrokeVertexIterator b, StrokeInternal::StrokeVertexIterator l, int iSize)
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
virtual int shade(Stroke &stroke) const
TipRemoverShader(real tipLength)
const StrokeAttribute & attribute() const
void setPoint(real x, real y)
void setTextureStep(float step)
virtual Interface0DIterator verticesBegin()
void RemoveVertex(StrokeVertex *iVertex)
virtual Interface0DIterator verticesEnd()
float ComputeSampling(int iNVertices)
StrokeInternal::StrokeVertexIterator strokeVerticesEnd()
StrokeInternal::StrokeVertexIterator strokeVerticesBegin(float t=0.0f)
void setNodeTree(bNodeTree *iNodeTree)
int Resample(int iNPoints)
unsigned int strokeVerticesSize() const
Vec< T, N > & normalize()
real distPointSegment(const T &P, const T &A, const T &B)
VecMat::Vec2< double > Vec2d
static const unsigned NB_VALUE_NOISE
static const real M_EPSILON
ccl_device_inline float2 floor(const float2 &a)
ccl_device_inline float2 fabs(const float2 &a)