From be32f0b2d688a35f56433e71535cf1a07b6ce243 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Thu, 15 Dec 2016 23:49:08 +0930 Subject: [PATCH 01/61] Hello Dust3D, first commit --- README.md | 10 ++++ build/dust3d.pro | 14 +++++ src/glwidget.cpp | 132 +++++++++++++++++++++++++++++++++++++++++++++ src/glwidget.h | 22 ++++++++ src/main.cpp | 11 ++++ src/mainwindow.cpp | 30 +++++++++++ src/mainwindow.h | 21 ++++++++ 7 files changed, 240 insertions(+) create mode 100644 README.md create mode 100644 build/dust3d.pro create mode 100644 src/glwidget.cpp create mode 100644 src/glwidget.h create mode 100644 src/main.cpp create mode 100644 src/mainwindow.cpp create mode 100644 src/mainwindow.h diff --git a/README.md b/README.md new file mode 100644 index 00000000..23587663 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +Dust3D +------------- +Dust3D is aim to be a quick modeling tool for game development. Currently the development is in the very early stage. + +Idea +----------- +I was inspired by Jimmy Gunawan's blogs of monster generation, here is the first one [INSPIRATION / Pixar Monster Factory Part One](http://blendersushi.blogspot.com.au/2013/06/inspiration-pixar-monster-factory-part.html), and by search the Skin Modifier of Blender, I found the theory of Skin Modifier: +[B-Mesh: A Fast Modeling System for Base Meshes +of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu2, Yigang Wang1). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. +From my initial thought, Dust3D should be a tool like [Makehuman](www.makehuman.org), with more versatile features, not only can make human, but also able to **generate monsters automatically**. diff --git a/build/dust3d.pro b/build/dust3d.pro new file mode 100644 index 00000000..815cf354 --- /dev/null +++ b/build/dust3d.pro @@ -0,0 +1,14 @@ +TARGET = dust3d +TEMPLATE = app + +QT += widgets opengl + +VPATH += ../src +INCLUDEPATH += ../src + +SOURCES += main.cpp \ + mainwindow.cpp \ + glwidget.cpp + +HEADERS += mainwindow.h \ + glwidget.h \ No newline at end of file diff --git a/src/glwidget.cpp b/src/glwidget.cpp new file mode 100644 index 00000000..bce7e853 --- /dev/null +++ b/src/glwidget.cpp @@ -0,0 +1,132 @@ +#include +#include +#include + +#include "glwidget.h" + +GLWidget::GLWidget(QWidget *parent) + : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) +{ +} + +GLWidget::~GLWidget() +{ +} + +void GLWidget::initializeGL() +{ + GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; + GLfloat mat_shininess[] = { 50.0 }; + GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; + GLfloat light[] = { 1.0, 0.2, 0.2 }; + GLfloat lmodel_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; + glClearColor (0.0, 0.0, 0.0, 0.0); + glShadeModel (GL_SMOOTH); + + glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); + glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); + + glLightfv(GL_LIGHT0, GL_POSITION, light_position); + glLightfv(GL_LIGHT0, GL_DIFFUSE, light ); + glLightfv(GL_LIGHT0, GL_SPECULAR, light ); + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); +} + +void normalize(float v[3]) +{ + GLfloat d = sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); + if (d == 0.0) + { + return; + } + v[0] /= d; v[1] /= d; v[2] /= d; +} + +void drawtriangle(float *v1, float *v2, float *v3) +{ + glBegin(GL_TRIANGLES); + glNormal3fv(v1); glVertex3fv(v1); + glNormal3fv(v2); glVertex3fv(v2); + glNormal3fv(v3); glVertex3fv(v3); + glEnd(); +} + +void subdivide(float *v1, float *v2, float *v3) +{ + GLfloat v12[3], v23[3], v31[3]; + GLint i; + + for (i = 0; i < 3; i++) + { + v12[i] = v1[i]+v2[i]; + v23[i] = v2[i]+v3[i]; + v31[i] = v3[i]+v1[i]; + } + normalize(v12); + normalize(v23); + normalize(v31); + drawtriangle(v1, v12, v31); + drawtriangle(v2, v23, v12); + drawtriangle(v3, v31, v23); + drawtriangle(v12, v23, v31); +} + +// An example come from http://www.glprogramming.com/red/chapter02.html#name8 + +#define X .525731112119133606 +#define Z .850650808352039932 + +static GLfloat vdata[12][3] = { + {-X, 0.0, Z}, {X, 0.0, Z}, {-X, 0.0, -Z}, {X, 0.0, -Z}, + {0.0, Z, X}, {0.0, Z, -X}, {0.0, -Z, X}, {0.0, -Z, -X}, + {Z, X, 0.0}, {-Z, X, 0.0}, {Z, -X, 0.0}, {-Z, -X, 0.0} +}; +static GLuint tindices[20][3] = { + {0,4,1}, {0,9,4}, {9,5,4}, {4,5,8}, {4,8,1}, + {8,10,1}, {8,3,10}, {5,3,8}, {5,2,3}, {2,7,3}, + {7,10,3}, {7,6,10}, {7,11,6}, {11,0,6}, {0,1,6}, + {6,1,10}, {9,0,11}, {9,11,2}, {9,2,5}, {7,2,11} +}; + +void GLWidget::paintGL() +{ + GLint i; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + for (i = 0; i < 20; i++) + { + subdivide(&vdata[tindices[i][0]][0], + &vdata[tindices[i][1]][0], + &vdata[tindices[i][2]][0]); + } +} + +void GLWidget::resizeGL(int w, int h) +{ + glViewport(0, 0, (GLsizei)w, (GLsizei)h); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + if (w <= h) + { + glOrtho(-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, + 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0); + } + else + { + glOrtho(-1.5*(GLfloat)w/(GLfloat)h, + 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0); + } + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + +void GLWidget::mousePressEvent(QMouseEvent *event) +{ +} + +void GLWidget::mouseMoveEvent(QMouseEvent *event) +{ +} diff --git a/src/glwidget.h b/src/glwidget.h new file mode 100644 index 00000000..e18370b0 --- /dev/null +++ b/src/glwidget.h @@ -0,0 +1,22 @@ +#ifndef GLWIDGET_H +#define GLWIDGET_H + +#include + +class GLWidget : public QGLWidget +{ + Q_OBJECT + +public: + GLWidget(QWidget *parent = 0); + ~GLWidget(); + +protected: + void initializeGL(); + void paintGL(); + void resizeGL(int width, int height); + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); +}; + +#endif diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 00000000..dd64252e --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,11 @@ +#include +#include "mainwindow.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp new file mode 100644 index 00000000..47d849ad --- /dev/null +++ b/src/mainwindow.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include "mainwindow.h" + +MainWindow::MainWindow(void) +{ + glWidget = new GLWidget; + + resize(QDesktopWidget().availableGeometry(this).size() * 0.7); + + QHBoxLayout *mainLayout = new QHBoxLayout; + mainLayout->addWidget(glWidget); + setLayout(mainLayout); + + setWindowTitle(tr("DUST3D")); +} + +void MainWindow::keyPressEvent(QKeyEvent *e) +{ + if (e->key() == Qt::Key_Escape) + { + close(); + } + else + { + QWidget::keyPressEvent(e); + } +} + diff --git a/src/mainwindow.h b/src/mainwindow.h new file mode 100644 index 00000000..dbcb3343 --- /dev/null +++ b/src/mainwindow.h @@ -0,0 +1,21 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include "glwidget.h" + +class MainWindow : public QWidget +{ + Q_OBJECT + +public: + MainWindow(void); + +protected: + void keyPressEvent(QKeyEvent *event); + +private: + GLWidget *glWidget; +}; + +#endif From d7b349b986bd8ed1c5c6a7560333032569139e49 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Fri, 16 Dec 2016 00:02:55 +0930 Subject: [PATCH 02/61] Drawing sphere without gluSphere --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 23587663..df4670c9 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,17 @@ Dust3D -------------- +========= Dust3D is aim to be a quick modeling tool for game development. Currently the development is in the very early stage. Idea ------------ +=========== I was inspired by Jimmy Gunawan's blogs of monster generation, here is the first one [INSPIRATION / Pixar Monster Factory Part One](http://blendersushi.blogspot.com.au/2013/06/inspiration-pixar-monster-factory-part.html), and by search the Skin Modifier of Blender, I found the theory of Skin Modifier: [B-Mesh: A Fast Modeling System for Base Meshes of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu2, Yigang Wang1). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. -From my initial thought, Dust3D should be a tool like [Makehuman](www.makehuman.org), with more versatile features, not only can make human, but also able to **generate monsters automatically**. +From my initial thought, Dust3D should be a tool like [Makehuman](http://www.makehuman.org), with more versatile features, not only can make human, but also be able to **generate monsters automatically**. + +Progress +============== +Drawing Sphere +----------- +I don't want the whole project have any unnecessary dependent, like glu library. +Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same balls which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). From a0ebc379b4cef52641debf58acbf147de99d1919 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Fri, 16 Dec 2016 22:15:11 +0930 Subject: [PATCH 03/61] Add Jon Leech's method to draw shpere --- .gitignore | 3 + build/dust3d.pro | 8 ++- src/drawcommon.c | 20 ++++++ src/drawcommon.h | 31 +++++++++ src/drawsphere.c | 106 +++++++++++++++++++++++++++++++ src/drawsphere.h | 14 +++++ src/glwidget.cpp | 161 +++++++++++++++-------------------------------- src/main.cpp | 16 +++-- 8 files changed, 243 insertions(+), 116 deletions(-) create mode 100644 .gitignore create mode 100644 src/drawcommon.c create mode 100644 src/drawcommon.h create mode 100644 src/drawsphere.c create mode 100644 src/drawsphere.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..295e4ee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.* +*.o +build/* \ No newline at end of file diff --git a/build/dust3d.pro b/build/dust3d.pro index 815cf354..fd47d561 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -8,7 +8,11 @@ INCLUDEPATH += ../src SOURCES += main.cpp \ mainwindow.cpp \ - glwidget.cpp + glwidget.cpp \ + drawcommon.c \ + drawsphere.c HEADERS += mainwindow.h \ - glwidget.h \ No newline at end of file + glwidget.h \ + drawcommon.h \ + drawsphere.h \ No newline at end of file diff --git a/src/drawcommon.c b/src/drawcommon.c new file mode 100644 index 00000000..8f31acd8 --- /dev/null +++ b/src/drawcommon.c @@ -0,0 +1,20 @@ +#include "drawcommon.h" +#include + +void normalize(point *p) { + double mag; + mag = p->x * p->x + p->y * p->y + p->z * p->z; + if (mag != 0.0) { + mag = 1.0 / sqrt(mag); + p->x *= mag; + p->y *= mag; + p->z *= mag; + } +} + +void midpoint(point *a, point *b, point *mid) { + mid->x = (a->x + b->x) * 0.5; + mid->y = (a->y + b->y) * 0.5; + mid->z = (a->z + b->z) * 0.5; +} + diff --git a/src/drawcommon.h b/src/drawcommon.h new file mode 100644 index 00000000..10cb6167 --- /dev/null +++ b/src/drawcommon.h @@ -0,0 +1,31 @@ +#ifndef DRAW_COMMON_H +#define DRAW_COMMON_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + float x; + float y; + float z; +} point; + +typedef struct { + point pt[3]; +} triangle; + +typedef struct { + int npoly; + triangle *poly; +} object; + +void normalize(point *p); +void midpoint(point *a, point *b, point *mid); +void drawTriangle(triangle *poly); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/drawsphere.c b/src/drawsphere.c new file mode 100644 index 00000000..02f825b1 --- /dev/null +++ b/src/drawsphere.c @@ -0,0 +1,106 @@ +#include "drawcommon.h" +#include "drawsphere.h" +#include +#include +#include + +/* + * This function modified from [Jon Leech's implementation of sphere](ftp://ftp.ee.lbl.gov/sphere.c) + * Jeremy HU (huxingyi@msn.com) 2016/12/16 +*/ + +#define XPLUS { 1, 0, 0 } /* X */ +#define XMIN { -1, 0, 0 } /* -X */ +#define YPLUS { 0, 1, 0 } /* Y */ +#define YMIN { 0, -1, 0 } /* -Y */ +#define ZPLUS { 0, 0, 1 } /* Z */ +#define ZMIN { 0, 0, -1 } /* -Z */ + +static const triangle octahedron[] = { + {{XPLUS, ZPLUS, YPLUS}}, + {{YPLUS, ZPLUS, XMIN}}, + {{XMIN, ZPLUS, YMIN}}, + {{YMIN, ZPLUS, XPLUS}}, + {{XPLUS, YPLUS, ZMIN}}, + {{YPLUS, XMIN, ZMIN}}, + {{XMIN, YMIN, ZMIN}}, + {{YMIN, XPLUS, ZMIN}}, +}; + +static void subdivide(object *old, object *subdivided) { + int i; + for (i = 0; i < old->npoly; ++i) { + triangle *oldt = &old->poly[i]; + triangle *newt = &subdivided->poly[i * 4]; + point a, b, c; + + midpoint(&oldt->pt[0], &oldt->pt[2], &a); + midpoint(&oldt->pt[0], &oldt->pt[1], &b); + midpoint(&oldt->pt[1], &oldt->pt[2], &c); + + normalize(&a); + normalize(&b); + normalize(&c); + + newt->pt[0] = oldt->pt[0]; + newt->pt[1] = b; + newt->pt[2] = a; + newt++; + + newt->pt[0] = b; + newt->pt[1] = oldt->pt[1]; + newt->pt[2] = c; + newt++; + + newt->pt[0] = a; + newt->pt[1] = b; + newt->pt[2] = c; + newt++; + + newt->pt[0] = a; + newt->pt[1] = c; + newt->pt[2] = oldt->pt[2]; + } +} + +int drawSphere(int level) { + int lv, i; + object oldObj, newObj; + + if (level < 1) { + fprintf(stderr, "%s:level max greater than 0.\n", __FUNCTION__); + return -1; + } + + oldObj.npoly = sizeof(octahedron) / sizeof(octahedron[0]); + oldObj.poly = (triangle *)malloc(oldObj.npoly * sizeof(triangle)); + if (!oldObj.poly) { + fprintf(stderr, "%s:insufficient memory.\n", __FUNCTION__); + return -1; + } + memcpy(oldObj.poly, octahedron, oldObj.npoly * sizeof(triangle)); + + for (lv = 0; lv < level; lv++) { + newObj.npoly = oldObj.npoly * 4; + newObj.poly = (triangle *)malloc(newObj.npoly * sizeof(triangle)); + if (!newObj.poly) { + fprintf(stderr, "%s:insufficient memory(levelLoop:%d).\n", + __FUNCTION__, lv); + free(oldObj.poly); + return -1; + } + + subdivide(&oldObj, &newObj); + + free(oldObj.poly); + oldObj = newObj; + } + + for (i = 0; i < newObj.npoly; ++i) { + drawTriangle(&newObj.poly[i]); + } + + free(newObj.poly); + + return 0; +} diff --git a/src/drawsphere.h b/src/drawsphere.h new file mode 100644 index 00000000..839dde5f --- /dev/null +++ b/src/drawsphere.h @@ -0,0 +1,14 @@ +#ifndef DRAW_SPHERE_H +#define DRAW_SPHERE_H + +#ifdef __cplusplus +extern "C" { +#endif + +int drawSphere(int level); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glwidget.cpp b/src/glwidget.cpp index bce7e853..f2167858 100644 --- a/src/glwidget.cpp +++ b/src/glwidget.cpp @@ -1,132 +1,73 @@ #include #include #include - #include "glwidget.h" +#include "drawcommon.h" +#include "drawsphere.h" + +void drawTriangle(triangle *poly) { + int i; + glBegin(GL_TRIANGLES); + for (i = 0; i < 3; ++i) { + point *pt = &poly->pt[i]; + glNormal3f(pt->x, pt->y, pt->z); + glVertex3f(pt->x, pt->y, pt->z); + } + glEnd(); +} GLWidget::GLWidget(QWidget *parent) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) -{ + : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { } -GLWidget::~GLWidget() -{ +GLWidget::~GLWidget() { } -void GLWidget::initializeGL() -{ - GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; - GLfloat mat_shininess[] = { 50.0 }; - GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; - GLfloat light[] = { 1.0, 0.2, 0.2 }; - GLfloat lmodel_ambient[] = { 0.1, 0.1, 0.1, 1.0 }; - glClearColor (0.0, 0.0, 0.0, 0.0); - glShadeModel (GL_SMOOTH); +void GLWidget::initializeGL() { + GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0}; + GLfloat mat_shininess[] = {50.0}; + GLfloat light_position[] = {1.0, 1.0, 1.0, 0.0}; + GLfloat light[] = {1.0, 0.2, 0.2}; + GLfloat lmodel_ambient[] = {0.1, 0.1, 0.1, 1.0}; - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); + glClearColor(0.0, 0.0, 0.0, 0.0); + glShadeModel(GL_SMOOTH); - glLightfv(GL_LIGHT0, GL_POSITION, light_position); - glLightfv(GL_LIGHT0, GL_DIFFUSE, light ); - glLightfv(GL_LIGHT0, GL_SPECULAR, light ); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); + glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); + glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); + glLightfv(GL_LIGHT0, GL_POSITION, light_position); + glLightfv(GL_LIGHT0, GL_DIFFUSE, light); + glLightfv(GL_LIGHT0, GL_SPECULAR, light); + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glEnable(GL_DEPTH_TEST); } -void normalize(float v[3]) -{ - GLfloat d = sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); - if (d == 0.0) - { - return; - } - v[0] /= d; v[1] /= d; v[2] /= d; +void GLWidget::paintGL() { + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + drawSphere(3); } -void drawtriangle(float *v1, float *v2, float *v3) -{ - glBegin(GL_TRIANGLES); - glNormal3fv(v1); glVertex3fv(v1); - glNormal3fv(v2); glVertex3fv(v2); - glNormal3fv(v3); glVertex3fv(v3); - glEnd(); +void GLWidget::resizeGL(int w, int h) { + glViewport(0, 0, (GLsizei)w, (GLsizei)h); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + if (w <= h) { + glOrtho(-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, + 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0); + } else { + glOrtho(-1.5*(GLfloat)w/(GLfloat)h, + 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0); + } + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); } -void subdivide(float *v1, float *v2, float *v3) -{ - GLfloat v12[3], v23[3], v31[3]; - GLint i; - - for (i = 0; i < 3; i++) - { - v12[i] = v1[i]+v2[i]; - v23[i] = v2[i]+v3[i]; - v31[i] = v3[i]+v1[i]; - } - normalize(v12); - normalize(v23); - normalize(v31); - drawtriangle(v1, v12, v31); - drawtriangle(v2, v23, v12); - drawtriangle(v3, v31, v23); - drawtriangle(v12, v23, v31); +void GLWidget::mousePressEvent(QMouseEvent *event) { } -// An example come from http://www.glprogramming.com/red/chapter02.html#name8 - -#define X .525731112119133606 -#define Z .850650808352039932 - -static GLfloat vdata[12][3] = { - {-X, 0.0, Z}, {X, 0.0, Z}, {-X, 0.0, -Z}, {X, 0.0, -Z}, - {0.0, Z, X}, {0.0, Z, -X}, {0.0, -Z, X}, {0.0, -Z, -X}, - {Z, X, 0.0}, {-Z, X, 0.0}, {Z, -X, 0.0}, {-Z, -X, 0.0} -}; -static GLuint tindices[20][3] = { - {0,4,1}, {0,9,4}, {9,5,4}, {4,5,8}, {4,8,1}, - {8,10,1}, {8,3,10}, {5,3,8}, {5,2,3}, {2,7,3}, - {7,10,3}, {7,6,10}, {7,11,6}, {11,0,6}, {0,1,6}, - {6,1,10}, {9,0,11}, {9,11,2}, {9,2,5}, {7,2,11} -}; - -void GLWidget::paintGL() -{ - GLint i; - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - for (i = 0; i < 20; i++) - { - subdivide(&vdata[tindices[i][0]][0], - &vdata[tindices[i][1]][0], - &vdata[tindices[i][2]][0]); - } -} - -void GLWidget::resizeGL(int w, int h) -{ - glViewport(0, 0, (GLsizei)w, (GLsizei)h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - if (w <= h) - { - glOrtho(-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w, - 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0); - } - else - { - glOrtho(-1.5*(GLfloat)w/(GLfloat)h, - 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0); - } - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - -void GLWidget::mousePressEvent(QMouseEvent *event) -{ -} - -void GLWidget::mouseMoveEvent(QMouseEvent *event) -{ +void GLWidget::mouseMoveEvent(QMouseEvent *event) { } diff --git a/src/main.cpp b/src/main.cpp index dd64252e..68e39bbb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,11 +1,19 @@ #include +#include +#include #include "mainwindow.h" int main(int argc, char *argv[]) { - QApplication a(argc, argv); - MainWindow w; - w.show(); + QApplication a(argc, argv); + MainWindow w; - return a.exec(); + assert(0 != freopen((a.applicationDirPath() + + "/dust3d.log").toUtf8(), "w", stdout)); + assert(0 != freopen((a.applicationDirPath() + + "/dust3d_error.log").toUtf8(), "w", stderr)); + + w.show(); + + return a.exec(); } From 230bc2d04a5ca60a668c0e6409a4c150d8a14824 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 17 Dec 2016 10:19:40 +0930 Subject: [PATCH 04/61] Add draw cylinder --- README.md | 7 +++-- src/drawcommon.h | 1 + src/drawsphere.h | 1 + src/glwidget.cpp | 74 ++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index df4670c9..6639a320 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,10 @@ From my initial thought, Dust3D should be a tool like [Makehuman](http://www.mak Progress ============== -Drawing Sphere +Drawing Primitives ----------- +*Sphere* I don't want the whole project have any unnecessary dependent, like glu library. -Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same balls which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). +Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same balls which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). +*Cylinder* +Two caps and many strips composites a cylinder. diff --git a/src/drawcommon.h b/src/drawcommon.h index 10cb6167..befdacc5 100644 --- a/src/drawcommon.h +++ b/src/drawcommon.h @@ -23,6 +23,7 @@ typedef struct { void normalize(point *p); void midpoint(point *a, point *b, point *mid); void drawTriangle(triangle *poly); +int drawCylinder(int slices, float radius, float height); #ifdef __cplusplus } diff --git a/src/drawsphere.h b/src/drawsphere.h index 839dde5f..3d6a9929 100644 --- a/src/drawsphere.h +++ b/src/drawsphere.h @@ -1,5 +1,6 @@ #ifndef DRAW_SPHERE_H #define DRAW_SPHERE_H +#include "drawcommon.h" #ifdef __cplusplus extern "C" { diff --git a/src/glwidget.cpp b/src/glwidget.cpp index f2167858..797cc18b 100644 --- a/src/glwidget.cpp +++ b/src/glwidget.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "glwidget.h" #include "drawcommon.h" #include "drawsphere.h" @@ -16,8 +17,71 @@ void drawTriangle(triangle *poly) { glEnd(); } +int drawCylinder(int slices, float radius, float height) { + float theta = (2.0 * M_PI) / (float)slices; + float a = 0.0f; + int lv; + float halfHeight = height / 2; + float x, y, z; + + if (slices <= 0) { + fprintf(stderr, "%s:Invalid parameter(slices:%d).\n", __FUNCTION__, slices); + return -1; + } + + // bottom cap + z = -halfHeight; + glBegin(GL_TRIANGLE_FAN); + glNormal3f(0, 0, -1); + glVertex3f(0, 0, z); + for (a = 0, lv = 0; lv <= slices; ++lv) { + x = cos(a) * radius; + y = sin(a) * radius; + glNormal3f(0, 0, -1); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + // top cap + z = halfHeight; + glBegin(GL_TRIANGLE_FAN); + glNormal3f(0, 0, 1); + glVertex3f(0, 0, z); + for (a = 0, lv = 0; lv <= slices; ++lv) { + x = cos(a) * radius; + y = sin(a) * radius; + glNormal3f(0, 0, 1); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + // strips + glBegin(GL_TRIANGLE_STRIP); + for (a = 0, lv = 0; lv <= slices; ++lv) { + float cosa = cos(a); + float sina = sin(a); + x = cosa * radius; + y = sina * radius; + z = -halfHeight; + glNormal3f(cosa, sina, 0); + glVertex3f(x, y, z); + z = halfHeight; + glNormal3f(cosa, sina, 0); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + return 0; +} + GLWidget::GLWidget(QWidget *parent) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { + : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(update())); + timer->start(100); } GLWidget::~GLWidget() { @@ -47,8 +111,14 @@ void GLWidget::initializeGL() { } void GLWidget::paintGL() { + static int angle = 0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - drawSphere(3); + //drawSphere(3); + glPushMatrix(); + glRotatef(angle, 1, 0, 0); + angle = (angle + 1) % 360; + drawCylinder(50, 0.2, 2); + glPopMatrix(); } void GLWidget::resizeGL(int w, int h) { From d7ef7d6d081cb694efbc679ca6a1eba5d1a0f25f Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 17 Dec 2016 21:55:37 +0930 Subject: [PATCH 05/61] Add finite grid ground --- README.md | 24 +++++-- screenshot/dust3d_sphere_cylinder.png | Bin 0 -> 130717 bytes src/glwidget.cpp | 91 ++++++++++++++++---------- 3 files changed, 73 insertions(+), 42 deletions(-) create mode 100644 screenshot/dust3d_sphere_cylinder.png diff --git a/README.md b/README.md index 6639a320..dbf3ee2a 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,27 @@ Idea =========== I was inspired by Jimmy Gunawan's blogs of monster generation, here is the first one [INSPIRATION / Pixar Monster Factory Part One](http://blendersushi.blogspot.com.au/2013/06/inspiration-pixar-monster-factory-part.html), and by search the Skin Modifier of Blender, I found the theory of Skin Modifier: [B-Mesh: A Fast Modeling System for Base Meshes -of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu2, Yigang Wang1). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. +of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu, Yigang Wang). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. From my initial thought, Dust3D should be a tool like [Makehuman](http://www.makehuman.org), with more versatile features, not only can make human, but also be able to **generate monsters automatically**. -Progress +TODO & Progress ============== -Drawing Primitives ------------ +- [x] Drawing Primitives (Dec 15, 2016 ~ Dec 17, 2016) *Sphere* I don't want the whole project have any unnecessary dependent, like glu library. -Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same balls which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). +Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same spheres which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). *Cylinder* -Two caps and many strips composites a cylinder. +Two caps and many strips composites a cylinder. +*Infinite Grid* +Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. +Now, for just beginning, I think it's a not bad start. + +- [ ] Implement B-Mesh algorithm +- [ ] Export Wavefront .obj +- [ ] Render B-Mesh result +- [ ] Design UI for monster parts configuration +- [ ] Test B-Mesh realtime generation with UI +- [ ] Render rigid animation +- [ ] png exporter for isometric 2.5D game +- [ ] Version 0.01 release +- [ ] Materials merge of different parts diff --git a/screenshot/dust3d_sphere_cylinder.png b/screenshot/dust3d_sphere_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..adf8e10815f249420ebf63de57aca575af330799 GIT binary patch literal 130717 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

=MePgF?_jf&@wl?>EcV+!Lj9)e!Do2r9e13 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 g**`*YL)wT-yL; Date: Tue, 20 Dec 2016 00:45:53 +0930 Subject: [PATCH 06/61] Add array data struct Add bmesh define Add vec3 Add camera control Add draw x,z axis --- screenshot/dust3d_node_edge.png | Bin 0 -> 133959 bytes src/array.c | 54 ++++++++ src/array.h | 20 +++ src/bmesh.c | 75 +++++++++++ src/bmesh.h | 43 ++++++ src/draw.cpp | 223 ++++++++++++++++++++++++++++++++ src/draw.h | 27 ++++ src/drawcommon.h | 11 +- src/mainwindow.cpp | 34 ++--- src/mainwindow.h | 10 +- src/matrix.c | 184 ++++++++++++++++++++++++++ src/matrix.h | 19 +++ src/render.cpp | 160 +++++++++++++++++++++++ src/render.h | 29 +++++ src/vector3d.c | 40 ++++++ src/vector3d.h | 25 ++++ 16 files changed, 919 insertions(+), 35 deletions(-) create mode 100644 screenshot/dust3d_node_edge.png create mode 100644 src/array.c create mode 100644 src/array.h create mode 100644 src/bmesh.c create mode 100644 src/bmesh.h create mode 100644 src/draw.cpp create mode 100644 src/draw.h create mode 100644 src/matrix.c create mode 100644 src/matrix.h create mode 100644 src/render.cpp create mode 100644 src/render.h create mode 100644 src/vector3d.c create mode 100644 src/vector3d.h diff --git a/screenshot/dust3d_node_edge.png b/screenshot/dust3d_node_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba38776e798f1cda5a43ae6b1cafa695ecfc1a9 GIT binary patch literal 133959 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

LZc>oRZcump^5lDr`Z!-v5 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 literal 0 HcmV?d00001 diff --git a/src/array.c b/src/array.c new file mode 100644 index 00000000..d678c9ce --- /dev/null +++ b/src/array.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include "array.h" + +struct array { + int nodeSize; + int capacity; + int length; + char *nodes; +}; + +array *arrayCreate(int nodeSize) { + array *arr = (array *)calloc(1, sizeof(array)); + if (!arr) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + arr->nodeSize = nodeSize; + return arr; +} + +int arraySetLength(array *arr, int length) { + if (length > arr->capacity) { + int newCapacity = (arr->capacity + 1) * 2; + char *newNodes = (char *)realloc(arr->nodes, arr->nodeSize * newCapacity); + if (!newNodes) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return -1; + } + arr->capacity = newCapacity; + arr->nodes = newNodes; + } + arr->length = length; + return 0; +} + +void *arrayGetItem(array *arr, int index) { + if (index >= arr->length) { + return 0; + } + return arr->nodes + arr->nodeSize * index; +} + +int arrayGetLength(array *arr) { + return arr->length; +} + +void arrayDestroy(array *arr) { + if (arr) { + free(arr->nodes); + free(arr); + } +} diff --git a/src/array.h b/src/array.h new file mode 100644 index 00000000..0fa4fabe --- /dev/null +++ b/src/array.h @@ -0,0 +1,20 @@ +#ifndef ARRAY_H +#define ARRAY_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct array array; + +array *arrayCreate(int nodeSize); +void *arrayGetItem(array *arr, int index); +int arrayGetLength(array *arr); +int arraySetLength(array *arr, int length); +void arrayDestroy(array *arr); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/bmesh.c b/src/bmesh.c new file mode 100644 index 00000000..e90de4cc --- /dev/null +++ b/src/bmesh.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include "bmesh.h" +#include "array.h" + +struct bmesh { + array *nodeArray; + array *edgeArray; +}; + +bmesh *bmeshCreate(void) { + bmesh *bm = (bmesh *)calloc(1, sizeof(bmesh)); + if (!bm) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + bm->nodeArray = arrayCreate(sizeof(bmeshNode)); + if (!bm->nodeArray) { + fprintf(stderr, "%s:arrayCreate bmeshNode failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } + bm->edgeArray = arrayCreate(sizeof(bmeshEdge)); + if (!bm->edgeArray) { + fprintf(stderr, "%s:arrayCreate bmeshEdge failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } + return bm; +} + +void bmeshDestroy(bmesh *bm) { + arrayDestroy(bm->nodeArray); + arrayDestroy(bm->edgeArray); + free(bm); +} + +int bmeshGetNodeNum(bmesh *bm) { + return arrayGetLength(bm->nodeArray); +} + +int bmeshGetEdgeNum(bmesh *bm) { + return arrayGetLength(bm->edgeArray); +} + +bmeshNode *bmeshGetNode(bmesh *bm, int index) { + return (bmeshNode *)arrayGetItem(bm->nodeArray, index); +} + +bmeshEdge *bmeshGetEdge(bmesh *bm, int index) { + return (bmeshEdge *)arrayGetItem(bm->edgeArray, index); +} + +int bmeshAddNode(bmesh *bm, bmeshNode *node) { + int index = arrayGetLength(bm->nodeArray); + node->index = index; + if (0 != arraySetLength(bm->nodeArray, index + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + memcpy(arrayGetItem(bm->nodeArray, index), node, sizeof(bmeshNode)); + return index; +} + +int bmeshAddEdge(bmesh *bm, bmeshEdge *edge) { + int index = arrayGetLength(bm->edgeArray); + edge->index = index; + if (0 != arraySetLength(bm->edgeArray, index + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + memcpy(arrayGetItem(bm->edgeArray, index), edge, sizeof(bmeshEdge)); + return index; +} diff --git a/src/bmesh.h b/src/bmesh.h new file mode 100644 index 00000000..c7c22b32 --- /dev/null +++ b/src/bmesh.h @@ -0,0 +1,43 @@ +#ifndef B_MESH_H +#define B_MESH_H +#include "vector3d.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + BMESH_NODE_FLAG_KEY = 0x00000001, + BMESH_NODE_FLAG_INBETWEEN = 0x00000002, + BMESH_NODE_FLAG_ROOT = 0x00000010, +} bmeshNodeFlag; + +typedef struct bmesh bmesh; + +typedef struct { + int index; + vec3 position; + float radius; + unsigned int flag; +} bmeshNode; + +typedef struct { + int index; + int firstNode; + int secondNode; +} bmeshEdge; + +bmesh *bmeshCreate(void); +void bmeshDestroy(bmesh *bm); +int bmeshGetNodeNum(bmesh *bm); +int bmeshGetEdgeNum(bmesh *bm); +bmeshNode *bmeshGetNode(bmesh *bm, int index); +bmeshEdge *bmeshGetEdge(bmesh *bm, int index); +int bmeshAddNode(bmesh *bm, bmeshNode *node); +int bmeshAddEdge(bmesh *bm, bmeshEdge *edge); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/draw.cpp b/src/draw.cpp new file mode 100644 index 00000000..d6b91f2f --- /dev/null +++ b/src/draw.cpp @@ -0,0 +1,223 @@ +#include +#include +#include +#include +#include +#include "draw.h" + +/* + * This drawSphere function modified from [Jon Leech's implementation of sphere](ftp://ftp.ee.lbl.gov/sphere.c) + * Jeremy HU (huxingyi@msn.com) 2016/12/16 +*/ + +#define XPLUS { 1, 0, 0 } /* X */ +#define XMIN { -1, 0, 0 } /* -X */ +#define YPLUS { 0, 1, 0 } /* Y */ +#define YMIN { 0, -1, 0 } /* -Y */ +#define ZPLUS { 0, 0, 1 } /* Z */ +#define ZMIN { 0, 0, -1 } /* -Z */ + +static const triangle octahedron[] = { + {{XPLUS, ZPLUS, YPLUS}}, + {{YPLUS, ZPLUS, XMIN}}, + {{XMIN, ZPLUS, YMIN}}, + {{YMIN, ZPLUS, XPLUS}}, + {{XPLUS, YPLUS, ZMIN}}, + {{YPLUS, XMIN, ZMIN}}, + {{XMIN, YMIN, ZMIN}}, + {{YMIN, XPLUS, ZMIN}}, +}; + +static void subdivide(object *old, object *subdivided) { + int i; + for (i = 0; i < old->npoly; ++i) { + triangle *oldt = &old->poly[i]; + triangle *newt = &subdivided->poly[i * 4]; + vec3 a, b, c; + + vec3Midpoint(&oldt->pt[0], &oldt->pt[2], &a); + vec3Midpoint(&oldt->pt[0], &oldt->pt[1], &b); + vec3Midpoint(&oldt->pt[1], &oldt->pt[2], &c); + + vec3Normalize(&a); + vec3Normalize(&b); + vec3Normalize(&c); + + newt->pt[0] = oldt->pt[0]; + newt->pt[1] = b; + newt->pt[2] = a; + newt++; + + newt->pt[0] = b; + newt->pt[1] = oldt->pt[1]; + newt->pt[2] = c; + newt++; + + newt->pt[0] = a; + newt->pt[1] = b; + newt->pt[2] = c; + newt++; + + newt->pt[0] = a; + newt->pt[1] = c; + newt->pt[2] = oldt->pt[2]; + } +} + +int drawSphere(vec3 *origin, float radius, int level) { + int lv, i; + object oldObj, newObj; + + if (level < 1) { + fprintf(stderr, "%s:level max greater than 0.\n", __FUNCTION__); + return -1; + } + + oldObj.npoly = sizeof(octahedron) / sizeof(octahedron[0]); + oldObj.poly = (triangle *)malloc(oldObj.npoly * sizeof(triangle)); + if (!oldObj.poly) { + fprintf(stderr, "%s:insufficient memory.\n", __FUNCTION__); + return -1; + } + memcpy(oldObj.poly, octahedron, oldObj.npoly * sizeof(triangle)); + + for (lv = 0; lv < level; lv++) { + newObj.npoly = oldObj.npoly * 4; + newObj.poly = (triangle *)malloc(newObj.npoly * sizeof(triangle)); + if (!newObj.poly) { + fprintf(stderr, "%s:insufficient memory(levelLoop:%d).\n", + __FUNCTION__, lv); + free(oldObj.poly); + return -1; + } + + subdivide(&oldObj, &newObj); + + free(oldObj.poly); + oldObj = newObj; + } + + glPushMatrix(); + glTranslatef(origin->x, origin->y, origin->z); + glScalef(radius, radius, radius); + for (i = 0; i < newObj.npoly; ++i) { + drawTriangle(&newObj.poly[i]); + } + glPopMatrix(); + + free(newObj.poly); + + return 0; +} + +void drawTriangle(triangle *poly) { + int i; + glBegin(GL_TRIANGLES); + for (i = 0; i < 3; ++i) { + vec3 *pt = &poly->pt[i]; + glNormal3f(pt->x, pt->y, pt->z); + glVertex3f(pt->x, pt->y, pt->z); + } + glEnd(); +} + +int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices) { + float theta = (2.0 * M_PI) / (float)slices; + float a = 0.0f; + int lv; + float x, y, z; + vec3 zAxis = {0, 0, 1}; + vec3 p, t; + float height = 0; + float angle = 0; + + if (slices <= 0) { + fprintf(stderr, "%s:Invalid parameter(slices:%d).\n", __FUNCTION__, slices); + return -1; + } + + vec3Sub(topOrigin, bottomOrigin, &p); + vec3CrossProduct(&zAxis, &p, &t); + height = vec3Length(&p); + if (height > 0) { + angle = 180 / M_PI * acos(vec3DotProduct(&zAxis, &p) / height); + } + + glPushMatrix(); + + glTranslatef(bottomOrigin->x, bottomOrigin->y, + bottomOrigin->z); + glRotatef(angle, t.x, t.y, t.z); + + // strips + glBegin(GL_TRIANGLE_STRIP); + for (a = 0, lv = 0; lv <= slices; ++lv) { + float cosa = cos(a); + float sina = sin(a); + x = cosa * radius; + y = sina * radius; + z = 0; + glNormal3f(cosa, sina, 0); + glVertex3f(x, y, z); + z = height; + glNormal3f(cosa, sina, 0); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + // bottom cap + z = 0; + glBegin(GL_TRIANGLE_FAN); + glNormal3f(0, 0, -1); + glVertex3f(0, 0, z); + for (a = 0, lv = 0; lv <= slices; ++lv) { + x = cos(a) * radius; + y = sin(a) * radius; + glNormal3f(0, 0, -1); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + // top cap + z = height; + glBegin(GL_TRIANGLE_FAN); + glNormal3f(0, 0, 1); + glVertex3f(0, 0, z); + for (a = 0, lv = 0; lv <= slices; ++lv) { + x = cos(a) * radius; + y = sin(a) * radius; + glNormal3f(0, 0, 1); + glVertex3f(x, y, z); + a += theta; + } + glEnd(); + + glPopMatrix(); + + return 0; +} + +int drawGrid(float size, float step) { + glDisable(GL_LIGHTING); + + // x z plane + glBegin(GL_LINES); + for (GLfloat i = -size; i <= size; i += step) { + if (0 == i) { + glColor3f(0.0, 0.0, 1.0); + glVertex3f(i, 0, size); glVertex3f(i, 0, -size); + glColor3f(1.0, 0.0, 0.0); + glVertex3f(size, 0, i); glVertex3f(-size, 0, i); + } else { + glColor3f(0.39, 0.39, 0.39); + glVertex3f(i, 0, size); glVertex3f(i, 0, -size); + glVertex3f(size, 0, i); glVertex3f(-size, 0, i); + } + } + glEnd(); + + glEnable(GL_LIGHTING); + return 0; +} diff --git a/src/draw.h b/src/draw.h new file mode 100644 index 00000000..243c1d9d --- /dev/null +++ b/src/draw.h @@ -0,0 +1,27 @@ +#ifndef DRAW_SPHERE_H +#define DRAW_SPHERE_H +#include "vector3d.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + vec3 pt[3]; +} triangle; + +typedef struct { + int npoly; + triangle *poly; +} object; + +int drawSphere(vec3 *origin, float radius, int level); +void drawTriangle(triangle *poly); +int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices); +int drawGrid(float size, float step); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/drawcommon.h b/src/drawcommon.h index befdacc5..38de7647 100644 --- a/src/drawcommon.h +++ b/src/drawcommon.h @@ -1,18 +1,13 @@ #ifndef DRAW_COMMON_H #define DRAW_COMMON_H +#include "vector3d.h" #ifdef __cplusplus extern "C" { #endif typedef struct { - float x; - float y; - float z; -} point; - -typedef struct { - point pt[3]; + vec3 pt[3]; } triangle; typedef struct { @@ -20,8 +15,6 @@ typedef struct { triangle *poly; } object; -void normalize(point *p); -void midpoint(point *a, point *b, point *mid); void drawTriangle(triangle *poly); int drawCylinder(int slices, float radius, float height); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 47d849ad..163a14f4 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2,29 +2,21 @@ #include #include #include "mainwindow.h" +#include "render.h" -MainWindow::MainWindow(void) -{ - glWidget = new GLWidget; - - resize(QDesktopWidget().availableGeometry(this).size() * 0.7); - +MainWindow::MainWindow(void) { + render = new Render; + resize(QDesktopWidget().availableGeometry(this).size() * 0.7); QHBoxLayout *mainLayout = new QHBoxLayout; - mainLayout->addWidget(glWidget); - setLayout(mainLayout); - - setWindowTitle(tr("DUST3D")); + mainLayout->addWidget(render); + setLayout(mainLayout); + setWindowTitle(tr("Dust3D Experiment")); } -void MainWindow::keyPressEvent(QKeyEvent *e) -{ - if (e->key() == Qt::Key_Escape) - { - close(); - } - else - { - QWidget::keyPressEvent(e); - } +void MainWindow::keyPressEvent(QKeyEvent *e) { + if (e->key() == Qt::Key_Escape) { + close(); + } else { + QWidget::keyPressEvent(e); + } } - diff --git a/src/mainwindow.h b/src/mainwindow.h index dbcb3343..448f7bdb 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -2,20 +2,20 @@ #define MAINWINDOW_H #include -#include "glwidget.h" -class MainWindow : public QWidget -{ +class Render; + +class MainWindow : public QWidget { Q_OBJECT public: MainWindow(void); protected: - void keyPressEvent(QKeyEvent *event); + void keyPressEvent(QKeyEvent *event); private: - GLWidget *glWidget; + Render *render; }; #endif diff --git a/src/matrix.c b/src/matrix.c new file mode 100644 index 00000000..e28a5cad --- /dev/null +++ b/src/matrix.c @@ -0,0 +1,184 @@ +#include "matrix.h" +#include +#include + +#define DEG2RAD (M_PI / 180.0) + +matrix *matrixLoadIdentity(matrix *mat) { + memset(mat->data, 0, sizeof(mat->data)); + mat->data[0] = 1; + mat->data[5] = 1; + mat->data[10] = 1; + mat->data[15] = 1; + return mat; +} + +matrix *matrixTranslate(matrix *mat, float x, float y, float z) { + matrixLoadIdentity(mat); + mat->data[12] = x; + mat->data[13] = y; + mat->data[14] = z; + return mat; +} + +matrix *matrixRotateX(matrix *mat, float degree) { + float c; + float s; + + matrixLoadIdentity(mat); + + if (degree <= 0) { + return mat; + } + + c = cos(degree * DEG2RAD); + s = sin(degree * DEG2RAD); + + mat->data[5] = c; + mat->data[6] = s; + mat->data[9] = -s; + mat->data[10] = c; + + return mat; +} + +matrix *matrixRotateY(matrix *mat, float degree) { + float c; + float s; + + matrixLoadIdentity(mat); + + if (degree <= 0) { + return mat; + } + + c = cos(degree * DEG2RAD); + s = sin(degree * DEG2RAD); + + mat->data[0] = c; + mat->data[2] = -s; + mat->data[8] = s; + mat->data[10] = c; + + return mat; +} + +matrix *matrixRotateZ(matrix *mat, float degree) { + float c; + float s; + + matrixLoadIdentity(mat); + + if (degree <= 0) { + return mat; + } + + c = cos(degree * DEG2RAD); + s = sin(degree * DEG2RAD); + + mat->data[0] = c; + mat->data[1] = s; + mat->data[4] = -s; + mat->data[5] = c; + + return mat; +} + +matrix *matrixScale(matrix *mat, float x, float y, float z) { + matrixLoadIdentity(mat); + mat->data[0] = x; + mat->data[5] = y; + mat->data[10] = z; + return mat; +} + +float *matrixTransformVector(matrix *mat, float *vec) { + float x = (vec[0] * mat->data[0]) + + (vec[1] * mat->data[4]) + (vec[2] * mat->data[8]) + mat->data[12]; + float y = (vec[0] * mat->data[1]) + + (vec[1] * mat->data[5]) + (vec[2] * mat->data[9]) + mat->data[13]; + float z = (vec[0] * mat->data[2]) + + (vec[1] * mat->data[6]) + (vec[2] * mat->data[10]) + mat->data[14]; + vec[0] = x; + vec[1] = y; + vec[2] = z; + return vec; +} + +matrix *matrixAppend(matrix *mat, matrix *matB) { + matrix structMatA; + matrix *matA = &structMatA; + + memcpy(matA, mat, sizeof(matrix)); + + mat->data[0] = matA->data[0] * matB->data[0] + + matA->data[4] * matB->data[1] + + matA->data[8] * matB->data[2] + + matA->data[12] * matB->data[3]; + mat->data[4] = matA->data[0] * matB->data[4] + + matA->data[4] * matB->data[5] + + matA->data[8] * matB->data[6] + + matA->data[12] * matB->data[7]; + mat->data[8] = matA->data[0] * matB->data[8] + + matA->data[4] * matB->data[9] + + matA->data[8] * matB->data[10] + + matA->data[12] * matB->data[11]; + mat->data[12] = matA->data[0] * matB->data[12] + + matA->data[4] * matB->data[13] + + matA->data[8] * matB->data[14] + + matA->data[12] * matB->data[15]; + + mat->data[1] = matA->data[1] * matB->data[0] + + matA->data[5] * matB->data[1] + + matA->data[9] * matB->data[2] + + matA->data[13] * matB->data[3]; + mat->data[5] = matA->data[1] * matB->data[4] + + matA->data[5] * matB->data[5] + + matA->data[9] * matB->data[6] + + matA->data[13] * matB->data[7]; + mat->data[9] = matA->data[1] * matB->data[8] + + matA->data[5] * matB->data[9] + + matA->data[9] * matB->data[10] + + matA->data[13] * matB->data[11]; + mat->data[13] = matA->data[1] * matB->data[12] + + matA->data[5] * matB->data[13] + + matA->data[9] * matB->data[14] + + matA->data[13] * matB->data[15]; + + mat->data[2] = matA->data[2] * matB->data[0] + + matA->data[6] * matB->data[1] + + matA->data[10] * matB->data[2] + + matA->data[14] * matB->data[3]; + mat->data[6] = matA->data[2] * matB->data[4] + + matA->data[6] * matB->data[5] + + matA->data[10] * matB->data[6] + + matA->data[14] * matB->data[7]; + mat->data[10] = matA->data[2] * matB->data[8] + + matA->data[6] * matB->data[9] + + matA->data[10] * matB->data[10] + + matA->data[14] * matB->data[11]; + mat->data[14] = matA->data[2] * matB->data[12] + + matA->data[6] * matB->data[13] + + matA->data[10] * matB->data[14] + + matA->data[14] * matB->data[15]; + + mat->data[3] = matA->data[3] * matB->data[0] + + matA->data[7] * matB->data[1] + + matA->data[11] * matB->data[2] + + matA->data[15] * matB->data[3]; + mat->data[7] = matA->data[3] * matB->data[4] + + matA->data[7] * matB->data[5] + + matA->data[11] * matB->data[6] + + matA->data[15] * matB->data[7]; + mat->data[11] = matA->data[3] * matB->data[8] + + matA->data[7] * matB->data[9] + + matA->data[11] * matB->data[10] + + matA->data[15] * matB->data[11]; + mat->data[15] = matA->data[3] * matB->data[12] + + matA->data[7] * matB->data[13] + + matA->data[11] * matB->data[14] + + matA->data[15] * matB->data[15]; + + return mat; +} + diff --git a/src/matrix.h b/src/matrix.h new file mode 100644 index 00000000..87107f71 --- /dev/null +++ b/src/matrix.h @@ -0,0 +1,19 @@ +#ifndef __MATRIX_H__ +#define __MATRIX_H__ + +// Modified from http://wiki.unity3d.com/index.php?title=Matrix + +typedef struct matrix { + float data[16]; +} matrix; + +matrix *matrixLoadIdentity(matrix *mat); +matrix *matrixTranslate(matrix *mat, float x, float y, float z); +matrix *matrixRotateX(matrix *mat, float degree); +matrix *matrixRotateY(matrix *mat, float degree); +matrix *matrixRotateZ(matrix *mat, float degree); +matrix *matrixScale(matrix *mat, float x, float y, float z); +float *matrixTransformVector(matrix *mat, float *vec); +matrix *matrixAppend(matrix *mat, matrix *matB); + +#endif diff --git a/src/render.cpp b/src/render.cpp new file mode 100644 index 00000000..4293474c --- /dev/null +++ b/src/render.cpp @@ -0,0 +1,160 @@ +#include +#include +#include +#include +#include "render.h" +#include "draw.h" +#include "bmesh.h" +#include "matrix.h" + +static int drawBmeshNode(bmesh *bm, bmeshNode *node) { + float color1[3] = {1, 0, 0}; + glColor3fv(color1); + drawSphere(&node->position, node->radius, 3); + return 0; +} + +static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { + float color2[3] = {0, 0, 1}; + glColor3fv(color2); + bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); + bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); + drawCylinder(&firstNode->position, &secondNode->position, 0.04, 40); + return 0; +} + +Render::Render(QWidget *parent) + : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(update())); + timer->start(100); + + mouseX = 0; + mouseY = 0; + cameraAngleX = 50; + cameraAngleY = 70; + cameraDistance = 3; +} + +Render::~Render(void) { +} + +void Render::initializeGL() { + glShadeModel(GL_SMOOTH); + glEnable(GL_CULL_FACE); + glEnable(GL_BLEND); + + qglClearColor(QWidget::palette().color(QWidget::backgroundRole())); + glClearDepth(1.0f); + + GLfloat ambientLight[] = {0.0f, 0.0f, 0.0f, 1.0f}; + GLfloat diffuseLight[] = {0.9f, 0.9f, 0.9f, 1.0f}; + GLfloat specularLight[] = {1, 1, 1, 1}; + glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight); + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight); + glLightfv(GL_LIGHT0, GL_SPECULAR, specularLight); + + float lightDirection[4] = {0, 0, 1, 0}; + glLightfv(GL_LIGHT0, GL_POSITION, lightDirection); + + glEnable(GL_LIGHT0); + + float shininess = 64.0f; + float specularColor[] = {1.0, 1.0f, 1.0f, 1.0f}; + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); // range 0 ~ 128 + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specularColor); + + glClearStencil(0); + glClearDepth(1.0f); + glDepthFunc(GL_LEQUAL); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHTING); + glEnable(GL_CULL_FACE); + + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); +} + +void Render::paintGL() { + static bmesh *bm = 0; + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glPushMatrix(); + + glTranslatef(0, 0, -cameraDistance); + glRotatef(cameraAngleX, 1, 0, 0); + glRotatef(cameraAngleY, 0, 1, 0); + + drawGrid(10, 1); + + glEnable(GL_LIGHTING); + + if (0 == bm) { + bmeshNode node; + bmeshEdge edge; + bm = bmeshCreate(); + + memset(&node, 0, sizeof(node)); + node.position.x = -1.0; + node.position.y = 0.3; + node.position.z = 1.0; + node.radius = 0.45; + bmeshAddNode(bm, &node); + + memset(&node, 0, sizeof(node)); + node.position.x = -0.5; + node.position.y = 0.2; + node.position.z = 0.5; + node.radius = 0.1; + bmeshAddNode(bm, &node); + + memset(&edge, 0, sizeof(edge)); + edge.firstNode = 1; + edge.secondNode = 0; + bmeshAddEdge(bm, &edge); + } + + { + int index; + for (index = 0; index < bmeshGetNodeNum(bm); ++index) { + bmeshNode *node = bmeshGetNode(bm, index); + drawBmeshNode(bm, node); + } + for (index = 0; index < bmeshGetEdgeNum(bm); ++index) { + bmeshEdge *edge = bmeshGetEdge(bm, index); + drawBmeshEdge(bm, edge); + } + } + + glPopMatrix(); +} + +void Render::resizeGL(int w, int h) { + glViewport(0, 0, (GLsizei)w, (GLsizei)h); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-2, 2, -1.5, 1.5, 1, 1000); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + +void Render::mousePressEvent(QMouseEvent *event) { + mouseX = event->x(); + mouseY = event->y(); +} + +void Render::mouseMoveEvent(QMouseEvent *event) { + cameraAngleY += (event->x() - mouseX); + cameraAngleX += (event->y() - mouseY); + update(); + mouseX = event->x(); + mouseY = event->y(); +} + +void Render::wheelEvent(QWheelEvent * event) { + cameraDistance -= event->delta() * 0.01f; +} diff --git a/src/render.h b/src/render.h new file mode 100644 index 00000000..ff2f9665 --- /dev/null +++ b/src/render.h @@ -0,0 +1,29 @@ +#ifndef RENDER_H +#define RENDER_H + +#include + +class Render : public QGLWidget { + Q_OBJECT + +public: + Render(QWidget *parent = 0); + ~Render(void); + +protected: + void initializeGL(void); + void paintGL(void); + void resizeGL(int width, int height); + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void wheelEvent(QWheelEvent * event); + +private: + int mouseX; + int mouseY; + float cameraAngleX; + float cameraAngleY; + float cameraDistance; +}; + +#endif diff --git a/src/vector3d.c b/src/vector3d.c new file mode 100644 index 00000000..1be5570f --- /dev/null +++ b/src/vector3d.c @@ -0,0 +1,40 @@ +#include "vector3d.h" + +float vec3Length(vec3 *p) { + double mag; + mag = p->x * p->x + p->y * p->y + p->z * p->z; + return sqrt(mag); +} + +void vec3Normalize(vec3 *p) { + double mag; + mag = p->x * p->x + p->y * p->y + p->z * p->z; + if (mag != 0.0) { + mag = 1.0 / sqrt(mag); + p->x *= mag; + p->y *= mag; + p->z *= mag; + } +} + +void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid) { + mid->x = (a->x + b->x) * 0.5; + mid->y = (a->y + b->y) * 0.5; + mid->z = (a->z + b->z) * 0.5; +} + +void vec3Sub(vec3 *a, vec3 *b, vec3 *result) { + result->x = a->x - b->x; + result->y = a->y - b->y; + result->z = a->z - b->z; +} + +void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result) { + result->x = a->y * b->z - a->z * b->y; + result->y = a->z * b->x - a->x * b->z; + result->z = a->x * b->y - a->y * b->x; +} + +float vec3DotProduct(vec3 *a, vec3 *b) { + return a->x * b->x + a->y * b->y + a->z * b->z; +} diff --git a/src/vector3d.h b/src/vector3d.h new file mode 100644 index 00000000..67f8d5c3 --- /dev/null +++ b/src/vector3d.h @@ -0,0 +1,25 @@ +#ifndef VECTOR_3D_H +#define VECTOR_3D_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + float x; + float y; + float z; +} vec3; + +void vec3Normalize(vec3 *p); +void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid); +void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result); +void vec3Sub(vec3 *a, vec3 *b, vec3 *result); +float vec3DotProduct(vec3 *a, vec3 *b); +float vec3Length(vec3 *p); + +#ifdef __cplusplus +} +#endif + +#endif From f2bc4417e0d86b7c6786e15f794cade2cdbdb3cc Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 20 Dec 2016 00:48:23 +0930 Subject: [PATCH 07/61] Add missing modifies --- README.md | 9 ++- build/dust3d.pro | 18 ++++-- src/drawcommon.c | 20 ------ src/drawsphere.c | 106 ------------------------------- src/drawsphere.h | 15 ----- src/glwidget.cpp | 162 ----------------------------------------------- src/glwidget.h | 22 ------- 7 files changed, 20 insertions(+), 332 deletions(-) delete mode 100644 src/drawcommon.c delete mode 100644 src/drawsphere.c delete mode 100644 src/drawsphere.h delete mode 100644 src/glwidget.cpp delete mode 100644 src/glwidget.h diff --git a/README.md b/README.md index dbf3ee2a..04737b6a 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,14 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 19, 2016) +*Drawing Skeletal Shape Balls* +Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. +Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. +*Camera Control* +Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform.html) is a good article which explained the theory of OpenGL Transformation. Most important is the demo apps all are very beautiful. + +Added x,z axis, looks better than last screenshot. - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/build/dust3d.pro b/build/dust3d.pro index fd47d561..5c8eef14 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -8,11 +8,17 @@ INCLUDEPATH += ../src SOURCES += main.cpp \ mainwindow.cpp \ - glwidget.cpp \ - drawcommon.c \ - drawsphere.c + render.cpp \ + vector3d.c \ + draw.cpp \ + array.c \ + bmesh.c \ + matrix.c HEADERS += mainwindow.h \ - glwidget.h \ - drawcommon.h \ - drawsphere.h \ No newline at end of file + render.h \ + vector3d.h \ + draw.h \ + array.h \ + bmesh.h \ + matrix.h \ No newline at end of file diff --git a/src/drawcommon.c b/src/drawcommon.c deleted file mode 100644 index 8f31acd8..00000000 --- a/src/drawcommon.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "drawcommon.h" -#include - -void normalize(point *p) { - double mag; - mag = p->x * p->x + p->y * p->y + p->z * p->z; - if (mag != 0.0) { - mag = 1.0 / sqrt(mag); - p->x *= mag; - p->y *= mag; - p->z *= mag; - } -} - -void midpoint(point *a, point *b, point *mid) { - mid->x = (a->x + b->x) * 0.5; - mid->y = (a->y + b->y) * 0.5; - mid->z = (a->z + b->z) * 0.5; -} - diff --git a/src/drawsphere.c b/src/drawsphere.c deleted file mode 100644 index 02f825b1..00000000 --- a/src/drawsphere.c +++ /dev/null @@ -1,106 +0,0 @@ -#include "drawcommon.h" -#include "drawsphere.h" -#include -#include -#include - -/* - * This function modified from [Jon Leech's implementation of sphere](ftp://ftp.ee.lbl.gov/sphere.c) - * Jeremy HU (huxingyi@msn.com) 2016/12/16 -*/ - -#define XPLUS { 1, 0, 0 } /* X */ -#define XMIN { -1, 0, 0 } /* -X */ -#define YPLUS { 0, 1, 0 } /* Y */ -#define YMIN { 0, -1, 0 } /* -Y */ -#define ZPLUS { 0, 0, 1 } /* Z */ -#define ZMIN { 0, 0, -1 } /* -Z */ - -static const triangle octahedron[] = { - {{XPLUS, ZPLUS, YPLUS}}, - {{YPLUS, ZPLUS, XMIN}}, - {{XMIN, ZPLUS, YMIN}}, - {{YMIN, ZPLUS, XPLUS}}, - {{XPLUS, YPLUS, ZMIN}}, - {{YPLUS, XMIN, ZMIN}}, - {{XMIN, YMIN, ZMIN}}, - {{YMIN, XPLUS, ZMIN}}, -}; - -static void subdivide(object *old, object *subdivided) { - int i; - for (i = 0; i < old->npoly; ++i) { - triangle *oldt = &old->poly[i]; - triangle *newt = &subdivided->poly[i * 4]; - point a, b, c; - - midpoint(&oldt->pt[0], &oldt->pt[2], &a); - midpoint(&oldt->pt[0], &oldt->pt[1], &b); - midpoint(&oldt->pt[1], &oldt->pt[2], &c); - - normalize(&a); - normalize(&b); - normalize(&c); - - newt->pt[0] = oldt->pt[0]; - newt->pt[1] = b; - newt->pt[2] = a; - newt++; - - newt->pt[0] = b; - newt->pt[1] = oldt->pt[1]; - newt->pt[2] = c; - newt++; - - newt->pt[0] = a; - newt->pt[1] = b; - newt->pt[2] = c; - newt++; - - newt->pt[0] = a; - newt->pt[1] = c; - newt->pt[2] = oldt->pt[2]; - } -} - -int drawSphere(int level) { - int lv, i; - object oldObj, newObj; - - if (level < 1) { - fprintf(stderr, "%s:level max greater than 0.\n", __FUNCTION__); - return -1; - } - - oldObj.npoly = sizeof(octahedron) / sizeof(octahedron[0]); - oldObj.poly = (triangle *)malloc(oldObj.npoly * sizeof(triangle)); - if (!oldObj.poly) { - fprintf(stderr, "%s:insufficient memory.\n", __FUNCTION__); - return -1; - } - memcpy(oldObj.poly, octahedron, oldObj.npoly * sizeof(triangle)); - - for (lv = 0; lv < level; lv++) { - newObj.npoly = oldObj.npoly * 4; - newObj.poly = (triangle *)malloc(newObj.npoly * sizeof(triangle)); - if (!newObj.poly) { - fprintf(stderr, "%s:insufficient memory(levelLoop:%d).\n", - __FUNCTION__, lv); - free(oldObj.poly); - return -1; - } - - subdivide(&oldObj, &newObj); - - free(oldObj.poly); - oldObj = newObj; - } - - for (i = 0; i < newObj.npoly; ++i) { - drawTriangle(&newObj.poly[i]); - } - - free(newObj.poly); - - return 0; -} diff --git a/src/drawsphere.h b/src/drawsphere.h deleted file mode 100644 index 3d6a9929..00000000 --- a/src/drawsphere.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef DRAW_SPHERE_H -#define DRAW_SPHERE_H -#include "drawcommon.h" - -#ifdef __cplusplus -extern "C" { -#endif - -int drawSphere(int level); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/glwidget.cpp b/src/glwidget.cpp deleted file mode 100644 index ffdedcef..00000000 --- a/src/glwidget.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include "glwidget.h" -#include "drawcommon.h" -#include "drawsphere.h" - -void drawTriangle(triangle *poly) { - int i; - glBegin(GL_TRIANGLES); - for (i = 0; i < 3; ++i) { - point *pt = &poly->pt[i]; - glNormal3f(pt->x, pt->y, pt->z); - glVertex3f(pt->x, pt->y, pt->z); - } - glEnd(); -} - -int drawCylinder(int slices, float radius, float height) { - float theta = (2.0 * M_PI) / (float)slices; - float a = 0.0f; - int lv; - float halfHeight = height / 2; - float x, y, z; - - if (slices <= 0) { - fprintf(stderr, "%s:Invalid parameter(slices:%d).\n", __FUNCTION__, slices); - return -1; - } - - // strips - glBegin(GL_TRIANGLE_STRIP); - for (a = 0, lv = 0; lv <= slices; ++lv) { - float cosa = cos(a); - float sina = sin(a); - x = cosa * radius; - y = sina * radius; - z = -halfHeight; - glNormal3f(cosa, sina, 0); - glVertex3f(x, y, z); - z = halfHeight; - glNormal3f(cosa, sina, 0); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); - - // bottom cap - z = -halfHeight; - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0, 0, -1); - glVertex3f(0, 0, z); - for (a = 0, lv = 0; lv <= slices; ++lv) { - x = cos(a) * radius; - y = sin(a) * radius; - glNormal3f(0, 0, -1); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); - - // top cap - z = halfHeight; - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0, 0, 1); - glVertex3f(0, 0, z); - for (a = 0, lv = 0; lv <= slices; ++lv) { - x = cos(a) * radius; - y = sin(a) * radius; - glNormal3f(0, 0, 1); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); - - return 0; -} - -GLWidget::GLWidget(QWidget *parent) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { - QTimer *timer = new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(update())); - timer->start(100); -} - -GLWidget::~GLWidget() { -} - -void GLWidget::initializeGL() { - GLfloat mat_ambient[] = { 0.0 , 0.0 , 0.0 , 1.0 }; - GLfloat mat_diffuse[] = { 0.55 , 0.55 , 0.55 , 1.0 }; - GLfloat mat_specular[] = {0.7 , 0.7 , 0.7, 1.0 }; - GLfloat mat_shininess[] = { 32 }; - - GLfloat light_diffuse[] = { 1.0 , 1.0 , 1.0 , 1.0 }; - GLfloat light_specular[] = { 1.0 , 1.0 , 1.0 , 1.0 }; - GLfloat light_ambient[] = { 0.2 , 0.2 , 0.2 , 1.0 }; - GLfloat light_position[] = { -1,1,1 , 0 }; - - glClearColor(0.0, 0.0, 0.0, 0.0); - glShadeModel(GL_SMOOTH); - - glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); - glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); - - glLightfv(GL_LIGHT0 , GL_POSITION , light_position); - glLightfv(GL_LIGHT0 , GL_DIFFUSE , light_diffuse); - glLightfv(GL_LIGHT0 , GL_AMBIENT , light_ambient); - glLightfv(GL_LIGHT0 , GL_SPECULAR , light_specular); - - glDepthFunc(GL_LESS); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); -} - -void GLWidget::paintGL() { - static int angle = 0; - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glBegin(GL_LINES); - for (GLfloat i = -2.5; i <= 2.5; i += 0.25) { - glVertex3f(i, 0, 2.5); glVertex3f(i, 0, -2.5); - glVertex3f(2.5, 0, i); glVertex3f(-2.5, 0, i); - } - glEnd(); - - drawSphere(4); - - glPushMatrix(); - glRotatef(angle, 1, 1, 0); - angle = (angle + 1) % 360; - drawCylinder(40, 0.2, 2.1); - glPopMatrix(); -} - -void GLWidget::resizeGL(int w, int h) { - glViewport(0, 0, (GLsizei)w, (GLsizei)h); - - glClearColor(0.92, 0.92, 0.92, 1.0); - glColor3f(1.0, 1.0, 1.0); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-2, 2, -1.5, 1.5, 1, 10); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0, 0, -2); - glRotatef(50, 1, 0, 0); - glRotatef(70, 0, 1, 0); -} - -void GLWidget::mousePressEvent(QMouseEvent *event) { -} - -void GLWidget::mouseMoveEvent(QMouseEvent *event) { -} diff --git a/src/glwidget.h b/src/glwidget.h deleted file mode 100644 index e18370b0..00000000 --- a/src/glwidget.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef GLWIDGET_H -#define GLWIDGET_H - -#include - -class GLWidget : public QGLWidget -{ - Q_OBJECT - -public: - GLWidget(QWidget *parent = 0); - ~GLWidget(); - -protected: - void initializeGL(); - void paintGL(); - void resizeGL(int width, int height); - void mousePressEvent(QMouseEvent *event); - void mouseMoveEvent(QMouseEvent *event); -}; - -#endif From edeec37d01fa5cf1a0f08db41c683675b5428e5e Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 20 Dec 2016 08:40:31 +0930 Subject: [PATCH 08/61] Use glu to draw primitives --- README.md | 5 +- screenshot/dust3d_node_edge_with_glu.png | Bin 0 -> 103209 bytes src/draw.cpp | 161 +++-------------------- src/draw.h | 6 +- src/drawcommon.h | 25 ---- src/render.cpp | 28 ++-- 6 files changed, 38 insertions(+), 187 deletions(-) create mode 100644 screenshot/dust3d_node_edge_with_glu.png delete mode 100644 src/drawcommon.h diff --git a/README.md b/README.md index 04737b6a..67fbd5f9 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,10 @@ Now, for just beginning, I think it's a not bad start. Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. *Camera Control* -Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform.html) is a good article which explained the theory of OpenGL Transformation. Most important is the demo apps all are very beautiful. - +Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform.html) is a good article which explained the theory of OpenGL Transformation. Most important is that the demo app is very beautiful. Added x,z axis, looks better than last screenshot. +I have to use the GLU library, the previous implementation of drawSphere and drawCylinder looks not good, and take too much time to debug. + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/screenshot/dust3d_node_edge_with_glu.png b/screenshot/dust3d_node_edge_with_glu.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb959b316230d2eb6150047b3e96e4bdb13336c GIT binary patch literal 103209 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

5^OE$* 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

O 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 VGcNzocfh|t^o=fN|L$<>{{ebLbshi! literal 0 HcmV?d00001 diff --git a/src/draw.cpp b/src/draw.cpp index d6b91f2f..953c5bb2 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -3,110 +3,28 @@ #include #include #include +#ifdef __APPLE__ +#include +#else +#include +#endif #include "draw.h" -/* - * This drawSphere function modified from [Jon Leech's implementation of sphere](ftp://ftp.ee.lbl.gov/sphere.c) - * Jeremy HU (huxingyi@msn.com) 2016/12/16 -*/ +static GLUquadricObj *quadricId = 0; -#define XPLUS { 1, 0, 0 } /* X */ -#define XMIN { -1, 0, 0 } /* -X */ -#define YPLUS { 0, 1, 0 } /* Y */ -#define YMIN { 0, -1, 0 } /* -Y */ -#define ZPLUS { 0, 0, 1 } /* Z */ -#define ZMIN { 0, 0, -1 } /* -Z */ - -static const triangle octahedron[] = { - {{XPLUS, ZPLUS, YPLUS}}, - {{YPLUS, ZPLUS, XMIN}}, - {{XMIN, ZPLUS, YMIN}}, - {{YMIN, ZPLUS, XPLUS}}, - {{XPLUS, YPLUS, ZMIN}}, - {{YPLUS, XMIN, ZMIN}}, - {{XMIN, YMIN, ZMIN}}, - {{YMIN, XPLUS, ZMIN}}, -}; - -static void subdivide(object *old, object *subdivided) { - int i; - for (i = 0; i < old->npoly; ++i) { - triangle *oldt = &old->poly[i]; - triangle *newt = &subdivided->poly[i * 4]; - vec3 a, b, c; - - vec3Midpoint(&oldt->pt[0], &oldt->pt[2], &a); - vec3Midpoint(&oldt->pt[0], &oldt->pt[1], &b); - vec3Midpoint(&oldt->pt[1], &oldt->pt[2], &c); - - vec3Normalize(&a); - vec3Normalize(&b); - vec3Normalize(&c); - - newt->pt[0] = oldt->pt[0]; - newt->pt[1] = b; - newt->pt[2] = a; - newt++; - - newt->pt[0] = b; - newt->pt[1] = oldt->pt[1]; - newt->pt[2] = c; - newt++; - - newt->pt[0] = a; - newt->pt[1] = b; - newt->pt[2] = c; - newt++; - - newt->pt[0] = a; - newt->pt[1] = c; - newt->pt[2] = oldt->pt[2]; +int drawInit(void) { + if (0 == quadricId) { + quadricId = gluNewQuadric(); + gluQuadricDrawStyle(quadricId, GLU_FILL); } + return 0; } -int drawSphere(vec3 *origin, float radius, int level) { - int lv, i; - object oldObj, newObj; - - if (level < 1) { - fprintf(stderr, "%s:level max greater than 0.\n", __FUNCTION__); - return -1; - } - - oldObj.npoly = sizeof(octahedron) / sizeof(octahedron[0]); - oldObj.poly = (triangle *)malloc(oldObj.npoly * sizeof(triangle)); - if (!oldObj.poly) { - fprintf(stderr, "%s:insufficient memory.\n", __FUNCTION__); - return -1; - } - memcpy(oldObj.poly, octahedron, oldObj.npoly * sizeof(triangle)); - - for (lv = 0; lv < level; lv++) { - newObj.npoly = oldObj.npoly * 4; - newObj.poly = (triangle *)malloc(newObj.npoly * sizeof(triangle)); - if (!newObj.poly) { - fprintf(stderr, "%s:insufficient memory(levelLoop:%d).\n", - __FUNCTION__, lv); - free(oldObj.poly); - return -1; - } - - subdivide(&oldObj, &newObj); - - free(oldObj.poly); - oldObj = newObj; - } - +int drawSphere(vec3 *origin, float radius, int slices, int stacks) { glPushMatrix(); glTranslatef(origin->x, origin->y, origin->z); - glScalef(radius, radius, radius); - for (i = 0; i < newObj.npoly; ++i) { - drawTriangle(&newObj.poly[i]); - } + gluSphere(quadricId, radius, slices, stacks); glPopMatrix(); - - free(newObj.poly); - return 0; } @@ -121,11 +39,8 @@ void drawTriangle(triangle *poly) { glEnd(); } -int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices) { - float theta = (2.0 * M_PI) / (float)slices; - float a = 0.0f; - int lv; - float x, y, z; +int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, + int stacks) { vec3 zAxis = {0, 0, 1}; vec3 p, t; float height = 0; @@ -148,51 +63,7 @@ int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices) glTranslatef(bottomOrigin->x, bottomOrigin->y, bottomOrigin->z); glRotatef(angle, t.x, t.y, t.z); - - // strips - glBegin(GL_TRIANGLE_STRIP); - for (a = 0, lv = 0; lv <= slices; ++lv) { - float cosa = cos(a); - float sina = sin(a); - x = cosa * radius; - y = sina * radius; - z = 0; - glNormal3f(cosa, sina, 0); - glVertex3f(x, y, z); - z = height; - glNormal3f(cosa, sina, 0); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); - - // bottom cap - z = 0; - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0, 0, -1); - glVertex3f(0, 0, z); - for (a = 0, lv = 0; lv <= slices; ++lv) { - x = cos(a) * radius; - y = sin(a) * radius; - glNormal3f(0, 0, -1); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); - - // top cap - z = height; - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0, 0, 1); - glVertex3f(0, 0, z); - for (a = 0, lv = 0; lv <= slices; ++lv) { - x = cos(a) * radius; - y = sin(a) * radius; - glNormal3f(0, 0, 1); - glVertex3f(x, y, z); - a += theta; - } - glEnd(); + gluCylinder(quadricId, radius, radius, height, slices, stacks); glPopMatrix(); diff --git a/src/draw.h b/src/draw.h index 243c1d9d..257d6020 100644 --- a/src/draw.h +++ b/src/draw.h @@ -15,9 +15,11 @@ typedef struct { triangle *poly; } object; -int drawSphere(vec3 *origin, float radius, int level); +int drawInit(void); +int drawSphere(vec3 *origin, float radius, int slices, int stacks); void drawTriangle(triangle *poly); -int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices); +int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, + int stacks); int drawGrid(float size, float step); #ifdef __cplusplus diff --git a/src/drawcommon.h b/src/drawcommon.h deleted file mode 100644 index 38de7647..00000000 --- a/src/drawcommon.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef DRAW_COMMON_H -#define DRAW_COMMON_H -#include "vector3d.h" - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - vec3 pt[3]; -} triangle; - -typedef struct { - int npoly; - triangle *poly; -} object; - -void drawTriangle(triangle *poly); -int drawCylinder(int slices, float radius, float height); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/render.cpp b/src/render.cpp index 4293474c..24b1c6a4 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -10,7 +10,7 @@ static int drawBmeshNode(bmesh *bm, bmeshNode *node) { float color1[3] = {1, 0, 0}; glColor3fv(color1); - drawSphere(&node->position, node->radius, 3); + drawSphere(&node->position, node->radius, 36, 24); return 0; } @@ -19,7 +19,7 @@ static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { glColor3fv(color2); bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); - drawCylinder(&firstNode->position, &secondNode->position, 0.04, 40); + drawCylinder(&firstNode->position, &secondNode->position, 0.1, 36, 24); return 0; } @@ -31,8 +31,8 @@ Render::Render(QWidget *parent) mouseX = 0; mouseY = 0; - cameraAngleX = 50; - cameraAngleY = 70; + cameraAngleX = 45; + cameraAngleY = -45; cameraDistance = 3; } @@ -74,6 +74,8 @@ void Render::initializeGL() { glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); glEnable(GL_COLOR_MATERIAL); + + drawInit(); } void Render::paintGL() { @@ -97,17 +99,17 @@ void Render::paintGL() { bm = bmeshCreate(); memset(&node, 0, sizeof(node)); - node.position.x = -1.0; - node.position.y = 0.3; - node.position.z = 1.0; - node.radius = 0.45; + node.position.x = 0; + node.position.y = 0; + node.position.z = 3; + node.radius = 0.5; bmeshAddNode(bm, &node); memset(&node, 0, sizeof(node)); - node.position.x = -0.5; - node.position.y = 0.2; - node.position.z = 0.5; - node.radius = 0.1; + node.position.x = 1; + node.position.y = 0; + node.position.z = 2; + node.radius = 0.5; bmeshAddNode(bm, &node); memset(&edge, 0, sizeof(edge)); @@ -136,7 +138,7 @@ void Render::resizeGL(int w, int h) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); - glFrustum(-2, 2, -1.5, 1.5, 1, 1000); + glFrustum(-2, 2, -1.5, 1.5, 1, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); From b6af60f08c7f58672949066947d7a87e07d5489e Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 20 Dec 2016 19:23:13 +0930 Subject: [PATCH 09/61] Add drawText. Add bmesh test data. --- README.md | 3 ++ data/bmesh_test_1.blend | Bin 0 -> 483740 bytes data/bmesh_test_1.h | 12 +++++ screenshot/dust3d_bmesh_nodes.png | Bin 0 -> 156460 bytes src/draw.cpp | 14 +++--- src/draw.h | 7 +++ src/render.cpp | 71 +++++++++++++++++------------- 7 files changed, 72 insertions(+), 35 deletions(-) create mode 100644 data/bmesh_test_1.blend create mode 100644 data/bmesh_test_1.h create mode 100644 screenshot/dust3d_bmesh_nodes.png diff --git a/README.md b/README.md index 67fbd5f9..6de8f926 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform. Added x,z axis, looks better than last screenshot. I have to use the GLU library, the previous implementation of drawSphere and drawCylinder looks not good, and take too much time to debug. +*B-Mesh data struct* +I created the test nodes's geometry information from Blender. Here is the render result of `data/bmesh_test_1.h` + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/data/bmesh_test_1.blend b/data/bmesh_test_1.blend new file mode 100644 index 0000000000000000000000000000000000000000..ccf66f282a9e462795aa6511272c2997386c39f0 GIT binary patch literal 483740 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ţBXq}x5HHdy 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 literal 0 HcmV?d00001 diff --git a/data/bmesh_test_1.h b/data/bmesh_test_1.h new file mode 100644 index 00000000..32df44ff --- /dev/null +++ b/data/bmesh_test_1.h @@ -0,0 +1,12 @@ +const float bmeshTest1Nodes[][4] = { + {0, -2.07575, 1.53902, 0.04122}, {1, 2.40837, 2.34882, 0.48585}, + {2, -0.91403, 0.77069, 0.62299}, {3, 2.25224, 0.74973, 0.85115}, + {4, 0, 0, 0}, + {5, 0.00920, -0.66115, -2.04601}, + {6, 0.01726, -0.88224, -2.87471} +}; + +const int bmeshTest1Edges[][2] = { + {0, 2}, {2, 4}, {4, 3}, {3, 1}, + {4, 5}, {5, 6} +}; diff --git a/screenshot/dust3d_bmesh_nodes.png b/screenshot/dust3d_bmesh_nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0b24998a7b4c4e359016bac5cc21c4b8051aa9 GIT binary patch literal 156460 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

&V9g7erd9tnUnW7{?H~1r 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 F{{b=Il*Rx6 literal 0 HcmV?d00001 diff --git a/src/draw.cpp b/src/draw.cpp index 953c5bb2..ff7b8ce3 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -3,11 +3,7 @@ #include #include #include -#ifdef __APPLE__ -#include -#else -#include -#endif +#include #include "draw.h" static GLUquadricObj *quadricId = 0; @@ -92,3 +88,11 @@ int drawGrid(float size, float step) { glEnable(GL_LIGHTING); return 0; } + +int drawPrintf(int x, int y, const char *fmt, ...) { + va_list args; + char text[1024]; + va_start(args, fmt); + vsnprintf(text, sizeof(text), fmt, args); + return drawText(x, y, text); +} diff --git a/src/draw.h b/src/draw.h index 257d6020..a3acb605 100644 --- a/src/draw.h +++ b/src/draw.h @@ -1,6 +1,11 @@ #ifndef DRAW_SPHERE_H #define DRAW_SPHERE_H #include "vector3d.h" +#ifdef __APPLE__ +#include +#else +#include +#endif #ifdef __cplusplus extern "C" { @@ -21,6 +26,8 @@ void drawTriangle(triangle *poly); int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, int stacks); int drawGrid(float size, float step); +int drawText(int x, int y, char *text); +int drawPrintf(int x, int y, const char *fmt, ...); #ifdef __cplusplus } diff --git a/src/render.cpp b/src/render.cpp index 24b1c6a4..9fd51405 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -7,6 +7,8 @@ #include "bmesh.h" #include "matrix.h" +static QGLWidget *_this = 0; + static int drawBmeshNode(bmesh *bm, bmeshNode *node) { float color1[3] = {1, 0, 0}; glColor3fv(color1); @@ -15,7 +17,7 @@ static int drawBmeshNode(bmesh *bm, bmeshNode *node) { } static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { - float color2[3] = {0, 0, 1}; + float color2[3] = {1, 1, 0}; glColor3fv(color2); bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); @@ -23,6 +25,11 @@ static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { return 0; } +int drawText(int x, int y, char *text) { + _this->renderText(x, y, QString(text)); + return 0; +} + Render::Render(QWidget *parent) : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { QTimer *timer = new QTimer(this); @@ -31,8 +38,8 @@ Render::Render(QWidget *parent) mouseX = 0; mouseY = 0; - cameraAngleX = 45; - cameraAngleY = -45; + cameraAngleX = 20; + cameraAngleY = -225; cameraDistance = 3; } @@ -43,8 +50,14 @@ void Render::initializeGL() { glShadeModel(GL_SMOOTH); glEnable(GL_CULL_FACE); glEnable(GL_BLEND); + glDepthFunc(GL_LEQUAL); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glEnable(GL_DEPTH_TEST); + glEnable(GL_LIGHTING); + glEnable(GL_CULL_FACE); qglClearColor(QWidget::palette().color(QWidget::backgroundRole())); + glClearStencil(0); glClearDepth(1.0f); GLfloat ambientLight[] = {0.0f, 0.0f, 0.0f, 1.0f}; @@ -61,26 +74,22 @@ void Render::initializeGL() { float shininess = 64.0f; float specularColor[] = {1.0, 1.0f, 1.0f, 1.0f}; - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); // range 0 ~ 128 + glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specularColor); - glClearStencil(0); - glClearDepth(1.0f); - glDepthFunc(GL_LEQUAL); - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_CULL_FACE); - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); glEnable(GL_COLOR_MATERIAL); drawInit(); } +#include "../data/bmesh_test_1.h" + void Render::paintGL() { static bmesh *bm = 0; + _this = this; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); @@ -89,6 +98,10 @@ void Render::paintGL() { glRotatef(cameraAngleX, 1, 0, 0); glRotatef(cameraAngleY, 0, 1, 0); + glColor3f(0, 0, 0); + drawPrintf(0, 10, "cameraAngleX:%f cameraAngleY:%f", cameraAngleX, + cameraAngleY); + drawGrid(10, 1); glEnable(GL_LIGHTING); @@ -96,26 +109,24 @@ void Render::paintGL() { if (0 == bm) { bmeshNode node; bmeshEdge edge; + int i; bm = bmeshCreate(); - memset(&node, 0, sizeof(node)); - node.position.x = 0; - node.position.y = 0; - node.position.z = 3; - node.radius = 0.5; - bmeshAddNode(bm, &node); + for (i = 0; i < sizeof(bmeshTest1Nodes) / sizeof(bmeshTest1Nodes[0]); ++i) { + memset(&node, 0, sizeof(node)); + node.position.x = bmeshTest1Nodes[i][1]; + node.position.y = bmeshTest1Nodes[i][2]; + node.position.z = bmeshTest1Nodes[i][3]; + node.radius = 0.35; + bmeshAddNode(bm, &node); + } - memset(&node, 0, sizeof(node)); - node.position.x = 1; - node.position.y = 0; - node.position.z = 2; - node.radius = 0.5; - bmeshAddNode(bm, &node); - - memset(&edge, 0, sizeof(edge)); - edge.firstNode = 1; - edge.secondNode = 0; - bmeshAddEdge(bm, &edge); + for (i = 0; i < sizeof(bmeshTest1Edges) / sizeof(bmeshTest1Edges[0]); ++i) { + memset(&edge, 0, sizeof(edge)); + edge.firstNode = bmeshTest1Edges[i][0]; + edge.secondNode = bmeshTest1Edges[i][1]; + bmeshAddEdge(bm, &edge); + } } { @@ -138,7 +149,7 @@ void Render::resizeGL(int w, int h) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); - glFrustum(-2, 2, -1.5, 1.5, 1, 100); + gluPerspective(60.0f, w/(h/2.0f), 1, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); From a73f351fd6fd32ee39c9490dbc5fc26a781352f4 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 20 Dec 2016 21:45:23 +0930 Subject: [PATCH 10/61] Generate inbetween nodes between bmesh key nodes --- README.md | 12 +++++---- data/bmesh_test_1.h | 12 ++++----- screenshot/dust3d_bmesh_inbetween.png | Bin 0 -> 300094 bytes screenshot/dust3d_bmesh_skeleton.png | Bin 0 -> 295215 bytes src/bmesh.c | 36 ++++++++++++++++++++++++++ src/bmesh.h | 11 ++++---- src/mainwindow.cpp | 3 ++- src/render.cpp | 32 ++++++++++++++++------- src/vector3d.c | 17 +++++++++--- src/vector3d.h | 2 ++ 10 files changed, 95 insertions(+), 30 deletions(-) create mode 100644 screenshot/dust3d_bmesh_inbetween.png create mode 100644 screenshot/dust3d_bmesh_skeleton.png diff --git a/README.md b/README.md index 6de8f926..50fd1ccd 100644 --- a/README.md +++ b/README.md @@ -21,18 +21,20 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 19, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 20, 2016) *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. *Camera Control* Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform.html) is a good article which explained the theory of OpenGL Transformation. Most important is that the demo app is very beautiful. Added x,z axis, looks better than last screenshot. -I have to use the GLU library, the previous implementation of drawSphere and drawCylinder looks not good, and take too much time to debug. - +I have to use the GLU library, the previous implementation of drawSphere and drawCylinder looks not good, and take too much time to debug. + *B-Mesh data struct* -I created the test nodes's geometry information from Blender. Here is the render result of `data/bmesh_test_1.h` - +I created the test nodes's geometry information from Blender. Here is the render result of `data/bmesh_test_1.h` + +*Generate Inbetween Nodes* + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/data/bmesh_test_1.h b/data/bmesh_test_1.h index 32df44ff..937b74fd 100644 --- a/data/bmesh_test_1.h +++ b/data/bmesh_test_1.h @@ -1,9 +1,9 @@ -const float bmeshTest1Nodes[][4] = { - {0, -2.07575, 1.53902, 0.04122}, {1, 2.40837, 2.34882, 0.48585}, - {2, -0.91403, 0.77069, 0.62299}, {3, 2.25224, 0.74973, 0.85115}, - {4, 0, 0, 0}, - {5, 0.00920, -0.66115, -2.04601}, - {6, 0.01726, -0.88224, -2.87471} +const float bmeshTest1Nodes[][6] = { + {0, -2.07575, 1.53902, 0.04122, 0.25}, {1, 2.40837, 2.34882, 0.48585, 0.3}, + {2, -0.91403, 0.77069, 0.62299, 0.5}, {3, 2.25224, 0.74973, 0.85115, 0.5}, + {4, 0, 0, 0, 0.8, 1}, + {5, 0.00920, -0.66115, -2.04601, 0.5}, + {6, 0.01726, -0.88224, -2.87471, 0.2} }; const int bmeshTest1Edges[][2] = { diff --git a/screenshot/dust3d_bmesh_inbetween.png b/screenshot/dust3d_bmesh_inbetween.png new file mode 100644 index 0000000000000000000000000000000000000000..af9b9885d3fc597537efb94fb17e15a1455b5faf GIT binary patch literal 300094 zcmeEuWn7!f)-R<<3q@M2IHgz%!ChM@P^3uF;%-3-1b25R?(XgccP&nEE$$iu1ikd^ zbKZO2?)~w8y!;;W*vy)lwf?hgCJB<05ywCyLPJ16z>xU-=_>*P(kuc3GSV}Y$0wKq zr6~vqFNjPTV1=jXUz?1a-%ziihW znB8T-?A8mUH839aR*gifH2vvdJ#mlEX2?Jj63gjt*zno!pl=Y*pmOUzee-H1DwUcj zRfL?=tdW^cGK#H4-EONy?z#VBB)+?(BU1N!Z0%pxITx>7xioQc`SeysM__&&PhTL& zwd=zDgkJ!ISU)9JF29|PqmH>2c41G6Cm><-R`9LP5?jlL-ma63U*N3oLKd-S!0! z<AlJQG5A!edTLhdy z9jPbPA5ebTopW7uam{^3(0TIa^HU8So-9IGV0`$=DjN~5r_h@$=U;QP;a?-9PmtEkHE=H5mrj_k&b^269eOpz?h=Btt6$v(xp!0OA&i@cq7qk) zcz=23_#j4r=E686)9ELa)CG3*rS)a(eA|iPo$wvC+pBMa?yWMLlV2x!0$Yaxh5tCB zSe29)%Z-@Dcm4kPCzl;dZ#?=*jejMzzXAs&Im7E9c_Ah}QL{D(|f;e;!XRV);sXvd% zrPl@3(Y*spzYgFs)7Jzp8Q;OltE^W1n~ym4#R{rs@-Y<+@DbL1U@hGYioVRE=3LVG1G!q|!%gs|Cv0f>Rn z$2Ui*+bSI(MTYd@N$_`L69iHn1ZiEFy7rg#PndpT34cHed=jLCQsT_p?_Xl<1J`*@ zhmxy zO_zI-n^jc6X%;H;DOKKz9XIS_ezvIzrkW>yX7LzW4cbx!XGZ?`;0}gjXzK@57S93w z7t&bO-6<^E42V*lUs>MNVbgc~tbAXB3G`pNCZg%Ru8iP*nZGW*_^ND_f*;>_o##r} zmAaL%yqEZ-`ii5On7qC1l?f8S8@VGETlzCa&PyYl;OCpZ0>0V4w%?D>UoF23`h+s> zyMuITM9JdA9Z?@uAFC?MFM2?EfsHCb6@@b3y&)4!QTf>^M{j~=!hJ$wLg_2h?$d8+ zB~o?Ns6V3nU2Wbpq%=pkdb`Hn#_&_+QyEijzbAOp7nw{CRxGb#``kea3jEu;FwTvPr*z^;7%DaoodarOYG+w?aq(<=*=} zt-W`9qEb8$ylVTH&8n&8%8Z0yrGQFP;a(E}DpQIm(UojdJ-X?AsZVR3< z9X?$gJ(+TI)@(UdzCp=GaralX0>wg*^lscl2CL?r7>_WIx>N3%;AY6rQN_>id*9!` zCyAwu)qHQP=)CiK$@56c7!p6>02v*3Q3@)eDe5R9EXplHRpe7dom8AWm|C0MDo`pS zRl#9n_GfvU5ZR+T%-vl-aK$d;l5)v?RFAj5*Q-f-spZz(7|*NH@~K7Z&i|SgBhSB0 zEU#BBOe_pFsXnh^3wL-fX@Pyz^ddrq^q4bEpw-|u^VFeM4q#hKSL&qJR5M?TQfpW9 zv=(_jxn|Vla-SL03}OXM@28CILUQ+=cg{dF`)QMIBZ~UYY}E;PL)Al11OP1*0+Guy zEtoBD+;Hwx?}YE1?@&>2pBnop`oK_1QJ(rY`bT4I6HgN@b40P(a7uE`n@k#=FVA*! zFFPh$XP>g+*hT9^BSx!5-{i3?$U;aU?;-m}pV*A6rK?MgQnv~ke4HAca^ZOBlbz$< z#+6f9Ktx^dL8N=%qUT_S!nox)cwBAVlJbjU=3?PuvEq0f3|g8m8hn)&Ybrq0eTMy| z=}U7(b76BdizExJg`|Zl3wn$4h4BN#1N=FTxt1z$#rC{ab=%fU(l{=k3@L0*z;kf{Y;=Y8rx#yp3B8WHxt$!xI3AMfyUu1Wj~( zw7u+}^^AjY!!d}!g;^jP*bF!1MW40bJI@-=c~7qo0qss+`QFbyW_|?vSRw;at9^jp zsKP12_`WF^x&C4SmY8n1Mr1TEfN7yJn2F7nXLsMTzq>o?BLzMSS0y;5n4n^%Jp;e% zeiy0mKA%6RDkzD33ja$)8et35wPvX7&|ZQ|WnN|0>@;^zy{R>a_3`@M+TdExa~vFe zDh-)Q=?!X5>d2_Is0%6#8CZIwuGukrfN2lJQidy0(D=HCFo~_oh$Ov`JDLOfo%Icm zpp*8Qu`*I|Fh|0xlqzaN&%?pxe)o>kwUX^~>!k+6#r(pfLc_w*iABhCE-cq2FFyYg z>gts2RL<(nT4&rm8rr{@%#(tbu9W^|L}o;=S7p`sY;s$PQ|{30wSEGuj+xFR_3 zi+}R8`E@go8#GKZ{pU46ODD^6BHU&1F zIS9;=f}0KrwzbVJOpe|yK@FKa%IkTHuFb;~z6=YNx)lS*)#NQ!?oDs_u&zi=imFQ% zzKs?z2|U9L#uR+ufX^fc2xHZf*$Zkobno=XWuIqLV|?yf^!MsL7qeE-Q<$mzp`r=)9`Sf2>8B>QfqZ?&3 zV9n0gNh`I`8J}|P)|c+t`$h-D3*fw^S1VhK?)J3%BgIW{hkzqMt8BgY*@xYaaFNmg zC69zVc_w>Y^5ctrOAp+;9WAV;?Vk0;zI2z6w6U}pp(!^t=+MPCDeVv1+t9*M7wuz9X{5gd!m}uv zJS31Kmk4v8-O@5NWlJEZXKb$|NPAs0Rf--_x}@#uT&=p2v5>Y6;(m1U!-~Utt=RI4XpGG867RY zKbA&7;CJMGytFU`=~6gam|NQNItoz!s|4@k_3y__lobCe0s;z9s(z895V5i`q~Ks= zXJn=nM5Caf;I}a_;{Ezb?BCTN?*u4KK%nouOiT_A4vY?Lj8-3?WHR^|WwlvmEw(a>D=lc|NFrR`%If-J1;%>4hV@V8h0 zx5@vi`t84~apB$v3CXn=;UhK={le~<={z>`y z*(c5pk0@(Oeea-jjMtx-KN^H$phVk_j2oEir?kIb_xw`vgqZj#XCPI~XEeHe^c%Zj z%fqP)*wFdV$nxQG3)G~pxVWeo=+5SnU%Ef{rV|B`0^$E3|L-|a`z52S4kCU*A;*H~ zXr=f9fartp%=5pFNp3HVue7fO`S)Tud z8$4RiPW7IbDt$^3I9M;j_e8U($963*lc;^R?sqAD-Tll6 zNFV-o6!{|rTPoSUpP=^cl;*W06+qiA%^pSALVbdb@W2^!8*hI zbR!B|pI>7C164DB1T;$}_aeFa!ety^TZNWwl*B(7`kSZXFF#b4X7`H^g;2^MrC>6z zx`Gfu($D_^GaQl#J$3JStm$?@w?XYZJ6E>9ej;r5h$8d;*-r{#`F!4T#FThUekM9f z&F+s`gH^a4{HBp+^Ej}Q_Wli{O3llcC_a6X2cxE7z zK~Ip}cvflb{zeq})A-w98P2-0_Ii2}eNL69k5c*2?kM=fJ zWMyvFzHYs6F;U#$&u$}ljeN?e#>?YfI92Sa_0N*H$j_WkoOZsSOPBwI^oJ-OZ@ub} z%v$7>_TgZGx1SFTNRfEzP(J)&Fe4O*;OBLIV&-wM_?H>?#D3XzlCQZs= z^?J%|kd|T8ekS|-tMF#E*%}A3Ljmn8!V~bM-pIW;s_dVl+_^Z)kg zZoG`s4%m@TFbQcPN~lr6Jmip7|7rQ9c5{8?mD-<`5xmUa$XWEHUHr^%*$Uzvo%$i7 z=zeG>@-Z9NK^$6eej6LEEm>VVBM+@JLU{hSxtBqYvs0iam%CjGx~&K1Wp76emM4LHCsC*=c zH4E!qS(I7rrwLpDn@O=Ev2@4FRQXC!;d6gAR;g>Sbn2FkMpH5(Ad<@>Y> zo#v~YPh7C?KtG>m!d59Kl$I3GR}}1zv||E?MqTxELl5IiZ*0eDXw_Cbv_KR zZ7WlzFgacywrOS1Gkht+*vX(TF_dG$vGIf5`05W!^oTxRoC5zW={O#Pm-Hd8h4}|n zU$GTg9K*A03JXe$ap~r7xT}+xLb#`1z1*GUXiLD)oSp!O#d5PUK>cfZmZdz zRQu};Tw3B0#tfTVKhDj7$MC2vl{gP$re`(Vr-m#lJS@CsB^sWaLrg3aHIEY@NrMID zfAi;YUQ(od5XaN0N&u(4Cgo5b`NRX2da+U`uzfcC4ySEIBgLd#e^4*2hGpI*MFV8I z9eb*4k-O$Uj4JRaYCJz!;1no!ha3^IjEQj2w6~ZGsY(Mh zhcw+tBZfnh$>EDOFP4mOBlE$JWXT4~6rByg;%Q)h47u-i8==7Ts8gZ;(n#~$5sk+32 zWUswujKsEW&&gEnwni&Y2iD)jkpb|!U?_{>Q<*rGxQ)JI?UB6MXNv_f3QUWafn3u` zSWkBudIB%F!)t7*NaMTPh+JWQ2~^|)jM5{#TC@CPe+TX)idP9btLZv5p$bN;t9|rF zX1RaOIw+L8L0~IzFq6T>m`+FW`t{GCbOUp0SNfLX}ymc(vN`cs_?eTVivmbigaW~_5I+qpRjJd z7jzdCbnUphriR6aut>NP;!GKlGMO>X{(~zM@L}37p8Yf`^b`g=g`TdmZSK<=a};_s ztQ)v0CUfQ&BpezQ!?HxFp|Zq$1Kir$B0i4VkvK5CKo>HvI(_mQ?q2@<{CaOKW2eY3e%xh(Uw{q?R# zAV{nSx5*~6qoyaE{5hYWVE3nephlyU(7(RExe|q&B**y`Nzrmz(p$)~#$Vv^FbbVY zO(;_uMZt04(_dM#q8ezz4)>4O2{v&I*KrQ3s>@m{9O!FGAgyYgd7SDgsi;?1pMO!c zvWm^y^h$;@%$p6o4blJj;!mM}7S2#ZBi-DHG$@I%N{Ohe9&!npOGXC_&i8?QhI4U< z!SWY$$=xTXLCNBJyVG1{Wb5=QtaVnHmF~5Q>;;Nt66@F3eehU)hcH7@g6YQOmi)P! zgcgU7Mx+a~eH_yTK7gOSnAR7rxE^ga_pBpR*IPS8=>MQ9ZXVI`J&HZ9+#^LhCe@DFbtz(!wWAJ4eOrprsLL|H$W_Hmu#&T=hAN~+B03vfX?2e zH~%or9w**=;f!#bhPcJOSbCL_hpXs_hnqPy3TA= zpce~{^v33b!k`zYl?w$<7TPQB)Oyz=hnp(sqVbX&2{d`53Eb&)E=0r;tEnMCw_(oP zSQV`XvyJ}92Ni9VmHgb?p5_qS4l;P%S)<}Fq(61aZ#@1;@Ptolsi+Vfz+kY+DBw3i zVtYV=5Olo}opJ}j0U{W^Kba?*uK z+x;C)nN}^4UoB?691HcIbN)eAk1fCg0s%(=o2X1WeU zv_0-%3*uoUuvjH}_|2=zzxyhW4NoF^rL{Ou9Pm^>)C|xhlNg_+0xzbFz#*UQwJ`yO zX?=cSK_Tz#(_hbXg|!JRAN7&?9Ii0lRp`kyNt3ZjOgB)65p1VVlW{TzrMbZiGwz0- zV%Q7q^=Dgh($8EKX8toM%>q5Y4bnjW_Xs05 z`Ufxb(f!G&dvJ}fqR6RkEhZ#nDQNU9h(XR^+ z5-?4+YtDg!PviBz5R0I`dmkw~kzjoE&(k#c z8qs*>mzQm(;Z%hwjs-2Up8?72e?vo}r}G zL$szP+z*e61`xEoNt~xI;ITc=o7aBfprB(5H*___#{8QP^P8=&kfgl;#%Si+?3F^y zd_rGh(8bHvd~%+*)|5x0+|SN{n*)-LBr$-rgwv{NfT~lkO(j&=ca*Z}${MZmFWSz;cbMXvI~k zh?t8pn=snX^xHYv=2nYzgP)b$U{wSi*jXMsqpa^k(J`O*9*Tvuok(5gwbwp1dP?La zpVUe=fuKjCmijHqu+}LHzZ6kY4?un|QnA-65Mm@1%+PeD6d8Wd0f$1ahP4gS&n&bCZilELPzrJlp zQfZ}F#Rv>-P2^8C^qvB;n!PRV=GcteushjndAWczwYOXGlV=esCZ8W#C!4^DMNLk5 z!eC2y!tn4GJpr+4Pw*zY)c|YJiW#tI#YMY_SbzqWB7w3MC!HU+8zBeHXPWrIK~!Kx zZW~~JiBh!Rt2!j>Yg8RoR~Zxs&=!RXT4h-REyQ8#Sh(SED^Or4#kllNph>2>b zc8))XvwXRrTS3RhOlf=h+zF5sUaHZWk|d}t!B^fuN-B7UtyXSzvk`yY&itRm5i8}G z$vye_@a+oaLo#1>#j8$*B+U~Nhi|4scTQO+tVaEM8~m;jK?1GSy3xR+NHGK(nrYTXN;%9kAnkS~j{*Pz0< zZui)Q1{6lv^DVCcEVm{{X1uzK@-?GsO?>OZeCBojf+Jh{#^iGvPQd`vWW$miTh#lhGoeui=t&sf zHo>D#XgIGMIf4dN*jeALq17>^+fA3wDWv*B)>4F&0F>Tk(+cJvMh z$JT5>{c5iEUF7ZrZ`8u)KT+H^1%`X9oE{DNRI8r-{)eae{3)09qBk_*eol zdow(f7ehG@>vIufZXsmoS1??68ZIcQ)5z5=-PW(6WFsZ7m6uPkGLA!wq}@lTG9EKt zJ26N$4NB+vd`$W2E!Pe2*g0x=dM%9%4}Y}+#|o@*Op_16xiB$I%XI~GG{))X%j4~x z>p{!>(Rr%Hcud|^gL${UFNIhSm0k03LvXHC&`%6@g9GfrsAJ66tiIDE&G;7VaP%5D zKJj?FmW4hy>U+aQC%G~)c8>zG7FtbKJFdNVZQ4?#yrSjSa}2zjfso*B;LJKxezv_9 zSb>BX6Y<{~>?d^wnt2(X`334=y`Y>>T4!4N#NQCjoLx@vSKlk>kL@l$G&z9`HoFZr&9wxX4B_N?+Ca zYxf%eP-$X_p!(+!F)~@$TZciqYS)An*9&${zGE38cF-4}(M1{H*>g0Yz1BquN;d9% zQWBBr>LMI8|3ly8Shs0DZRdAT=*jhj@qpic*7Y|33~kh1Y8^~I*^qPBabZUd1HHPeGS2q^jX_#!ZZ7z`M$sSW~IFj zdF&aC2Zz(X00>gWv%gpeIw!^gnhMmQ!X)EI?|zo6g!TzPVmPefR?E zpz&CxRhn3f7*&ky2k`D+tz#1aeLHs3583p6+X2rjAP$a)R{md zD74MJp9a(~sIK4uPu;UQKx#CE8bbnXy#s5B>w`fTIh|w{H!(PJow`+4?XpLFW4Wnv!0G0Wf<`ntRe$pj_skzt z+#YY-8jr3O9d0Gol$4WQ)>+j;v~tt7rpH{}{YcQQQYkcVEDXNBcNbheM{8hdP}))+ zmmT201Fav&$Hu=9d{`RXJ;o@9w08iJv_hnS@SU+!fH&SRr^#p4HY9~Bym8Lk2 zI(OAQ#Q*Z(s3>hq>%AKxt;a4f+OkuMdst)B;#p@^JMM${9HN z>~sgLcM%r|XBL55CQXu-1B<)o(Zozy#*>omnh|ZYixb@P!?=vsDFG+r6(AHu>lqtk zZZVRl|B4nq*dz6ZlNY0#cjVjRE!|J5Tc(RFute>2x_)Cyrf;1+;0*fhf*2DHhLg^3 zN5DyI4SB#;CERVyO;YK~#t|WV0duOO;J~tn)pM)|wUOsT!$}|Qw(ow3mGVvFI!W8n zmed<*r}0*QV5F=65ev+mJ08tg^dm^54N0muG;g3L$8KSb?Ui|*#1v&sR-~iEP}Xq9 zR>&Pfk2ZA7KV|iDuI3wPl!j}}+3n|GIWsBIV;IIL_JP3OIbv>f(cV#R$0A^G=rCd1 z?NTG@n@$ZRhI~Az$y|}D&Sp+eZEjZBZpmf5z12@?L=>nM2wgpvOnw*_KR<2utNGcz zH(tzyK`NLsO~jgEz@ZA+Gpv~`sY-N6*~YE$ zz7^dhCs>KO#xyDg)#b#j%dLTDN5eMU`GWj4i34%^X0LJW6aBj7-u!&0f~VU}-TaFI zwF1|KT3gezN>T)4HDI9(|BpTemYX(vJm0y)$T(`gjB`B8(MnQg%p)Wp$r>H@32jWK zb>}=k5CKLIiTKapGRjxgOS8TE#Ct8B}!65pbkAZ;S@VMA0`6-{-pqb@w zy{>Do-7+{jEeeaCm8NEB^FHjt`bl3gZsjft6ufx>BQru%b$u?`BdHy(Hmwpe!u?}d zDpRLst-68TW4j#ZuqA>lQse%Fmfdl6w1C{>l4v^ zdOEM!J%D4Sr%q?gYm0Wa!|UDQ;2rs$FPX-@6w%P_P<~=YdvAwtt|>LZC7j~RNMU>E zp@z=7ED`#PHml3IcuaD6E%%F*-)0tsfoQM0T~>@0&cHjAeqqdew77uwy)J`~j3)%e z;n>LCy);Wa9FBQsru){8yasj2txtDESUG0Y__$eGCB@dR(ldYb!{x{13DNj;S5!g*%x{1+2O7t=oM<-ovV<`Pm>Eh>}Cvm-T5AbtDZKT)GjuX1m+a=``sB zSL1((QZQMom;g!;*vd9vp{bppm!AJZXFDJJK-P4ZdESN7Dt}uh^Z;!5LPz(PH{HnW zWxbD!Zf=dmQz4YQ-x`-_q_Hy7x7o+Le86)yKRv_URNS+^SvXRBZ0llfLF(^EkEw3m^G&EDP_@2UXWb)nPh?A~Py8O^tpdH#=U zgc&$EpVekp5hq0QJgLAMGA(C}&=zAKZ^UHRc=ZPi%!~y_{){j3qN9d4L#Y=ky!VUA zQlGJiCR6c~yfybZL(A&>T#q+A)6OrBt@6m1?`D*vsSnvVDXSYTpGxf?m1&(|raB++ z_~k2Eegr3Gtzs*%#|%3lCtr6&?7k0Dkt^KWLQ779OQ(I8qMPOc<_<`j9%o0?GhH>tM_IPV&b_z zgCWIF)M0PlpzYbwe96LEcBbz%6>r?mryWCpozLcyw|t~cbIpXc_*jVC{y+2=s1p2=@Rhs1A3MhzWyU;CGWZ|Wi}BKB_PgXw1l z9glt5PJB(ljn%UG<1NDgq1zLLLbZWhIshs-MD?q*ezE~+&6c0VmM&toa!JnOCY-6z z2&}jurC@R}AEr3-_Q7C82RZqGxJ$ER%98pKO=! z`BIIQV*&K45!?@A^ZGWx@lnPfVe>XtNzUCz>?Ix!X6Ba6;IJ+7jPX4JO`V1Ho$6gr zCJRXcQ@obzA=%x%8xIw4(}lb6{C78&;!hiA#t%%($FN4*S`(5ry7)744J(~&cIA6$ zAJc&M$)MgymvLs>L1@t?`p&KkW4?HB@q}cEt%Xx~=CP(duLZBWMG;U-=HX@m2Q&_d zAb|27Z;?ZKfiSiQRJsQ>MijrljNzE!vy$p%UTs#?L1a!BWc7i3Tm6~j^02;7@OgWc zbi3wVZl^GH+PVssdB!UGx>?r+2ED5hrE_#i${wv7v`6USyd9w(I+|GEZ5l&wN_5ze>x}2#!0d0w*^PYRqt-s~Vs|+t)|pI=;0c?PKt%b|K%bIfbb^Sa zB-1T%a-1bKEibyu#V1?O^|$Q9EK|}4e5_t>f^yo8w((S_(6>7uN)U-TxFF|PabK6h zBi?Oqtd*6MeZHF^6<*pSenA;coUhVfO;sBeej47O73J2iiK_<|$IT}Ul_wq4W zrkVCZb(|h;NW(UH=hScEQyU8m?Rpw>KOr5Mi%dCFRLY#b)r$U~;mel$aKi0ga!n@n7r$fwtPU-pES2f+y761Ox0HqOqC;%KnlQkgI^9t%{zxFrffJ=B=t{<--ZoUZ z?F4ZFGayw;;c`A^30)oiZZn*G4B!`QhjYQ7$jIaB!h%xTig|vyw+l>GNnA3p1RoZ< zV?mv+VVkt$T@Tm%fws4~;PH`ttmhkF)4Fz|_{y@M`=HCRGY#F(ug^fJ{f>9|b|)50 z#i6NQRn#qUh9rOOM)4|>Xvdwk=M*nfsn`@k*tRxF$260z!D)^t<7HbDGZT#+QUSrI1JM*gC)U*0zDp zF?i?Zxb=YnRjO$!^}Dnvx_N{8k#w?}`yv!oxu#u=FGi(({!klLsiys+39z{0p+Ke> zit?BXIzR&H_C1;uM(zQJRCxDu=&F*)Bi}VLvDy9I9S<9726iTB-TYHgQ$rYIeBpx* z4h;vWWVR@WRZwO2cGrg1<*1R&i0Fbt5gd?tq*PxZXLG8#C5*rAdvU&FZ4Cn}Nt-%D z0R|~w%+^Q(ae}5S`xNpUttI=WZ%cVru`%`4zXN7xyL*Sw6sy+Ki`Ta500IQsLkAR1 z$9~SWvUz;xwW{?UuZ-79KQn8;Kbp+eOJ^dWa#=&2a$5zWx~WDG%i)~M&Z2rcW}~xT z(ku*zPrW=D|N7=Gexg?PzONpG4g6Ny%2M1ic_vu){!2hA$P`=B@w+&5QLpWI{1OW; z{3~1gytc*%p4ML2af!4gP*ci5D?r5h@0FjLSE>$ob`G2^RP?i;H}9mkp1WE^gn z#hj8G!oK3oMU8ZToA1wu)^`Xx2sZM+b#R7a-i?rL*^6J+Im677PW+h0{j-Ne+)6Cq z`Br1Av|6fJwJH%o@&vvIdJ$LO7wQdAQf)Q}I~*nl92NlVGwtJkKu;5N-n)|2!XEws zMJw3S{w|!)Do4dz$ubYyzTAlynE3-=nH#eH4HJqE8N5>Fi!4^%8vhIQG=-!A@4=4s9-4atSqwO*T>1CjZ`o)lO5f z>qM8c6nv*~N7cxzJq$?8&v8u!BJP3BZxk>Bvd*9xU z8qx&rEa+5N85Q0gbY`k{|9t7Lt9nN^JfHK7a1L}Mu=~sBA{XWlb}!`LucnhMVU`VT zhL=>M`%zH7qqKH?oP8aBaW<_!r4J~m5K@98l{2a_R~q;7YreB9D|3P+Yg!APrK0{w zNp#^=EWa^#p!w;;kVW)LMr^fK<~u)i+q)`C-sQzt4YsRs{nNk#kYN%j{ScEh)4KZM zJu;`8n`BD8vIkS@mI1*iRk(Xr@nQ5iZ*;=HS=>nD1*0uvLgu_9HE;ZoW9U!iW?DNE zci2j%zo6k3KN8*{Se07~4<#U9;e1c9^19OfYekUVQ2U$W2G{jZkE%?=Sv@|d+^sr> zN4dg#7+Bk% zn_52H6&enC{SGR9(r-h_zQKrp2bJV-TfgH#belCKxb_?E$GCEsLR^N`s&xHU8V>SW zbubxi*K_6?UD3z50&R8|cIROLal9MK9dEhWVET(G(M-EGXGBfsgZRKUCTTSDCDgDC z3ob2{PTmD-sPZ^hKA9{Iy6hVZfTz-!o*tM*3xv{g)+3LZDq&jJkRwhRFaeWYMCviQ`C2f?Z7p=VCx$(H*;gHv&pzKv@ zdBL#fK90<8wp2-jgHxx9!8()Pid1_rRP;koC2R=inNgdN50QtX;HFrZ(eb4E(garF z>Pr6j?DITNyl&1+G(UPwqMX5o-zlumrGShfQW?mLq|*@%v-w-KpDJUn@C4>ef;AK!t{zde@Felu(B-XCiJ801A?J=KLKf(1X7-?!o6PJr|wy9qF=J93Nz=}D_NezE@Hx=!p}_b%$|1NP0Y zyw>rsQl9LlDOH_y^-mt|_d(~g3sTZ&Tl4O-8Vhg0G)>_$PzG@OR%6`%Y^)ozdoG>8 z{SnRlQRkiKOGoD71vVbPg>wHP%b@g#h%2$$Z#_Xt*{X{{pr8Hyo4yQn_1y9o%*j$# z`%&k$<#F(j@wz|0 zy=f7yEU>;8zBak#odlg*Z{{eGESy|Sv1i?L?D5ol2$GKk*)nY4=K!}&zoG@JlK4TQ zh2tVs0LmaABjmT2jn8j)Smecc22rAwiX}7;Dpo)=$dKQ1VV$$0D(38}Sh*Cf1}5N)YqdGWKM1I3C^Hl%lKX4(0Z11Shb!Sq$@a?nHzZcL zzbzz|90d&2rOU2tcJVHs^E-Xn2gU#_&4DqF?<~`K z@Hu|7+hv|lZ^ckDf4YC;^dZuE5DX)RB=0$2^arei1B$;J%J%L`Sce6asC^+%Iz}{` z-(Xe9A_2PO@5yTOMCY|a-Jq)$*f0Zk8Zf6Qr-}j3U|uQxM*Ytdbr#zaO+fA{b(cSSe2o9eqUf`5UU+xDx2-EMzpQ z9UF|$5?6Ux%WW@1H*fUh&>fB5jp_n34X6{$dIw-9%srQSpoPFL?>)uTWJ@*{(_Ma{HS#z*Q;q*P%o_`%^=MJ$9*3t|54Y3| zzlMsF0D&5u5oyjl_|7{KR`>v2(YP$1SGOZRL^?sPFJzNYMK{uCCD=E`^SEnPDQx+U zpPzqUU441>0gbQ-UARR3vbb*oxzE+l`RB1|_KoXS+s-6}3EeVvvu#Gx<}#ICR|gB) z1dL5Q&RKJHA@z7eS_h?iPFfQ-DE;x`*}Hz3yvJ;3JPJXu`IMTDI_q{iXycsU{o%7DGNYw42Bo3%37mtm)&2K3TiW^E5hqmgr zE|>?THgCb~if%RtiFhw9iTYQ1rb{cFy%nNJx+WBQILs{bL~oaXBKdNbS2J$;7iTwz zw?bpXA;;MtMP}Hq8d2*dgUxm2Ux>Xc?^mE8SZW(C4#vaJQ&5*RAA!niGsXjU(;KS^c~rMVlmu;y z>XiqqC5I`}j^Gb^G<~bi0s4Fd*UHwHG^sX z!}Z~tctO?9i$|nUqx|Q)8ajx1?Y-nkD;#_teZGc{EM`C6vmn5t^j2xtP}{_yHF zE`gCLEQsjty1DuGa2j7Z%md)iJR@BsxwfetuFzl$552 z%R|Xr=F<|-n}(f3{TZ%#Fqpx?(=b;0xeWkisX)jNHVey5Gc|Kdj8v|ZOJe3L*+BDov#X3m{4nP&&Z|h%^zUgw9DD0ed)rm9@S$=U0}o>F%kJ zw|w2c5qj?!rz#YtkB1`!rdRoqS}w!OW|4-ZICG;%8RntR94@65Qkhdy@m%1D&e4#v z%-$+TzO;}@*QTATPL^i$!ZNfR*S-^`_83kbQ7vuq_js91PiTW($sy0|vramn3n(!ZSqaxgT)9Y~sRY59A@fksZr2C^B9^@Zv?-UN2b66_} zP&;rvwneu;xo_bcvdW5(X0C%#O$0~>;RWO-x_-&~RAJ}GxJ*viAV41+*5dD3Rj&Q= zc}PkzZO=}5Zy+`FO7a*9Lu)>plm|y;SgFN#8-c+Cr7hPu|J8Xa0Ik}K-uIG4AmlWw z=N32mOV7hv-Mj^hBh)@HX8tcMs_tSPA9A=?e64#MGcO;ZE(Wu?eKeB&{fRrfey17! zYR27WctGy#ccv0?U~#3)cc`nbv5oylM}cGhPHR_3p#tKA-OoK#=7skO{C*PNd{Rx zK5&3VV zHDfu`vkyp^hJ?K~eA%w)=xU{s*fEvoYvg@gfWGn`s3xqSb=JTR6^5?`75slBwJ2Y`4# zIAmQJ#oZAS`RvG|0fL^y%Remep$M|gYEeYw*%C;3KwP#(jZ z_SObmbiDW6(&uclT~q3C-$M!Y_fBix7R#GwEJ}YcN+J%g4ZD6Rw!2*HxsB0TAQ7Fc z=3T8|PU#~xaM3F%XzvG?9|t9k>LS!Ka=td?zxA1}OXeOZgmC?GPr^t=^z-#uQZJM( zVgWPT8!eDYxyKf5gy+f`xtvHBSQUvyOAfZpJPzw)J4AwB_JSee4+l4-Zv>;wF zc+?~3_j17m$_RlNuVt<6tdH(ES=&zN1mtI2iT*XZ!Q~sgWc4XUHSvLj#`p-7xn=Az zbLXM8C*mP7!1&=wbrrNHd7vh@_ao`E=||G5%I66wZ;t6lQ%_z_dgG6HX6&=0^F!@{ zEmh|$ z*y8^hiM{vwac!eXx5P2QfAzmz6*F~-t#$Zc2r9b!Of@~4; zxX`W|ce)K?w>HX!?tl7vM$5J3x*>;>fkX1Q0(&};&876!GRh6`F`8RF92aJF1*R|h zxmqFZeJTn#J&rM#1a>+?_C`BC{woEr+b4`ael@fZpB^Nr^j9y7xJYq#o4~@uBR5Qn zVW)3JUBgNl7bD_5>mi-Lh?XKoBnyV0W>P1Q`-zGb7gG})%=1nwJgX6z*0YF|A zc*>K|x&aHG=|368Jg6U=cH{nMc<{%*-Nvepa~7Q(3RX(Ti5|(CuMJ4qlS%@l z!1(HwdPcr3|8zcXbBo|Gk0dZKHd$C6&*O(z9!V==x;B36WFDgQh3K++C8NbDDN-#kCj_8`OCDOhbiFkbNY zvf{M!kmDeVZw1(=s!j7(PA2#4>mD-?Xa>a&4CJB>=ns;Q&0xRuv=Ob4S-QO|Ntunb zwvdslp|P_LtpDGr->$njC00y%FEGat+_xYwv=L>F5qK@u7E#w z&P2m!LXw67rWVmzN;gG&czfwOtWT zbB{D4=T|Cxu?R}^!&Z|z&DB=24Lqxz`gH6+clhsjAwAn#Aq)whBLZY;U$9CX*eoA! z)^7H;v|&_D=`(WsRBVW}39zTi`+SfRuQk-hotuc$hWn=YrN(t@C4>QU75k%hhu5BN z{?*X@?x7XH=(J~BrhB)xifxL+7EBu$yd2PzmIVj){$YklNXIq@6e|VNaJN&OV`2`w=Vt!)Rr=5jS?P>& z6?N%INo(B1%^rRuSto@&t0TgF}IbkaS$(4;J*nj>RN2Hu`EQ)reR+lk+C) zrALJ%(x?!vPuKj4iKW-+SZ`Wy_nGG5isw(c&vFMAYw! zRe5QQZjaXH*5E1!#>UC3=;+@K+5epFu3KU~2-q0dd8@#*SVvaE9e>jidWtAK@k_kB z1U>S|!vZ9lcaob|rda2ic)x7;jkg3a&_E1UA!)D2e;IeHjQP?J8_g|4RG<=C4FR8$ zW?HO&=^_F7)!=`bLrQ!sQM}+*8iJe0w|8oa5Mv2iezQ4VJbllI=dADLyJJfi$bT(9 z8Bi{50H~3)bIAtxTvFq;sA~tG1xy{|8~B~49=|9Biulq~^T@upFrm4v3SQnRI`=yU zng0`m{%t@acbfNcuqo7s#iE`?U%PuW>Xj81sKyC(VP>%jPI{?v3w5p`8CZOTZym8@ zWw6H-l+kkx30shThmaU~s&ekqYi_&?6!3?hb6H!1)3350+3WVyz$>Knrj45vMtnmT z_@Rw|ywm1REikm>t`T1^T@35K#i3oZ_VVOSLO_YAs}^;j9%V7uNc?0aR~%8!2_Rg)5~{MG}^#IUF(riA^yFuMFPRX1wTZ#683(~B4FJ7 zr>h%u)DpHEM@x4;WcMclK~ z=eU7Exmmt8fPxEYlsE1g8DRRd7%pk48tD5OIt!_AYJI_C;8rzxH@MZSV%<>0z%vr zK{zFPCUy4fj`p?95;{{RJ@LQs)i3?7>@}UqQu|wDVqc$PJcC;fq%`LOhU_y^0|L?u zS-L$BZKQO;7P!)3|IK%eZTJ4P;8pR{NAKEBWJh0o5BMNjw7^B$xk9|@T-KygiaQw# z^^WPOBq`M{Ed5I4y%D8c)QGLQje8#DN!m@r>++?Qx8HCaj*|47^~rZiw3;hNOOX&( zw!tw^Z2u6q_a6OV1te1Z9)HEA@zD6tRO(KhEki-& z(5t=z02(s#HkZxu;=Xb%wXjDvYn+7nfJN!kpQpa>b0}|@tVa6+7;EiBi4IUvVr)`F z+K&7m7Ao}MFAE*Ht8`p?>r3Z_M9J{eiTZ7~0POkKuFaEayB!V?fH2XrpGvF*U0MkIk7 z56<%tE|i4nb7%v;H`Fx^5K1YRCr1C@M=h84hb>!DtW-LU=b9%kX(Tqxyec0w#mmXe zm5%_0Om%~{b@~0$#mv`2f0FFKR7v%VV;37H*O_dOsu#F#l;V^1R4`TPlpgq&0rm zV>J^Js65IAyr4vNy}UIeITC!nrjf>NaNs|1@;~-;bz!%3_(Y#p1i4wge6|&oINu|C zAki8J+a##WYF7Y+h3Nej>vm|)GDR>O&zGyKD*ardHTA>6aj2`qMx4(kvF0z0oA1@y zEY>GwJCdec9XlT~+*$L&;qb4h~+Nq5gGbQU2hQvEEC0>-Ukdso>#rV3`~x9gvg$Ian@rvx;FxG3+? zO;YG4fi1e&6oA&Mv-8jYOb7gS-1)6u znb5bsVL$*guw1F{AGlN>&_ZnO^5~7@9KQv_9eJCRp`bNXb*c8Zua-7{1TMsD&zWK9 z?e|wP9YB6{b~hM`R$GkyotgV5817-Yf9onQVLn38YfL*zszr0vb722}duurPePzuM=CSvMuNF`W!}|>1}&1!0%kSW`uB$j&DuR@!fnV z^c(yh*R=r1SaFw57}vjgZ~jrSU1+tot7SVbrSZH_%lU((O%Z5Hp>7Yqjce}r*O)g- zfNz8CuKcSkPEkk(ErEzFOAM-{^~7egcH>CZ%vsgEi>2kiam<8ciMVS88V#jaZxu|$qSPNo zmqogv!E%UMPW8aBLG+ZGuIk&@>IrEScVWcA9nbZW{&WE4({7xEAS z*ho*pVGsTXw)-1HKYR_C7=o0O?#z}l7kWT1lvAsegpd#;`Yni;mIuYmR84hYT&)1u z*Nh-KO3#wqQ-^7Z$U#_BfW*&R#h2Z8E$s8W1=^|8Y8UmTvu&j^Nuamyh$uv#KTI}_Giq{E|?aH_#;0O)TWe&FS-#!V!syiVKMY8*^EVR=&QP>9`e{5*?$wo5{uT3eVh9 zb;W0^puna92R>2d*u7aU4Js^iS`_b&Y=}8{5u>xa_OQ(3@Be)X8(?cc!~j&JI^-x^ z87B4VLmS%}iQ|!yQa6s7TNL_yHBu?jtQdUnly0LSRn`gY=W`ow6R%`C_m(t8{-JXk z=em0DeeBpNa*xg_>6F5FY`I#$=q^iqSkY%tb0!ZH7w zf8*hRVgZ(X;vCz%4_N}N$83flA^=C3ZIP%yS1yTb1SSTMNzz^hV=@z#g>D{+8OAux z6z|G%S<4Aam9Je++-ZPIb>}v>pz$kz@+F$(tzmvMRP5`t{1>fE|vkn>Ke9HQR}nAs>j@;Q6M4vDuQ5H*zanN>I+H;?Ddl( z7Z#$86jTl7&R6pAt}>}@TTaWd*6Eg=iu-RBh2c{=&!S-f zL|y>IV3^v0OFx%Db3f~II&Y{$@fphIH45XJOdSBKLr(lcl@|Ra?kTh~CrWG&j`-*h zB!NW$ZCjfd-|}av?DDaNTk-Wv9168p#Sr^NN{62j%fY+JOtpwFfM?!#VD(zi#i16e zf|;4`$3@^awuqD`Sf0RCEyG;TL!gFBpxyAJ@G^Jm#&L5ChUamH`YzTW*y2gYQE4`%x=>3Q|6j!~8^#3Y$xfb?5qKll)?e zk*U`6L$|>eV@} z&nC^f$HPe~3hO&-NL7z-%q!rg&k@ORPu5{7SDMpa;mn z*aibeu5at{6b}S*H7To|EzMhT^aL0wouQQGo`@}n!_Vl>^+a~`Jxr6LuM%-1qU?~R zUNQ?rqm1egxW~40e+2l4cL6>SvF?`nz+yPTu72{8eyI!GyGIJ-Neq(==G>F%b=4fU z(pDq2YkfFzNu=BB6Oqx%Qyy4ZIKvVQQz1zsTsJpvCiLfWr+D;!QPXOBQ)UtC^O{mK zMHpIg^V>dxsnw7Evuk>`3%z*avGrm4Chv&ugP&7cN^tVZ-J&mB2Y|rtY6F=Ddlp?! z)=gaZK&(*?MvtBn)p~XPP7EZ62xwmh&@Jae%9W842Wr|FfNf@wE|Hi!%rWO$U!dZj|kgQILNlY-uKfK&6>K<4JNS&X(_5V=$2l4gRO(u)( zS$6q-RWHt|vif|z3-u<>%i1Bjeefx9$phuTcB3K|2ogFMskb!>*4BLD$m0gpDS*-g zItO%uxTSpQS%F2(_twD681P>9&{5=rDm+C@iqceEA%E6q;6W^q=%$nL(|95S>00W3sTuuOw$x{d5-nhd4 zNXfz$s=HIF$8VYvF>8ia{Ax63S&GhZgO>c9yc~2PH;IS5I6+=1@dZFGH_=1c5Ryl? z;Ijb?4j3t+6*&+UMzICny%!0KlZ}6}^ga6??q<7$97+c&pL;h&aM}+gl%S>6X{NSaE| z8e7kllnGWuH*Cyc6NrE*S*et;bxya^y8TLA)6}I4WP%3FY#^sJ)Zd@?8G8>nU9HzP z$5R&a=>S#0iIolyDv&x6z(HhSTMoD>M--p2Ae^9)>(NB<_6&`kBfa*2Ah{x}URiBflXlwl)23f;(W%BD~+r~YKx|ws5$am}qZX}BS zq=Ttz7ug+M0y8#+wUrAl@$GwcbeXA6G-tdj4wc#EG>^1c;(&Sz{1qQDAZDraM1|)o z?8a?8%n?u$qQ_j0C#nw%2q>pw;(0ph{9mW2yZ7UVTcM1Sn#w0*tv7)~aYbEw zW3ck##*ud}>4DFVsIT6snSGy9_kMzb1$z2lm><@0E3DvS&KibfRSa0yI?n(2XgoU> z0ebH-T+=O8Idq*}(Ccbsnku7d^(nVO=IA!9vixD+r^b=`VE@5Da@uUSHb{!nF!@S% zrl@u?OH?;u-xiX&)or9Lq)ATmw~oxnZ{A!4?nGPNnnN4w>T>q=^#R32Pd${{$}OFd zwAQZH%=}+*8ruO|z-Ktc<0MnRdRJxZ0WvCZ3S(-6ctaa>lles~6K5`XhFq-1es)I8 z6;{q%wAsA9EPO)ILlAaofYygbzS(9jg&3oR)o0Kl%!~R-mzt*fwaB~Dp);smu6b#G zSx)$bie$H+jiF6+;&x!BkSdeQZ1X>pZcHBp7t#25VtS+o^KAbnW-U zibHqo6GwH~L2$2SdUnf+9`h1=Hlg78lJY(iNVkr78qfIs`iGr6b2d9F9dEB(+^BbT z`PNXo!Cb2yWlFD-qn4Jwc8U<>2Z{hV&^Kqgx6NFZVwoT=H~ntRfc#bIpjjO_x`zf-$34B3SP zM27uH?j!He*sX^(^QCx}9eu^&*V}-y^W#R~)Q(3@Z2bFL3xxcKULrT~Hhk_DKd+zS zuMe2ub%M7u#?mSyxyARhaU`H?eqE?xtl-Thi_|8#D(hY?%$Ie&?={p=FRr#;Wmltt zR+BG8O|pC2re^G@eTn6Kv_9-_BZ9{(lT&Y0j;8N)*N-CUY^}~EtrgfMc^eHR z+Gi}gy1KgK2Ye`Ghd%1MI@9eAEtrv9k{_M$x;}IL_H;`~%*%CK!aL96rv2B(Zkg~c zmEeR|dvs-tUb!&^MmP4?FMsBYYrE0ed;-x-4=W~ju3~g=A z%4#M@EAGOQEXFHBxo4`RpX;WXX52&Kbg5g~#?#qyb-iggoYPJ42HeQj!TWw4<=4vv z3@Hx0@$-p&f(>JwfA*_*h9vFc=^UwIm~`p4$5Wmmbka503(iBMjA_LueXd6Nu$-e! zpdOU+^oj9?57ag`Eo;{n0W^G~?{KNbBHm_OPMt<@07zjDti*BoXHyeU=JuNUdi}P8!`Z^JPL)+u2%}jQ zaZ+F%EFf!t^UjGF>cpE5D-nB;A=Kb|QRAsRXvtx_2%+oLx!;02z}BsK$nx^|nRW3D z_;E`c{}JL=Oz!B;_Ie9qJFs0~2RePftF9wS_H5PSrr)-{0`c7U*81g&udSoaTpFoG z^|V2y^-twKMn(-80irX2Y8i5=Enh8Od28x!18e1V_a5v$$*fBlRB@A(ISH650u$-?se34xO>!zDU@3 zBFmr1Cu!Cg6tb=TLUGVY~0EG=DeSk^^)a8PvF@0T3cZjYv!T^ zC={=Gz)wh3y_p~OA3eOXING2g3(k9tO{&S=!eCIUMr->C+s(7YstsX@^ZBVnG__+oGw4CY=gZd5lM;1c z`^6dH4xKl?@xUm$24jq?b>f4Q#xytPeltDNXTn~r!E@8^!AO-zbN;)W#tQ>F8DK=1 z+pmSn(IXy_laNS5^|gCjo&H#E%XLQRD@80YMQWh2O+iHuXxUzp@zxdPFWLwiH-mE~ zV3|qeiN2In_E7~!$|yrD0KH6qVQTb?^n7!03Zl2k{2b0|ee7#1D>$LrhrB=kn-a)0 zRBEwG*`>PvHQE*H8%G}FRcE9#XR=Yxlf8_RM_E7Xj2K#`dbu;wR|7LBa4-@sSoi6< zr;&bX&2yh-ddb=$-#6>o(#7G0ubkCGI`%a9Pp%IGu}rIBs}CKfF}~cjAKSSbNP{+~ z5?yC|a$n=8!baBs`wd=ZKe=7aY}jGS1T3vA>2D`DE;&iJY;0>Zt*>7Q(KwAxon9B& zv7UM}AmCAD_kw*#?Pmv>xjnpuOiV{^xej{crK0mqA?O!%EtOBHC6umxOm;C6$~2Y^ zm`R3lT2t2=eZ)Bo{2Sqj?&hz4NM+sq@vX+G-A@l9j&NZq}N+q^>uxO3hz*$g*tX=UCuKbL|CBZ|L8u$CFh(VsbIKxwg@^!M+F+vihK5S(S6 zt~8k>gg{vcaUPev)bZ^;9lJgfObr*FpVk;w9?A8LlD@Y6{zbez$ct6I^8FsuRav(3 z)M`!HWqFW6bWoffSSfMU9JhTun(mSc)9Nf>d`af2)U=`Qtvl}np4M2p1~2*mVX|ZM5_@MWMn}>^-$?EY#6H#g zo5VHfS5tU$cd=bFOUmYU)vIbKC{i@Yqr*M7$qbB}W;H&V-_Hc%yuNtE!vGCgpR&(6 z0cpz>AJGC-A;)WrTQzUixhvlnC&+8gj|Uh-FP!w`C=tbZU`;P=R5y`-6j(~8dm=$~ z07TQY8GvuOJl#w$%R-ymS)`5*eYy`1@j-eoB;8k5F1vkhgLsDuuy zrS~UJY++?XZgRlSVJ?+HHmi@V2bY#@5OFBv+D?No`2hLAz*Q&oUTW~HQW@0+vEAO4 z!K~ijSh1(*pqKk&w|#eIeh%&(I9ip^c!jM<$}2Y1?XacK&q3A!kt#mfPCz+3uW%II z_v#39PT%E!sd8{YF9&&Mji;#aR+{E7>7m=|TEFBi z^T&pZCT=0Lf2j}EJiJ~|Hm5y=MiJ&>I$RVzglad>eFYn_&xLXCzuTO^ooN`8D(Nw` z@7uvXadU$@!_Zin^FZ%Gtc=?4uXg}w#hJ7Ya|U_(VXHRJkfYONf`EThY}0a1WFd)Z z`SB7kazV&41abbpjcxDFJMuX1&Q-wUqkNq28-ESC++h>*1Z%#Rm!bWZ*}lNrx&w3u zUgK!Hy*E-Lb0y*tO+KGJ3KXXuCwLP6Qz5_Dn{j&h(l<(-T-*+;)J`?>*T=l5a2aa7 zgZp?2uaGj;O6MAUl%bTdJ{r7^77WVR_HAbjt@EW!{-$~AHC3Y>|oQiFVc5~m5W-$UcTCp zxxlNfb#A)+w6?mAXjt6w52QU( zH0?T6e>TJrnKII~-3d=a_PY$2<}Y0d@CX zK{unXe?i1eWUql^8w?NFDP8tG>$)GP=VY4HkK)*xl5^f-HZeS^^^Sv*E-u8a*a59|j zkW6l6oPm;Qx43f}mpwVG(G(LO5T1Ewc3+E3V5rnnj?c0)UIOQ%5WW>->ov zu)}k6(A+Am(8D1I?xbq(Q#eoHAz()sPxuKNA!ZXhCCpYEM(c{^ph3KnXJvv0SIHLx zA2rVb=tmp1h1XxGNA2f*`(>z%acG`-Ke)Z-^E@X!8RJ&*Lv5c@Oe^YUXWTf7MfFNP z;|`hs-gYLLCY%2R1l?HC*kW9IMk?=x;CJ?FcN)Bru=z2O=mt&?QJ-Pw$9g1Sqb+3m~$~Kp>=8~@gOu}dHtzFEd6DOqMyoIAVa^^A&%ufgYTKVi3IYSLkbkUW@r+di>xOJV%$1C0K@#0^t*f~K z{j)@*U@YVzaZLz6+SEh0bbQh3_v^t{di>f7!g<^CqIJ+pfV*q(~Kj7uzGC(^v&7nMm z%qNa40xl&^@`TI^uP|9M+)8_$h5Gt^4(UXqxyvY9=17c1UJwziG-0)_M=79%U+8;Mz zRno~FLlOhEA6dhi2Rdr^ZAD)!>)ZC+{uKSyL8F11wv<{drRHLJbqM)9p@Xuy#l+z@ zYtZzXuPy!4LU$nalM}E70n4%@{MooG1TXcE0cw^Wh^kEWb8)C zDsj_D$6sk*u8eUL9}AcaV@A4_j9vd(b%eWUwv`PhTGaJ4I&2~c8Zc}I6>~Npo2Wrl zB^-;B9n#_Azd_bNxE!G1kYhAAhh%| zdcbRIb#}#4+oRo9p7yOmgfdwCbM5CMmZl+gJ0>J3#HGSDlZ!tSR{?^>s!9|1ZKzjl zJUB-d#MRANEqzj~8Vlea{^la?@!&D;G-sUM=&88+uKSh)y#AXlWS$Ih&=WpX z{nS$0ge$E6R!W6M(QH)8o=vx|QXFIv5+YcdlPMa`cL;-H|>&6eF|H)x3v`oH}vYKf|p5feFy`Wq2TJ?+z>|z8Xfp`2QUrg-h zQ$AmA97bjzgzn@LpIC_m5hPHv{8x8!h`7{_TPaY!9><-5ngcf(uhI~+)?0hMfkYx- z=wbd#7~^Z-T3>G}6(4=!)dU;5xrhHkTX=FHzdkJ%tT8gQM?>0zQ@YBaBor+U!03Qs z9>TI(pwS}_fzM$b4=?hs<1{H{u(N1^>-+hJpnJzb>1SJxJ?A+p3+>mhzoiONEjy~T z5ag?QuZ7y0xKr7{T&Q^CFS&Z=Y!o3vK>+>So)$7Cp7Qk`?zr)>5ITeJFx}JKF)ZsB;|>igW$RBwyW}9wBe!yx6{zP z1Q82V-6Cl7B`8_lYG`>6S`mykkLUC{{Rn)d7YHRbmN&IqbVFPOq@*vJ9k5{^)EtDyYnTdo~E4o>G@W%fRdrhW9(&o=0KN1N*UaGdE;}emx%C0 z{gI_m#=LggQpmhjkj)&T2uoI9lE{(+gP1!>6Bs+@sNE7mdb^(P-bf}3Z*NnSnHJoO z!JNQ=r+5Z(Yt}n&5nnGuuUn!R>F>LFbzjjV7O`Rks=kd5Rd>1AQlfXyq4S%o(3$Q8 zUQ+ageJ3ut%d*S4A{Ur1|N6985+_@KD%e(=&Pa;>HIdl&g~RAWg>x@`{N7a!{TJZ8 zqg$@wsUBZuBZ^aBeUXStVuthPMbHe6P0haB-f~M4i=@7US<4x6g{y?RzEKKE&U?P? zN?j^n1Hgd$FJBCH#6+(b{-iLeW>XY{{8$*$W|FE3+~0lI;hT#e^NJo9lZx49gUAm5 ztku6+bw2Nux(#Ve;t=JYWGd}>?@g~lzSO8z&chR@#FVU_cCim^mJXPs4cm-0=5_rS z##}EdkR1HnrNIgY$0`&*c}L|Ql=T%9W_4I7ideh+0ZI=j%I@k~+%`>@u_nndKFg$5 zss<#z>fC;Hg&~uUc2816Vdx!%SKVS*O~V<`N&A! z;$g!wO=)XI4hP0V4Y^-yDU6D7I9JiqGxxFA*4*m90&1T?s^9a`?B?DdtP-JH`48W3 z!*Lc*u&fZIX=`tK$kp9sS%kz+x>o^Wz#m~c=FVa=9089b;HsPl*}==97Luu zp3)Nw?Bq?*Mkwe5sZp~v@RQ8$NskgL#eSsY)(&nehBt6>7k=~8Ygb3jMYbBNYzD}7 zrM$Qqr{?r(Nfb6TGdDfa)3$JFv@~E?>}I=3EvLiSl)-TSO>W{M6F>Io{nbA$ghh$9!wcrP7gD_OtDBDAuAO*Z7O%T)nm4jK+M#- zyIUJIPUO*#EjQF29jXgJ?WNB*9a3QQ<2;cJTEzbEwMPVe_dVeF&X*~>eA(y$*LRUj z&8zWM_9MHl4%N`)+2UB^`y~V1Yv19O z>oKt#-hTww)wi{6UFm&c5yZVBzTecXwj4hL+>1&$6c@oh+ML@Z^wXcipT}R&Urf^f zl7AIHA%Ojm@cF9!Bu=Sfrg?CCdL!+PNkhRt%sTL2!mNG9Zre|8lt9r_YDLD*JN&iq zx*K-kf09;MsI|sd()w7nabl+2JYO z#j3cs5k-g68Qt}(3`Ru))L9Q91P2$_dGHj?vV=+mtF5-yrP)K$#h}CEuKQ&v4zxqxtyVRa%_!y%4_50Q_d?Br*8gyR$FpSvME4Kdx&@pg_`rW zYxV6eR*yo?P{Y#F(oNb14@F+6yLPL@e1F;8FQcE2uSS6E2-6YZ)puKjy0{;2dT@xV z!3RPNmHIc-y!4ix&j!T#ZJDTxxzlbLFOPE>qy!r67>vLvi{k=68ir|I$Hfb}Y#*U13{Y7PK%kN_+rn(JyA@ ztg~66V5zDNWz#^edgRr>=!8$h3^kw;_UI#c)cQ+D|?5>+2}^yWPw~H*7Mhs}&?BIklGSss(nhEJ4Y91QXO!C=%&hWT*>=_dqppbyW zRWP<~g@h6EC22bSs&IRNzDk|=8UBHdb&W0Mz}!_$;i!z@nCFp60C9l{vC>Yi4r8`8 zAri&cSZ5AGzaJGTWuAn{ya6am>|ZKo9skbY#&DaP@(=$H>j465@APi`ay7`Vd1F`i zw|W`un;GjNA6ZrnSB+BbT+&;#UGx&(bH{T17~xW|`=k9Nfdc+H0e9wc2qj`!3_{WF zK2BI>XPZ*tfR6eo*Nv_8uhJNJF0+wgZdvCulp_1*l&Mqvi|aN&UXr;e^U?ARs}tHK z8O)oZhc&J;xI)yPrP-SDgTV_cPNa293-ammfoS(@1ykV^^lR`Ut0&jk(m@RaiMlX#X_M_|igoW8 zN7v|K8d0ZHy+?mmERQeGgwMnx7ErE?%+~osBL$y}a$j$&+d(EnnJDutCE@W2r!H2Y zEoj3G#(!dbVoj-cXJ4RbrJ;aqWRL!MGP<+t99s50rY+x<$qJc5iE0jB!2&0-)U zlz*Q^7d3nfE}$+wL1~|OIJtC8@#u>EF>6mZ1c@}FKo5@1aAAP7HW-bRXFJDQ8Z_z> zf67PV1cX^x-lWM{dB#0%pj3=FbzM~-F@rclnx?L0n0}#B z-z-TuF1pkHr8t4YE7bK*)Pf3Y*Dc~THywLF

n{Mdr9~cZuEc73I+hO}8y~KBa%07iB{v`=`P223M{k5pZXCGggF(tCB zEvb3WN1PB!FG|KU+nN?yD?|Y$1g>juhpaoP4RGtVRWE0p=sp7|W-J!2Y#jdb}db&3jR;u#KJ$ zoORGJLpBbyXZw+QTtutHWdc_KRE^IN(t09w91oI)dnB)opL7=W3Z4n?GLM2=wtL+; ztYMq{q}4Ude+Y(~5BOZ5%rL7tPG`77i zPm?8K3$|?s;@l>eD^U%Glgd7FrB@j@G*)lqf^g$NO~eW*g2OdiMN^uUr(uHjg2G%h zea|4{Ks7aK=WfTYkV#)0x%yl&1-7xygOe9#stPPL`<>q7_5R{I+f%NgYcElpKnjHs z&5WK}I+p0v=ptp1KMfm~+IALsj#Kp>CybGgYgC?2xb|XwV(bQVBA0d9d~!#DqT#It zj)07Emy$zMhv$DPkE$;R+7IYR;dW+5gXfl5^MY>_%rV_7x3{&y;*?WGufcVEh4z^a zS8F0sPjG+e$_Akq*Fj zeR@5nZk{)YsTo$1#*H73^OhqleU zQ(OWnRH$7L*OH2Eb`c_FE(O16=6HG3{}}UNSz_yoTLaB)>IkyxF<4p{YGa>4t@{Zn<2w~DS(O|LyQrvk3AUij|7uBnnv=pP#o=O)Ku!7`2fS0PM2OfQhO{U4r6B34 z>m5Y1XIjb-d?X2>X#s@M7y)35E0@T+XwkquYln;gT{pnw~h1e@J2ExDUet3@+>%_Ip5 z2?=WzJu^Xx56v}v%Hfu6QmTWAad|WGeC+Yrq?t9RiX>{uI^{A#FXZbMY-Wuq>nuYp zFI1a@NVb&qEA`vTsD>UcE-w&Y22#F;8%=Iy>|%5c##GTezi)cgH&QxElc5-$>bdtF z1V{rc7T}PlL)U?lQ|~%rbX{K|-?7x~%bQwm^6N##=nEPfz#MNb1pkk zlI4uZ-;bBX!E-DE`#>D_%M*k7ts~th4wPC?yAmfHwu;TZKXLlHl`hv9YyQcJ+1|ZE zIaxXXz(z&*dM6e?qY#8JmzsvpBh*4by`T!gCHfehuwFd9aCdke1CMes7rG)j|E`gy zl@hr&ffHp0i*g4n1&>0I3>WkewQll$U zB{^oh{N>+Ix+y?pm~`5nb>g>^(4%lA&O-6`YYz!+Umm&-gZo{p^+C{*?RH#G1oto&NUdEeX3z^6W->lWlVK<)p20!p~OSV+nal$gS!@G9EPa_iWM zM9JmKAb1CTW}PA}$k(p~j+;;@gBMf;C3&vVRhS#_Bv9#pe{3+H19QWq?zKz3OLo9? zFp!!u6D>ZuPwI@!gP%)(-v#h*+5Y>*OZ4ag7J-{(dP;b2p0=PXv~tO#&J{_Xt?iyA zC!VmOx^kzo7u|Ms)m+1EB#yQz+ZT~kwj@^*Yi(l^tqiJ!*YWlDo6)@0?5BZ|l5`Ug zJv&@!y7Fb@1Ht&d7tP11NR_>9u|S8uF(az z5QjkcyNgwG*Fm^~5~P4Gc2qhTqTIh}apJd%rH|jS5Y&tNos0wgnH!u&gPKs4H!MTL z!R`qTQWi3A?NU+Q_$t%*#{DW5|5lTKUVd_%esKU$l&o9NPT=oK<)0m}sMfc!`Bq{O zU9zfOuyk_G0c0-;pPzWJ?TMaN-Q~Q$ZhZeci_)5k8rYa$Ft?$C2_m$)2S*(0%-Y;9 z;gklg)2^7c+csYzY)hxV;QL3&|CaXAP<-O!gU}_6OUCfzp3jCDEs7LvL!~iu(FdEc z)}6Z41)mP;AJAeFB2I9o`@7BdF_OB$8t=D``u~TPifZJ`Cz@ycUfwN%>HwEvlbyb# zFl}~2Sl0xl91_oZ5Q-aGMgP}%KR#fI*_Ya=5ERea>FgHiToBwXImaeHdP4&*udQoz zAy=xq&8gy)V;DE=l&THs!4gdcHkzG_x_)@ zIpvb+bIp0OP*xX9R9&{swp8!)1S`D4W!Pk0#oH?I9VpkFiJ#{F!N8;n?7;q1H)HPK za{Tt4cZc?%tnYT1e7|rq<%1!$L4!|i{UB7c z%Qhw4|7J1d77+&*;4a*WxG99Tkvz}(9XY6sO8mOA09s{7*oU(>TdNAr*tKwP%^R6f zbXRQl9n?u%>Z_aOo>at5+CdI-mM8T!{ubaU8BTDo$y+itVD&=BTS=LV3pQHyD7O_tEGj}LjD zUySl;O$PW#_a5o`Sa*ugwuurWz~T4gU2ZDtBrorb^Nk5kB3o;oQ!W=L4H4Rstgv8r znQc9LQl{H)1z^9lE_ulhtLP|RbI3GA$t|K_N8NHXo_Fv_WRRQ5;$=PuMR$`$yyXZ& zL8+6)?tR}b>U9WE#VW9lGW&_H*1m<*l$u?bQZZ%w_WmEid; zkxvw>6a4PCI!(>znKsT{u6OVYpSFAFaBwo;`dC2yNkPQ)x#`&371%Muj0s9yUNbjW zWjbz9@7f>caMK3!HvZYzrpN}Yf@@D10IfP3ED)KXY5<>=pdK84T7FXZUL{_hlH zBBo`YbGWXe#dh#QWz=#^gzedpmd}a|d>L?b;Is9xtB8h?E)en|j_dVvg9-75T>6qz zGo}2W`aS`gGc;zmgiq!}gyg=P!``!OirhImY4?=b&7t?42eh;-lk=jY<=3-Tb{NZk z-(m3)f@ZsmmPTBc1eSW=TlT(EzO6ec#xB+16*R?M8S~huoi&B@VqLk!ZW=`%|Nq5B-S zYxDh~jaj*6h2Q@0;t!GH9aW^b@7swp=_O7YhKuj0-DN9zb9XJ<#a;IY0E`Hswzc>Y;+m3_5mnccIbp^=snSqIB_7kqUC zfJv@`<%^G(cQvhycKCi=wI)XSAFYY}7wdK;#ztaKr}1+xU}T3Qj?|)A@I9AFBZQgv zmFxXo5Rl5~bgdUGeMo@2AHlo>)&N20>4OF;H{IYq3c0mAjA@8vTG_SXePgZ&|xBem$z7mn@?PX z!aUcCLc4YKyeiX zx6Cv0ync&g-+)2p{~qNJe|gXoonivm6!&^a4A|6bR{Z!DDI1AF+g&x%)mgkpHAndB z=XmG8AKblU+0G1}NX2EZbwMv;x^x^X z2Wn08!C!Tge{6TR0?v}Z9u(YFez%Def3-3ELR`vpbzQ{k69;#+FOo%RrIvEX?Enxm&_Dtmv7Yf`TzAZGF2nFb#XzCf##bMGnV0r;Mh?y82JhIKLUcR4Qg~)EY1M(nc63zJ zJNyuf{xAR~+ftKz(+-zXK$v~c-@&pDYnQdBVZ*}(;}% zn~t_YQs0xI)i6`WMdr^Ve7TkqlS^4gy?yomZr714cz#A3r>0Ygfg{fKG-pOaf3#r= z$TRvIKuI!-#+7K^y^_Xb|~zPf03oYUUcfEtfBwO}Y* zVT-18ZsoVCG01nmMX{}`haQR7JzP~J!FQ1ic}}t>((3CSdo-Dmj)w}IC8N3bmCpMT z2WpaICl68%DA|FM-u&Gza@54}y625M9%i;C@ruw_9jIk9YK73no3lL%+MQI*? zAYS{@q1ZB+Xqtz;uo-#vK;DT1+(S;&>pF>+ghn1dVZiRzK~UG}WPP$8l$*op1kp|K z2P%twAN=}l-@YoSmEv>4cH`S_itUhw(r@{53`U-*yKD;87J^N)u?@j)Ef2c7>XAEe$62t!8jdZ@UY zEvf>>-uxUt;5YJYN1^-MrZtrSWqpbrnn=xU|A2YBm5@irIDIg_jR%A80;jWH-|5uJ zPWR%Q({YiV?#Tb-bZh29hK|hjq2rh`4N+Hi()RvL?l3q*HyMYe%q#Nb)FkDap&rt8 zO%D>H!tXuz1kR2$eLYx5CKbU!r`JVM7BY%%c34GG3o?ohuA!*Wfv2I6=I_!NIo$va z8?$HMzRC@#J}DSpdRB38N0p8>(G~3&vW|W164rLRB2FB+Zm2nr#Y8r!@CaY1&-Dk!qLa zRx)y)SRXm>Qk->$?5x>8<*d1MSO~+@^-j0q0hO2?UG)^jRl8SR zRqm%;mF%gH*Y{K%il;7+J@w2_d8!F;RND0&^#qlpT9F;~^G`YIKN<5kKmE^`|1)Na zVs_&{V_wrP1OG#23Z427nW-{}cmE+Xg>Sh2M>8n-xa@y4gOV5QTIJ0D(TvqL0H*(F z#(y;9zXWhqy!tNzytT9@)%=$LQi+fMsTowt<9})fmF)PRnt@lc{Vt^cC(VJ<)pr&B zKWUB>`CUT)PiNk>uvR1ck7oQwGsrz;}XQJ zvRQzv-{`QFQJHY!;s>Qmq6UU7YSaSTCSgiZOq^U4WB9j4F;_9hT}vcX`p`3Iy3caW zm~LCg83U~uC0i2r!kyg0DfW`cYYuuypRP`a9->l4<{|YxUXlm@LQpt zNcq(C{SQxu4{A{L^IIxY>PZT0p!Dk_xmHh_g_l!$&wp&Upu{Yag5$Sllw>U$mX0rT z&%_#9~$)Dz1ly*j?XPtT6ahd#kMaSsA%)OK}m{|_oY%RNq0~Mrts)RIe z7u}RyY)mH|;)vOayzJ_`4exMSL8D!@(Ke_k7|Q?Jof9fS2a~tR$JdRvx7P6`=?4%p zoM1$pbFH;X^3Jd1Ow+;muhJc5~5aZh~B zK=XskTV@$6KFZKZPnN#ad@y=MfcV9u6(xHcf*~ONwh1I;F{gli?trG3tVHD0(EiZH zSky={UXmj)Ufzvs73w;f#UC4`|8Fx1Na?=!Nu#4TR2LXA6E1b~9&)=Wh2zh>+otM< zIuU|^H#AE7WPEJe<{JM=-&#I!jE?0^W3nVo!u0Oiq0|95!{B`aqNGh@H+IfQBjtrI zj2)NkjtW;j@AFa}tF+?HPSAJuy~Hj2{}Z2s0yypD(?@;rv5x0Gym2Jm%nN5u3`G<@ z*{Ckv2(E$FCO~6fdcLSGU_V1}z?LrDU*P75Zn6bEp9Un-t;mZZjstSYBKm}yOPo+T zSQs*~p5D!=P;oA{`)s>$2r^RPXwvgJ!cgOkKQZ{s;~yFu?uSwJ9aNM14jR`Q_0*Gp zX76K^0 z)z=ZXzX?U|(CD*V4e zAD5m^sPMFv@qyeX=;KQ~j~KP9V<$-y*L=85p6Q-c<8}G+y2W)+WE0l?3M>Q(%**)U zYfU%EJye*jF!6RI-&Q0`m#%dJ?-gsgxv+$Esj)d@VhDBjeW02MCFDeqqjketv}TU} zbASC>Pb0;X*T5%}-?gPRM}MYg=H21$`9t#irtWP;1*@7@@u-y+!KHBecc!Z+;!;^~ zBi&H({e|>4qx21NyJQrQeD7xuR3yj?r>jW%3|=^{8Yq67;OWnb^As>Ua=M-SiXN=z zGzZSk=Y={faetVRMhig~%b+Bcw7k_yu6s$($|dr5>dyXeou-=|NE$@|_Q{=YGEr;o zKE64xT=o$|oq>}`(ygV;N7)6_!bZ4k8J{3O8f*8iBMXcHG<4w%mUHO>F787?7 z^j#y3gW*oXd86&J&9;3_Os;*jiNaw7Ei!_bk0;Tdm6`DF!aF=dD!f5k@*iuhg1Bi4W1O#E2xmSb~P8Y-t zwVd4DqI!e9d1g6574T&U$$7cR&o@Pib(9qodxw;H0dDf(t^#~G^icSyZ}C{=l}5)5 znuJiN#8P_cY|)Fbt6tj&B(Qa(rwmKpS5Ac_?Vqo3NS6v&YWMis&~te9X$LjXjjOU# zy8Z5vJBWT;!{`5{+Yg)KaNEMd$GeY!aR~6JQf&LyY#X?dW@a&GWyWL7g@{Do$3J-> z6IVg+mept(= z>otf&!{Q#3E*#~;d~{N9xc!eOKF5Wl!qUrN7nD@qTj)eqJNx_=iYVmm#s6;U17>lgClf9_C^9+^E}Epqp@Zw4VHc3|s^R4orU!hQ z1fS)_li;>-ey_m?iY*+TrS$i7s!sg=P8j#*pYbrm5~M}f#(hw zAm(96JO(fb(73nb?*JugBPhi;Kc9rA-xe|Wu=59UAipPjPJUfg@ltw;9t%Dj6FJsGyjjqT@tW!_oae*OM_sUECiF`++WNfQ|A2I} z<6uLCDskj+s{s0}T3mfFB9{XJ=Q1>~i>< zSS1AxREVV=&I;o-kkMEJ+%`Up#3r9MWsC^8TZ-s)9)^zOmQ@?Ky?y1#ZO%&I&5IoG z%{2&GkXY6;Yl*j{4;?Zzs!_l-f#X2sd-? zKYyE^q+%`Av5kg!NjRb-0g9i>M<7Y@NxWf3>TaXbZ{Gn1BV1bgHoxeM$q*A5@Dcf2 zhmMAI6~onft2PIxrH5JNHp6^f^IAn2qI57bK4R8Uh5Qg?dKOPOLiTj~b!kQ?md?ux z;Cq8!llt|ot02t$=m}FKGhPCF-$E*BE@36qNte25yy5{11&OoCNL;Xn#C2Xj!<1j| zc3mi4dCie`hIcD+dg??%KyaJd(l)I7%!!ia_|3@J%HTFtm)e0Y-S7pPNh_PNuAD-z z1sS59UtE?jP7juX%nQA6yWaM;w$&w47piIHPF8Fw>GAev!u(_DzFLOF8j=JZ7Ud;{ ze^r3b+%YEn>MXK|3912mJF;PT5A!|wF#VLdb`R3W0d0^x{F*r{z<}B0=TY&vJaj9_B4gE7#r>mtwgoi?{!FS~x4jet*NqR(* z_4;B=v}MJKqT`OjmTqO0yNFjyH`*>Fin+v=0;EQT+MeWg$a(LL9N=grG%-$QY&YPs;qe3_4$7}u**n!2n*e=C*oqurN`*ZD>nN*M zFCglM`@|6vbdd`JJ|CCcNG3V?)2FefPaAEe2pNe2jxo3?Gm_zQ2|S=zqIu+D1-)Np zj|KiZ!j>iHuG6%o4j$bnbj{edTFz+x(0fx6F~E zX7GBkSZZMx%UkWKfqN^eKJO&a(;cw65jkSMo-P1W3`Q9xGHSQz)wGQ!7PKa7?CAAkpqVfiK5w6BvAwQf|AhXh_P6G z|0B-jKhpY>ROB$73`vjHAnAW0hg1dG9RQPh=dbFim2?{?RC=a$=WgIS9aJ%xQ)vtW zk7GO-oge_cF5PHZ@=EoSv#j(T8e)VnTE)cYuAg~%d(T{}g9zf@^yEFCSDi}e*+@P0 zpd$KxH*uCh6~P$g20bQOpDb|PP0#B$W~NjQZo;B$4z>h@IB+0!*VNdP2OHX`ipmKXRstgHoyr(xTqx_Ju?u8K%FTx=FL zHy&-ns+x;uY(_>Bw-`dY2oqwdo#P`{8VH)No{77265C3E-xd*6N|_Q$S~uoYc{XQD z-e^fT@!9~b@+pypdA1v+O^aCIrL?t(bCdtd&0bu zy&36Qb2w4Jn;njx;4plvzyZM2s41)hu(~94N$9<^NKSo{zF$y*iggtd#)$O7Ye_fn ztr?MKL>ibfUzcvSuA<8q(LL1{W~7?ZZ2^aXOFZUP+prFza2hO?= z!W8yfk*5T@^4?A)>5K1+o+rE0Rf4K+7Npk11!NTn1f-qybysqd+i9$S3`hxWYP+#X zg-7YIhkTm!Aqp-S+^cT2h6|}DdUY@LjTAWWKOHp&sgTtsm{-^*cF&qZkr8g>X=`~i zXAjpwhLx(J{uCb~8+Qk_f}ZR^A-kn4WU?!Spgc#BG(>_@a`WQ58GVs*RT|=(+y~Dny^u$Hzp>qguV!3hdv=1)g}(fEfh3AW zcD|rDQQvPorNsda77Nd*DG5!_TF(dN)dsKrF>^Q^< zGA_mhfv`97XX*`B+0vWE6&uqWcYO*yC6g>*3Z|YovEY#d1^Cno(p>i(iX2VwyaxhD zBh#gn#(5JeNdu&cA0p#^q1A+JTkp-{%Y4NEOtU5$wGy0UNQdowJAOtX*&LW=wbbwN znRcaaLK=S{D9b#k2^?G{9Q}SC!9s9t7Rjl?CX{*}4R3;@Ra8n|^*n9*a4Qv2^tZk1 zRJVH5k$lnq4?&%bqI@g;hr5@bcIz=&+J1-!3%Delch^XLcOK#MCagdvfjFgapH^ht zGqF$0Ez39R9pA!idWErKy_Xd3mIL}MTsV7_qeuV^#(+!QPZF5t&}Rj6=H#P+5qfg9 z-q?-ygUc;NtbF#Ev05R~LmpAPnWgCJx15~|du})8_Ym;6(O?u%+7p~`xDx-l}r%lRRWfhz_k7?VTyR;9Zk}8tNn>=@Z!T*>!qMm(yt3fm1*VH)ny; zfZ0V>oORA#3~ql2f^;u(WxP4EMxv&mFVg4j%Zjh0Xn&-aBhy7g%GrHG;3&N0YJ8HwmcR%p{2OpUnIQeC`*=h31g6kC z#2H<;(qV940DV`)KBbRw+=`Xp$>f0EUEikafOQKK&90$$ivZ)=b1LV-h%fwzFav7k ztIRQL=#c~MR8whMq`oN`WgNJgg=4iq#-?8j&@NUpGnRjUwG;5^o*P-P)d4F<0*%J} zRy^!yHpW_dFHCI1LS2rO(G$U6E|CwNH&Q=%J1bH68G9GGazoTGuOb%iBQ;0L1T50( zjjGQ%TQeqU;wS^#!FB|BM zsR;HoGxBd(PeP0#I&+>@>{T*h|pOI^4WU*>k@f8Yui?2P#>XgpW5XFJf zZx4jvY^sJHctXetf)w7B%dkXGv=f2c2Xdni+&OicZdoQXtg3~+*T)p=#4;;YO~g56 zq_5(Gw=3#z9?)ZYcM;@HS(SxGYHk?X9*y>`NKC@6agNpnl+?`fJCCnUE@zvxX{p_Q z|Nb?JiD8P&4pr9p#K$v>e>Jy&T9WvFt+9eJFwNktOw#;Nz#+ZDxQgIm^y$DRefAo$ zR1ShGhBgd=wgdzM8wbv%cYwWm`9aOhwRu*i-W-k&{`}S(=s|dH<;M|elV(eCoOOdf zt6!r&tAdPPq{1P+qVP{@4yYkaN^Xp%aj;N9B-`m^O8{uuos)kg|ID z;8E&U6<82NiZJ4oT*x*pg@1Q3@Nw;_delE6k&O>GP;_&HGVgPIqjuOtj@IUahQF;og9z<4EABQ`O9)vW0so zomw$}e|sHtcJ#kI6-f@fNI}=n$t$m%J*+V=oPj8mQwi(s*3}(ew=nw1N!= zcOYo=Z51r2i4If|#a56iQgl(}(~>}L zE$}K5*>i@v0plbqMZ8HS`@-EdU-;QfNyv3dQW2Ik?*k@bjciRHx|dYpnU*AM3P)dw z23C?-UmJ&bPS~h;@@Y|UVZi>9mT}t=KFPd^TKc#OV`q<>r~wcQLIA7+_0*64z&ABki>ChX`!n3hA96fU}V zi7t*46xeZ@wPz9e1Kvns^u#=Z1239qGibUUA0r>4Xd`pv^4l-G^Rc1G$fF1JWEG}} zD`D^)Ck5HV`jihzW+0OftC%G&_*jrH`5+#x9Ymkm@=x?n?BI9(d}Ep9;nAs&c|Hv* zN%(a9mIij%CErLx&s-cl99c#0)}#)z4A=)M%Eg*cKH^s7Y*|#ZuU>_$L;x_Zg+#!k{elM0!F2kd?1P-pKxR$dcNQ`VBH65d5EGQQGJLX8_@f* z%Yzf3M@i!z^GWfgoTRI&l$5@xpHdN65Cau~nG0(bfeF2UpJ-y)#wIH#7q7oG+d?S7 zf00!@Jw+daOsv7O6Zo_5BFInc2zYV${>9%k~fQT9Q0^nayuL7}6IGg!= z8La$K1?kRaCj-JXPBv&%yV1H27!AvZsS}Nsm++lS0;u~L1=q8v6xiJV$;r#-hji`OZuxE=lg&W>OL_Y8kGLZOOL6Y>>19m=&Z!Oj$YeqE`gVJU;**x zx8p~$;suBuC52;qvk6)o6gQ#UBi%0Y=L1BU8g4A8-3D5Q&<5|@Pk>LW0Be_3Xou&# z=SIS$^l_H*wb=nwp7|QcmL=m&c#_`IyCGQQB5BneodLCRwTHVuVO?`&<<7}jS zI=*D}_P+c5sLF!k)f~FSdSmdI#Wq+Xr;b}wl7MM8xdfqSB95~nCh>yzyHGbe6QCpd z%+e3^K^ipJ`nwa=&eyD_Ffmsu8yBwf0wq9RbWQk}P5+tJK^Tw%@R9}~Kxsve?e%VO zDlyV<=PDx(Nq{6Ri2tJ!v|7t5of;F1vcL2ikh zQlRd*+0lj~pd>8SOpc1J$5&xQj?Ag8|^6!c+%fMCJ9dV|j)Sg0NGfqaN}n&~&|J(@H(G4qV!_77fop6rEm z`&VZa?IU}k+nN_nKz;^9MpWJk8Y(jl4ppNGOGshHu z{d(c#@{#8E#f@|@B_F4cXWW_qb$4m9^!e~Mx5D$wgFdJ*eumk?%PBG`>j8!8j?+*P ztO#_6vXlXu^vBvzZ`=^dYRgC(f>9$i%*C8obv4 zHW0KB$Ob_=duqwOCafn6*avRswOsUlhy&-|UC=#Ja45)0B-4guT09tE4s@;@;ESMJ zNFZ^aga4vZihkMXz8ahoW$FAhH@=z1>Tn`jvheD#HuB_e`bWMG5TfpiWCW#nAJ1o> zR>rs1;q3eLm|cO*Vk}D8@zxD`%p>~}apcZI(fs!dDs!S<_q^E1(F6%z%F8Y$-ANLV zDiRtbQogbY zdvRXA=V12|u4lrx?39xkg=?t4yTZR#!RF^9%eG=`==GDbZHr8xy9G97nPBHOnr@c9 z8D}S+5$dD?ylTw-jG>P_>SeIVCO({HmDi>Ku2%2Sf}|p2c$SJiW;jd5+NTp%)43)F=)r+w6$(aPEnRXANQ=y(@z+3|gmE!O1-Gs0->in1xh+XX({=<^d z5o@f8)|pIAL)NJ2&vhZU>q!|2hrM^!4s(2nDrqbom- zxZ{TT_K4QZMe}~t*=FrUHFlT7SK;Q_g1D>kkBaL{Kf5#Hb{xE{GLCZFprLk~g;m8c z?fj|11u3&2 z)vDuSES}PybSa!;3=m5`w-?cuub&pw9|sE3nrFgGU;iX^)+lI1`im@Tw|f&Kj0F+P z9o7g7_Zhrh_(*2CHs0f-MUI|<|A)RNg=yXm^?py|{OF*YWrVtv(N5jZq?5q&#Y35x z=6Kq}A6TfC4E~q}BV8p-JyDGCNREHXGa=IT{)e;ac`*Iq!*a)xhnx$XJZkQ~dTuak zDA%xXEaErIJfiQ-oM^#%Uu6B5Uw)8vf^$y9{OV6O?xx}ILR&EAL7T_>8|z>qb8nwzSdeKOqY36rDo`p zG@blW@T4Ee&xf=PbPRmD+P)6eDE+wVi;-)4-B)`VY-EB-m_yvFF4?TMPyAQXOFFQv z+t2KsR4mXMk{H_~&FNk5JbAE8Ge&SSSEziZmFb$(vr^b+2J-P8FkrOqXhk^B!WHGF zrh8-GyubYFwkP-8rKkH&qASxqlB1iC4pirRjl~T`sWH{}p7x2=6WIl%KDvDGNoGWw zT!j9M$8I+twEyF}Z{FfQy=rx_hv}Tlmq>ua;?jkV!_u{men96V36kk*%nFCu9r-(o zf=u=lr^|&(n{#c3eG=>xHH3xPSIGdA2t*R|&K;MV>%ZNGNuHKC%w@J_#DAC{3muWg zE#3b9=OXqV=gEoeyK6?VIj#0!@X3F)<%4pLr#6%Q!a9bfXed454R|x{u5qSGG?VG-^NkSH9<)2|KbFQrN8G_9{q)-+dl?tO ziy!*n!5uBtTD+(`#GYFl228O1*i*v~@sEQ}*l|Lqxnm-BBJaGk-BXXf__0|xUtuED zKo`7FAoUUYLe`)9tiw42`SHOaQbHxC>Xv4J`};lOXgPGZz|9oZs=Y({*1+_4yYMJ#~RE){e{t6`eX>TgblZpiCIM^$_sXqdcp;lWGG zAoW^quNcQDLBg?2l^0s75F9O!Ah!$~0<^^2(?f+YI8p8F-Qf_q&9Gxp$k;>Akc7Oc zgz~wBqo-a{aFuM5JJtCavAaL$*6;5KECP=6T>cjvN0Kh8nAAPyFT>+j&8ilMNH*_t zd~io6J=)w32F?Dhf2Saf%|$3CqMBPMRQhh>-YwT4;k@HM$S8h1x-Zc{X=y6obF|C1 zaaQCz^plsUYz=2&yyg@lYm|5V($@v#oS^&6xz;TzI=s$ufG%Zc@?&_Bh(gvn1 z_KR%Z%AILiu=h5?r15I6gVrq*GY^F!u@O+2bgr`T--d2VHODd^>x-o}O9>siYt~SK<~t)Nd1iWuPKu=4CyzFq z>a4wxq$y(4E?axTk@zW0{O*;Mt~8H(Gtt~zOYIBic3ADvj+w*9^e&udsDx>1MeJSu z%|-^Al_`UjJGT@__@nzghTc4a6xV7%juz9WM#Ld352-=ycf#)c-cUJ>>?r8@a@qfLU;x5;$%FxW=O4~rLTCJ90}!(tGP z_Iv7UC15O0M66STAaU4oMlMo0~^M9B2SqE2R;7azKfXtbm)9>n18SntuM*S@CLk|+rEz1iX3p`Cq!XZBd8;oeHk zn22y5ruqw(x+PFN=lP)k z+_pG`iS#K9?pXE(689mTa$ewpJ-M2G&pvKri-3m0W{>3uo(R&jjj)Gea8XUcF1bT9 z_yc+z3koxDZ)2Ui@lWOo_+M+-naa}{0vL0wK7oK=8d zSN;VfVSH3E5UuzDojMoe;}DJwiN4K~W__h0a*zzXuyUe6srg>4re$8(JT6&! zIKT@+2j!IIuLO3;f)K>Vj zlfe7bxvA%yAR)2TtE6AWnCs-M^7U8G1edGGgCG|^KI(V{1ri;p^XfML=(?I7uS8c9 zZ0r53vkT=b3m)K+$#Z~;LHUCqapZtlZ!CZx^zjxw_~CHt{%cLQk&U)S;Q!}wjTd#5 zoq2olN=Vd?$GT@V>@kuF+V7u0*khIa_i+TtKc2?7B136j=u$c|{S|uB}#mfS1eh_-^^qUen4A~HZU7C9A z-5}0**N9t2>mM1oL%6EYwT;SKty_1mQJbPM;1Rizcm91w2xBQ4$!j>I4VP5E;`n&K z>+b}Ff0$@Uf%Yst^nl^D2=xSbPM|qBN;$40SEt(4CwQ>?%&`5)vcl3)C(K5ld}?}7 zkxKCgw_d;w?D)if=~N#u`-x_q#Rz8s-p#I~gPz;Oq?`vDnWXUWzQlQKy;y3aWg1;H za0NQ(BRG2Ku%Z7ACy?zQ!HiwX@v)GbY?N9^K3To0E&PFXt`(H+`@}`wKIUIYsKNGq zN)3P0s>PQC66%BM=%E?hVV?-l*rexiGW~|TkYN+>jX^SNO%#^x~ng2{0Qjs>hN40R!L^y+q9)Kx>jha#U{6Agh0;bSXdVgOrk z%4ijm5Z)tRluPbvHAgET{-~w|83&2w&pFGE=?@}F)ET~s2ZgJADIv3|J!@?0=LM4s zbpEqdeCgA}IOcO`n?TwT#h{4rT~|$L>uY~wg3l+;=L6E;&y5P*TTjm;e+XA3^;~h7$JZ&sXwPf0Q{$e5GbPnassNGJGxit4*)sWXVmxH!0B_}v8=X73y1J{*IQ0zXW}}a{5!Gi z0$thHyEzYu&L#VJuJlLGL6OPUZDTp$Y!3%P=6#WkrfJ9ofh_`h+Aw|ANBxJ%4+ZL^ z&N4yIu=zEZ^~7{$Tgda>-&ywqDpsyi80}S^EQPF-^-#pqpVrCJS&QaBgDnl-2Fnxx zl7oDRw1h{+wpA~FN(U{ggW;f3op;Q|_qqRG&3%ataVOcDwiTfI2*C2+NHhLpGjEKN zzuqY>Ym~M8o;r~MXzP|WHdCiSCj2wy|DFm;MO54`UmWll&MF+-h8<|Qk2=?IZ@>jD zR!Po|FOZi+zhdrx1M-j?wzSNhe%+lRx>hVTYVnIHg#4et(IA7~=hT%iRyw5TqT`V0 zR;ydZH@b<+>(P%X+3DMhfLY^}enBv6V>G|iae7EZX-?a+|0>wWaEXV&lH} zwo>h{gdD}YX1d8jO7t&zm(t>U=C=D~Q;&4fHesTN@Q#cya)d^|+b9!-z-XYwfFx0E zisLX8A}Hran+NUE0RP>mgxwCJ>x-qi~N2Q z;a0j@JeN)_(?d}qj`RusH?o}KMak>DBjuNUKJp>A&`at4&dRBfm^j4iIFP!g>SSMH zMVj=JX%fB}B>em!m3lrWABIn(WB_2QNUOo`0WgCWp2#2ykrF!)!v zrWw_eMOoMMzPCPPJ2m(PJB2bnpG+FlC5O!yI;rLw`5>;#;P0699R>{TCEQLkAzAVj z0>*OQf6tTjlcCZb(moLHlx^7V5-(=Ipool+?KrKj#fp3h2O{KIgftx}HRzaU#5lHVXGWW+ z36c}UIFLZ>X{8Un@IbIjRw4he1_vE6$*U($aWbx@k$$T6M_G~@Raa%nw11DPn7|F3 za14hDsM`=S80i z5^P;vwqWP6e4txO_yvJ8@fz&{b++DQ3~t=-nOEtsg%gT*nL5j$0dpJH$|m`Mtw8zB zZi3?3$r96^C$|rL-o|Zc@{jo=Yto^xZ+u0Zt_YHdah}ZDfYxzpcBZLxte(pb?$oU7$=>)Xlpx8Kw<*TtIEjr z3N$%9B>9mDL#K1Rw;M>?Q%AEv<*lo$w^=RvfYtAL^9#nZk8XLfW#uS4@}+eZlRHHI z5dIi?_w5Klkc1xw8F+k)E%XL>7kcj#&Af<*+zm%_H4`2Jp*;o>CAudU;K(;!u)ix= z!H3P5MT4GL8v$+0S?bDpbmsYo?U+q|`A{lntVmT^%iZ0|$+=4JFDRMF-Q&qK&qWM! z+W{Z67T06%&|o^2cMzecjdcTH>}VNdJqZB#4q&--(8brlS6LAFXkb;41#&U2XX2LE z!vX}ZnRBYunR+EqZxw}Q(^*qb4E*+zvnmI)jgVpa>%eajcn}rx zf}SjG-jQ8#OAm4EjAug%b^z4Kl!oUT#@Gkh4{{3~!bg>Ytu{cH&XkVni2zj_slqo( z9p=#IDN*jN3mJ)JegTOS7@tpPx#-pL`XFC8rt;&*_kk>a-#!oJ7?2!D;Y5$qCBz`w zRg#AWrEo_S5>*?*}gXRl-X*su5Dr<^`i{G z@y0g=v8?|oQ#;v`U;Kh4>(T8mU;OGZ*(8HXyCwH@H?Ut&1dQUx72#E&m0&}4SRCKF z@d)Cl;*VjY?P&wkpTTngndrWaKx=0jda@$T-&up=#^(MmF;wCk-}|EzkpaGzW{KgPzedbMpSl_v? zQ;Q#!%6GqK3F0}2SE;a>A3<17#=m)TL-G#=Vf7!h+}|8?pGC01_gMg-aI3{P0Zw7* z$y)eP`Ks%c@sBlS4J>T+f19ppI_jAIxkCC2+FC^CTUF9^yVNt!E$Se3{nUEL|;{pY%9m24DT_*qR!zb{EBZIC>{Ywn!dX;pBH=wxHWO8 z57K*%Smp=DU|leh`Yd=3V z6k9dKVwHFDy>t5WFSQikWQvl@<2;`VLFBx^X%=ctdxic*mbgz7JF@5%NT^aF{s!66 z{Am(^dl}Q_dNv-c>z_Zr)h$y^+csjSYkUoT45Xi%OL0Rz*0v^Wideoxym-;>!?zmP zA9{iA0m|y-$-?cJ=i2IjzOv31==Hph=R(~ro+Eu*PHm`RVi=WkWzxl8$w~m)sjp2RNISG1IU`eL0G+34M-uoac7~9VG zjt9%kHf)jq!DT5dQ7dJf?53zSH~s1Uii@G(Zj4om;?x6XAs<7XS<9Wr1e5kY-H8+; zm#|;LnymNK2M=3!az7I3WT6G6!4B7O5zQJ6Cd^c_345b4n+} zd(CUN=%5(9=)u!>;*c+GOFkz1yy+@HwB-OT?!$px>YUtFSzt{7{sbi}n0&vWU}k?q z{Tm?H)ivE69$}b)n+wbzj58Ba z>Wtdba7?SQI|MYp-6f|NLDjYlFYReH%a@1ClauG$QJi4<1~srtSW_`Mapoc_H}tCZZPIaB)Yapd;ZisFyS377&0&hhT1Q zxeL_QD9UaqrSR;Q16XaJ-@bn@Ir;8!o$fe;(o2AW%3n2Gy85;Adn)NepFD{4ZcqFA zf+5nke-Fm*#byzEpylZ^CuI!pu1v3^eL^nx0vQTGw7?dgHg)a1p+Y=5RrJ8d%3uj> z@5)jyPA!<1YS9&`nrlYe$^cev7w`*JB(UnCNB0MZl7V{PSRLPDJ-LDl{p$2X(?vG&jF!a>%(0gwGt%ZbEK~0CEHd-}Cie;iuhd)Kz@z zR!UeXS|NvpoL{I5DzX*u-Nzf#YfOk!uC>n1k?mWq;;96d#yncWO13`Yk7kg zde%v> zpgb`Y2pkGj_2PawL1HN36z(-m1j@18;T5n>;dsT}*16nx{UXJ0&282)ALp3vJUH2S z5RL`K4^z>3@h5xn%4Py*6aIXGsy!e7{VZC#5niCW|Cbjit2-$88-6SKD&JV~c$@wT zOpgT0I~anVP4&4J17vzxn5!GIvZHFTIJ!hSFY~@)1YpN9fIi+#l0K%d>WK&FyAr|H zD^t>!_;f>mmi#^j^Ds`I%|kk72H^!W5SwTaMiBA*w|Sx3i0$ubq1caLjClVajFHL< zyOC~tkv5Ht_R}lC7_OZpY17*vhLZ7v!8k_|yQyN3-YW$sgDG7;n=b7cIHnH{i3ByqS5<$1~1*hY=#>drb+QY4`2Xljm zra@Bg2qKVNVDz$dw!tE0^Pbc5&a#TqyV{{kZeUM_=8LWN8f`4}zEpOwd1XJ@3Gk`3 z%ivA&@xPX{-wWCAN$>wc(tfDsh|~(Byhkt-cL zrsMTKxGq|r10zqc$bm+2l>gu$f3MV~-BQj7eR{nGw;FzrEp!H1*VZ^oE)ZA7HQ_KS z*eEBovsZm9h>pyLHRrh0O?kenwwM1wrATI#;YU0Uk!E7Zdq5Rtvs#-v&B`f}HO78dH`;%T$)-=6Mh?#ueo+;p=YRwXN%}1CI(adf8nVa9ki{u0+q$0j} z9u3cl(_XXiRZa9imJ54_>^j<7ebuiVuY-G3JRnyi*717cTFxEI7t7?MH>0VI&HooV)UH%Vh#4C9ykw zjVT+tZwG45-s%t~JW9V`+t+?W%h^EIE~oul-=PdMDb@T(1SSOsPx=ejwtipDT{Ijv zkgXf94pI`{^9k%2z^|%G9i2-A^@rzyv^PBWtH6oTSj!WrRImN?YVUW0Q!{z6>Uhf( zk1ed|c;Y2@9ZlNPgj;nw(~R?7gW_1JXYkLU))Mmbjw+2M8=^;!jyPQ|L_zI-0c-zU zc4mrp0ktN}y>zmSlL7nQv+-rH%qrU?#nWOnyn~-Hu9!;+4FQD;8IZieRpx8M5-Bqy zItOxjYmY+Lyn*64<3;s-v-iNd+fn(rBm!k2H&^xRUf_bN2a!O8+Nz} z7m?9zyhB;$$o%e+&^PW~2W7p3ja8U|0R{0a)MIOKEaXn{VM~E)Z`_S%_zCGWMiPT| z-hmtw1I4@nL2jU9HSx>$PrzZ&s!%=n_s%!@ZK#74zP$Er(q-kjOcx{J6Cq{OS7ZcS z@e0?UBP)h*WQqJ=jw~V%!eBAKjk8eRu8B~;utmY(t_N?`VH<)q55YC2tMA%WuVh)8 zrOAiDnVQ-qDe~-bly-cRb=ZhZ6)BU_CMPg-ABCF zeydVn$cV*{*Mf0#wyvL3eXY(ueE{4aD6Jq%IsvO~(uwI?$-V(hqRfJ>({jMlVjGeU zg8+}1U=h1#ro7+^$x^^xRh??x`7iR1+vlE*lRB~4BCOQ2Vz|sIf$DWG_tzYAWDT3f0&h0r| zYrwG>$d0zbZb+_^aScD_OkkM1zr42#pSF~fo#&s@m|`Neg~PTZ&LM$prS+w{ID1=P@P(08aD%m^i>N5SfDAUNmM(|@Sc zVtvBoGW$o}j@$gtNFKJ|`W|H_i~o&85QWPD5Sbi`1^^x?xkC~_0~-D6cl9A8b=U{K z)Ti`HNdUN~)_y6c3ms(=Co~YtHYAzYh~v2CZ=^Nvo)MfUPE0>phJC!JU@oYv!-w6n zn=hpvv<)iX79SkxX9^MskBMW(acc{-IOs@JQ>PO>(OGp95505PGstb&o;QH7?JD;@ zO@{hfX!pxq!>jIGf)>XmRVhW%q0f8+53`0`b1G6K*AL(!QF{66$E=Jfyd#;(iMv)S z)J9b{gC_<;Lr^OWlDif1AbCT}BjFt)TNs<;(r^;wd&0BvA?UZALB||YocV)5Vjp6h zk8Z3SpA0nMb$dns(^#Gi* zbs+^F;`1?8<`#>#dvIOEV4zbyeA;%g;=M9nuByn=6;C$(`23xNau+xiP2WROgIbh}ds49t%Qt*Uynk+Qw!O8f4ZMVeRcUziWC7;&+dL&6+Wt>06H*maT zV3z#UIL|}R3%uHvr1O%+%6cx}6%@*Jsxj<(L~tf@+jBn8W7;o-hywJRpn=obw_G`HZLPAcPSEm}7|_fE#Pms};cH zbe*n5+jWZVdvHccS%3>-2Glp=`%+ax%X zH9Pe32M=%K`zu&+B-zIo9O0Mp5u%YkHeQyDgxJ7S7|6V@YvKkJc8oP@naawhDX?ZMqNaUw#5%?xFWPN4c1h-*ZcM zujPlP+!=B-2MxJv*c+C{wAySVx}~hZMl?^3BQ6{{x@_ho{92T%AYrg`V|r`-RfV=S zg2@Y+Na<{Lu()N{ZrKpny`jp8pWpg1I;U~`sw@a?H@Cj;*cNhdLF1&|B9->!Lnype z9qT&nt|j8k-29?N2ma#RC-8FVWrZoLv}( z*ycuwKDW8|deileYtCS0D~d06r#N~3aPDLfZTaZ;r~2P8T1~>IO8e(i-BGhRbou8b z;MRNs^>4eoTJ+j#f%c2m%)aSV(hg&!Q#y48d8E%rz)YjbO*_9`OUW z)I-mZ1hytOV*N6OBC0dT&RtoJM053vG9^V5i`dPpKazrU@)xx6?M6`#mf5e0x zH>#}~h3Gu0A9g+@oSPIBf8;ww0)of*Cv!upyxqVg^UoPjK{5UX@QVV0Wh%16k+CCf zP^)`0QDYo1RT!bi5n~|uRWfU@M3ww?#T4*XPffO?jk7|vfXlT2)W$M0fUkmyE+sHa zvnZ=M|tX!f)lSr*_9SU-&7Mm=;TYEtvr2&`i)K&;fo#RcCw*o{)evI z=MPGyzifX7EzXMF(LXh2&>*oQkbQZ#iz>cqr|yZR#IQ%H_A2^g&xaFdMfqF!7`R5) zscCw4ASYcwXtaH6*12c^_~iRh@a>y%e1ictM1G&`FIc1q7~#eX#j4hD57;p@1|)V& z%${1c4jsPvJ_`9REyzlraW94?_MwnM62@B}#owM>YTi~2*V?U4@lVmlful#1JJV^H zoOB^Gc#)F$3j1H1hJ&D$Dx)~~II#=8E3ebFnS0HqLLdA)FWhQ%5LT4E_Wy~}KOqZY zc(`$uI2+J+VzWHKas&YsXp5MfCXW-67=Ze-Lw~1Tw)!OAwm*MC04bs>q~)H0*J}R2 z^^)S#-?=b)MT*q**GM}Z8u)sC>K-j5+)lldhrUSVkJDOMy7-H#&(b-JUEVis)Hdk2 zw0|4vQ1)|V==M}$3C1A{`SEtZ$I~6L$jE)# zY~-`I<9ltN+orLpRbP94Bs~+ZsVoCjs8JT9_fnz6EIoTw#lYh%d}Ia5Bjm#$5;t={ z`@x*rxk9D=2Hkqs+PvXrmweoiq*2~hA&8eXVylK`*IPDho;o`rL)r;YX;VCQ2V=zv zm|YZGrslRv>EzdZV~Wu?0${Z>KK=Vuke}W-eW~L|?Gzq1riQly(c911{&l61xXIqp zf1t&2x@$J?@ya>D;#DSC`+M|+2N^g=Y0~aq>T1`i&#o?3yG}I(M%|wjz?71qK;#7A zcqAqDNV9JZ50p1M%BOkcG9<#(yuOPwdMZ|-Q-1my_+KYO&56zl#eQU19SzZNSJYl1 z?}{?@lnBlg4z3q@_T=k5SBClE6{H(}lxgluMy(-wU`%FSeAlT4W-Pz1<$$m_m~wI| zol9s0C)h%+TKqE4ldYrNiuR4Cla{E?belLnyr$a`WWL^Qd-;YH@&osqoI0IYiHz5t zimBd|FV3GW@mAn>_TtXI3JlFAwc1Nhoz6BYiCr|!!Cw|zN%0bL`hpK}lo=YQL$VJ? zP@M4aj(74#k;u2F_!=|jwi)G{i1GFZXo)mcqCX1>h9Kp0WL)JkGGK2{6s`5h}nw`&56gPha zIxRGxEu`xtG8@y2S)%24@x-@9_QB^0KV=cUW`f4?x!o$%a1b5paBiWY6pX)fTV**r zndIY~_)bY$w195>@m|=wV^PwT-sAQ!s7mzu-sfP!1A&y350hnZ8B8Jx%fOck?+*~G z0j#?gG@4161+xw!2S1uSZX~XTsz6%|@&^yRwfKmwUc~IN1U_wjOcir&kW%pN2oAu3*VB{d8I^pbbP z)x(a{lI@D1KtHbIvS5g4^!>>+{8#wV@xHAv7k1T!2zKvVhFHfVU!p6RUCmX@w>Dh? z1Y)E6?w#UalQt7G>M8Hrz$m&q`-+hHg*EB0p^e9C+QziOpEi#@-Pj2Ff~LKW-nr=o zbScn0dk(zjKYxCCf7P@vlVO^EbhQ2Kjs#H{cQ|~u!G7@G0bkXx{OCP&l7~R+EnnlX zb~Rw$zARwH-b40ni)vpQGl0h3jJ7j>qB*+i{PQZI1w=vkkMe{gpcWR6f14#ZHfQX= z5iO05aYAo&r~a$1qM!_UAH3?$e5Cg1VYx8aEWt|ZylTmEo)KzjGoD5y-JfdKcjVN{ zUG!bqZNIl!=L=1WpTXIuM!CRl`c7|e4181c0N~oGiOu<9+X4Q%z}{DG1mHkm`v7=N z16UJ&Z6M7?pf#j*ue8^iXl}%fF=jS0VqTvlU6x%=Cf**bG{7`kLLb`%!q1;ZF3TC*! z85(0zIb@6w7aeguz&kePQ}))ciB9uT&#X=j`Iz)Q7jO}9S@yBV^{Hs~fy0}YU+{cg z^lOlSe|3BeBpa5#5VWxo{p$`rwsaT^PBu-#II%qr&E6NF*V?I%<+LvTP?O9K^({o7 zXnwEFXnT|EZ6tY}97W1pu%^R_QJ_Z;gdn2yz_!cT!G1-U1%!Tb@guQSjdr6KU!-ir zTmC4d|NU#@{qt+n{QYaQ|NGZAH6-@$&hfB63Hg69ZC4o1FkmL?czicthpwmQkad0L zZ*)mNG9Z!^DK9)w3 z4c`ZOq>ss_p_LhFzDIKnyz!D!1%`ae`!KDkYotJ~zmX_TfWirYH6RzQ-24xQDs{VN zEBeGG7z0=1mIw8GBoBNS(h^;~8tLY)GWulSd3HW6iTB<_3EG&Ge$%p}-|!nOxYn*B z(6D1hnql*0Prr=As7uGwZ04gSvv1M} z7YjFK!7SN+4S1P^gNyMFrp&shc#*uzUq0Q$|I<5`7|PC6MkU~ww#T}{2X)FaPtah$ z&y^D8{7d3M8d$8WX&vk_H=;D4A@DAMynOF8z*TY}9jAs~2%!k4lF?tM(rVpQim)?K zp9=d^$6BA2iKq0VWcCV*{$~TF2^~K$T-gx$SBaFVJ?;&G9N>hUet=nrk=hAboR_Z< zQy)z7GU~S!XSn?{Xk&lX=fPJw&MbES+ps119LwnIc{~JuH78WX>wDIFdh+5|3ilpv zK}j=pJY~J8>geS7Kg9uLn?x=#a}kR8okv4`Q|>tB-26l*3@mMfAwT7V#t+5xzaPEd zY0#ZRU@BMkT|Eugot<^*cAOm)`qZ^J$uEAT5U3{>5B4g0nVrpkhv_2I#jv_-D{^Co z0ninmRaE0C7%ECod9vn2aJ*uIXO)p_mdwKpd<{G=XHJ4Sb$&G(<`?@S8$S#L_>4 zYXYX}Ii|#NNuW}%XweOA{IWDi4o}7W!G|bIv+EonL4L%qKwZBxXudm?SD-&*IUmqI z_T=u-jBX3KQmMxE4Cw)7wmwbrHsotOw)jc~i3K0iGdGzyhNoHuVtp}nkgIxAwhp+d zab#b=@DH{txJR|ba{-GioE(Io4R{#2={wcEzTmjlkkQ5(dPh?0v zNM5}Jx(jbJ_?Oa(Xb~$ss}ZdxPhP*q7K_@1W_iWYU7n+R8y;1ybck6Ij9myk%Bb}` zPTUi6I3y{J8Zq%R6~ZGQ=FB|4u-$5q|IjE$Ki4aMQWN3C9n-!&BJ%9f6;0=lfg|^f zSnh@Xp*WXg3C3LKA7jq*-x_n@4;>j>3~qr!5!8`T&~vF&oaJwKu8rZ0@VCc5M`uF? zPfd?g9)EavYW46ye%$>$^#!Fe`<0HD8chb0-Xtl$pHuvJy#m8t!f$@kNXqh3+|>)l zg5IWUl~NhqGM@p#a4EoYxGE{A#7W@Sz z$c{gk%r$&>-IqTM9?_&m)D1Fx_Y8m3qAFOiOF}WJevgzCM@XYSr+S+`hkL$+KWTR> zuIOeq7KwHgwEG#v1tUj^!OF|VWKli=8V7Vu{J79|6mB=~YoRwU+Yr;cuF8oQZ3fT~ z&?*2p`w+wqwg_W4w6Q^ct7k8?9!5JN7DP=J@ZnF@h9+UM6!U(5EwL-ULjXQXzHtk>CD-{XowPaobs)j1B>Cvqg45^#w}i zSmvY~L08rC0)^!Y!`Ks~ef4;yT{K%}M7n zh9qcjD5ZBw4)A-ooXuUB0oK}A9Xfn24}cmA z_iE$60CZs1%fK^fD)82VVw&`z3Xt}(mwW=`AflO&o{YMi%Nqi30yPl8t|*TQq#j{n z>sS^z`yOi^z7wtJ30b6d*DD*Gme{`S+GPCRAiKkWs2K%!lHWndYr5{7<+IdG3M3q9 zXa9h8O-^8}FH`$_tp8se0c?C%LL2|UjlaHZgt|UP0YY70^`$eyvR;iihT?=as$IFX zgbcf02_{=cOu7zk7SV8nsn1fBQp>ONI%0IEa_2P-IUV9F=a1gRLjn;Z-1WYL(M$dp z1HvjKy)Js8&S#n)DNBRsllzg*p8i5I$I%MVcpzA%l|)SFmH;m$PyATq15THfFI?EP z-n@ID7bc__N8%@)7i&4@z1hR33~llJ`u(`}*t7BxqhM_oUci^RFafzO)BjX?t;;aT z%=%7?pWkHd;&_RYz!UJJDMy6-ww7L(?fJMBgfmwl@}k98AA_@+2TIM}7JYzWkDLkM zKTJJy?B&t>Q0~WskdH~c_@eW6wD{a^MiN!${a?)Ght~66x<^>GZTc6K+Iel;5+t~U z&lL@yB>B)UTJ)e75Jq+D2Bh1ind~@~S$dF*5M9~68BdN%UscFUXd>gkPnxxSL1g;o z&%7E?jpP#}T4yAg^D-b)U++YL+L)9Mjp}bxM0p`O=TH|+#Jw$nE; zBlFKWMyEZW1Vt8k6A!N2jfQ7A9AE4$m0=cH*naE?Mvpe4KeMO^&^MS@4E~-)y@vm7 z5vHk|5}{2p^&_E8QpM*K=~LeUiQC{Hcs>S#LlO}J8U%?HF$@}yZZ@a9r*Dx>aeP@5#2yo7_G5Q%z(McTh$>bRXrg48s15^Fb(;sx|-+!uxKHpcak>1SK-T-!b zmca`fZ-1Ix(i5)pwrP@XeIMN%2>Vgox_uDfP`fj@4K(p2i;()y>NJnb@l96wKJ%AK zK&?a@cfFf}-dNeK2O@)vu5P81uRHVP3G`R>_dhik#YlpAdgTxHMV9by-_yGnwfz5e zte!{B+YN&j)Y~M)hu^^WoOt4u?S&^!VLa7^Z&!boQclWN+iLq5JYrl!#9X!1`-RU! z9eh4oV?MFu#MtnIDvr!RJtFeQi4YC#mo6t{8>V_t?w z+04b-&we0#m^Sg%p(8|)8Szdu+e@pq!!*U06zy%150IH#+GU$_J&ZoLm7!FHr>!@{ z62xGW!=|cnx1m#kcb_aOiIDe4D;}KxY6fS1R*|lyg0UBsd#{4$`#~EWbv1I*Bm5ao zS5h|s%bT@HS2u>MJ2j~!wIZXT5xmt!{**Tzj21)HE&hQiKpnlL^vtwZ4m{^keMZuq=*m|V<$|fC)jbkz z((D3OT3iEKWOdC;JD4sj_NwK*C45QUTHwgS<{YS1E{T;y|SHSs5rEwMrQQ3yKd(^H*$(^;+X?MyNOwg{r(<0Z$nO zmJ(_pJRixd6~$D3QfU*Lc{4hnXB*>FR%D^1ez>EaVhdL`-iUp65VY_My2Q2g1l!n^ zcHD6l=a_R=BkjxhWig}vBvl=q-&0v&k-3fz+f(u#a`@1glPaIDZ8U6IosP(+# zP|2gIc)}*p?644mkxNTgiWeVSb$0AI*|=$#6%^f~rwMM}Ae6fe#qnVRYHCE=+uljM zvx1=TiVgI#g{N~#qMG@gjyjg2 zWV;@bz*3hdnRgHJ;$vLu*x70uSQEQ5YF;aw`_u*1k)JXGH7{m$+3$^40%6>aCCd1T z(_ufP^5)0GiIio-UNSg5oBXOFt=*YVg(ey1QK{UUjS1)Kmp!vyENU#bF8UU6!GwJv zP13;R1+;3Ogqc?Q+abDwDp?aX7Gqw%GhVR#WoF+0!LfEld1BU)j4kotCPxD|r@?pP z2!kZyZ00cHu&@yS*6)YQ@`D1Z;`P#7sLJRWV>{1_RuRr;+^WJ_nYjA#T;qwwete{BgT}2^9ZgivXb>qeK$!1o0U0O3 zJ3Ud_aArOs1dL!!g!$5bkfxBrxwP$*w&(tbvt`^5C zn~|AQbn*%HV4!BHifp}4#W?$=2ImlyakEJbH_0?s8oo%mG4}dB;K)PZn4PQ2cG<6U zXDm=J4= zFUxGtvDz%kA?&A0zfgH{y1tpYy6`>%>-pq8KU~#Gy1bNy1edkp8Xv7A`{aRhX>a zJ={x$(fL_p;Y0QGY5GI<((<}XDn=_g@3 zXcF=>lw-EF#{njyY@nC-E`1BVfm@AbcVoecip)!Ox1P%H!V9Jko-w|r&}S3h|7up7 zPQj-2(;x|-sF2ILoP?FEkQ>^3r#1+GT7fSwykk(FDVQ*fTUEqv)4HwEngYgT?*U}> zw&6f@r&g_XfJmIKv#ZKov9ZmU>hC(rmxdq6oor8)1r+94@H6qSU}Q69ZX`BX0cq)W zU_;AvbaT&U*O4qBH(5qmN^pyUn_g>pey6Nx@ELo_pTu!S=MOH?#reUa zIL{Gc%SPbpV`EBC4v=E|WJv@u_w_Y*<8RgdPdD+@XTpmdr}_7IzP%f_{clRkP2Jvs zS!>S-0GNX`wL2q z{9vutk5Km!1482|ka|Txr}4eua3`=0g&K>;(#ywAzmhB%T6E4Y_Mk?xV-yk{8C?DF zUt&v#5v@PrWGI=K<1c7)6Rg7J`cvp%xkke;IRVr@V!ADjE7E)fs7a%|p%eRQaJMm! zq8cwI+BDJ8KkYKhsc9@|>Z`2X?%gasDR%y~W8xF#>-u5Cm-~XC%6|*iQW0pPPk(RA z|7+j$c~4}3(iKoHULxi0b&KI5(Ibo6P7jC;#c*nER5mG}6VD4k{^wED5<63xCj;(^ws~=5gB8ROJVe%CFJ`k5n3j{9B0? z>_f!JyT#0TLKkNTNv$5;Ts=A`Qd9}IHqqEH6{eOX6*Z_IuIAOJ-OR59{Xq4R)m=@M z{Ml-=va8j8gFs~{A%!xoVqKYgccS_S+-=grFvXQZkP_x%zBiU2o^8BPy!XxUIB70` zQ}o5^n&@Sb-PE%ATwIVyZ{ybvp+%uYMvDXMt!oWT=13c=$BM{W$8K{1+Amc8?2sZG(P~&{=lWY!GLoL z!MR7>M2=tOo;-Z=1#fy^gID-Aj-}6>aj8pSsB#D+0L34q$uT8pc_a)p86wn zeFHU&RIZ5R-Sn^tH~5q{9FnnIgg5wf^!49V(r%{;6ybjtkR#nvrl5#}t-80wXFid= zeOnzVW06ExE^5&05sNK(>v2?zzRIB#FQqxy%DX1vJXp;*BkYh0Dd~dM%Wg&0Eq>NC zmxB*v$hAh^?F7t++SBuocvNP-UGh@?broU7BJZh4`kleXishW9{V)+`IAYjyWq&bS z83X`!qE~9>^}ftiPfcAF4U%6FrR2b-c1%4>3=sYvMwsP?BJ?Dsp(zCh`tMW4@TT)a zovtuSKI)iluKpv7F5J8IG@teproG`ubO$%%^;fwI6xYxtKk;j8D4oUY<(nmiDr-G( z_7@?CB6HwpllA+^BMO&A?Ui@xoc+bGuBVoS>-CykjemVCnf9p%$1 zT=~Mel_6)*#$_cXN%A_yHr4Z)r%Jp>D07FIs)Au}nc)ZIDDV$6oWu{%?i4ig*<9`c z>c|c!fKv(sott0i&sl+z7gnehGNc(+SgqaC5%I4s05l6BbkxfLeYcE}QdHMojqbDs&X;glRONo)_j`o)u zIIguIIc*yyLe@dsh?(%g zQod!A-*AE3n$U}VNKK>oV1E_o`Zbf)@0af0{|Q_3(B(N_eta=x8hJ^F>`V~5*;-7E z_ZZ(5v!P;3!;Rrbs9SL_wWsOhxg5M#_a2io+lxL?8#JK^g2b#-FUA!GYe|yeXf$Cg zCfOc(l7zxf5>o`NopJUjUJP$Z3b;c2$H)b^7#ZwmLsZ%mxhx6nL@=socM2kDl*?!+ z@`A?YJ^pHQs1e_*jBX2l7cYF14iVbhC3VDGA&X8Kg$wIm>i#_UX*q_|EK^L+lz|lj|s|3e7z*hp{qz|$Wn&wDozB21sWRj8UIuiq4|0)AgA8vlrHw|YX?i<3NmQT ze}s}#Q(mF`PAd`|TI5HYb4y=3<2toH3!+Z$Ad30+DN+M(2kz7=iXuYbwqp!Zd+8Pk zWZ_8C*-LCxTF_ji$pvy|5(_~aujw{B-Htb4^}i~O-)2nH2RCM1bUV-VF|4uM@K*VEtODtfO-55eAi8tBnVK3|KFuN6?uWs2zU6gRGJW6~??S#W zcyxa23Ql@hTE9WCKEh#rNX98we>z(x_syaVp}nzJ*>yc!VRh=|dq$}2-NOM7wiK_) zmuC$iB5}~R@?>@)s^-|vJ9mdrH1N&&jkCgWY!N@>jMhmTfa!F>~I7`BS4&|cjFE&v;qV!q;QNV!vrs}&!Z$($jIhH2#kUR zz0Ifg?!rfgFORGODHz}Szv09L7=eaDnBr!6BlnZJlcLm@^-&|3!PNt)__Zqj&l~oB zNe5M*Dm&WZ^b4+#Dcm^|3hsG%OK9XZ|3>gUhW_?E{*&ekPUh2KRU}>G2MvhB-b;ztsn~fGTPAj|WD<6CjS-IMI-}p_igK8Cs zc+&6=-P7y0$PG2xc!^*rFmP{1r!o6lt;*Fr;aCyL8#vz5J>h4*=w--2^-PX`0b98s zNNF!dVq@NSW8R0@&s&ikWFl^UQrmb31*0%{B*3Tl`qEFvILFzjd3Dzr_4T#61!lbN zkEz|{%7)4wTh})}N6&4y?~d82Ylgo{0nA!nEfeXY3x%j*0Z4`Dq?p zSc*SdGTF%2>rGLN60Ef*t&%tiK=06nf=DrhMhXfP1{yQ)zgE?bf8F^Z) z)Ap$PiAu_;T6gpoTrrHn4m>)EMNLp26G8tAM~kdazmp&=3XTEA{yU9e%}>|nUg_JZ zIBV~1du8B%zLo|XKR%55SH*s;Ht#vE%cm=EPaLk&fT!b#BBF?zFC0qBEJ#cFP;j>^ zvN%fAcnl?~G%D@nf6;c=WQyMRGM39#kTbZR)-0lPM>@l7A8I*e+qMZXUT=$d{peqz zGE7maS{}b@I!r-1NA0&rA~hPFh^y{a4}Z`I3pnpG|2+2SV=M7COi-k8=qj;Rp-69> z$nCPj1sN{n%KbnqYd06bMlQm0LQ6>G!W21d!odFfkR1$GL*D(;oq|&VFQa&0Em%9F z#!GY81bAs(6c1vLl`NS?y)7zHPm53g96AhKSo82`goux3%hd$Vook-U-4>W^u$Ez{ zJaOoMuAW@BT>6u>akqS8g`vuJF ziXbXkkQjFi^^&mUEva)T{aR@3Q?CYGjqNXrGB5l2?Wh81+5msh1Y?h<+xir+-@>~H zt1D|?5Iz!b6k&r<}_t<*5oYgCN?W}EPt{dGx3(wSB&U7PW#Cl728;p^+Qr~NDM zuWOlXFo2ULky1<4PLwu6Kc?L}TKLgORozFLLfLD(w4NFFM|7F=_mMq~u4`q1*Yg(^@=d!$qmnXD%Q;e)nh!XSy30 z&fryN5np9-Jo?--qH3cp*9@7;rp#SZh}WM zqz{Do`9Uu2ir_<#83$)f6W$>3(nEf0DkHt-Kmcb>dUJ23_ zFhQgYse;5x6xy5M{5?^)lP`IH2o8I%iFC$LzgTgFUUpZ@CoU{!ql4IW=<&Ifg_`bo z>E$zyY1d{A!C8jrt+QdM0MsW_{Wq)4$lhu5Z-AD+FBjT2A>4`v{D3j4)0N-9 zUD44ghg7*)uE7khU>i=eWYG?`)AF=n7g=>k&)L;c?5e1@3A$&YgE6cx*1Uog59n-n zx6aaUf4893anO&eYX?V!l*Nzv##IOpJtY@HFKiiHio zAq!`vTy1%A&9@9Fs^+I4 zc3L5f;f=Rtcqk|bjk6_TVZ>sxZ|sT0vOhxpdVdSz!kOS-G_g^os&kMwM!x_og*M{9 zJi~2b1gw98P;dhI^A_pTv@i@x{x?^n0jK!OHQ^V^ALaA?-QAj3VY>I;(gMR)!uiUaDr~vzf;whWWZW)1} z8$6Q4MCuP5wuqiHhCFL@zr?&PvweX{gb77_`|LL5?7I5$O!L^gm^!iY*=YE>jg^Ao zpy>=d2E!D`EJ_m35#ii0F6eAN&$Acc5!`w8?p^?TOTuk=aWtfIe=FwME7LtakPiWa zW(d5^0Q8=v_=6EdA_EK*a*6FtmFc%pr_s_NGn8|qnZ(6kP1O(dkqq2JUh0*iDv|^@ z%Qo>dkXW(|Jj}_=J7W2Wo?yxo2J?;Rt4G_QHG(~P#QZ>Ks{UaXpf&+Qu5=^S$I8;n zhu#WQhCH>|W{#>R*>23hgbV*?#NNPvX-P%GUGu38uL*IhZP=NCFq0DlRYAu1m_x$daQx_{>5BwY&6sKShn1h zPHL2&-I_wT$)$K6!JvhG#Dq|Fs>q@9?CPEbxhMYC;FzF74iKiLa~NS?IDg#o^+XUQ zfT5aKnd)pVNe$$gU5>sT<-rw^d$GitI{no;^W2=^EO?%e2^;cxrP>BWFMr|;0^Jt5|Ed0s)+-*kQZb+`uUlX&vKwf3YA3t9c@a2 z>u~C!vmXwLI~+$PRG}+79b;VZ4?pcfriz}BGq{Hy$LTLx!0w5vIJG(qg1hi8SQ=9m z8LKiX5v0wBf0G3(P8ZF!Dn9+sh@|X6IFt@i;q+4Nmz4Y6rNgOZrpq^r?cZVOQy&PIgmv4{N1%eS72DpkzRD z@nZJ7`IuHYs3LrS)P^~LhtWr{zV13b8>Pf!o1YGSPp<=T04tL{8lFBr>Izc2D&RifQ(_?@ktS)iboH0g^* zHGjT$-5pM^Q*Gi`w8F-U-m9LkzOvXwjmrA9yU-`?ulh3y_t@5XKC)@h=s-zNv8A|V zck<(g%vC|k6&HW}Lm$K$6>D90*s1&1PMsd|EtcRkgD}RNf~vVg7JR5q4f$>!48=2+ zZ;Avp3R1FJXbwPa#YG|$*a2Z3Cg|224EtzXoIN8@3Mpi^>*icdZch|T!ry=*9RR3t zf5mxDWJ6u-bS;Ls^vlY+%4}D0prhS-GnarnR`klv;#nVv#*{J6_!7voslcw>+RCG zQpssQe|yX)<;n7Sy_iNpTuzxoLc=LxVfv)m)e!Zvw`HC8)!Zc)0^i$2m%b>?uRou`fBGaS`CFvnU=j#-h^|QmIHv+L7ZZChB)UJUsrs#6`Tm&exMVbASZ}GM)j4}vr7@1OB@vtBu$|A- zV%cSBj$8HdP1W?Fa2_nXr%g9?!+d{tAmzP|+xwQ6$|5P>E>Wzv5Z|+#`J@hu)OB?v z>C39v#tzKi#p#bM8Tyxl0VVnNDdFp5*H<(@vOxDd5uz^|X{Cb&C&{QjrCZY_ zz~Z|_?o15I{|KxXjHiW*^%-M1S}d7lM)TkvW-^V8vWX@JyB(9B~9%Ycaht?>LgBqv~{~JB2Ip zB7-qg&4?kSvQOu%rM)>W_RytP)YF9MwLXPQWhWzvwTKW;7ELKKZlvONuV}C_-w(Ww zlF}<_HF@%c=@j(&x$l1cPq}@LnptNm5D~P@d{-6S+hrsjTdaKwh#SaYD#cIVawk|w zx6U9NUPTnp{ z+d8Y~t_LEcX1Td7m9_!5)LU=aK8>r3c>oD~Jpl)g-@41M)x0vsrWd`D!msbtHy@ZW zMKYP}E#_A6wQ6l$xo)8#KSXhpi-wVLW=2$kku;6gb>0eG%M^j%qW7Qq zEU_hVjC(UxLqYW3Ei^aj4>rdgHaE|JM%M}flS|({w$Kl+l#R#v4cK+n=n7ydGPLHkEhsgDu zE-(v@AHi$MU;|1hh7#B=Y5h1wqI8zTMNGp!dD>@>!ije+rC3iyMtVjrZs5frrmx9E zysNx}W9yXOlggK~_D#>%$GV%Ark+&)gLEfb!SQ zzIo>xgV5k2>?~>!F;}>Asg)v zzH;2ShS$8a+`Eojey7>rr!Xem@agBwr_$@nlkM@|4SB2lB~MKD#P4grC?XofWT)J< zZJD@!@ap1rgNd&$UjTcuj#qXmd>frXe$tL>0g7^8YV zM999QHTU#uQOs;ID!H+cN?x;J?M=+>GHjaNckP)k0Wj?)JCQs8kFfU+YB~?Ug+oUX z5K)k>q98&*>Aft{L_m<07K$P@2`%(4t{@@_NR`k#BB6)g79kYrC7}oigx*81@0b1E zyZ6q#vvdE?OlFd2p3iyCbIy6Pz>C&6aGGL{%)(lCm74Y2U>*MG4m!@iGsL9t4$kT+ z?$z3+1?+b+c==~*+Zp4G_>C832bZ>HrQ>x)LeXRu^~U5)ZZk)@uD$zRg!6>J zRYqzM2T)eqFO;#T43Z$=(ixX}F&UPr;T52cGh_x7auH^=zxYnCxeJlQ$&8`2=Gtx? zHSzK7^`R=8Vj#kgWy-;P3?*JV?{-b-#K*7%OLTm5r4U8^g9kI?DCW@pIUasBYW$ZQ zhRA-&W{Im6sE>T<;Gh|++im*+if&QdObx61yCGHRB=p66Tfrbv$5j|HZy>ygNOsm9 zFhKU1cFHc78uKRjS?KvW<@}1$BKq?5wUQ!g9Z+(DO}i|KWH2A#6?OB9^t>VE+$w)#}8!oi9=@Y>er=G(>rY=|)ypxJFEk%nM=Xn;lh7-Uidw*Paz` zSoThk!W^|ti(XDHUdueY*VjmtHnh<5oR{Z{85bWH-HGK&$UK`DaJ~Rylb$;rtvU2O zS%iFjwLdSklgNzvXv?qfqO<5iTSnB3a2M$4y~DtLitHH@J~ANvJt6YbiYZv1tsyrn zLQJT*HNskuu}y1u3@osioT8Z+n@OT$%nvNzMq?uruh`$b>3kwo zZ{LSq{T^p!=Fg9o-+Y~=6AX(D8tb+gl?U!S&%4m+BGn#!@=u#ut0)^lW3?cWc7)7g=Gv+4#y?_8 z42Mgkmy|&<2kz61sXTW*^jS?~J_`5OVzmT2KKM%&-Si>WOUl_B=NAgKCC6{@fUu|0 z6j}JtJ7$#lH<_vU{lDZcRL()g z-O3uy^Ig6-9J32NkImn?Pn2&a|DbhmQisNAl>f;WT zJ_sx443}Kr$pV6Ve4J#PSDy8%n*G^DtoKCjr=UmqZ7xPcn-mt?(vx{QE19Mcq5N@J zL83~**ruDA6?I7@$nJaK|F5vhzl(_P6-S&5 zRgsj=q1l8^v?g4#H&x8c$yr+**`v5W+`GoQ?x2)zX)n9Rbusz#S1KnjH{#xntbiX5 zv?Vr+E=!c`ownI+*CBpgYL@oM>b;P)n-rK*H9Kkb#F?#ot2632BfGi?H;in=WMoN#%uUJk?k_ z$njyM#oTs3XG45*#Wjoy6(N)f=KtUw?kO35Lu-PoN?e1d#H;-1!rM`NHE9OdgV4Q$ zN$Gk~e6n?a;m8p^_dXsx?c5X3*-$Tq^4v*%xDsF7#xbWU77VA9=D>v3Z1SQqf%na4 z5xKLVW?CqLaUkM+#vpE(*hyj%=2Veu2~^Qh=PZHworKPp;2gZeo|v>$3^3cFknL*CuAV18RD z-@Dt7E`|kO{5`j0Z5{%ZZIy14ps8LsT(QU7ySo!hDdat=jOQ90WzS!5tt?q}YiQI) zpm4v9K{mM^XjU?bci4PjB#OCOznz#5;<))0#WU%%n9_4MjB^kYus71PdD^?_efS^? zsh=5J`(^Is_@7R>)1F1RnpE-WQoLj3vgK);rFhk(oA${7+2YsW1S?h&orNj-{mQJo z#=(kFlWbF6w8$3uEE5@Ymwni}Cbt?hjO^J?Sv5cj5)Zec+bf%o7{M>;N|?60voem- zn4ezke6%0OQV<4BS7cXAA9Vnj=x+0ZlCUV%Qwo>&xjN4@O)1BfyVRR2ho^>ZL6R3K zsd{&(+xQjuTl*gSrE9vGPVHR9q3WC2-Db_K=re%A(1*&iKWdJ@Y*=UjhQorP2iYPY zr@n%){2L>%z+N$foK?Zn(5ty43;r@VZJz)W>(_R3d$e-BJ-@1CHmWI-R*QrDNt26> z1!G>*+HOPwD%;txO9rto7Dr_ZnxJ)wPiV^^<3)V~3a0f}A+aZ-;+6AHp6*47Kv;O^ z*MQaAMwob`l}!0?sUUXt?!WQ#!YRa)et#dXQJ!x6ZjP=Gb&1aH1dHnr+to5+2mHu_ z7c*aUEosR)kBO$^IEN+?y8~aF>_`jGr3UpJS`FG+#$A#X8kVE4T4_ps(UCD)zl|%9 z`fEJKZ6J5*M|IQ5A7i-FuR2vdXM?#hYi#hkVab%brJaQmYdv;s&-txNA9NTN z)RDmwTf5Lm3QT(POm$W|@-&3KrrlE*&c1l|$C}Bwmq3rG*Ax|7z0CUTe7}WH0QIO> z^-^I^)@IPOJTCl^7~paceJ8wNEQ6;icO0&vJ^R70H~?IeV}tJ|DK~)7ICt~ttC%>P zM`OaUr_1w0O*jhrzM^|dZq2J7^n5}_!GI?#h-CDXxg(yJaHAxCx}{x7@FV$t+O6=b zC8ZeT(~{EmtKV|!nOx`tYPnD#4pCZD>f!nD4jr&v_oKwv7duin&79xY&kx!Z>*9sa zRPSEsku}Vieuk)y0a&Z-L2#s|%*{dcjs~+l0tay z_ALX4ronas>gLI7-U;zUOiT(Hj8{2P@ZSEXOBj^FA9uo7F>$dEt~yKAn%lAHSu0rk zFGisohN%-W113KrJ!45+gqMJrXE#+ttbiDt99FkE2`PU$KFUjAS$~L%tl$198OyI^ zAs&6ghgA7xurhol$vGte)c_$rlY1mmr6V)FM_H{Vr=Ci3hsnnGgWt;Q2XW>N=YhG( zmln`i|Jff4iHKqy5QoSrwN=CbtMmtlZr!`OJPdDKsAHH9>86j}NNIyv89@FxPIK4T zy)kQ!zIdpxTo9aM&IxgU@#Q9$h{>YOs`O|Glru(tRm9=DGpAlE?i23ACOQ6@LYWmu z#e5`$`E7)uOOK}HLrd-lne;%|yJDr!f>@dsf-hHEk+&&vZup6#wY%ut;pckdsOU(1 zsvyE$0L~8QgtHwT5fB^obZGF!X#wSRh4im=vvSK#zE_0qg?Qj7K{>mh<(fw1eG|CM zTGW6JFGMvxHf?uF?FIYsi9rq{$yn|-zfy(Z%lqxy-)P$O5~BXPr`ob2fnxa{{fY# zI=jj)agqfdgr<8kr<*tWWQhtD@l`-}U@0E@#3I59jZJxrk1H!cei`O?P!P~Kz9e1e z8972^&#UP1Dd%3V9kl-Qq@81}}D{@`6qBAKMJWF|fogpOwAof!{6 zD>V8!kSsALZ%(EvZ^I4L6PG}9KUa45T|H%JxXhP6uv!q3{WfZ39E;p{yKCoM-RC{h zbB5V`P`6NKI~@1gH7$Ikpg3)(4lsWX_Pb(A_W%}4SrO#?vr18mq z7z&Jy;FAlkLUBptKt~mSSyy6`d1V2#`5ED+SPu?^n69rF+u82RJ8F0-cCfxm6K%+L zN@mQVuKOT;nXL*kDQ~;THI9=YtLu`%$)lR%{bg9^AYmxd_T|xX#B4bK0*YhH`{4{b zD(sJL>#LZyIrXSW86GJV2c8_|Yys1T(DBi??rUcPkSTBp=px&yG~ct1Tu<%-%?l5j zI1Kx6Q60R~M^`n>C=mtT>%QX~8OXlFWT+aJT;*Pvrc&k3_myF~vpxJbRaExYSPsXr z2gu>{u5IAM`TWWsiyac6stTqW78QW`dhjWd7WkD3-WR6l%`Nbrcldw?8Mme|P428B^&* zYZ!Hz*J92_5`ZVrB=;q<+t)7R3fq4@f$k$c9tk$kV}rcPlf*>Ilfhn^Fzt^Im3>Y=*D8D&SCNwG^yxL><` zj6mZaxJ060kFlV-*<|aDxaN3LzYjS0frnzdOfTo@Ax>#3*?mw;=4$*L8$dr%5wbA? z1}FjIZPy4~{9@vcjaf%w4{4mxwfXv_Na^->GyuveOUSTf7$WZJ5PO&PelV05#IfpF zCKcWCmG1?Z0v-a5CeOZ0qg>=KFJ4(gH6ohkw5eCv^XMY#DPn>Ru=O}I!umOzc6 z=f%I6XXL#9RZ~Jma=O9xCa^mgJ}6cRx0pzpYVthM=`j&G`Y=hkz}o4P2kE^q=#>Mv zqSoIixPZ4TY$PznSR=W3QP2Br*y30?)ySGU_r?7lDT5y0_>g$d`P)ksVr~w&q#}VT zmcf5Y?2>q@Edy|tr(Y4!r1rtA2M$NSuTFQ7UjM(Kc`;k?`lYQ*E*C;+zSXg1JNCzR zNR|_L;Pi0GAx}as@1Qc;`?LF#7OeNX=tb!qcx4v$RqmRpj;xu1b4fOxg2;LSSX*Y? zAk`Y$^A;~GZT6+e2{O$TN^6>x}ZY;9b*&Rlts?98qh*`a~2214S zRMI~d7~OnAK+QdM{5AagY%rg6`^A?EMv+8ylOthvl}dJze7;*Q%vLev6{TdDnqQt1 z@SdU6{fY&jK0j_9lk(0d-B+ZY=8V-gZ--ji@7#9PaiQOm?v44t4b9n4J2{q0Qt}>} zK(Bg@Wr0R0y$1cAvPP-z^u8=kgfe*d>%Fz2pMh*ag25qXu1?)@2gxyAFBYxlEqA^o z%r8{}-v*}eRWBj?cICU4jJl6M(81VOP&kx4yhLXQOE)f6$s;?%1)U&+ea||Lc|%)L zsShKVPiQYwC`$%c+|^5~xcHfFIU5g@=9WW*K8$yU-Nylrn41rUn!nkx^lL2AmU;^s z-eDn=^ae>v1!G@RnypjN9Ia+7GYy=2+XGZYeUZ$ul6>aaX*W$(SkaSS9a82Rr-xH~ z*~!lYx9`;~`i!gZaA@a-!q-jJqXVf1!f=x=I)$(shFOi{ej_Zt$#DcFq&`xq7i(ep zDl;VjDMLX}4=(q#d5(>c&jlVsE?r#%Rn9d74WWZGPS~Uov$6jmq;!nNAzmif ze;Ce3)7h-L;;1^nxOO2s@F%)jS$Mzg^++mgpyVhRPHan$t$YwRtFG#!FzJ4CfkV)j zDb6<|)^nY6T|mzS#0L+TFJHfvn93t$GD{ z56REuQ4g>l@zPx4D^z68QiSOEJ(+hwvIkA$ADO4VzOA^@TWsd;?Hc0Y=;5io_$p5> z#A4GMCzs@2)QQR<&sPhM^!;9#E&Fr$0b`__JW_s+N-_6gD@Eql`MTiBd>V087AryG z4am#TtKY9wsQ5g;85Nn2op5eaXhN?83Vf`N8Eb5f5G{{SI|iTHf!CGA&_sKgyTD5u zO}U^tG$mN#9KR%Dx{mjq(iLeM_fFF7;AHSSIr&UlY3Amn_rk|-NQgRyW{G#gAj!oF z5UVHxLpSM$Nf@qKf?ONt2tApWlog#W~S zo{5`_zG;emsPMqORf=G6kWQ>fc-eO1l1s#lDf0H`I};^JqRsJ#EQVsA;I!Y#sw>YZ zotqvcwNxs1cF&lY;*7gzbN!+dq<0Jk;N4?eu`%T4S1{akp@XLn| zu(Jq3uSBdctNg(=Pn!sDY*U8AwMQGhOp{__bYDmoAS3}DFlNQ4O z1-H0AjoI-(6R5hq-BrdGV$@Zc1EauUxwv0;xz3nd!_e^Xb+?TJE>>s%i8{1Y z{n@Yg`IZ1X6&3l=3WVK7T@9AJFkvbPAX_IV0R0l54epP3>Lwd{77V{10xq)YN*;EB zLmk3PY^sFM-ae+kyY;lFZK;xnQORWnubL48?LXZB*o^k946`A;s`Hrzf^^|+V@c9A zN6P5!G-kwh@3oXInQ)A*)<#8^(JHy>SbohUf4=+^8%3wN{E3tNr?Z8Da@O1ntr7&Zpl(dcOlrPemYotbWD~k4;Qt( zwAkl^8o}6o*fRr43xX$pwhwvfSFGyuCyzibUNY){%#K4I_WstSG$SXJsY<)|hgmWO zoQ-Wd4$>QYhK5^^wu=U@v=@wQk90;Fh8aC-ZsX0kRKjqiY$PFgRtKU-!$(~)`l!2Y zzB_~Yf<A2{ahQOXyZg(sJ*qX3V6}Vaj8?ViFzzZzy!PlRtY}K|s9dfFgEh1wL!gW&qb5B=8#S0S)BHQE z2#&{vle3edMz*~zVoGxhkf*Fit&B?bW570<6m}DYH`bHKf;e!(`1l)E<@C|*68Eq< zu=nfl%BY{mj31P|hK}~KSZUYKn4X8JeWXP~9Z#z5z2(KniUT%HCyaKDKoc{()hs@} zDlfo0)hz4FomrZVkkwv#HZsYq(eww+@w{WRa~W5FtqoMksd+BLjAqlKjx@TkM8Pu( zQ(Q9{O7zz6s(n=t^=?{azmEUt9n_+t?W50Lh7`POux>V8n+Y6INkL!oRfzd$R&g3` zZ-2$PYRRnY9m!+f9tjj-}>+@Ok|>?CsMLq(YfKU{bozNg>t|JWy$&% zi$R^?2!@Q!*HEs#l%zb!QQSgF(R3Hc%wJqwb{6!;Nw(g+S6H`*L8KQ9+{+_am$$A* zjAS8{7)r`hmmVk7GgMfaW`B-O;skolQ<%w71idZ$0K?fwaa)jwhp5pU%&*Gx;35f^%A@4&!%!hd{$XdgPvot-WJ+ zAEr*PQ@K!B#k8=2k}B4{(-!WsrcH6W;s0cV%n7FcBv!|f7{`3p{h!*N*Tj{PN|Lig zdno*9JDyA^`)0I8oW}6Y>v$;1S zS{=V5rsGC$wff0I5E$}&!CadQJt9aAGlSF`3k>U|-^eH}`z(9wc%~2vf?>)@_8PZR z3UbmT{$|@TIK=qVs=UqPVd;7CCR_Esfq3o8UO&kum3Lq z_jz^vA@@Jz2KjeP{s$2O%z8!^);dUJ<1IqpXrFxZL#V&7WX|WnMhD(^@bOz_k>#W} z69kSc1$WTyjR94r2WV6Zt1oj7yfj>DbiAtG)vU-9tyfp!A(Lv(J8LWq$eAyWt;D>b zpX959e4p-~U$N>ISr`=%B&uh7jnfvAU|qwB+iw#W$FN4Dplb7Z1%5JJy(wO= z%ZY~~k_aP`(1L2{TY+(ql^>D?J(!X{w^aCwhfIT`k1&z6Lpw zn*hUIf_SgqP88Xo&&4>VZX-$R9>G`-L?B2vLW3({VbDLu81NseUlI5w-pE1tXX{a? z*^MwI&*qa6(PnkaZ2HEteic*gvoJM|7M5m-6U|5Y)O&)NyHL7s^d~MfC!%|HNYgCK zq2o4omMns3i6jKSbF3aHTh1iq^zf-wBzZ?Ll+B9Hk}-0Iebe&fHzQW9qV~7DajdW?NeQAd~vy2l6R2x%Z%(h5S82`^mT_6kMibrXh#m-nONc8TXNa z|19<3&X^L{?6edtuw5N-w1d^YBCEmC>H|rXzT3J zVV}U;WCSm6*zYn-FQOcK2&F{3gM(p6C|-4xq4-1Z2+;!V5CdE;m^yftXUj}3j8>7AA9VT^$>Eg}xs+p$tADM3Y2R-yk4}ym^0Y&~ zk&{y^-KJWgEvpO=qa@tx7**tc7DN^@?!0S08QN@0S90YW)uY6ApAye2SewA=c%npP zy?>?${)I9<@YaEwsr#ur0Q9U+;XT#R&et5D51QEe1=Zl$?XV>wQWc9#_~Y#Y)B)V4z@M*ndIit6$>&A)EjOimdu0x`uEx$$(G9!k9QvJW99jNIg;ETv4g3 z?_fp*>cja)wrspXd&jd}MQl5^@K-OPAMIKonY&*2+Fz)uh!Gg`nVaJ|GdWx0L6V$L zm9exXL|l@mBSYgtVNXP$e}HFuq-gknuz%~v zkORtaQQBa|X!Nyud|14wHATQzN7-)LZ|2^=Kd{}F-y433XuwfE)76^|OJ_jKu>dS{crxZAQozf=sz&{QwcS9y?~TqUtM_ib#;r=-^w_xlKao-o#$VM57QYr- z%w4TlX&{Rd9;s0~QBR$7n3l#Et@f-{?1y7*ExFF($`0Hne7l>HhdB|WHt$iKpfVdf zm&1?wOt97i>V}QK8HpbsHM6I@=K4Lj-8OdXwqS~RiqkHCvdbTc^P|NohQ=B8lXh8a zF4@7+Au5Xu{A;AY&SG_e3_eF!dA(vtw|mk1mj`~2d{{a(JsB7CjrDDedWjB~6+0?~ zyh4SHzv6(Gd;242=R#Jd|E_WrJ&35K=W9@x>%G>N>w5OF-g-g?%RPF%w-0InbR(vt z4+P)t6QxN`(uZ=I8T#O)&Al$G!x^RxGUJy|iz}5s-_fZ}(Qf{U(Dg>7_661qb?7gM zBlKPrCP(x(X?{&}h6ZH>NX ziS3cdNM0S$}Xf40!}r^FA|&?`$gtY`;UOyahd z_bp0vtaLs>$)>-4(Muq!yxZpWlsnvlL%qbt1x{Ob1*1ZS4{Q#jA8hx-Z!|W@92cO> z`@`rHjV$uMLVxD%)rR&<5M@JpD+eVEzt*?uLg@`x{muz-^S<;v@JI+|BChKA?_$B3gTdk4g7>%zd4paQn)bci2q-P?e5;I5ds^9d~X7qItyfD_R$Iem&~ zzGWwV;j<_wdOcSRRuR!#3}|}S?}xF{7`f0lGvI3JAVVg?4$Jpfo3*osuAvlHqO?}Z z9-pePGM{+^if%jpi%<@y4u*PMi>ru_hmFFhKzgoFq%T<|dq*g;rvu1I$PX(nCjY+e zq0T#YxI{LgBlT;T)1{e=7cah8ZT$_pF}Q<5hpZpbK(tJ zn%h^(rU0sp_fHvCny=D_(faF%Q@}!CtwE-5AB(GD;x=D%EVsViHI=O*t5y$UAd_&I zNGPzRBA6zPVy=~`grR3lEk<`3i#T;cpybdezVuP+I3|ep0957^_-XO>$A``ApoxRc zUQ32w2h&c@!i1fR&)jw)^GSb8h*=1lXiM(MhK$XchCncPfx1$3Xb5o(==~*%l*7Y! zwQZbHHKxn|K7F;tmrS_F|LIi7Ta7)Nt-JrPb)6Up%}^wDcrCv=xGT#`g*f~4lWwtF zZ{iuuj;tAb(%T~;ms7OgE4ltTl2=b{U`oQL?tRbA^&mI4>8a;hPf(JfB5+JYXN0wX z)~^b;^MIJukHdS}wxq!+PE~aAE5AN-cOL{{IzW~TR>zo0pd@(9czKf3^v<;4)A057 zIP^HK)4ko}$BFE3+3I?~vb1m z#!(@bBP>tfkN^rlFM!`ro@Ma{vE!wlNzibM#$$RJzMWa>#P+#ta%glWjXg8$eP%22 zKDSB0nl%p^*d<~q80AZ3PPbYSsdGt)NW2REFW0$xAs(DB#(!Vz%{zN*(b%lWfx7nQ zz7*1)Z8!f#<=47}P%_X|2vpvU7Nkgt-^t2QwW8;4)_JU+v_KKu)3|sJCCzUJ@CG$7 zD|biMtnsD)iN=$ge!h@aN|_jx=1CS@BJ|2_)-QMz`8XC9t~ zLm5siTf_MHh~2ZRnWjYY8+I(@_~dBXI9-b(x+ErkESok9K0Bop3cvDJE)D-Ua-o$zkWqM`m`SjT5NxUcvhbO>u1P2xuh(O@c&YljD`M%==lF?b8ZJO1dT4W z2NDz|TnhdwL7av}a^tSjwa=S&@4N?qN_jgSfW}z{1=NwK04Mkn?c?;1tQpv?&&zN! zk+rGVcCNW(Qh@E=1{0ukhO(2xTD_>x zmWgThJdAB@!j^wnguLmHtr{3p!|mGz?c4PTN$mZ>cZE9vOMlcBcdE`hj;l)I({zY zR*_tAot%~bERP^#TWR+fT>MD75xlNM??HER3Xrc50Y&~qudksiYoK; z>R7B{^BQV>&rqMpQ*EN)haR@0!@v-FQEdfZrz*LE(OSpfy=BO3Pob%rAaLpeHIHzQ z_a@hOB9q+htWpIQLZJgtHVB70W_zRZ@HNF$gZe!Cgu?r!$}C3Tr{za@hOEDt?qu>U z{;`a!w83KRqmPEFF)!#uEzjf+CR+zjo9>$jiD(@>RElBT;%M65dT!_0XPb!E^XU?EbUjtFNybJWc!$j={cm zcA>WWf0PJfAP%W-LT~SL^1V&5bm&b!dtRYj|DvOu*>j}51Ckuas3`(QMgO~6&Ljx! zRRm+(d!y~V);Zz2GGDBx>&J9nN@{PW*{^o!mC4Yg|1>Q>c|W~%@E#Yy9hL0O4c$?I zHAbC$qDzum+iBq3{(CN2wncXKMY2V*6(__yWqoODW#;_yYFD6pw69Bc1^~k-B6Z95 zOf=l5cp2?K2*qh2(eKH)!fSZ*7kpe5iQ7>Msq&(o$58(S289CZe2?X4E;?+%^i%d& zO`pGFaq57Ea}zMK|AI}`*Ng>SoJ~}!x$t9Fkv8ME@vLugzMZ^%gKz1ov9X@G1^o1x zbB{hQx5HrJ{-*l1Ea~Jz#~2zEJ~KFR8&kZ59cEZdJ5mHD#P8rCH3z6esTFfL##^ ziIaZ69;kEQqM~dFA}4G}`5RV5DnIw#d2`Pb;(%&%@_@r z<3T(ZZnMr7D}ke1DgrF)hG+u5%t2O+6ZQ+N8xjWg$3Fs33#}sZz+qkY*Qkv`!0HU4 z`zymqcN28MNe6W_)3NzkOfy@}ZAq+opSkC5mBr|(BSQ5=^Q*3ldxtil0;#}i@^R{6I!hzVErj&OQ+!VJAOSrJVte0ao6g)iO z+}(3=H$mWBVdWxikrKXJRxgqIun;&14nX{pNYZ&5Am*IBh7WB7G*i93Ku?VDm+y=0 zNPtE{DX&MDe8cV;)PaKyV^UV)&hF{5VGy)vS3In3@y|Ky4%GeCv z!wR`#dxq)lc*()1d6T$mci${kZeU_EJoiwDU)KDWFKo+|{LG3*OJ?k3g*Ha)aY(EQ-cXE1qT<{M1q?pdIaG7iv zXj$e*gonx;vWkIs`mq9PEEiqHr=P+suX`lF)S7Q-uiY0~x&yVc>oe~%GS})2u-LNH zMp#~`BM2A%_?chkA-^Wbo~SD4QvW^wF^}A8;>oY$2X}0z%k}J2cTy0fQ{IrCBmP_c zZ_e9fz=^jOa}a|^!9qNX;qu~6m+JPU2$4omXo1z|lY8Q56VB%R5# zZE7m-ly}6mzq>N;7bC)GzF|l)v7v<$DjLaNcL;I_au)3{qsOxDM$0bbR3M5TtXqz! zlKRiLPhYJpXrPBIoZC5>1xIpgoGnH<_fz#46y2ky_hJFhM`Jo=Sb9!{RG{z6YYUHP=X=O7+|=(4JaFQ zWtX!T*2?>O_XvT>-eiC6+^(E!JC?T?j`Mf=v1P|ut>S=0yWjts^R}P-H>r^Rz5LV!vokV1f z(Y5wN){U>RLQvjPEyGFW2-XH6`ixN3g=#Y3?tTOzg+i4s0LB*i%ky=nUMfFN9Zy!1q-w zPl`P!hNMCiUpRYb#~eG=km}a-{Ip!xiXTkW?b~}TyNw;R1RVk^B)T3E6Qt}?eQZg;HUq1um?>|4H#3z>-P4+TGCX2$#B(+K>-2+!batym z*&{8$iVRGT3S1Y1v`uAs9n+UexD<1VPedgz?EhF(WbRzYSQF85rmyEvBUoG-h z^@9h4iv6zV%J9^QpwP>CF^VZwN&%-s$1)dq#Q*2oU|iQnoA{Uyrt%Kig% zJ<@y?Uj$hCc50~zoCx8h7c9L*i}^V(7~M_#?w00UZ*p? zSp5=dk@dY^98gr!SVbsLSop2SsU%)nxFj7+>}Aen?CYsD0%h1K)7zz`fB(gt1jW?w zO+0l;eDW+)sr$*2clfazXG!sy|7@F)MB0VZ@$nn#QS#>a_9YOE%=;Y=`C}&UPWg0G zN5)|7E6w*GFDNxG{>gUVj)5E_gGvcACygC-*2JSp6wkO9zv)hqM2H7~W0}or0!Ts< zYhD;9FX8L3MQ6KCwR^SzQmWT-aP4d?g*lAFe+;$T_a^6BSp!(%SbKWQX5d;$P9XJL zQg=y6!7k!NSn}|7)A(Wtv@}gDZN;{zlL^)zg5swL9?kv1y9kKW?_Om6#$Edi>25Y9 z$Ir5=ZUS1p^O2@0nD6Y|#Q5l=ISKr}Mh(R4*;qjQCydRDqGFxQhOxZZte)Rm+CF-* zjMoG08S(s^-J`rE3(LR@#}r&>EL3Tb`=syl|5Z5tYW`l zFjAJ~rDO}0gOC_c>W3t8hUUALI8*N0=s|-Jc)+n$) zZlI@67q0aK8vm~$LqBt~gd%m_+&_DK9Es~KEz=c^|A4dQIa|`0_$Yy*0Jli2lmt4s z*B8kd9J-MRrCtKopX6m#SV(ah4=l-H^9i-=B`h9H#xXR(VxM$M)&WZCxk%g8usmQN zu5=LmBZYz!qKHw6w$!9BM}dZJH+6hw!acGMaaH9G__$WRnu&}oGv6;f?t}QkNnfGP zdckzSvjV0N5y&i{8oAN`B@0anx!O;)^?+QY0N!;HNIbN?h|qHa=}?t@wz3xXL%yhz z)=S1G7n9gmIQ1=i(|~-7SN>Xugqtl3_~&rE0R;@(iXBoaP0`0XvqU&Wyw!%1p+1u5 zZ(CqF1)j%dGQmO$3W~)D>Xvmmf#4I_1HW1|nzz;|1!S-yv)^Oa&Z=09wacQRFL?2v zEyNrnajF;KfS-5Nis9p4cv})Fs9+4JIJ4#29E%`@mWK(edIEKQ{tuhSO+Oo=`)ZIA zxXQ1qG6k{P=!Bi>T7IIdP_bM@z^249K`>4U=tLmQ z>NR8`&sVGcsbq#~wX;)c78#MGy6dTsj9GP96aJE!~zQeHbW%S|zZ z#_D8-Mk$fU#KxSdK8>+i-LGqZOjiI`5&1xGnlP$qeIdj$9Rf34N_a|UxK841lcaow zQ!5?lJBof0Y1K0oDX z(Bv^v&a(H9IWz*W$t;f>Yz)d=`@g7!sc`H{!GH5pxsY;hA2TmuBkuh?fK?zMVz2#e!u?$~^m8!c^+;w$C(xk%txwzbK? za#uB3H?Gkfe9h%yI7!PIz$9y)w3BS>TA`Q_IOPqnMwC&v{rS6o$l{$ml6k_UP-^AP8MifO z+thsdKea=NOV4%%09Es=l@2dvmzYeEmP*<(we-u_MF*!kaKn$&W(xFWLN8D|w>CM` z^>;AZOEW1V7;RRFiwY?bC!bsMJCsAzW&U<}?DmrPlB!I609~X%7!`Q3pyMTZah6;d zs!SLCTwRRHrRcNmvvtR;uclV?%{JBRiB1zYnwE>2@M{eRQ$E~CKlut4efAc?#RrB{ zGA|9*{t`BThbe#vid*j(-_CFa>ufbr5-8`bgMLV~V$;iYBpl`5pywS>@Rworu>}Ed zW9`LxSbOf6tsKyn*+hBV?o@AD(3Ct*XbfXGuBO79j(I#B`1!{OecxvfKIbcj@2_Im zD)%?9yx?_<)c9izgx{#ClQ|yKgGx5-cI1fn)#l4t_{rSG-`B%H(7@h(5kDz6BA+nw zT)Qs8ZH=b4)qj_R-ng6xP+HQuTn=~E7@&F_#{W-nM%%OLmAwC_e<4rs`1rI#MP|$R ztGZ{j=NM~U}f7`Z{PWt+*1&4z@E zO{W_r_gWoE&d@=)Y9#=%c$`S zmnTXe`(%{g`OF|?gFRB#Tgq2@XJ1Is!@LZ{VKWcCX-+wMZa*?p=ZCK?9-o_MK~Txe$vB$?^HD&mwLbCgM~DPc6_;e4rJbu)da=H$ z$?NR1%#x9XBBn>6U6&VNbIRIj*g+yyl zU7lw?{z-H^P^{A#OnBLps3274pY!djBN@xb13d^wMFT#3a6hL$ShaY?{NH*S3cDmW zo1p&^o6dD}us>gl{fCaT-@PqGt)xwVVRq$>X_qh-GC4n{WU*HNE^M}0*X_;Rw%uty z6;Kv>0_!{{_x34l-n=!N#%Yc@$78FMD}v?)WC}zc_9cHYm2?x(=2n%8r&U*ABvQep}s^2_UQjHIJMoXdSa&RMgN>5CLgQuK}b4rGrW*2qHD~Vt`OYMMQ{56GJZo(p%_FrS~2Z zs`L(_NkZ8R-@V`G+hgo!e}4}=aSRVwH}|^MyypB(M^NR0`Y;)mXS2RIueQf^nL*p_ zP5a`}t2?_b%+6hr4lH3lo%tRGF`1IRL!%)pwn{ax;0_Ss+Q#@p-FF7Dh3yXtfk0oF zw4#{p9Iw?JlMf;r#z6G~SZ92aKJ#?i$dkszk6-tiKd9qB? zg0|B6pq28r_%@w@bt{c$)${AG?B<45E}kA~p9|DyO%P5(g7LV2HU=Yh_-ROP}8dE1$Nz8m)Y z$J+;J&I8i&rM%|VR=-{Z=jQ0*wszq#j<+N8SbYrn(xZf`i0?puT>Uw8BcysGIWK>W zW_Lr0Rk!B{({VfyEN(QStl`k!j0H$hkvjiON-m52A9gJNRn2@{vkelzsr;EX;O4s$ z8V>23kF3EOo%@;mBjoTkeRm7eNV$3EFfpBy=4QGO2)`jCF}fCwVZ@HeeI@QfSz34E znO{HDTaEInaGIU>*n^s)Ipp)-W>1y(F{_iJPq2i@S+tdwCc6yig*piD;9Yf_!VzSB z)#9gAYkR)bykxmeGSbT(Xd}Tyh>%8D=9g~G{wXQcDyDVuc(2aQ5Wh3+D#9)jHqGSe zdP#hhH>Wk!b5?_Mlt)@(Z7QUK+esmUFoQen0rp5gxRe+3C1Iw>8MU&lB6bp=N%-Z&CbT#?f3P?_}5`J_X?xO-d z?KsmGHk|5;tiWPq$}%RdP;6Nf*B*(D0A zkV+k*)k$%L=n&(I=3>T!G;^6sr(dq)2fxzSfzLMJpWLQq^OURpt1o$I0ydbnmVaJz zf(QAQZ2yLb@=zjkgwny@^rop=lEoPGFsg6;{LR`#>3kG7t&>~wSWxtiphYCqhMnIg zpsNwn)Z8$_U4HVVx0~AY;L+q8wM6Cth-Y4iu&cSUe+NFFDDctjEE4b$ zK6U1(JXB9l>b2Bgd^f6}$Wh21HS+yTJc8=`Z~9JkT77!3RvD<81e_VG2sG|bigVUP zStK&&2&UDLCbbzc=aJ=gsh*9IjgEy33mSNL6&`qx(c)2s_g05Y<5U)6LB>3Z%&k#O zfq$U@V7%TRS1({{kq%w|F2iWn^957xVUKQ#;{uMV&Iytgcb$u1PxpfyLK7K*%TPT@DC;BSjV)@ys zcqqMO#Wv!2vIiDL(;i7VeAg?Sd7;V{zxu^pgfItxQ}!jr80OmyaRIo+cbXyZ4;YZE z=5+H#p`($9fP-aS2iFjd0>TOPPxICOIU~D&&q(V(X9UsioO$@*-`-r8sfxOt)dV)o z1s8N~?(R`?{Gxd$J2FT%@LBp{+oVf;#kI0C$&vOq-5}}Jh74T1g178@khgY1<%=#t&knT^y=;Hzh# z`LbUsPb!rf5P0qM+OdzJ`)=jkOo)OwByg*;Rj%N$d+Mk=(yI%a-A$j^WVhJX42F&S z?UyFQfe*K876h+k*PjowJ=-&te59#uy_NMHJG*Yd{Y8g`0^53jD7iGQl|0mx-Z4zq zLCHlxRj|BP0gwDzr+sX@!!9V}Ij5f3L*FDuX16G^{~o>n*^&(9eUv^iWG6Cd zqAq{E3@~?&(b_p$&B3#x>p7F(IOWiz!WW=wy(c&e4Hu2T zr)gsZ8QcK2Z5oGxI4eHuz^R&+vvc3N47(rf5W1&Cy|huEKDPU&RTK?#dsVueLIL(O z?y}mH$>#6i>MLa`K+r&Do>TFWecyxot_8Q1p89Oi_r&^@^_ ze!MYs9pM3tK&v)!^30%m+@7|e>+T|h`Oy48)lV1Cl$~F z(8%V$gmh<3SkjMG#MXPwCU&2Cj+9f}SFsQXhASxu1V~+jOuU;vk5LXcf1L()d9*p> zvozlNHMwDKZeNM~^~WAYMZQIAxL~VPMt2dFUxGTJ->Ls)f5FxrNZ`-(8gj?JlJGKK za(K@+_8Fe599b@otH(~3z&pww?2GtV6FP>53$3g4UP4Cn5()!OA`b3+T!VI>9uzca zhdw&e@YV&s z#Q!Yfz)Nj|nrE}M`aiSv=;nRgn)$!I#h!f1`ww8nqdAGpu};+ndiy3)$ddmkmrV9O zc&yF+qUjekha1YB;mKQ3Q^TvNYxe%ARP)xKw1C1-kgnC)4dhmCXMFqfL7u_6abkWeGA4B-%!;2bzg>ES%leXPq8kf(4yArZX~i^~ z`oQk=Ti@9ag)e{R)xXQ?6X5~0Ta(Y?Z|MUSWexB+M^ zLh|?f5-B6EB*{3}r39g##b(2wCkxIeFYnlgKhTR1X+?`hycL|>zDgpi?|nzc1J>t7 zA4F>--AyP>Xi8K9FW=H+gup)rT`Fnh1Kw&auw&H-2-oN9TOSY{fltvtU1_BP$|A3m z8kK6q9dE2>uXD`%#s4hyo9Dx~D%qu9Ei7Qh&@x`A@4{-a&(QxA6_o7$pO$N;z;s0hD2gTy#H`1+^I zX}|B48?Djrhq{f?WsV;(gqdlbe(-EtEfr_6$qaMR{OGJ4M2$EDu1|! zYHO{3fAm@WWz4e(GnN{iM7L!syzGfjZKUt=>M3+*Zemk{AXt9BC`L<2 zp#>;lt3P_%@~1NHsNg4nf8{)wL)<}`yzerXSn=VAn(9S&b)F0K8J{1;lghW&7XK6?goP}NtvQOs6 ziY)>ZM zfQ~6TXvG7FXh>H1cdE%@p^PS@99bQMs5buekW7a$vXDfH+>AWRHf2iDGhE z1|!@`k9YMQg-WVRgx2+Q4x?=0J<{?HqU4TU`r;lsi@CM^-}Km)Us7B-XIis2VuGF` z)lH#?e%{~vp6G?sIt->7sf*cd56qQ3 zkF-o#C~-VFgAo71b@!^iPm~;Usiv>gM6L*+Q%AMWrlU=}Su;2d8GbEUu;}H8L|ru( zc;KDhLf1p5xiz%g1~5%>PE;m(Pa+Pfww2Ro{xDIcm(qks95UJ@M5c#W{<;)+4n3bD z*(6QKRQjmT45Sb&JYau*fQ2hxUXQT&;AzM$I-)z9zO(kgBPIP~!RAeP=RzHxdd(4HoL3G%X+TxD&7RJCj9W6s#$;iQp?oI!B-1YdD zno-cmwLMoIJ8B%|;5C89au2<3NS0s5*lBI=e5=xI%@xkZ76$&s`{EyWcyO1|x1bj{ zTMnV-j7$}_bdx{#yPf?@sj#M2mNM}4A@Rp{QE*J18N3YHhy7NPU+mnjAB$SFfIYU7 z_ulT}{5<5=Hosu%>7;6*IeEx?!!YV%0a+1Q!FE!MjqEHVn^(7P!Ki7jrf$RmS!9JH z>|(Ym?hN#mw;s(#s;wAn119Gh;3aVIbd8I$1gP_jLV>IplxDFZ10c1!aGRQALNTtiQf0WJq8c zJDtRSsNB?(kz{k1)1Mqw{rzCT)dG#wBNtm^cIM&Gp5*VIBFCEgDzTCV4BZV*f1SMd z8~5fUIQtBu3A0J6@eEJNE8hZW)39_}E{?ah{Ed>Fy8Jd{OV?K~si*HSvs%0w`BjKq zci`OgoUJ5(+TZl9a5%HTBQHIV^Kzn>m0z@$II1&E=6H8-XEqrFHj{Ol>y%wxON;0n zFfyPM*!kp%&CH}V3d|21xJ#tF600W8a>(plTYLz(D<|H0R|!~K$|ksV@LrB|$D$tG zlxV#XT`y$4ugDH(w|>=w3Ku41nl2bcxQC!}P)8>224Xf-v6C@WDGM?fKYr12-qoG- zl-CZ+`x;W^^!`)&@&mH2=Zn^>R|^o3iyBboCYgXl^nk4pV*R{;#CoVXTGiaFj0VPh zcV+mzc=q~rg)Ah79)gMUk~+v_p+{zHxt8W*a-yx+O?eUl!Ee{AqB{$0Q7q2)l%V6N8!-d$_39!Iv0+}#p;bZm$}&sy$a>F;mwOy z0m@07&5%$($G0RGc?HIe?X^Kerxu~E|8ZToon057{<$vFy;<{p?){sq@xKdpfGuzT zzNhd$_^RNo*HmqHUR(p;yatX1tY>RB?E)a|e*O?xCKFmKC`o8r*j`qdYh`~m?RCuA zC{jaaNDyR{0=b9GX?}@!J?UDAc*dwb1yr@ZSd<`ll&mMWk)G`XG&anbLt!0&a`gC+ zD*Y={Bu~lI{q=GM%5RR7@mJ_{Ujz839MF z0gm-2dxbWQH}Ea4WW9#ja93IExuv<(j(wV;Zg>8jz9@c!S@)nBx_QeF1S8%L>k>VG zwBB3Lq!=?d$9e?X=d5#8#%g^-wB?+Rv$&kxdL51m@8b@fbln(H;9LB(qyK@eMlGF{ zlYKplwLj-Twmb?I%5-~GnzM32S|2lf_=1#C+}m0{x{t-^eM2r~5HK}ixU4z!+-yQL z3LsDP)VV=8X!6==@*d4{j;j_jKKJ=~Swa+O9f|J7-+$urjy~c@utt`90xB;((SYQW zrzTEpLh2EtHTz~F?Dq`mSPhAi#R0pnlG>Xy@BI=d41~;j0SEPe3I?($&J6iB!~ZoQ zPI>Lw{ksnQPo95be2vvnA2k%g`dfvIaQz_dhl+9|2;hl-OYeyHi4?d(;vy6W(5gpX zSH^5}=?y$&<20LFaDKnC23`!6cwUU+37$OUoVY@5-1w;e^mwyZ_Yvr>WP|eAV9~RF zR(C|*df6t)4cHhw_?8e+^d!X0Sb9}C5c%gPdk?JgV{4}Q>ZcXcR%s6Q#AQJ?o616w z{MnC)8LHuWAnsA7D-I%K3&XT|>#h_}em;;y@>r*p3QlEm!=Mm?Zk9fb0{1@l_TzW0 zD(xW-=86lV2HrP7%qlWV6O#PBu^d{WU~iJAz(!c}w8bnP+d}jWKcJLpXcqfg$VhG{2{QyJN%Uve-owGgcCd?Q3xlGEg8ufnA z#D1z}=iA!uHK<#ezng*ZTl;~ zHB-qDc0GZMfd%|eEcTo?bH1d||H;MRmc4Q`I}S~<=Kx(f#NDQ(OA$%Qf0_Drd5wA9 zl)~=rp03|V4{D4+p1i#;9y)LO;rQC2G3&libct#Sg5C^o!?}7g!+vsG-uRBo-Nw7v zw^3n(zJOC}u~kVRBsh=0aEDfab>@-QR`Tg#vW-hOG5e>_n8XOw#3R}@rBf4H6}BQ8 zB_t%^8F7I?HBz7*nfLmd^yylb2u#MQYsXM$z|YQOTD>*VM?G;qwLfz6v*(uU5-0X< z(Mx6Ko@2#xtV2h*!egcovuFPR;nrRwOyEF(lp7e6uKW$t^L&sgsB8Z|s0%s9BNv@Tz!& z^fCcV=^WhmkrbWBT?8)?+YqZXS}p}{kF$xmkk^dhsidZ|pqPGn0>lxqP7TNVM#dbGC#i2UbeSzidOWu&g6uCev`X58Z2TFo+kjI9 zq-)L!T;1y8A}?7LEu$9KR_kGe$Uvi@i?OJU?^mCcf+#e&xB# z5113KI+Xnsz+|p|NwSiS-HRKV4Nsqoe+-34Z$*ce_~neIhUk5}3w6l{r1~+JErbNK z0>1E+Scw0H=x-qAHrN-5ZC>9o3yctGx(WQ0tk|>NHL%>pbR5pf8fnGJlDDmar@)jP z^ON0?Ww0>O%X25jBxLis`l86Sx_6G(0XT?EhDq7&N@}^e2KJ=%(IbTmfln_)h{Tnl zhaQ-s4RE^OPmZp| z_O#&}boPp!rIPjbSvbRy>qoi$1ybBas*tlB5!SG9;!B7u)5>fr3ejctRf$ecRNQ7_ zXE4wn89q}-G0(}an9z2R@68$aGXfb@4)OYMOs;+Hz5wZ4G-;?Isq;Um1$k}T(Uvm$#E6)4cTmXx0(6Y-256h9<=vP{jrI-C9%r}GH43)b1)8pWH~RYLd|Tz zK0hvS&k5Z$Rt=Gq-j;5b{vq8Ixw1qc_|#ttO^5FSD3m;)b|E9DljxD)Q0DO^eFvEB zi(?wU_S7v(EPr`0CCzD_paLLV9;KH?L_ArE=6s7nlT=u1wfuplvbu}r^kq2^vlfJu zh29^J1Dc?<5WP(5%55a)mt0 zA&OAp!j{}%FD^&V7EKd0IN9|W1AQ27F7j0XNQ7bXsPNa=)38azmY*ec-gtP0V+E7N z4S1Fu>rY%k1~#`W2QwV22RBH^J!S?KZEMMm(BW2Eq<=3MU&F(F*8}VvZSw2N+Py|` zSrJ}8p!TP+(e8>ifWwO@c6ZJdy+iZ3>YAZ`1juB4Tc=Ts4PbJv&kF@09Dh{L$B{o- zwc_7wIPe1DH|K^wSlpylgb6M#EO_~Il z8i{fy|LpJZPqUwDcK>hBAE3B0)8yw++L+q5qZDxVhOg=*6{{4QY2GZBvgI5P4;$p> zCofR|0nu+L&aI#~;kyjW#;bhJ)d?o#$bmh{WZ5jN!I_+NLSTu!e^r)Zu5qS0b)F_( z(kqZXIuvB;@xjwSvwu6LHU9X_Dj<>I$YJbKsy^G7d2e#3A<-(V`-pSKfdAeJ>DYnQLFjMc{s@j{^uEvrjFKM(U$E78l* zvh|{!47a6{Tg*z$4?7HAHUf#r^F?hkY%I_YEb}C!|D=te=eQ>MMY;1tXCYxaQw(B5 z8_)&iCoSJTbsM{4L9=NgV%dEj1DGB0B6H8L<0%TNi^fjbPaOU_kS)fu?+4xE#aNBo zE4`9f2j^hk#MbVM(p5RkCbWmO^N2Tk;ApH*l@ic@5(< zCo{r#QZ+J+c>LFF7UQBVw|a`(a^0O2`yaG&G~Qe^_LGek3W2QXqU`+-;{vK|yNOo~ zE&_)@ag&>e83+>W1G~PxuSH}B&&F%qdrZ$g3l_Sui7Y~{@!=koB(7E!{#R@gVF8B0 zkfbMk@@n2Vfg{h*I7oV2;@R9x(gnc1Rpnzanq|IEjiYTEDI)4#7m&Vnns_$X( ztkP%)QhTgK^_tZ>deEM7fS9o5Ly2E2ET{C@U*>CN8)D|OOFlMmh%agQJ?>_XTvB51 zfSt>iT9K@YGxIWXpADB-fDVAP0DI0akN4@owvC0=+(WX$@4@Z@+S!Q}z8Vy(CF+)! z-ZIMa(o?#-ZT1xe(-^jg=w({}xM<0ot<*X}%+%d<&G>lv@R7%WW>VX1 zWv7zo2Dfg4fBF~)ing`kV*%Mmh+lxr@{bz*S9XS=QqySkhZuMbh=n`A?m!J@2EY{po*E49ip=m9rc3hm>S;p|0|0fY5zG8gIT*;196aN3x7xiBS z0RRnJZF9y%K&mSlRDomox%Ryx+1N9gK1@F;7Z8?^#6dK>6RzxgNIG)CFl_qLW$!M; zVDWeDmmgXX^?JSf(kf3ojXg{Q5T)wD9Vb3hq{%pTA@VuU3wj04G|JW^br?}E!c^o( zn;&3EL$ux=*%nBg5(+r%T=yN7jBUMgo+t5SNe$X6CEXP{8X7yovalpek#|+MHEa*= zK1PjlNSxnJTib5YC8orpCV_QKOoXg8kn5Y7a2cP^)IBF}mrDi&-nbeUNMp2+Khp~; zLO!|>)|TwmHlRtdU3QYe`(v==%_WM~HmRGzcMZ);#uo$Bx~k!wXV^lO5);E~53 zjOX*%Pwkq5_|8pB^$K%xIPeCm7KqZm6{~=!C}aVo#iGOhtBv>84AAHvZ62?%SraxB zJN+C?j3p=ho(fo^$He5JmGFmfFX02u#+Rox-_-1qO~$-%fd#pB*39Zsm_f+XEJu0O zd+fdWbMde{i$)o)5vkCZw2!E8DOWA{7Qtr(firxLx`J&JX0Z;@`P&Z#cTJ}$K^c6m_U13trw5s-05{bLUZt|I zjtuXm1?%M8W>|h4438pqNnvzJ>M563x}(aRlZCvbNL`o*Qwdi4;MTQ48^5K%1KZ`i z)r{HQ-%CjV+W2z6Fz7a9z?$vQjJ7DEaQBP@;6C#fjOh{cypVRDd}(V{vPP)KwQA;4 z=`f28>-^{6EV;9CE`Tj$UyUSJu>RiDdwa+xQ7>Z9CLQ%Sq%K+@eK5k2DNBT|l@;QY zsl_O5M-R#lf^(e*wY88^leRzFhys-dJC0sIp(0u`>t&bDKcHoBkDziCat^TYZGC+` z5viv~R7^w)hwd*I8orBKUdi28rqGYglwWYF&XQW&-K3o=SG{9WeZxUfOhH0oua6|E zeO$V@kgdNkCze&Fiekm1bbeJ2CT8^v(O_g-C&lG0fmWfm9y%YX?js zrh2SL%>lk)pH9TS#2I4P6VbZYrlDuc|#9cy#?r^j+B>q~{{!UsDF|k$-cpl~$!&e^71r3u+Zy@o07(PmVc% z{=CwBJkNP@!j{)3KDFFCw=V#HZVNpmZEu$DMtZoZ2kT;6=l7D%-4ph$)k1V~s3U#!q zKE3QW6+CK(<_QqZ?!<+?+~a>^CK-2h4sfd008gF+1tuZfJd^YD3dt#L66J=H*C|>N=eC)se{>^EO$2=iNe=NkjQ*Fm;ah z`ni$m!Cig|IB8krl+>#M688?SqR}W4o`e-^!VPkc8ys!s81Oi0%=3I?=c+$(Fga<{ zolHDHpK|QTEcImQs?^97@v*~R!LZnhrJU8Vx_N^lC(N9_o1io`d?fzIak#shBYmC5(~{5Z`M8qq4)grg zTGXiT!%oi6$%kDw1oc6qJbI(?5{m|a@b*>CcVE-Z zfO_ASmGK3bF8!=gh*eDtdoeJVX-dZqw|L%xFw0QS58y|+rLiD-6%SkV3_7rk94IHY zD$~BG223`}XV7ekPbs~C5@cVZ5LkBk1wD%eH#2GuFae)fY;a#S5u_kmu7sjirhu*X|`ePX7iaqh@~dXsmTpts5S;*hEG*@iiVA!kWg z_d&s5R5^X}pI_~jIwMwM!m}v%+P2mQ0)(9;E70%)ym)NCU)vBWMZ8BSRZqmEXe>zX zUhZHFEMML?61M|kzXg{5;bcRM8+X8^YZSUC%hX7?W?6dw(@Sn?U(w4Zs&Qrl`9Mq4 zO=qI4C=O`c5l`Gl0;7!G-})0W3v>-y(2JT{B`wU|E>A3&JE%#7u*9Hofr2LrJrl^n zf%S6s(Pjo3+$r#B4bzD%s}jd`lPO(fcJH}lE*vl_+T+zbJNse%A?W#vgW5$o{mtj@ z5?$q^=4kK7MK#@T@7oCmb~X#qOfVR&5#BFz#hHHgZX)|`D2@mh+|Mkha)-~XS;mXL z0(V3L-jIi6^b<2brG6jgRaigjbm#G<1y7Z}SWltMIkt>7?fm&LahlxR-1wUVn3v{Q z+~`V5I6!mYY^2uy$Sz+A^!ail&$9z-T;%!WC9t0b>{HsH1pEnm|2G0LE4n!ThF!01 zu!atIa?Ff^Px4mdX^a;=Sz4w8o-VH`D<^&$_r~8~=i?M|a;_Ne{n{1gN#=;LbA*v< z;e6rilOruFaP5L}$5||-nAPve6PLcJoBjqJQ|DG3*i-$@p#~E<=si9=qgEc1DYYDL z-d2au+Jmdoh@6A?gKI=_mu^z)gaf&wY)5a8SmVmy7_WOWY5W!O@+@nvq~aW7VSteox9P19?9gRQ!r5{2OG5`DX&-H4aHxO29c`HxB-4ry)cl}cKWeo1p zZeuxU(}8o%58x0tVH(th#P2Fk%@h`d>h;`bp*5tDjE|8{&7bfNbLp*{7jSNux#vfR zR$$oFu#X?m*h1V?mV%Uk+l{Sx60V z6Foc*6Vrl$LYY(ea-<7I^w@523Eg5o{xQWuhWW$%JTcSEGpmci%527}tbRoQv0OTA zX4v|rpAITpdsglSVzclSdpViok-6JuB}xCR57({`c03FVe>!%3Qi_Y)J1hyVR)n>;lz%hR~@krMQ!4GMY}dXcnnMYjDOu{l0a1Q4o9{>dF7Qiv)@D8$yUT^d96xQcvMW?rTLV(n0nZSo ze3P@aUdWk*+vu=1;lnSO`sU~NH}8KKT}w|J(*C6B(tV=%byRmm&YWT|XLyWgQo&Td z5&6T!88QFrvMw08ihPrQ@cH1f-PWY`>wcY0Fqyc#BWR++88%sm@jcjBcv|T5G_U31 z*2WW3Ijp9*YP%&JO|M;hr;d4p9>MmQij_j$|MorkCme-0{!B-n6hAVAX4Bh-)ekwP zbPkeJG>TLGjj&6WMdLlB8(umaXCT)tlP)v_Pz&pJckc?McNW9~ZV%c2*DMH_v&#O4 zi$O)*6Pgm-!8C}TjWjvhH%m6__8jc}D)rH|O4vU)`$FI+gX~)Nmf_=L)Yz6dwF_`m zWQ!j~gTFxEd_#e+_O#~8i>KB8VhM#Ar-$;VHs;x-eAKtXRY*V!(HEFjFNb+ww~A1- zieO4im|0GkSz~@~LACuwki|BC(M>WT0)rVtoT%WZM`6NYW-oYAZ-5Y06{E{m!bslh(>{9cq`Z7fc^-@)bifPK$Zcd9w6bytmw9FV^5@dWk&#jO{k z$Eez6HbGd9%9p39z0r~4qXt~;$G3%s1BgmS0m^dK44Prm2;3zI_58ryj{Zq66>j#< zSCjD);xMD%CRN)zS^snR^r_gFIPsz9KYG_mRQemwc8WvgaZOFY1)mUea1Sv9YscJE{KjtO+tKo9w{F8z}B zr`XZgYysCeVh$jRv2i{qHL4L1ZhE4MdS2;vE#1x=daX7Xt-xxrQOV|0^xmJWS=K$E zn)!gE!DzH}q9;t~OK^$5MUT;r;_m2l!~Ev$f1Z6c@a(-le66#K+%FG9+&$XWc#)PA z_P<{S=-e=;+6NTOspH}AB7#2km4E4_7NNaVK$~)@h+Iab5NlJIf>U;y4h=lcf!e zQ#DU4)98%<(M08|qj__8r7Q@uEpu&2txcr1c%r8)_<=RUa%;6SH!(3oiUXOtB@^1~ zMn2*%S!ZY#2)Zbl!mk5T0MRM<0%Xs5$aQb|i%I9dDl;9wp^J9#x8I3`1Txvd_P9{v z-_mu}M224NpucG(4S;pQ>%D38rtnH<&zOx67}CAC%<7N3$1whM@NNG47b+1Ek|?hogb2GH zwBH*z!ik2k!_Ol}UC5yNj7gD6p+2_*rWB@4Q@{ve;S1pT@JBy{jvgXbCTVNV#uTow&?N3$jiQz~k?CM}@D_rz~XL;%g1j?cR3)J{D|V zYg_}353uDf;CUzGey0Mg)}$ad;v4Q4ppDx=ezcwhTx;84(zPCGMruZbcdwem3^peV`nWHrhG>kai*( znM!0vGGwpat86)U`6#<7%zQWP)e1#NA$PWT?(c{ItO}&(5vP1^?QP@`c^TIZ)1qh> zpSX|U&v?9_8g3eDJk$8@@A*jhJ^iK)nEzRQ9>xb`m?732DuitYG*AjpqvAX2tv$wu z2LO%GX8T*OQo4YjrqiI^R0xp$#+=bk*g%;02{$_Q%;s7L7vzHH z?^lAHWuPWw+p?}?5p`kCho1*_1%H(bcy{z_v5HcIw^yRQ{Z4i+2Olh+{z0Kv=_?l$ z*tp5WSeKVVAAnLG?4WNHbCQ=`z_dplG+nU8qwD=OPPhAYj;^L#gq}pMxF2z`+o2o! zMu8T0A~g9|S#~gYc2sXiF=VAoB-u;vm}}{^c_JbuE6dDL-g939+GxD8nDaa58lQJD ztH)j(n!E0xL32ZBv-nl=*lB8UKBqHtt1l-;tX8~uf)f?K-Xqqg6aznJTWgNkU3)<> z2exnrqZ_1-%niK*WY$E=iRqt-UKq zv4KZ{$#ePQ2zy6LZ9Ij$ft0Y1A7dRU8Jfz6LFV z36-#09WSFsjBr`(T_uNvxQ21RqgnP|Asrhq6^%0Jnpb(%tHN~)s|U>Bn#JS*{}Tmr z5V}U!@Oll_yO;&sLJ)jsHeRC^aUBA*-lF_>)Aeh-WaH*lnR=f~E!q2-dPGff)$oK| zi=J0!T36%DW`0CM@#Dybcn)cnT_>68wH3TT$zpwR%kWa!-Cy-*wa~l75P5)YwkT^; z!u+{DSpH-GY4OxF=WzjQsDGcBok0}P!xcyGo%2E14P~nLHi^Dz<5PdMN>6EC^p^XJ z0Wr!3nJ#sV*#@iV%W>CW?H5|{){k#ft1nF(F?fD1eCdr>zqkWyD;e~V= zWxDz6{ko^vNeuT;VECw!9>fRK_D-&WQMpMhXY_XYq&eMQQG*(<&jY$mYV>R*}Xd=9IFa> zEgHG0zfgk5(soT$c`aP%yx&kfkuUGIYc^NTy5uKtALOXtXp}&$lB6myFP=!7J%+w% z2dnvF^Wy*w*XYXCm=dmDv$q54=1X47ZzQw*JABivpBN z3F~`s{z@#BT4zk6t3}F9+n*kC;C&ITx|w!({rCs}@f8a^KMdy#MwE4cD>;Na*dNbU_>Z(^|gs{?2XPnzik%5YW2jD<;a2h4uak;A^yU-!6#;D$W7M` z^yJWZG*1;vk-D+gbqxb&1Q#5=o|-H{UShVb-VlAf>2&Al>akUFzr0u=3L0HYC~Zfi%>|8DT_#NVR<9MrteWgsY3*9ir3=lP zBK!SHZ1))dYK2+>94P!_;PWxe;lEm8x>38b>5ajPkAgME#y}4||Ku*hwhXBBhD)!L z`rHKJNoSSbbRd(=TtcuGPmpLp-y`===KDb(9pY~=)F$S+Oqi4M{K7sL$k$OHJ$5M? zDa1F$abdkSOOq$Y;ZQ7oPYk2>%!e@-fGGi;r4E zjgwyi9+I(f?{QbgEwWp;SE9~;oDRW2QVLUAmeRi#rcH5Zo2+ySLWmC`dVhFkC9MB2 za4fxs;4b{I1wOD^f%`uzX48^6KvC38W3p*~$s3@0gw!9F^9Bk`rk9DW3uflSH`{yz z6gs^OY<%NHiNC}n;Dr$mA~?1V^NMw{ww5@R)T0xZ%dbPsQOD<*NLNQySUXpXCX4Hr zBrEp9_jK7;?T;TbA@iM6ufDLVU@EB@Ng;R8o2sI=9=%_4C@$=%qLZ)fE2V15j93g< z;zZS63UYAO>a1*FT`24ih!i?D=;)m84bPhe6={;$xZ>y$raFK?IPtVpLSUfY>p}0E z!d@os_PQ_s^4^zT6omgRBh4oh_fNSXI5L0ediTBs5U{A&Zfaub2(16we55K4Tkbty z?_$1M!+MtkiDN8UCk<%bB1c6EGGV{TuY30=|E!Z*e~wqPhs9}`6h^-S#G7bzHfF8|}&u z1V7p@cD1TQ#Y@vG2q^wTXNL*rXPJe^E_X!!U@p*X#8q7|tl{k^ac2gLh!QUCnhDQ8 zSNar@v0;@Q&n^yu7!L@YbQEgTK|3K9uqG(+T(Yux!>Y*q*VEydFyWQlC2r5i*pm|L zKIXK`)q1L6#hWk4s||b9WTaJn;TeVrUY&B?+sO@FQj(hO!YSh4$X@tb5c`_+Cl9_~ zXryMiK_^=1Agk*CYn6J}gif=m3^#T87>bALO=A?Y9zk z1nbb#NuS{rSZ>tb-EdI2e`)3(t|wN|1;?2Za9p#P|f z4Vk9R`1fXKK!FpiYSLsoO5nL+ z-r~zItBtp`J;;O-b3Z+0g37Dca2!ODD{I}VN}D-J=q)VcTIb%I zj2?Mhvpb-UZuk?{U`s2rR@CmBgbn>goG!c^pkJ<0;g`q@|9NOzbimZ{;xylBB2wz?bY0u^QQCu=5O2c6VW zOPTeOWH?G}%WkWdv_F9d6NtHm4#YfR$8P8x63mMy`tdz0wx!u&>u_Jy#Pz3o@Xl3L zjOHJmj+)86f(wCK4cCgwg%D=e$!QTIQ`IJ$hVq9Pq7m4(yA`m)o-b%l1O(#^z$riL zs>6N(IZ~Q5oZ#}~Lit^z@&d|Xo~4Ya{mUuFy*E8+UsqZ2__4^-iRviHWykGstO$b~ zUS-NCpFU@tU;5eR9aou<^Y;iyL<80xU}$i52%FE+98&G-eO}-y7&)wL>PeL0 zMn&6C0Uqb)Fq88&JYHlh;8s8-U%U%rDRb=6PUNR2ea_g8x!Yy^Ms`v=e{_0IK81gYuDyj{UQX2g!*YxA zB7>!TzkEOR>U2M>Pk7|$n=_6Fa!X*K4gIc1XSScQI81yYY6QeEn6c3M4A`r{+?!du za|^3;=`Cc4tPOH|U$Wum6hEr8ZJqJ5gh}qnkb$LhI2xmSsPP+c8OJ%!y{~W@UY}R; z{-9n@*YMXXrcnp-o`QwEBd~gHGpV?KALWbMSDr*+f*c@BOif}CTToHUhS&-3HoD;u z-95{G`bW3PL6$ZJ$HeTS>b02qMFkR(9+|9by7{7K{*PRseH}VK?)k3OoVt9hTj39I zm+jd)s7P`mRMwmi80gpv{yWfZCKqcwaTh^$E|uhF##Hn4{?<$mQ8fVw&)){?={(uY zac9LXh-Hwt|M?4CpIT72ny9M%p3#O}b|&K{)45B&L;ILG?6xJO*l=QO)C=;nMHV5%@);>}7J zVDTK%rFUtbxGVUk*!A|M@O~1Ha(ERH@w%w$byfYx;ztU*z!$(uzz7&w(#3 zYrTvqe!N!BOtQD|cBeD)b0-7kgXdvmbX!;bcCY#|TCw-p5OXrhYNU~Yc@Vu<4N{2J*1>}?9T611azqCPaRC%MTO!vKsv9{lUY}n$|gAT zCxrUx%2G>e*T+?=oCW~FIf6P6RW^rs5k28(j&9)9BgI6orq=7N(k4EgDyaUVdQ3S2 z1Z{M@b03jm$BU_{&VIEU%Ykl1+0kvl`jzyRyIaPF{0V36%;l-k1kVwQ0orokkVN|` z725G8*Ju${2vL}Tv{#kt3O;V-wA#79xjyK&YDIs{a5#X)e!$XSgw>D7c^VCghMnmYrF5-F(xL_q0K=}<&s80m(gR8)ik=>|zr zhM~JuS~_NEB!C@?%KYgU86UwOi; zEY-8xr?0C3MOCLPG$Z9aKS)S2m}{c=f(B3`j!`nW8w|mbCnFq|MEVc5V;?#!pwISZ z#DP}hfV>QF-l~0dP<7KS(nwvfMLp%sZYvxVu&Qa*t<;RNS6q<&Xqn>~-ri(8otq{- zR`QhI17D>^KEfSYKSqQ)HQ+yg=L4kqCI=%4pc`(#7TtKZeN05=DfNU8quQ2oM0r32 z7GJ`)&j$WwlBjSLJO^};$VPlzgyRmsz;eE)eV;4)HdGYij{59**&NZ&7vIl2^;P+0OriNUdP0zgB1Xqd62VPVeGKmW)%;<#L^M{evIvOP+Y!Wb|S zk>n36i6L%ims9GHaH4h{Fp84c!@QS0Hg%z(+Wax=wiwg9)V#0B5FCDX_2l7d0r(8w z^r4~Yn?AuPN54aoN0TQre!=5l4R1h{G>VB_zIQe?IaH5sQXm;OIM+&-eq!#|j1gNE z8w8!UKf!U{pz=;+dJOU@iG%HAynj5aWU~)5i4e7C*cLx#uHEAQfg(|28}y%1SMPy{ zPtOMX2(QQ|9>jc3tk#iKij>%Ypj3Ic-2$@XJ?&|PRZ-km>1{qko%>xf{%Vm^R}&p> z=gs>2r1{*Afl7K}{5%E4F5O_*OJR1+6ffBqSxfdJ_(|*Nt=ex;EA7*|7057fwptD= zB|6R;7o+w7!*dfJZ2}sFNT~xEe?P`Jg7FCU`!8LfkF9?w?0 z&9}TJ=2+F?%uTh#Ws{@}XF2a$rE%eBQ8^4P_g~ntS#jU`b;9gmNB;IFEtHtB-dJzb z5ruij6V)kdKq-N}I!Kj)e0S^YhvKPU&J%CHi#?ilaj1Ps;%;VNXi zPl5ZCA_7g_{SxlAYm{FCnhBV4^+mL*XI(*#y1 zbABHn!B(^YLs$M?iPYhgPyaMp#$yi+6%Q-FVlp^yeB~AY(=mE(S^V=16QN&v^|ZDy zx`>IOLpd{AGv^Q$h;z)HFI=+En0epSt}@PN1(BQW2rC1PD(W^nh=-%4%9I9*Kwzu_ z*8)3@lznsGcRU!E!O&H)wj93K4d52tB1ao9*8B5{teI4FyiuT;M!b<<{ad~|Z!)Je z$19R+BNJzrEEMC9TO*qq_DH03hoI=(DvO=+dtyv{>-4R?&G5+)R6P80(5iQs6I*jwZ7 zeVZCECpI|jRZu;ZSA}l&7v7zXNAPUE^v9eZEEvMyyJgn-Yp*F71HDw>&Ae$ID{NR@ zim2lzoC9BFKbZ*AFA>zDJf4T-JXo7|jwST2tMWE77W;pTUB=2A?7McPSY0BwXE2T} zvxzJV+FFLadSXQhsD@0e&ON?y2DA8gJvThf?Pqqc$8--C#CU_-{!gFRT7O zH_@8bFIrvyz~n-Z+%KS$i6`#xm!hM&Gk*ffWhq7f9+u^aoEqzw55->G;rm50gj`MG zik@Lid!dwUU(@1T4%%OzB*7ai{-TNND+2sldL6SPb-fKlmOkoq=Gh8^ab3DniI#p2 zKN25|bIgBFSB02&X2g3zcIRI)Vo98K&@2`^30yQZGgYec4gjIk>+CuIoGIBRe@B}* zPBBr0=c4+9Vb71C8wzW~1rl)lR5*5F9L&4c_*t>RD0fD&LaqU< z6a~0?K#lP#ex`p3a)^yp~>EJ=6xk_wU>=!q^-xy!0xAN+H*cAxTWcH3Ch$IHaN zJb!1by_L7|e{-ey#luo8{zIFz;bP$hVh3|-KQbe!=|-?yrYY+$gxk|nS8|mmo`VaQ zokCLJwTV=LUL1YCbvH1i=&H|;#w-SxY_)UMO!!`Y+EG@ZGE?>=#mr@mP6~*Oq6o?ymoWr2jy23GlMI! zLkLL6)IF~ny&X=E(rnurq;FRObCA2MCaGR;l0?IlMQ4whPFLf^$T+x zjU}@sdkMJI$nM>oY(Zp`+uLC(*NMON7QF?xiR=xQ0B1ZCJySxyzY7rLhhQvHU5-R( z-eE?0WY9norbnXj#^&gw`k{)Df7amkjN(^~+WtU+i1YRB{o5@<6NrBLUSn3a;gp(PpA@`ts!W=;_C85k?q>#iZkz1vPoc!x{UTZC;KeV)%II# zX!PLwiW#BN5==2SKkXO}f*mhjJe#%lisFqenW}sd{$2xF(q&nZ*2dC@_+}_K5 z>AhbHGGxgS`Y(kvt%Cy+ZmKf%d=<{OIHtMuKt|;35xh)(+vMav$=It)pgY!AECg#X z!R(YCe(H%@tl1ST4oAB3agYk=7%ESi)~_9yr3pG90YYxcj_$`nZ~QkP`SVec#j5o1 z=(;F>w%Vv|7`Xy6VzWZwOCBGQSsiC^m4^lVtQ=q-)vb01(32oa7p^Or2Ga(OY=H>e z2WJ9bpv7=|8_!z+4oX_+mb+u2&tz@$u0d9ySy3!53w>dca`}Trz-}9^VdGbx!naIY zl~LEg3O0CFOUa2Zp@Jz^K4DmONT)koP{s8{@Y4nj=NKmGo@h? zII8atni7HrM$Lk&UWjN~_f;lig$WuK+@L@<-;K9->dE)T*1uS3f(R2@pne4OhoaWG zX4#432k*S&&Fi>bt!=K(>lX!Gx1S&xk#DGz&gOsr7n3b+bRel9LUcHqdJOuPHmH8+ zv+duDjcw3XzM|UXKcJptn8n5a_ECqt%1Ok*rKfN|0}VfLIb zvc)n)W@4O`U`<0~q|E5cAJZnh{{wX9GQ)BWNYJM9l@S%gz_WsvfLqek!&RF#Ksd$g z&{Guj z0(w*u#U3ac2J!jz_y~V3cHehiOr+LI_1q*yOF7;oXg2fx^q**I9%S%t8tDj)nReLv z2xO^{KLj|=;Mmz=#%Ak6ZR(1+IgQ$2yO^`ueNJ(&lo}dJ)}EXFLP|wCW_@-!NJj-{$|JYK+goLu@Rd!Zb4uJj4fmEFIs%>gP$~U@#m_ z{0j)MezF}-lS|~dLju{kYEJrs!F&>6r(M9XFO}wT{XwvDr>qp{q#8>sb2wEDoam#C zp&5(W6J7s1Plv%3%1*Ji^_Z2(&JM_j(=v-$)Ae=J*HXs&>i2sf9KgDX>(`gdz1RPJ zXkcu$V|&&gUflm-C+Cr)H>A&2#A=|U${DRuSD2r2u;q@);gC5DuB>kY?Cx$^SQsx`-P z!p9T6kkk!hO6;djLV<71vFUXye7=OdAdSHNo2a)!@%Pq4^Br&^Y%e2} z>G2b9dTnOT$}S^SmC{c5XW&zsY5_Nqyd_rA2ah6$#w?n?;2s32Hpexb4c-E-`lj4l zHEMN4X1P}%M+BSET9axqn8%V-0LEgR){*KeI3zLAq|EZ^?_9qCLM*aSZj|?i#Vv-8 zubpyU`roiaPcoiom&$L|<#v?4i}U=7uEH+iKanGSAxrdIMREaSq&Y9^=-UK{V`jpVqug ziPH{zG(ry8LN-FPTF<|^9m6XnOL}=an!U6`^)Qx3EgrTdn*w?u2-<~SIu!I zImtdT2|_z?+xc3}q3DqF26qUA4!@+Uh`+l(+7{49b}}&SpjCHT9pq0k1F&7C36F<{ zobg($1Zrn84~GS9hNSn8!ItY~I~|!p%l1rW8h!fT0Aj+5SlE0i12_1v%lMakRIW0(@E{4N{8B;H6RGit<5U~=}@FlMm6pnuh` zBkJ$gcnxc-OB-3@wpoKKi!T*bRtAp9CAwy)rC^gk!Ep&8%PBSBc147PNo&G^i=HK&0XAmL27>f}BoFgklUta^B~Zh2JKrA}vD(ZL}m z=e1!E#BWx8;jqiE_hGV6t_)rt9Jo*}vV3E>9PAbUt%hkRkAtZepFR2rt1HWM%(F6wz`VvqWxdXhm z)y*FDOU}8f+=`CbOL7@rlYzavO%c$tFkxR-aGU!1srCxjB`ILpafs&iL-pL zE$FZxBfn{Z=f`vH;d9j{13u4wwwj}c#z`oZnd;F?I>OnNEBQ&&sEbsQ#R2jofAjTO zFV(0mLO$#I4aKG`z!jUGRw^f&w(P>&UCtKLXe}0Fn1uC$)_apSj~nd|%wOXl0B$V! zdwUUj%Vl(fv&Vih%MP~FlZ$`X&%Dw#-;|OIj-KcLaP*p_3R3?%e1ZSJLD}xK#+QGm z#R`)n$NR}Fk6ouWTBAXbP*RVnyw@{$=o^qL!cIICN@MXjQ~V3p+_Gw>wbNVrWf{8* zk284G-tkIPtWHY7JJ0Ik>1Di0-4@?;3&||5&%3HAoL1?h>fH!jO|+lL2B(er)m2&qJhI4#d9n!W?=i#W_?0B81{#A4MgL2&vkCSfJ;WKioW**?x{~d^ZKeB;M-81PUCS4e@p2$t;7i zVo`i+aoP9>mY_nQMTUix41Qw=5p{O!k&aeCNKuY0taYq4m@P@7Dz~GF3e|&G$OV`t;u#811am`?EydKOenB!i=IBk z8tp$y%>1mouRhY6cr_^N>&5Aj^^FKrhd7Zq<@Tt&U!s#*yk?D!$PR_L9XAvgK};?VcU`#K!AR2uZ#*yGtJe_B|I-0pAly=IdHz z%p+C}iU4`cU5nNr9gBbAsc9uoB47S#5z^hz^monKj!`K_&*uzBe4R~MNw~a@Tj=6a zVh*lo+q#WUGren#=*U_n<2od!2b|gCB+Z`Y$rDkw55C1D;8MIVY-oN`xn7538yrFUY7O1<)f_n)7Rg0!-&nnxK8L zx=!yw(CYZAV78T3jQafro9wGvVQ?rB zTFZ(l_{eXyC)YeYMR?7p<;9W!{)*!SwZ9XM%jq9cw~AlISCT==oF)*yEC(ex{4}u9 zJbSu!`HS?D=m*{u;_Aiek+<-(*jf9i2G{*3`m+uzB2wOEzd_tbw}GZZGjlceVUDf_ z7%zZV4NQfPEW~!A0{$vgGo>{)1QAzWvleWXbRtH5421%p1oQ~VGhh5c5nu~|TQE0l ztRgP9@-|(arz3HP<%fs{Z0!MSkU**oPe@s~ulcJF+A=^xPE5EK$bqYT>{fpq2#oiJ zjCB#iiT@i&-Abu{BL4VK9S1bE1huc>tq}2FF92Y*X-4FJ{L9e|$|KyWb`kKLb+%S>IJh zzk)4`4FbAio^60tixumm5vj>~#8A~GH$j9p{?@U=4Gy(&9Xta%XK>J$k;JlUVkZ(J zksTYBwJg`{l8w)ttTyJyR^Er>y%%H^nN3p$;Ixwsax)8HD9hk=gLt-|+t~3RL8+0In^)Qt#pdaG{0N^jbJw8fCKdZJ zch7F)q(GO-sF9gO*AqRSM3ezd6y^yYv>N?{=hBw$s*|$X(TywPI`noP=ryV z7NcCE3k^2%zHenLj3S_~Oo95#ndO;%VipMR_1ZbP;2u5Gac~J*1SH6G3faFDhY<3I zm1fD}4r4Y_e`1?e$@pEMZPm0bFH3Bd0LLPj6E(?gx|vDOXHYY!Bx_)Qr5Mr+m(i6F zXr1IE?CiWkGMQHR=%AWme{ZD;*Ec7(yS`8 z_Sv~{tN5Wh{KJ;Ej&>tAu&GdZ2p-HiJB!2oK0j$>VLsB=SC-lm+tU4FT^Q%zQ>Z&n z$k){p4AjS}e-Tu!NHNEe%nHYIVZipV zY|f*Vv$gUXzm0z1b3%D0!O6W>5~bzUl017CDZq4!@q7lSrSX38Mc&QmMK;XK@ARPI zIuEkFPg2pbr3FnB{9jke(;bfofqG(@@X*mZtr=q?aG!x0w~waadLn2AyTd zOd^=!b%NE3==1QvlK4FNE$DaN-qm;6ugt_YD8~&-KEOY`1cx|f%GUb+RBTiXa|%Y2 z{GPEf2xwE7T+SG_nz1t==o=8O2?Pkw^Bm+g47rf~1Zc z67@Jtsyo5=^w%4?2v4RBp)sD$_U{(fs(ygU1cv@rG-v?v%Q=H;q^73&vMu9*$bR0^ z{pL7gRG+TClJF2~A*1Kzv_Kp7pBygr9uosC6HD!!J!^kchoySHt~yptjIIC>RTXY+ zn_x+ymNUD5t4ScRpgC)AFf(s9j@VoSyjFPPMTOHJoSxO;xOs_G=~sFd&$ zD_YVV;Fjsu+~(iw<pVV3dnjXAQg#lnwW&=z!_Z1Z&fMwz?`kpl?;RA{`r{L8@K? ztVV&ekwX!oytZeiPxpXA#iD@(9VEMOi+nIH9jn-JcJF9GV}43>ug5iBMY!IS=)6Ow zsj0xZQ$16?>Fbm&U}shJ`NXB6d($VtCpNLa9pMQu`d6Z~J8V5fn#ZP3E zBPQp09~8f1y2vkwzi|#R1r3~UX{2?Wo9_%zGR|xo-tZ`UVdZjv8g(wO=6Al|IY(;1 z-cm)-_8(MblFU3^f!|h9rC&iMczI8QBmsGbAR&{pkxOuV7(c%Jn2psJ$;V z>vdDb%T$^qSNl}l=>D4H{vH`}nvl!aI~7<6%F7cyU|S6q>W)!sZ18AbdX>D`5Fy+M zFQ!AfCLcjKv4?(;y8PElmUx?ec3(E`-qO079kd02YJ`II*20K1blJZ7O0~uGi91379aNlV3Z3VdlF^2fpDs>=+s1Jlp zgez$-ma=@GuO@;mI@}282xx-PX7$$=b*eY3!*)wxb#E_7Zm(qmvt#}bm_mX3Y56z3 zKb%!XT25-gg@3drKyu4bxBkuU3)`on`@Cl&v)l@LdOj%@EaWaVM|=mRUJ1@>uA>+- zdE#LpwI5<4T>cPlm`u zz1NSlpfgM1mV%W6IM`%P2eg`h^XsjEO* zSY;`C5uHR%ct;8w)9C=c(6Ru~2in%VY6d5zP>j*AI!D9Z{W7CwKk^n{eg=UCAk`$$ z6mQ6)=(Stkl6?5oxGxSs4c+l!lz=%P>Qh7J#9CH~MUqlgqV1i?lN-^(Gv&cfGbILF z;@gdT8HQ1?p+tOM?(xruDFKh%i({d})|2GlVmi_xlEKp6;~VZpY07Ppc>%$Mj4$z zvvzN1L8v8k{7&+k{Wn@IHv`gJ-=w35o_O{v?1v$q%HDCn-|sd_A9*NU#7l}Elej?s zQs@C^uHKvB?4LrUyvj-e9SR@`QA(ycbc@;gei~<})1{PN?@+;H{dGxPl*Sh~LDCG# z4uX=PbZCLq>lk;N>6;1WA6F6qFBpKr<-kcI; zu21j$7gQHtHvc4Ohms|2&v9U<=} zsYlCEI#tWt$y>;~6bRX}3?uortDjf^40OGsfV@ykiLq~)WM)@gW8w;s4Sz?p1=L56 zx>V#b3hqUCM_~b&3{32O6?G_{ z8p?md8TqletMN}`uxa0Hui{1>v+V3FCQ|kEuqqQrM#j@e$wme2_>%S^Cbt*Pd zd$XMZp-(tBD0MQv_1}(QEAy-f4h)gvyXWw>dRqD`h^T7!@8NjnWW!GSh{NA0p&I}D zLN!e>;sZ+Ew!+f934WpGon1?+)=iQ=4KcFxwH4`5g@J;Lt7_DZL^fh3=R2;|cxn2b zRs-o}s0k%W?=mst!$@ctk`%EzP?&R`#OUjxpHMPb7*;~w6X8&qY^ANvc@XoR!C9AR zGQPxrnk;G1`PQ80ljDdQnb??K8i4If%)C#-yb^8%;YH{1o0nB3M z6Uy+^C}@wZH%8i0tP=Y;*gSahL^>3L*JTYXfal_G<8$+QEI{!A`(&&AIb~-Z>*3wg3VmBP+bPIs{r7m#JR73xE)-d@nMaQzE`ye!FnH zG$LTX**($3mUb0e-ST-q3GBnEnihAH z(dwM_BI6Y?qun_;qx_E&xz)XRM?X)=4^cj<6RlO-UAmUUWxx3dOo31L@brxVkBBWs zsQb8R+CL)bv>cw&*w>!!A7i)ebtVZMBCJ#xDOVgV|qv!cfe8|lkB|fSY!szke>U2b1#<}%j+QHgu-%lH` zeLdTjq}JFURDncNOna`+wz->fMfP|I#(otLBN9{-pC<@#-H@~gK#DLM>ay(h53X~b zE|GQjvO4x3ZxjJ6u!!t98`jfr`$J7>w70$Whh72R7MR;$=4+f{PS|Iw%?430A>6eJ zWya`TQw4mR7=nLW=m=Abn z($QGU_AHXcUT(s5Fr?BX(PW*bl>PzismY|wG){W+U?{Q4Lrz+?1OnVLz^cmOGL-4x z4W93^bLIU%Kz*#stAkDdIfwQ4;vQ!;;*Z=uOYrn0=)NM=t#LW~QS*e4?vNbezCvH| zo!{etaywb|w7>koiZ;@EvT=1#pA$6gJ@n|Sfa6W9x!1UDuhrR-6-NC5F?ya(s`W18 zg3y3PoF?v?fYsuH!mD6cw2H;A4tb%Ct`2UFrm8G&Vo_nH5{yOCy~d2|#Bx)}ghJ}{+j8S={XjjNtLt${KG7RMu{qif+T}f^|WUzLmXEi@HhB(_BdnymK0YM!orvD z*8=C!JzaMt2X^Un&3obKR||YlWwv`Ixg1s8$g$DZ=RwhM;Qq2$a*CHYAw!jOocu5) z+yiiO0UGVq{k(r*o|_4hLnFX$zNq%7-?6Bx@lPOKr2DbG)kS|mY`s1zIT@Kmt2snmIU)0^GBnDt)hHKrNq?QK>*4P#7y`Xe(PIJEx7&&s7Gfz* zaR#BVb{~LTE&(_R{HjOIchG7CYg=niR7HCeTNyB6mm4lN8VjX*^NwC6VoC|66m>E? zvRN8~J(`um4tLXop)nl@UihdX1I?z^SN$G9BOz-S2EBe#RWX^l^BPmM7*>hb52_lx zmX)m&Dq-L;DX^%n+CLe~%6%Y9T-iAc87X)xvjVZwfPc&wI_+U=0vgKME?z3S&U}z& zbg@^^SU_Ip!?5iSMUQxDDChy|vne;cxcP2i#mm9ag|F^Ns-g$5 z!L`N-yi2;dIF=ftWwy&|G%2-M4tfBt(qBZmWvF&TGP865u*a|e;;pZ{&m-&kuafY^ zyc#9>^d~kr6nprer{2st%@Cvd828=?#3_0N*9Pet}oy z$jzgm^CRq*WHUDq9u(Z0E*k1|k!VeUCR(f@H^;h4Y?^m!LTHYGJGtB?5y%9(vuO#C z2|A}Cmxt(bhfM0+tP4&GfgHCK`KP+PHwN1!JoQCkQ4`dJkfPH za88&xCB6o{7+k4G0&)Hon0}GWRZ)8u^-<$hxecOzs!)5$OVPYQuLmN3L-Oq^@hB16 zXLiCp1Dl5V$)NjdNfh5&OLlNQAR?=~tWPwJ&(*^G#}2)j>1V5Vf!uqCZ_tYP_?ml9 z{}x7Ae?^twt29HTT>S4Bg)XF3{cokkk^PHrya!MJFl$Qmt>y$?pq!M!#ok97b~Trk z*hs~Qk$>%7ZYQHGfA%>x)uxw{54=x1;T6NDa7f9wL*lsqMip_Cl3qbg{s0M`^`UIz zZZ3~(Qf{uE6d*bCBaT$KA}8GRePgj`|D>ESpG-lGG}#0@$L z3w#mSSJRX?Q1E`lHD9`g4?8F&E_Pt3tol3{+cQI-})IKtjK7yjE@_-iq zBZ@=r!ufC!&Vgj0bt$Gm5?5FN5`kXaa%QG?1Fr4+#8zdEyuO&#vJY@GpO6^R?NQukA}iD0w$|MIH2G5NH=o<9dvw0ilVK%Ig)$z?c`VnxQ4VC| zHKL7njUdgU67ErFyrxyW1YR^0vXV1(_^?oJjBK1}6kY2z<=P<$?1mLV5wivXWRDlq zAuicb>#3fDBV9NOo358AyYh+ON|~sp7GIv`!oV=l$ z*J71qY-P*KU})tm9sV`pu8!C2*T8UIGo0talKn)szmN+3NvDL+D2W&+gWw=jwfXuK;$rpaIgmng|XCfPMTY* zZgRM}ySDqvsFCz+d`o!vU-;;KU22M7%q&?P5AyVl_5vw9oTw(c?QHMaGYvz0KU;KW znArIA>yb4So5l;nNkCWgeZv?2CDJ7dHI__IXr`F}`{b$>QZP1*Yg~m9|BX5Gz z$CHf2+9(?hcHOENLB=hE^zb#F+sr2q7Nv{!(kA@|M8lg(&x9}5;|xHg{*@D@$Hi{hgC1PXBu%iuMG@CC?!DHhNvi@}BaZuLWl8$%6Q`tXWN-2L4|k^E2>b8$D+j{~ z!<2i3UIN>;h0m77^L^;PK)@hMy)NCS%2Jd@l#AfFD3;AQoA6r- z6ickao_$;S_9O=Ri;rt?V>B=7#W%T5@tK5ivVc~~TgRcG&pMzl46pS;wt+dK2f9uL zo4=YdA0|_ctbCU{%MG(k_ayoljZ^i^AZf4Q4_DO*+edk?cGEH8y61WnzjpJEkR$$= zXXEujj}Fqof&!9P%^4mFIsiIPQKZ-IO~s*&8tLix=X=kz-IurWYd2GS5wYhj5p4E@ zBzoh6QJQBumo>G|_>Q0gK7@Dn7kwjy;nqqB6D70+o2OyL zD)@`-k!(f&aK``Mk7xYqDf&YAQ|k>)?f84MM})>7^mhUl{IK8Or>)D@;fP^G>ymME!VmJ^=PQ1|cz|MlC6S3F#CosD+;#pF3y z%9PueMX$FI6+_FwDHq4CW~neQzTJB?@q+=~-nbRm8?M=X@+5QJY&#S9K!}`N3sQ*K ztW&m4Y)})Cvq8q?*m_u2?WVH2M7841O>Jy(eJUp7`cZz#m#xNf-z9Nah0LlEY*3KR z9?s~p;i99#*a5$$*Gl2P%#EgXkLHYQ_{m#p)!6~N>MI%xzW=QkQpvJ{ul`$Z#3O+) zjQ!uIN0;L!*$Dr0=Z^bN=bo8St1Jb3YpVCNi@Ly_TU^UPs&F?k7o80kdY>azngV1s z1J5LNVw%tM{7enF%U*q%elrgMKnF#8mr|vbhDEkXMnD&&n|32H^AVzbpnF8Gc@m@m z%K^ZHNrWHsy}=wwI+5<$&Jrsc+b)lZ|1?J4iCp1ptjNCF(*{f2n(GmDey50+4vM8b zH6is8iEzJuRY95Xa6<9D-k92l#?#k2M4xhr3p=T&=O+FV)w&ew6t{g@U!yJ{@-vU+ z0bkJ26yc-YV`VAj#D|)k45Dh8y2rFvMokj`N{1r5D72o^<~;)Af~sv z$x|15psw(BoG{0ef@$(s-<=`*3kI2`GOxFD9-b<#_g!+2a?p|8#R)os`7sb;8#D*Uu8RPHzoTDy%5SS~%VE@#?yjC;|B5Xr4{*E194A6>^zVBTJQ-?f{eV z6F2KjhV)JnU$=t{0;7`mn|9)(|KQkd|oY{V>@Xt57tJx zgXiC~W!*%i2juRk^~nM69?{eE!`{GNcZSY{6IGHQY7)NVu>0FRIv{`88<-jdLnpcR zB%Gj7KiO38+d=>hu)7hAQh1tnD;sFEX92)fnBz(${@UF5m&0P`z^^z=HoYeEL}PE1 zO_Xy}x>7}>`q{(b0J*>xWou!>mdf2e$(3~f6q}%xXbeL$79<4AS|1_#s2HW-`s)7f znPG=-k8HXd|4VAKVAvkQyAiUdW50|v*Vq6ZCf{oKnOC^?H)AD-_~l}4XO6&<)HJ{M zG+_JyS!&rb5w9y%lo$(>2T7!JB3%~Y^=-fTORxfW-zmZ z>>b|VD+>L~y!fnI5lu32zw~|VbtpyMfoWE8NyS0zDWXcef9ei$6ZmT(<<7HBW1{a# zs`QsHNGv4CY(eE3DrD(gloHF`n3MT$`$;!jCP+cYEnPIDjbE-hyGo0qiM&tCKqt5MPhLW4@~=yVC((=N1L&i<2&DpfrHUyUW(9t^4aQC>*k}6J>rZ#8dlS`7t2Mqgtwwrt_&(Gh< zJE#~3UKrnv0C7@jZvJYVs=)rr4Z{eSWEaP?4a?!=*}YAF>HPmV(`ivNVPjQXYzUg44Ok^)G3=!@M*EQiw)UFFx3rn=hI{M5TG?L0QNvh`>(v?JH} z#SrP9rePoFXE_vhab;OUpjU;4E=C&Io60(#FB^?dmK zIMRa^tsHhq%XFMt!U^B?&Ox={#Y{dWYKpG=(P5WEyxaM1C0i%Qcr&HS?)`iR?jE_B zCA#r)kP0dbfNM8%Ce7nJ_CA5aOH#PSc#%EPwL`4X*`&`KSlHCg zQd%;gi%BkUu|0&N?Vf|)pFXet`F!*h5n7FB7%jMquHOxFK9s`3DqVeEB47O~L}^%(A{Vuk;_R zi5_-kH?#XFmY`T{g5Ea^uTLBKSh0n4Jly_=WbN2ebul~QCiidkO1SoHKP5e#=YW9m z)QvmeX|Oz&7ZhD=U!_#Ac8k`fn!UmOq$Pw!y&Jfj_cL7T7Kk{Js(r)|1kMuzJvp7EtI2m()qW{&@|dR+ zcn@PbonO%iZH-?%pG&QeK0bWgnFF}gSeU^MZWYIyO;mI*4Ax3E>fZnVkSbib(Amj; z+3AoM@sTFc`uh0U=ZQjPh+Algi8~G2YK2dSf_a~Moi^Iz$(Xxb*Zbw|Zs}Z(V@72E z+}Gn1H?ET&(^jdOA6_S$)yo}HxtOik9m&l_$Vgxnv*^fR+rF%+ueOm8w3N+4z z(%h}VpdOW$gh1BF?8%I{@9gkik(#N@{}okv&HTh`sy5;H^cm?) zV}cjrR@P>G2ly4bw(7eg;rd5SS1nU#>*8X@K8uITr?08f?ulSt|3>Nw2RFYvUQxmc z95Uh1R@}{ck(H0)0S7^O*>SwD2P;jC`V*kyTn~!?+v&0H$kp@!&L}zImwbOfJpZTr zsiH)my1u<81u0F{opD8fRQ{GDJ1N`MH2+`#?4H$%65&HzrP;F=zSlKMuW~ot5I z$x{F9dzhal{!wT!)lLyDrhrOK_(Wj7p1fFYF0e!zoU1f*S4|;+ZsD$|%=syG%Uk$P zj(+Ar_A#j(flt^o114vHPmWnn49_@=Z0yDMHMouljhA#yj{hDgUCt9^bxzATSeOw% z+%AOQvUsXu<3Y(**K%UaFN=?Nn<;JQ$+3y<1zg`6DUcLF&Lo$_YrMSOH?n6Z1LmKI zTIeq*4^ESO)a|olj+OG4|6DZ|UMKeQ8oOvZ>cx@^I*!q}0?csoK460{W;Tvu@@FhC z-`hW6t>=R4+~9no#g_WmGY}9*|8rREu5$lBu1A3SdA4$&I-+Kv_Xb4f-tRl(U2pf4 zP|f5Uf>ngFLzXq&AQt>D{85bQ`_fqWicQV@hMI7L)aA)fIZa|5{zp<*PWB*J3p5~0>w+KAQX8Rkl^ zM99K7CVoSpv!)|kWaMeiM5KnB9vuH(gal**D>Ezpl%QD=We^v#d`UhiKUY6tNmavi z=9z@w$jI05_D+HP``zByAiQp`aP!$ZL-Ty*istc3xfB?GB~{9I?R4@Xa$DIZmpU4E ze|g)g?yK+gjp|$4t9CEgAm2Y;H{`y*=d(o=^OBs8wIEiCVk7{?>L5d*2PHvLm#JDq zf6XRx-Z&^7xLk278ft~l0wi{b)D(+tjzHz{3Hpjg^5ejlmUG8Hr>w6AS5~naTCHhB z!?U{XR69Uw4@M`Q`8`=qJ|4VnKMVVZ21;zcKz!R@ZjT@E=1df?Mgv}~#ZyT$UAnaO z=?RJoXf1xIVo$nG8~jLf;hR1*D8?Wy z4CxVB@c%IOmQhjnUE8n-A_z!HcMD313?U)iASFmQ!hlLkE8X4Q&Cp#ZAtBN+14BrI zlynTkJb%vXz0Uht@4cSO>l>eDE%y9o?_(eP*!zIh@6{~7!9Mg?DIX^luIUnT=q7@H ze&-7YTKldG&#q)Tw2j>?Kl6Jw&^sOz*wa_`w$uWaPHYa0+JG&TW2i(8i!a8{d-{wy zq*ow%%$!2Z??1z_dj3jo1vD8Mr5p4m>a5VyUj_J{hn{?}Byi%dB%Ay6)C(t9Ck!?i zZ3zQx257aW$r6w8`kmTqMx6vthL2&+j*rJk*slieQEkMF%Z9yaY*rrF>R1mq&iG<` zO~_$}uQtrK+%o90NM@MTsTFc!tVmfXZ_jUt~WEqaI8QmVHn`d7NKI0ot zA~mT9Tbs`FXXZ?fopH$O=O@f4R;Y6ntY~?#C-9_R`&xNVyr#>pq2=ga^*&vp#)S&{ z1hX`)B>*g+=lo;8U`*xC7ApGxS~LImQEej+;1H9%B%ZRl`fxO>={vIKmSfIftQ5Nj zwA_t2sJ8vGgW0C9qfqF6OCll?y3+swuYEY`$w*N^X4Y^vnRS(Zwf`ue1Iu(<61vhT zp`Qb;=aqZB2BCq(5~@8f4zNpPDb?v!9{py-2W0e?5@eP(7^Xk5)uD2usr^^$;3xO; zNn20-Xz>;40tGiWxQ%&DbK2D_O^MjZS3~{U?^{gudqmoBRgJ5BZ)gW8ihUv27Id7k zJe}5jIk$XOU(EkXRjlPv?MfZx_}i08F=n+$9RZhHdwLjjPp9yCbI|Q+`k`GGs)ec_ z8P=ccJ10*pE0a^O;xL%PXbsvPK$=tP_D0h46f79dzLt>4*P(?Mcvd{IiMngL4l{Lzkc_ED9OqN^?EBw`7?e`{AOK z3FfLY?|v3#d|e1!dm4~Nn*-d;TkqKEXI})C#~SZWEX{+fMoiNGn*VwaieZ=&@U9j# zCrJH+PD`^QM^-CI*s|m(2cuSWrOEe|HPy@~6b2)@$+Z5@XQU9Wi6Q03ix@ZZ{h?!) zq^$2{uBZs{9WBQQO~4O_8hyp2n`tr)tlIIXL#e;Zg?7LNRW+t=_Nr;K4(%J|du=w^lC zj#5TIXjS~-zyTf0dY`krQU63fdLUB)!RdCCdbeUwroldfV2djSMl7lrB zo>SJ&Ejc2>{%5Kb;g^wa4#XrH4#P2UG%z^p%_g0V4lQE7@<-~+XF)4v+D-p2 z+VcPUnsyI_rOG&e;)^AGolx-K(T{!cld#>j`=zrH>R$gOWu3o$bLKUEQ@;O2U9NG6(HYJ)b7GJ$)q89+;-;+{Sb-x-E+m8=ScDOBOUyif8zv=y`j z_A}EA>J&b~{!Bj%NYO&R*hQl%m-C47^Ky7S{Nkea*`mXWYFTyAnkBxNu>pSbu%8c( z0~{!{6^-)lrN7)^g(ij#ZVf;<3+l_K%=6q(uxJ%D;1;XKJOX8XxaeQpQ6{{+rS;YQ zq_dBl-oWvzGy{?3Yc7AYAokcato2WiM0oOPi!&&2h#WFBl;Sy@!&dMsk0VS*jwJ8r zX==UGl;gpg7<|Jc$jG=#AW5XKO6V8!i~+mFF}>`>EBipLYuTu)A$tkg=6dn*uxt@r zd8p?pKDOl9f!tfZSX|7k~CM^Mg70Q<){W$~&d=oXArXf*EH$@0-l z0H@K!JH;1L6Yv-s&(0N|=AIYKeMuK3u+?-N5hwlCMJh~SC){mChlhNNGIUtp2CG#V z{+?!YJ?uJladP`sH@w`7Pqk7cG=8Z~$@?OiHXlqF*k;Vzvq)cedgnLRkZQ2OrQi*bGmBhdbX4%SR_> z&9OvWQerERn)8X6!6HrcGm^m+xxocxv~iv4y2IT8=~n0g3F*9yQt?(?Lg+vCO@|mZ zA{F6UT&YjJFN?*IJ1bCWnIgaf%#MEcl<6VktVQ_}usYBiO)C$z;TI!K%QS$iII1w? z%nXt9BvZER>AL!ra$`L{jnkqQo6oo%b#t{oW$VDKRl4X$G6a*Zu$)MI9(-6+6c5&l z1^4dcX1&kvP;$Qhsw<`H5NXmFpAp5ju-LcfjocM^ zucCIYPF#nQmGo+EhSQ>KXjyVA| zdHNrnY<=*U^Dt2D{>v9y@`{P{Z>w-_B1D7#@92su6h2wP&Jo|D{-DB1+e8ta|aC z;IV8+tWuhOqRI$EWaUP*m1&(K6D;bZ(sg2{SaT4+tKsWvxZSgR53D?VeYsF9NuiaM|q_uO{YxDOlpO{$&abY<;Q~Yl3T&8KBa&(?pyE&k4A~Eh3<} zC6UA3DV;y{F^A>x8^(SUvEJ0*7C?8pPzd5xoIE9(7A|-=LfX0Hb&-Pb5G&n!S_tUd zl$fGCaR`6GrycK!nIfHxQ~sQ*aMhY4Lp#0r$+Tg)8ND2(+SzUOO`R;cy0gq^U3>6z z-*rur)F5e;F|t)IZXfCyw=W=Fi-)3SMX`qELtF6+lP9-qndhY|RE8S9YVlDys)$>C z8I7jcUQatd&PB8-p{{V+hK-!mk6iny_ZV&{sz=!tUOw(GaHv>wa<}VvJ2BujKt0(} zE3Wqq!L>*%RN#H~jm&uAT(U4! fzZlH-7sc}3$S=I`?bLD15J8_Ao&e?u@`#C0@ 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

-egDSx9{7`LvCu+C{)}7i$3!F*~DLAjp8( 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

Wddo=_Qg*QJ|m~ULud0bgxvWPppx3 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 literal 0 HcmV?d00001 diff --git a/src/bmesh.c b/src/bmesh.c index e90de4cc..f136b9b4 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -73,3 +73,39 @@ int bmeshAddEdge(bmesh *bm, bmeshEdge *edge) { memcpy(arrayGetItem(bm->edgeArray, index), edge, sizeof(bmeshEdge)); return index; } + +static int bmeshAddInbetweenNodeBetween(bmesh *bm, + bmeshNode *firstNode, bmeshNode *secondNode, float frac) { + bmeshNode newNode; + memset(&newNode, 0, sizeof(newNode)); + newNode.type = BMESH_NODE_TYPE_INBETWEEN; + newNode.radius = firstNode->radius * (1 - frac) + + secondNode->radius * frac; + vec3Lerp(&firstNode->position, &secondNode->position, frac, + &newNode.position); + return bmeshAddNode(bm, &newNode); +} + +int bmeshGenerateInbetweenNodes(bmesh *bm) { + int edgeIdx; + for (edgeIdx = 0; edgeIdx < bmeshGetEdgeNum(bm); ++edgeIdx) { + bmeshEdge *edge = bmeshGetEdge(bm, edgeIdx); + bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); + bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); + float step = 0.5; + float distance = vec3Distance(&firstNode->position, &secondNode->position); + if (distance > 0) { + float offset = step; + if (offset + step <= distance) { + while (offset + step <= distance) { + float frac = offset / distance; + bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, frac); + offset += step; + } + } else if (distance > step) { + bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, 0.5); + } + } + } + return 0; +} diff --git a/src/bmesh.h b/src/bmesh.h index c7c22b32..83b8de8b 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -7,10 +7,10 @@ extern "C" { #endif typedef enum { - BMESH_NODE_FLAG_KEY = 0x00000001, - BMESH_NODE_FLAG_INBETWEEN = 0x00000002, - BMESH_NODE_FLAG_ROOT = 0x00000010, -} bmeshNodeFlag; + BMESH_NODE_TYPE_KEY = 0, + BMESH_NODE_TYPE_ROOT = 1, + BMESH_NODE_TYPE_INBETWEEN = 2, +} bmeshNodeType; typedef struct bmesh bmesh; @@ -18,7 +18,7 @@ typedef struct { int index; vec3 position; float radius; - unsigned int flag; + int type; } bmeshNode; typedef struct { @@ -35,6 +35,7 @@ bmeshNode *bmeshGetNode(bmesh *bm, int index); bmeshEdge *bmeshGetEdge(bmesh *bm, int index); int bmeshAddNode(bmesh *bm, bmeshNode *node); int bmeshAddEdge(bmesh *bm, bmeshEdge *edge); +int bmeshGenerateInbetweenNodes(bmesh *bm); #ifdef __cplusplus } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 163a14f4..ce4872ae 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -6,7 +6,8 @@ MainWindow::MainWindow(void) { render = new Render; - resize(QDesktopWidget().availableGeometry(this).size() * 0.7); + int size = QDesktopWidget().availableGeometry(this).size().height() * 0.7; + resize(QSize(size, size)); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(render); setLayout(mainLayout); diff --git a/src/render.cpp b/src/render.cpp index 9fd51405..4c7a6cda 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -7,18 +7,24 @@ #include "bmesh.h" #include "matrix.h" +static const float bmeshNodeColors[][3] { + {0, 0.78, 1}, + {1, 0, 0}, + {1, 1, 1} +}; + +static const float bmeshEdgeColor[3] = {1, 1, 0}; + static QGLWidget *_this = 0; static int drawBmeshNode(bmesh *bm, bmeshNode *node) { - float color1[3] = {1, 0, 0}; - glColor3fv(color1); + glColor3fv(bmeshNodeColors[node->type]); drawSphere(&node->position, node->radius, 36, 24); return 0; } static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { - float color2[3] = {1, 1, 0}; - glColor3fv(color2); + glColor3fv(bmeshEdgeColor); bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); drawCylinder(&firstNode->position, &secondNode->position, 0.1, 36, 24); @@ -26,7 +32,10 @@ static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { } int drawText(int x, int y, char *text) { - _this->renderText(x, y, QString(text)); + QFont font = QFont("Arial"); + font.setPointSize(9); + font.setBold(false); + _this->renderText(x, y, QString(text), font); return 0; } @@ -40,7 +49,7 @@ Render::Render(QWidget *parent) mouseY = 0; cameraAngleX = 20; cameraAngleY = -225; - cameraDistance = 3; + cameraDistance = 7; } Render::~Render(void) { @@ -99,8 +108,8 @@ void Render::paintGL() { glRotatef(cameraAngleY, 0, 1, 0); glColor3f(0, 0, 0); - drawPrintf(0, 10, "cameraAngleX:%f cameraAngleY:%f", cameraAngleX, - cameraAngleY); + drawPrintf(0, 10, "cameraAngleX:%f cameraAngleY:%f cameraDistance:%f", + cameraAngleX, cameraAngleY, cameraDistance); drawGrid(10, 1); @@ -117,7 +126,8 @@ void Render::paintGL() { node.position.x = bmeshTest1Nodes[i][1]; node.position.y = bmeshTest1Nodes[i][2]; node.position.z = bmeshTest1Nodes[i][3]; - node.radius = 0.35; + node.radius = bmeshTest1Nodes[i][4]; + node.type = bmeshTest1Nodes[i][5]; bmeshAddNode(bm, &node); } @@ -127,6 +137,8 @@ void Render::paintGL() { edge.secondNode = bmeshTest1Edges[i][1]; bmeshAddEdge(bm, &edge); } + + bmeshGenerateInbetweenNodes(bm); } { @@ -149,7 +161,7 @@ void Render::resizeGL(int w, int h) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(60.0f, w/(h/2.0f), 1, 100); + gluPerspective(60.0f, w/h, 1, 100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); diff --git a/src/vector3d.c b/src/vector3d.c index 1be5570f..c8cb9845 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -1,3 +1,4 @@ +#include #include "vector3d.h" float vec3Length(vec3 *p) { @@ -18,9 +19,13 @@ void vec3Normalize(vec3 *p) { } void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid) { - mid->x = (a->x + b->x) * 0.5; - mid->y = (a->y + b->y) * 0.5; - mid->z = (a->z + b->z) * 0.5; + vec3Lerp(a, b, 0.5, mid); +} + +void vec3Lerp(vec3 *a, vec3 *b, float frac, vec3 *result) { + result->x = a->x + (b->x - a->x) * frac; + result->y = a->y + (b->y - a->y) * frac; + result->z = a->z + (b->z - a->z) * frac; } void vec3Sub(vec3 *a, vec3 *b, vec3 *result) { @@ -38,3 +43,9 @@ void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result) { float vec3DotProduct(vec3 *a, vec3 *b) { return a->x * b->x + a->y * b->y + a->z * b->z; } + +float vec3Distance(vec3 *a, vec3 *b) { + vec3 p; + vec3Sub(a, b, &p); + return vec3Length(&p); +} diff --git a/src/vector3d.h b/src/vector3d.h index 67f8d5c3..eea3d7fe 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -13,10 +13,12 @@ typedef struct { void vec3Normalize(vec3 *p); void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid); +void vec3Lerp(vec3 *a, vec3 *b, float frac, vec3 *result); void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result); void vec3Sub(vec3 *a, vec3 *b, vec3 *result); float vec3DotProduct(vec3 *a, vec3 *b); float vec3Length(vec3 *p); +float vec3Distance(vec3 *a, vec3 *b); #ifdef __cplusplus } From 9b31fa85e8c5b3480aa1eba2a1b13d7475dc1c7b Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 20 Dec 2016 21:51:53 +0930 Subject: [PATCH 11/61] Fix image size. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 50fd1ccd..5c605c65 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,12 @@ Draw the cylinder which connects two shape balls is more difficult, I need do so Camera rotate/zoom implemented, [here](http://www.songho.ca/opengl/gl_transform.html) is a good article which explained the theory of OpenGL Transformation. Most important is that the demo app is very beautiful. Added x,z axis, looks better than last screenshot. I have to use the GLU library, the previous implementation of drawSphere and drawCylinder looks not good, and take too much time to debug. - + *B-Mesh data struct* I created the test nodes's geometry information from Blender. Here is the render result of `data/bmesh_test_1.h` - + *Generate Inbetween Nodes* - + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration From 5bf806f36383596b7e306cee205a99aad2471a86 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 21 Dec 2016 23:36:47 +0930 Subject: [PATCH 12/61] Add tree data struct of nodes --- build/dust3d.pro | 1 + src/bmesh.c | 185 ++++++++++++++++++++++++++++++++++++++++++----- src/bmesh.h | 9 ++- src/draw.h | 4 + src/render.cpp | 29 ++++++-- 5 files changed, 201 insertions(+), 27 deletions(-) diff --git a/build/dust3d.pro b/build/dust3d.pro index 5c8eef14..75f7809d 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -2,6 +2,7 @@ TARGET = dust3d TEMPLATE = app QT += widgets opengl +CONFIG += debug VPATH += ../src INCLUDEPATH += ../src diff --git a/src/bmesh.c b/src/bmesh.c index f136b9b4..e2e9a938 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -1,12 +1,21 @@ #include #include #include +#include #include "bmesh.h" #include "array.h" +typedef struct bmeshNodeIndex { + int nodeIndex; + int nextChildIndex; +} bmeshNodeIndex; + struct bmesh { array *nodeArray; array *edgeArray; + array *indexArray; + int rootNodeIndex; + int roundColor; }; bmesh *bmeshCreate(void) { @@ -27,12 +36,21 @@ bmesh *bmeshCreate(void) { bmeshDestroy(bm); return 0; } + bm->indexArray = arrayCreate(sizeof(bmeshNodeIndex)); + if (!bm->indexArray) { + fprintf(stderr, "%s:arrayCreate bmeshNodeIndex failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } + bm->rootNodeIndex = -1; + bm->roundColor = 0; return bm; } void bmeshDestroy(bmesh *bm) { arrayDestroy(bm->nodeArray); arrayDestroy(bm->edgeArray); + arrayDestroy(bm->indexArray); free(bm); } @@ -55,14 +73,36 @@ bmeshEdge *bmeshGetEdge(bmesh *bm, int index) { int bmeshAddNode(bmesh *bm, bmeshNode *node) { int index = arrayGetLength(bm->nodeArray); node->index = index; + node->firstChildIndex = -1; + node->childrenIndices = 0; if (0 != arraySetLength(bm->nodeArray, index + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } memcpy(arrayGetItem(bm->nodeArray, index), node, sizeof(bmeshNode)); + if (BMESH_NODE_TYPE_ROOT == node->type) { + bm->rootNodeIndex = index; + } return index; } +static int bmeshAddChildNodeRelation(bmesh *bm, int parentNodeIndex, + int childNodeIndex) { + bmeshNode *parentNode = bmeshGetNode(bm, parentNodeIndex); + bmeshNodeIndex *indexItem; + int newChildIndex = arrayGetLength(bm->indexArray); + if (0 != arraySetLength(bm->indexArray, newChildIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + indexItem = (bmeshNodeIndex *)arrayGetItem(bm->indexArray, newChildIndex); + indexItem->nodeIndex = childNodeIndex; + indexItem->nextChildIndex = parentNode->firstChildIndex; + parentNode->firstChildIndex = newChildIndex; + parentNode->childrenIndices++; + return 0; +} + int bmeshAddEdge(bmesh *bm, bmeshEdge *edge) { int index = arrayGetLength(bm->edgeArray); edge->index = index; @@ -71,11 +111,22 @@ int bmeshAddEdge(bmesh *bm, bmeshEdge *edge) { return -1; } memcpy(arrayGetItem(bm->edgeArray, index), edge, sizeof(bmeshEdge)); + if (0 != bmeshAddChildNodeRelation(bm, edge->firstNodeIndex, + edge->secondNodeIndex)) { + fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + return -1; + } + if (0 != bmeshAddChildNodeRelation(bm, edge->secondNodeIndex, + edge->firstNodeIndex)) { + fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + return -1; + } return index; } static int bmeshAddInbetweenNodeBetween(bmesh *bm, - bmeshNode *firstNode, bmeshNode *secondNode, float frac) { + bmeshNode *firstNode, bmeshNode *secondNode, float frac, + int parentNodeIndex) { bmeshNode newNode; memset(&newNode, 0, sizeof(newNode)); newNode.type = BMESH_NODE_TYPE_INBETWEEN; @@ -83,29 +134,125 @@ static int bmeshAddInbetweenNodeBetween(bmesh *bm, secondNode->radius * frac; vec3Lerp(&firstNode->position, &secondNode->position, frac, &newNode.position); - return bmeshAddNode(bm, &newNode); + if (-1 == bmeshAddNode(bm, &newNode)) { + fprintf(stderr, "%s:bmeshAddNode failed.\n", __FUNCTION__); + return -1; + } + if (-1 == bmeshAddChildNodeRelation(bm, parentNodeIndex, newNode.index)) { + fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + return -1; + } + return newNode.index; } -int bmeshGenerateInbetweenNodes(bmesh *bm) { - int edgeIdx; - for (edgeIdx = 0; edgeIdx < bmeshGetEdgeNum(bm); ++edgeIdx) { - bmeshEdge *edge = bmeshGetEdge(bm, edgeIdx); - bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); - bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); - float step = 0.5; - float distance = vec3Distance(&firstNode->position, &secondNode->position); - if (distance > 0) { - float offset = step; - if (offset + step <= distance) { - while (offset + step <= distance) { - float frac = offset / distance; - bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, frac); - offset += step; +static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, + int firstNodeIndex, int secondNodeIndex) { + float step = 0.5; + float distance; + int parentNodeIndex = firstNodeIndex; + bmeshNode *firstNode = bmeshGetNode(bm, firstNodeIndex); + bmeshNode *secondNode = bmeshGetNode(bm, secondNodeIndex); + if (secondNode->roundColor == bm->roundColor) { + return 0; + } + distance = vec3Distance(&firstNode->position, &secondNode->position); + if (distance > 0) { + float offset = step; + if (offset + step <= distance) { + while (offset + step <= distance) { + float frac = offset / distance; + parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, + firstNode, secondNode, frac, parentNodeIndex); + if (-1 == parentNodeIndex) { + return -1; } - } else if (distance > step) { - bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, 0.5); + offset += step; + } + } else if (distance > step) { + parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, 0.5, + parentNodeIndex); + if (-1 == parentNodeIndex) { + return -1; } } } + if (-1 == bmeshAddChildNodeRelation(bm, parentNodeIndex, secondNodeIndex)) { + fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + return -1; + } return 0; } + +int bmeshGetNodeNextChild(bmesh *bm, bmeshNode *node, int *childIndex) { + int currentChildIndex = *childIndex; + bmeshNodeIndex *indexItem; + if (-1 == currentChildIndex) { + if (-1 == node->firstChildIndex) { + return -1; + } + currentChildIndex = node->firstChildIndex; + } + indexItem = (bmeshNodeIndex *)arrayGetItem(bm->indexArray, currentChildIndex); + *childIndex = indexItem->nextChildIndex; + return indexItem->nodeIndex; +} + +bmeshNode *bmeshGetRootNode(bmesh *bm) { + if (-1 == bm->rootNodeIndex) { + return 0; + } + return bmeshGetNode(bm, bm->rootNodeIndex); +} + +static int bmeshGenerateInbetweenNodesFrom(bmesh *bm, int parentNodeIndex) { + int childIndex = -1; + int nodeIndex; + bmeshNode *parent; + + parent = bmeshGetNode(bm, parentNodeIndex); + if (parent->roundColor == bm->roundColor) { + return 0; + } + parent->roundColor = bm->roundColor; + + // + // Old indices came from user's input will be removed + // after the inbetween nodes are genereated, though + // the space occupied in indexArray will not been release. + // + + childIndex = parent->firstChildIndex; + parent->firstChildIndex = -1; + parent->childrenIndices = 0; + + while (-1 != childIndex) { + nodeIndex = bmeshGetNodeNextChild(bm, parent, &childIndex); + if (-1 == nodeIndex) { + break; + } + if (0 != bmeshGenerateInbetweenNodesBetween(bm, parentNodeIndex, + nodeIndex)) { + fprintf(stderr, + "%s:bmeshGenerateInbetweenNodesBetween failed(parentNodeIndex:%d).\n", + __FUNCTION__, parentNodeIndex); + return -1; + } + if (0 != bmeshGenerateInbetweenNodesFrom(bm, nodeIndex)) { + fprintf(stderr, + "%s:bmeshGenerateInbetweenNodesFrom failed(nodeIndex:%d).\n", + __FUNCTION__, nodeIndex); + return -1; + } + } + + return 0; +} + +int bmeshGenerateInbetweenNodes(bmesh *bm) { + if (-1 == bm->rootNodeIndex) { + fprintf(stderr, "%s:No root node.\n", __FUNCTION__); + return -1; + } + bm->roundColor++; + return bmeshGenerateInbetweenNodesFrom(bm, bm->rootNodeIndex); +} diff --git a/src/bmesh.h b/src/bmesh.h index 83b8de8b..36835937 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -19,12 +19,15 @@ typedef struct { vec3 position; float radius; int type; + int childrenIndices; + int firstChildIndex; + int roundColor; } bmeshNode; typedef struct { int index; - int firstNode; - int secondNode; + int firstNodeIndex; + int secondNodeIndex; } bmeshEdge; bmesh *bmeshCreate(void); @@ -36,6 +39,8 @@ bmeshEdge *bmeshGetEdge(bmesh *bm, int index); int bmeshAddNode(bmesh *bm, bmeshNode *node); int bmeshAddEdge(bmesh *bm, bmeshEdge *edge); int bmeshGenerateInbetweenNodes(bmesh *bm); +int bmeshGetNodeNextChild(bmesh *bm, bmeshNode *node, int *childIndex); +bmeshNode *bmeshGetRootNode(bmesh *bm); #ifdef __cplusplus } diff --git a/src/draw.h b/src/draw.h index a3acb605..4761976c 100644 --- a/src/draw.h +++ b/src/draw.h @@ -15,6 +15,10 @@ typedef struct { vec3 pt[3]; } triangle; +typedef struct { + vec3 pt[4]; +} quard; + typedef struct { int npoly; triangle *poly; diff --git a/src/render.cpp b/src/render.cpp index 4c7a6cda..a0e2f06c 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -23,10 +23,24 @@ static int drawBmeshNode(bmesh *bm, bmeshNode *node) { return 0; } +static void drawBmeshNodeRecursively(bmesh *bm, bmeshNode *node) { + int childIndex = node->firstChildIndex; + int childNodeIndex; + + drawBmeshNode(bm, node); + while (-1 != childIndex) { + childNodeIndex = bmeshGetNodeNextChild(bm, node, &childIndex); + if (-1 == childNodeIndex) { + break; + } + drawBmeshNodeRecursively(bm, bmeshGetNode(bm, childNodeIndex)); + } +} + static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { glColor3fv(bmeshEdgeColor); - bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNode); - bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNode); + bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNodeIndex); + bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNodeIndex); drawCylinder(&firstNode->position, &secondNode->position, 0.1, 36, 24); return 0; } @@ -133,20 +147,23 @@ void Render::paintGL() { for (i = 0; i < sizeof(bmeshTest1Edges) / sizeof(bmeshTest1Edges[0]); ++i) { memset(&edge, 0, sizeof(edge)); - edge.firstNode = bmeshTest1Edges[i][0]; - edge.secondNode = bmeshTest1Edges[i][1]; + edge.firstNodeIndex = bmeshTest1Edges[i][0]; + edge.secondNodeIndex = bmeshTest1Edges[i][1]; bmeshAddEdge(bm, &edge); } bmeshGenerateInbetweenNodes(bm); } + drawBmeshNodeRecursively(bm, bmeshGetRootNode(bm)); + { int index; + /* for (index = 0; index < bmeshGetNodeNum(bm); ++index) { bmeshNode *node = bmeshGetNode(bm, index); drawBmeshNode(bm, node); - } + }*/ for (index = 0; index < bmeshGetEdgeNum(bm); ++index) { bmeshEdge *edge = bmeshGetEdge(bm, index); drawBmeshEdge(bm, edge); @@ -161,7 +178,7 @@ void Render::resizeGL(int w, int h) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(60.0f, w/h, 1, 100); + gluPerspective(60.0f, w/h, 1, 1000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); From ef1836ab065e0d75a5454a70237aabc53c3bc2cc Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Thu, 22 Dec 2016 22:33:32 +0930 Subject: [PATCH 13/61] Add matrix. Add quad generation from shape nodes. --- README.md | 17 +++- screenshot/dust3d_generate_quad.png | Bin 0 -> 312936 bytes src/bmesh.c | 121 +++++++++++++++++++++++++++- src/bmesh.h | 4 + src/draw.cpp | 1 + src/draw.h | 2 +- src/matrix.c | 36 +++++++++ src/matrix.h | 9 +++ src/render.cpp | 87 +++++++++++++++++++- src/vector3d.c | 22 +++++ src/vector3d.h | 1 + 11 files changed, 294 insertions(+), 6 deletions(-) create mode 100644 screenshot/dust3d_generate_quad.png diff --git a/README.md b/README.md index 5c605c65..31e3e123 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,18 @@ Idea I was inspired by Jimmy Gunawan's blogs of monster generation, here is the first one [INSPIRATION / Pixar Monster Factory Part One](http://blendersushi.blogspot.com.au/2013/06/inspiration-pixar-monster-factory-part.html), and by search the Skin Modifier of Blender, I found the theory of Skin Modifier: [B-Mesh: A Fast Modeling System for Base Meshes of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu, Yigang Wang). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. -From my initial thought, Dust3D should be a tool like [Makehuman](http://www.makehuman.org), with more versatile features, not only can make human, but also be able to **generate monsters automatically**. +From my initial thought, Dust3D should be a tool like [Makehuman](http://www.makehuman.org), with more versatile features, not only can make human, but also be able to **generate monsters automatically**. + +Build +============ +*Generate Xcode Project* +``` +$ qmake -spec macx-xcode +``` +*Generate Makefile* +``` +$ qmake +``` TODO & Progress ============== @@ -35,6 +46,9 @@ I created the test nodes's geometry information from Blender. Here is the render *Generate Inbetween Nodes* +*Generate Mesh* + +When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration @@ -43,3 +57,4 @@ I created the test nodes's geometry information from Blender. Here is the render - [ ] png exporter for isometric 2.5D game - [ ] Version 0.01 release - [ ] Materials merge of different parts +- [ ] Implement [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) diff --git a/screenshot/dust3d_generate_quad.png b/screenshot/dust3d_generate_quad.png new file mode 100644 index 0000000000000000000000000000000000000000..cc75c66d7197a724da57d38436abd3f5c024e100 GIT binary patch literal 312936 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

*|c@j*Lo(p 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 z

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 literal 0 HcmV?d00001 diff --git a/src/bmesh.c b/src/bmesh.c index e2e9a938..a0321dfe 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -2,8 +2,10 @@ #include #include #include +#include #include "bmesh.h" #include "array.h" +#include "matrix.h" typedef struct bmeshNodeIndex { int nodeIndex; @@ -14,6 +16,7 @@ struct bmesh { array *nodeArray; array *edgeArray; array *indexArray; + array *quadArray; int rootNodeIndex; int roundColor; }; @@ -42,6 +45,12 @@ bmesh *bmeshCreate(void) { bmeshDestroy(bm); return 0; } + bm->quadArray = arrayCreate(sizeof(quad)); + if (!bm->quadArray) { + fprintf(stderr, "%s:arrayCreate quad failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } bm->rootNodeIndex = -1; bm->roundColor = 0; return bm; @@ -51,6 +60,7 @@ void bmeshDestroy(bmesh *bm) { arrayDestroy(bm->nodeArray); arrayDestroy(bm->edgeArray); arrayDestroy(bm->indexArray); + arrayDestroy(bm->quadArray); free(bm); } @@ -145,19 +155,95 @@ static int bmeshAddInbetweenNodeBetween(bmesh *bm, return newNode.index; } +static void floatsToQuad(float *floats, quad *q) { + int i; + int offset = 0; + for (i = 0; i < 4; ++i) { + q->pt[i].x = floats[offset++]; + q->pt[i].y = floats[offset++]; + q->pt[i].z = floats[offset++]; + } +} + +static int bmeshGenerateNodeQuad(bmesh *bm, bmeshNode *node, + matrix *matRotate, int connectWithQuad) { + quad q; + matrix matTranslate; + matrix matFinal; + int i; + float floats[4][3] = { + {-node->radius, +node->radius, 0}, + {-node->radius, -node->radius, 0}, + {+node->radius, -node->radius, 0}, + {+node->radius, +node->radius, 0}, + }; + matrixTranslate(&matTranslate, node->position.x, node->position.y, + node->position.z); + matrixLoadIdentity(&matFinal); + matrixAppend(&matFinal, &matTranslate); + matrixAppend(&matFinal, matRotate); + matrixTransformVector(&matFinal, floats[0]); + matrixTransformVector(&matFinal, floats[1]); + matrixTransformVector(&matFinal, floats[2]); + matrixTransformVector(&matFinal, floats[3]); + floatsToQuad(&floats[0][0], &q); + if (-1 == bmeshAddQuad(bm, &q)) { + fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); + return -1; + } + if (connectWithQuad >= 0) { + for (i = 0; i < 4; ++i) { + quad face; + quad *lastQ = bmeshGetQuad(bm, connectWithQuad); + face.pt[0].x = lastQ->pt[(0 + i) % 4].x; + face.pt[0].y = lastQ->pt[(0 + i) % 4].y; + face.pt[0].z = lastQ->pt[(0 + i) % 4].z; + face.pt[1].x = q.pt[(0 + i) % 4].x; + face.pt[1].y = q.pt[(0 + i) % 4].y; + face.pt[1].z = q.pt[(0 + i) % 4].z; + face.pt[2].x = q.pt[(1 + i) % 4].x; + face.pt[2].y = q.pt[(1 + i) % 4].y; + face.pt[2].z = q.pt[(1 + i) % 4].z; + face.pt[3].x = lastQ->pt[(1 + i) % 4].x; + face.pt[3].y = lastQ->pt[(1 + i) % 4].y; + face.pt[3].z = lastQ->pt[(1 + i) % 4].z; + if (-1 == bmeshAddQuad(bm, &face)) { + fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); + return -1; + } + } + } + return 0; +} + static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, int firstNodeIndex, int secondNodeIndex) { float step = 0.5; float distance; int parentNodeIndex = firstNodeIndex; + float rotateAngle = 0; + vec3 rotateAround = {0, 0, 0}; + vec3 p; + vec3 zAxis = {0, 0, 1}; + matrix matRotate; + int lastQuadIndex = -1; + bmeshNode *firstNode = bmeshGetNode(bm, firstNodeIndex); bmeshNode *secondNode = bmeshGetNode(bm, secondNodeIndex); + bmeshNode *newNode; if (secondNode->roundColor == bm->roundColor) { return 0; } - distance = vec3Distance(&firstNode->position, &secondNode->position); + vec3Sub(&firstNode->position, &secondNode->position, &p); + vec3CrossProduct(&zAxis, &p, &rotateAround); + vec3Normalize(&rotateAround); + + distance = vec3Length(&p); if (distance > 0) { float offset = step; + rotateAngle = 180 / M_PI * acos(vec3DotProduct(&zAxis, &p) / distance); + matrixRotate(&matRotate, + rotateAngle, rotateAround.x, rotateAround.y, rotateAround.z); if (offset + step <= distance) { while (offset + step <= distance) { float frac = offset / distance; @@ -166,14 +252,23 @@ static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, if (-1 == parentNodeIndex) { return -1; } + newNode = bmeshGetNode(bm, parentNodeIndex); + bmeshGenerateNodeQuad(bm, newNode, &matRotate, + lastQuadIndex); + lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : + bmeshGetQuadNum(bm) - 5; offset += step; } } else if (distance > step) { - parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, 0.5, - parentNodeIndex); + parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, + 0.5, parentNodeIndex); if (-1 == parentNodeIndex) { return -1; } + newNode = bmeshGetNode(bm, parentNodeIndex); + bmeshGenerateNodeQuad(bm, newNode, &matRotate, lastQuadIndex); + lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : + bmeshGetQuadNum(bm) - 5; } } if (-1 == bmeshAddChildNodeRelation(bm, parentNodeIndex, secondNodeIndex)) { @@ -256,3 +351,23 @@ int bmeshGenerateInbetweenNodes(bmesh *bm) { bm->roundColor++; return bmeshGenerateInbetweenNodesFrom(bm, bm->rootNodeIndex); } + +int bmeshGetQuadNum(bmesh *bm) { + return arrayGetLength(bm->quadArray); +} + +quad *bmeshGetQuad(bmesh *bm, int index) { + return (quad *)arrayGetItem(bm->quadArray, index); +} + +int bmeshAddQuad(bmesh *bm, quad *q) { + int index = arrayGetLength(bm->quadArray); + if (0 != arraySetLength(bm->quadArray, index + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + memcpy(arrayGetItem(bm->quadArray, index), q, sizeof(quad)); + return index; +} + + diff --git a/src/bmesh.h b/src/bmesh.h index 36835937..838ad92f 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -1,6 +1,7 @@ #ifndef B_MESH_H #define B_MESH_H #include "vector3d.h" +#include "draw.h" #ifdef __cplusplus extern "C" { @@ -41,6 +42,9 @@ int bmeshAddEdge(bmesh *bm, bmeshEdge *edge); int bmeshGenerateInbetweenNodes(bmesh *bm); int bmeshGetNodeNextChild(bmesh *bm, bmeshNode *node, int *childIndex); bmeshNode *bmeshGetRootNode(bmesh *bm); +int bmeshGetQuadNum(bmesh *bm); +quad *bmeshGetQuad(bmesh *bm, int index); +int bmeshAddQuad(bmesh *bm, quad *q); #ifdef __cplusplus } diff --git a/src/draw.cpp b/src/draw.cpp index ff7b8ce3..f685e90d 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -49,6 +49,7 @@ int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, vec3Sub(topOrigin, bottomOrigin, &p); vec3CrossProduct(&zAxis, &p, &t); + vec3Normalize(&t); height = vec3Length(&p); if (height > 0) { angle = 180 / M_PI * acos(vec3DotProduct(&zAxis, &p) / height); diff --git a/src/draw.h b/src/draw.h index 4761976c..bfd524fc 100644 --- a/src/draw.h +++ b/src/draw.h @@ -17,7 +17,7 @@ typedef struct { typedef struct { vec3 pt[4]; -} quard; +} quad; typedef struct { int npoly; diff --git a/src/matrix.c b/src/matrix.c index e28a5cad..c853a13b 100644 --- a/src/matrix.c +++ b/src/matrix.c @@ -21,6 +21,42 @@ matrix *matrixTranslate(matrix *mat, float x, float y, float z) { return mat; } +// +// matrixRotate modified from http://www.gamedev.net/topic/600537-instead-of-glrotatef-build-a-matrix/ +// + +matrix *matrixRotate(matrix *mat, float degree, float x, float y, float z) { + float c; + float s; + float length; + + matrixLoadIdentity(mat); + + if (degree <= 0) { + return mat; + } + + length = sqrt(x * x + y * y + z * z); + + c = cos(degree * DEG2RAD); + s = sin(degree * DEG2RAD); + + mat->data[0] = x * x * (1 - c) + c; + mat->data[4] = x * y * (1 - c) - z * s; + mat->data[8] = x * z * (1 - c) + y * s; + + mat->data[1] = y * x * (1 - c) + z * s; + mat->data[5] = y * y * (1 - c) + c; + mat->data[9] = y * z * (1 - c) - x * s; + + mat->data[2] = x * z * (1 - c) - y * s; + mat->data[6] = y * z * (1 - c) + x * s; + mat->data[10] = z * z * (1 - c) + c; + + return mat; + +} + matrix *matrixRotateX(matrix *mat, float degree) { float c; float s; diff --git a/src/matrix.h b/src/matrix.h index 87107f71..c17e9db8 100644 --- a/src/matrix.h +++ b/src/matrix.h @@ -1,6 +1,10 @@ #ifndef __MATRIX_H__ #define __MATRIX_H__ +#ifdef __cplusplus +extern "C" { +#endif + // Modified from http://wiki.unity3d.com/index.php?title=Matrix typedef struct matrix { @@ -12,8 +16,13 @@ matrix *matrixTranslate(matrix *mat, float x, float y, float z); matrix *matrixRotateX(matrix *mat, float degree); matrix *matrixRotateY(matrix *mat, float degree); matrix *matrixRotateZ(matrix *mat, float degree); +matrix *matrixRotate(matrix *mat, float degree, float x, float y, float z); matrix *matrixScale(matrix *mat, float x, float y, float z); float *matrixTransformVector(matrix *mat, float *vec); matrix *matrixAppend(matrix *mat, matrix *matB); +#ifdef __cplusplus +} +#endif + #endif diff --git a/src/render.cpp b/src/render.cpp index a0e2f06c..01ef8023 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -26,7 +26,6 @@ static int drawBmeshNode(bmesh *bm, bmeshNode *node) { static void drawBmeshNodeRecursively(bmesh *bm, bmeshNode *node) { int childIndex = node->firstChildIndex; int childNodeIndex; - drawBmeshNode(bm, node); while (-1 != childIndex) { childNodeIndex = bmeshGetNodeNextChild(bm, node, &childIndex); @@ -37,6 +36,62 @@ static void drawBmeshNodeRecursively(bmesh *bm, bmeshNode *node) { } } +static void drawBmeshNodeQuardRecursively(bmesh *bm, bmeshNode *node) { + int childIndex = node->firstChildIndex; + int childNodeIndex; + + /* + matrix matTmp; + matrix matCalc; + float quad[4][3] = { + {-node->radius, +node->radius, 0}, + {-node->radius, -node->radius, 0}, + {+node->radius, -node->radius, 0}, + {+node->radius, +node->radius, 0}, + }; + matrixLoadIdentity(&matCalc); + matrixAppend(&matCalc, + matrixTranslate(&matTmp, node->position.x, node->position.y, + node->position.z)); + matrixAppend(&matCalc, + matrixRotate(&matTmp, + node->rotateAngle, node->rotateAround.x, node->rotateAround.y, + node->rotateAround.z)); + matrixTransformVector(&matCalc, quad[0]); + matrixTransformVector(&matCalc, quad[1]); + matrixTransformVector(&matCalc, quad[2]); + matrixTransformVector(&matCalc, quad[3]); + + glVertex3fv(quad[0]); + glVertex3fv(quad[1]); + glVertex3fv(quad[2]); + glVertex3fv(quad[3]); + */ + + /* + glPushMatrix(); + glTranslatef(node->position.x, node->position.y, + node->position.z); + glRotatef(node->rotateAngle, node->rotateAround.x, node->rotateAround.y, + node->rotateAround.z); + glBegin(GL_QUADS); + glVertex3f(-node->radius, +node->radius, 0); + glVertex3f(-node->radius, -node->radius, 0); + glVertex3f(+node->radius, -node->radius, 0); + glVertex3f(+node->radius, +node->radius, 0); + glEnd(); + glPopMatrix(); + */ + + while (-1 != childIndex) { + childNodeIndex = bmeshGetNodeNextChild(bm, node, &childIndex); + if (-1 == childNodeIndex) { + break; + } + drawBmeshNodeQuardRecursively(bm, bmeshGetNode(bm, childNodeIndex)); + } +} + static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { glColor3fv(bmeshEdgeColor); bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNodeIndex); @@ -82,6 +137,8 @@ void Render::initializeGL() { qglClearColor(QWidget::palette().color(QWidget::backgroundRole())); glClearStencil(0); glClearDepth(1.0f); + + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); GLfloat ambientLight[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat diffuseLight[] = {0.9f, 0.9f, 0.9f, 1.0f}; @@ -156,6 +213,10 @@ void Render::paintGL() { } drawBmeshNodeRecursively(bm, bmeshGetRootNode(bm)); + + //glBegin(GL_QUADS); + //drawBmeshNodeQuardRecursively(bm, bmeshGetRootNode(bm)); + //glEnd(); { int index; @@ -168,6 +229,30 @@ void Render::paintGL() { bmeshEdge *edge = bmeshGetEdge(bm, index); drawBmeshEdge(bm, edge); } + glColor4f(1.0f, 1.0f, 1.0f, 0.5); + glBegin(GL_QUADS); + for (index = 0; index < bmeshGetQuadNum(bm); ++index) { + quad *q = bmeshGetQuad(bm, index); + vec3 normal; + int j; + vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); + for (j = 0; j < 4; ++j) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } + } + glEnd(); + glColor3f(0.0f, 0.0f, 0.0f); + for (index = 0; index < bmeshGetQuadNum(bm); ++index) { + quad *q = bmeshGetQuad(bm, index); + int j; + glBegin(GL_LINE_STRIP); + for (j = 0; j < 4; ++j) { + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } + glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); + glEnd(); + } } glPopMatrix(); diff --git a/src/vector3d.c b/src/vector3d.c index c8cb9845..41402072 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -49,3 +49,25 @@ float vec3Distance(vec3 *a, vec3 *b) { vec3Sub(a, b, &p); return vec3Length(&p); } + +void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal) { + float v1[3], v2[3], vr[3], val; + + v1[0] = a->x - b->x; + v1[1] = a->y - b->y; + v1[2] = a->z - b->z; + + v2[0] = a->x - c->x; + v2[1] = a->y - c->y; + v2[2] = a->z - c->z; + + vr[0] = v1[1] * v2[2] - v2[1] * v1[2]; + vr[1] = v2[0] * v1[2] - v1[0] * v2[2]; + vr[2] = v1[0] * v2[1] - v2[0] * v1[1]; + + val = sqrt(vr[0]*vr[0] + vr[1]*vr[1] + vr[2]*vr[2]); + + normal->x = vr[0]/val; + normal->y = vr[1]/val; + normal->z = vr[2]/val; +} diff --git a/src/vector3d.h b/src/vector3d.h index eea3d7fe..abe0a7e3 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -19,6 +19,7 @@ void vec3Sub(vec3 *a, vec3 *b, vec3 *result); float vec3DotProduct(vec3 *a, vec3 *b); float vec3Length(vec3 *p); float vec3Distance(vec3 *a, vec3 *b); +void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal); #ifdef __cplusplus } From f19af4619428c8b7f05b6de42a44203bc2f29572 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Thu, 22 Dec 2016 22:36:24 +0930 Subject: [PATCH 14/61] Add build description. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 31e3e123..a9a655e0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ Dust3D ========= Dust3D is aim to be a quick modeling tool for game development. Currently the development is in the very early stage. +Please join the discussion [reddit/r/gamedev]( https://www.reddit.com/r/gamedev/comments/5iuf3h/i_am_writting_a_3d_monster_model_generate_tool/) Idea =========== @@ -13,11 +14,14 @@ Build ============ *Generate Xcode Project* ``` +$ cd build $ qmake -spec macx-xcode ``` *Generate Makefile* ``` +$ cd build $ qmake +$ make ``` TODO & Progress From 3a5540324ad778080ca7de86ee5748d4cb7fef0a Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Fri, 23 Dec 2016 23:54:19 +0930 Subject: [PATCH 15/61] Follow the paper of Sweeping stage. --- README.md | 2 +- src/bmesh.c | 69 ++++++++++++++++++-------------------------------- src/vector3d.c | 12 +++++++++ src/vector3d.h | 2 ++ 4 files changed, 40 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index a9a655e0..1ce187cd 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 20, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 23, 2016) *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. diff --git a/src/bmesh.c b/src/bmesh.c index a0321dfe..57423e8b 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -155,38 +155,21 @@ static int bmeshAddInbetweenNodeBetween(bmesh *bm, return newNode.index; } -static void floatsToQuad(float *floats, quad *q) { - int i; - int offset = 0; - for (i = 0; i < 4; ++i) { - q->pt[i].x = floats[offset++]; - q->pt[i].y = floats[offset++]; - q->pt[i].z = floats[offset++]; - } -} - static int bmeshGenerateNodeQuad(bmesh *bm, bmeshNode *node, - matrix *matRotate, int connectWithQuad) { - quad q; - matrix matTranslate; - matrix matFinal; + vec3 *localYaxis, vec3 *localZaxis, int connectWithQuad) { int i; - float floats[4][3] = { - {-node->radius, +node->radius, 0}, - {-node->radius, -node->radius, 0}, - {+node->radius, -node->radius, 0}, - {+node->radius, +node->radius, 0}, - }; - matrixTranslate(&matTranslate, node->position.x, node->position.y, - node->position.z); - matrixLoadIdentity(&matFinal); - matrixAppend(&matFinal, &matTranslate); - matrixAppend(&matFinal, matRotate); - matrixTransformVector(&matFinal, floats[0]); - matrixTransformVector(&matFinal, floats[1]); - matrixTransformVector(&matFinal, floats[2]); - matrixTransformVector(&matFinal, floats[3]); - floatsToQuad(&floats[0][0], &q); + quad q; + vec3 z, y; + vec3Scale(localYaxis, node->radius, &y); + vec3Scale(localZaxis, node->radius, &z); + vec3Sub(&node->position, &y, &q.pt[0]); + vec3Add(&q.pt[0], &z, &q.pt[0]); + vec3Sub(&node->position, &y, &q.pt[1]); + vec3Sub(&q.pt[1], &z, &q.pt[1]); + vec3Add(&node->position, &y, &q.pt[2]); + vec3Sub(&q.pt[2], &z, &q.pt[2]); + vec3Add(&node->position, &y, &q.pt[3]); + vec3Add(&q.pt[3], &z, &q.pt[3]); if (-1 == bmeshAddQuad(bm, &q)) { fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); return -1; @@ -221,11 +204,10 @@ static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, float step = 0.5; float distance; int parentNodeIndex = firstNodeIndex; - float rotateAngle = 0; - vec3 rotateAround = {0, 0, 0}; - vec3 p; - vec3 zAxis = {0, 0, 1}; - matrix matRotate; + vec3 localZaxis; + vec3 localYaxis; + vec3 edgeDirection; + vec3 worldZaxis = {0, 0, 1}; int lastQuadIndex = -1; bmeshNode *firstNode = bmeshGetNode(bm, firstNodeIndex); @@ -234,16 +216,15 @@ static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, if (secondNode->roundColor == bm->roundColor) { return 0; } - vec3Sub(&firstNode->position, &secondNode->position, &p); - vec3CrossProduct(&zAxis, &p, &rotateAround); - vec3Normalize(&rotateAround); + vec3Sub(&firstNode->position, &secondNode->position, &edgeDirection); + vec3CrossProduct(&worldZaxis, &edgeDirection, &localZaxis); + vec3Normalize(&localZaxis); + vec3CrossProduct(&localZaxis, &edgeDirection, &localYaxis); + vec3Normalize(&localYaxis); - distance = vec3Length(&p); + distance = vec3Length(&edgeDirection); if (distance > 0) { float offset = step; - rotateAngle = 180 / M_PI * acos(vec3DotProduct(&zAxis, &p) / distance); - matrixRotate(&matRotate, - rotateAngle, rotateAround.x, rotateAround.y, rotateAround.z); if (offset + step <= distance) { while (offset + step <= distance) { float frac = offset / distance; @@ -253,7 +234,7 @@ static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, return -1; } newNode = bmeshGetNode(bm, parentNodeIndex); - bmeshGenerateNodeQuad(bm, newNode, &matRotate, + bmeshGenerateNodeQuad(bm, newNode, &localYaxis, &localZaxis, lastQuadIndex); lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : bmeshGetQuadNum(bm) - 5; @@ -266,7 +247,7 @@ static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, return -1; } newNode = bmeshGetNode(bm, parentNodeIndex); - bmeshGenerateNodeQuad(bm, newNode, &matRotate, lastQuadIndex); + bmeshGenerateNodeQuad(bm, newNode, &localYaxis, &localZaxis, lastQuadIndex); lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : bmeshGetQuadNum(bm) - 5; } diff --git a/src/vector3d.c b/src/vector3d.c index 41402072..4c29f0c1 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -18,6 +18,12 @@ void vec3Normalize(vec3 *p) { } } +void vec3Scale(vec3 *a, float scale, vec3 *result) { + result->x = a->x * scale; + result->y = a->y * scale; + result->z = a->z * scale; +} + void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid) { vec3Lerp(a, b, 0.5, mid); } @@ -34,6 +40,12 @@ void vec3Sub(vec3 *a, vec3 *b, vec3 *result) { result->z = a->z - b->z; } +void vec3Add(vec3 *a, vec3 *b, vec3 *result) { + result->x = a->x + b->x; + result->y = a->y + b->y; + result->z = a->z + b->z; +} + void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result) { result->x = a->y * b->z - a->z * b->y; result->y = a->z * b->x - a->x * b->z; diff --git a/src/vector3d.h b/src/vector3d.h index abe0a7e3..2ec1d3a9 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -16,6 +16,8 @@ void vec3Midpoint(vec3 *a, vec3 *b, vec3 *mid); void vec3Lerp(vec3 *a, vec3 *b, float frac, vec3 *result); void vec3CrossProduct(vec3 *a, vec3 *b, vec3 *result); void vec3Sub(vec3 *a, vec3 *b, vec3 *result); +void vec3Add(vec3 *a, vec3 *b, vec3 *result); +void vec3Scale(vec3 *a, float scale, vec3 *result); float vec3DotProduct(vec3 *a, vec3 *b); float vec3Length(vec3 *p); float vec3Distance(vec3 *a, vec3 *b); From 0efbc668a3f1261bb5d004703dc0b8988cce563c Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 25 Dec 2016 15:30:02 +0930 Subject: [PATCH 16/61] Implement rotation on two connected bones. --- README.md | 2 +- data/bmesh_test_1.h | 4 +- src/bmesh.c | 468 +++++++++++++++++++++++++++++--------------- src/bmesh.h | 44 +++-- src/draw.cpp | 1 + src/draw.h | 1 + src/render.cpp | 201 ++++++++++++------- src/vector3d.c | 42 ++++ src/vector3d.h | 2 + 9 files changed, 511 insertions(+), 254 deletions(-) diff --git a/README.md b/README.md index 1ce187cd..2890f0d7 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 23, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 25, 2016) *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. diff --git a/data/bmesh_test_1.h b/data/bmesh_test_1.h index 937b74fd..de88444f 100644 --- a/data/bmesh_test_1.h +++ b/data/bmesh_test_1.h @@ -1,4 +1,4 @@ -const float bmeshTest1Nodes[][6] = { +const float bmeshTest1Balls[][6] = { {0, -2.07575, 1.53902, 0.04122, 0.25}, {1, 2.40837, 2.34882, 0.48585, 0.3}, {2, -0.91403, 0.77069, 0.62299, 0.5}, {3, 2.25224, 0.74973, 0.85115, 0.5}, {4, 0, 0, 0, 0.8, 1}, @@ -6,7 +6,7 @@ const float bmeshTest1Nodes[][6] = { {6, 0.01726, -0.88224, -2.87471, 0.2} }; -const int bmeshTest1Edges[][2] = { +const int bmeshTest1Bones[][2] = { {0, 2}, {2, 4}, {4, 3}, {3, 1}, {4, 5}, {5, 6} }; diff --git a/src/bmesh.c b/src/bmesh.c index 57423e8b..767aa5ce 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -6,18 +6,21 @@ #include "bmesh.h" #include "array.h" #include "matrix.h" +#include "draw.h" -typedef struct bmeshNodeIndex { - int nodeIndex; +#define BMESH_STEP_DISTANCE 0.4 + +typedef struct bmeshBallIndex { + int ballIndex; int nextChildIndex; -} bmeshNodeIndex; +} bmeshBallIndex; struct bmesh { - array *nodeArray; - array *edgeArray; + array *ballArray; + array *boneArray; array *indexArray; array *quadArray; - int rootNodeIndex; + int rootBallIndex; int roundColor; }; @@ -27,21 +30,21 @@ bmesh *bmeshCreate(void) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return 0; } - bm->nodeArray = arrayCreate(sizeof(bmeshNode)); - if (!bm->nodeArray) { - fprintf(stderr, "%s:arrayCreate bmeshNode failed.\n", __FUNCTION__); + bm->ballArray = arrayCreate(sizeof(bmeshBall)); + if (!bm->ballArray) { + fprintf(stderr, "%s:arrayCreate bmeshBall failed.\n", __FUNCTION__); bmeshDestroy(bm); return 0; } - bm->edgeArray = arrayCreate(sizeof(bmeshEdge)); - if (!bm->edgeArray) { - fprintf(stderr, "%s:arrayCreate bmeshEdge failed.\n", __FUNCTION__); + bm->boneArray = arrayCreate(sizeof(bmeshBone)); + if (!bm->boneArray) { + fprintf(stderr, "%s:arrayCreate bmeshBone failed.\n", __FUNCTION__); bmeshDestroy(bm); return 0; } - bm->indexArray = arrayCreate(sizeof(bmeshNodeIndex)); + bm->indexArray = arrayCreate(sizeof(bmeshBallIndex)); if (!bm->indexArray) { - fprintf(stderr, "%s:arrayCreate bmeshNodeIndex failed.\n", __FUNCTION__); + fprintf(stderr, "%s:arrayCreate bmeshBallIndex failed.\n", __FUNCTION__); bmeshDestroy(bm); return 0; } @@ -51,125 +54,128 @@ bmesh *bmeshCreate(void) { bmeshDestroy(bm); return 0; } - bm->rootNodeIndex = -1; + bm->rootBallIndex = -1; bm->roundColor = 0; return bm; } void bmeshDestroy(bmesh *bm) { - arrayDestroy(bm->nodeArray); - arrayDestroy(bm->edgeArray); + arrayDestroy(bm->ballArray); + arrayDestroy(bm->boneArray); arrayDestroy(bm->indexArray); arrayDestroy(bm->quadArray); free(bm); } -int bmeshGetNodeNum(bmesh *bm) { - return arrayGetLength(bm->nodeArray); +int bmeshGetBallNum(bmesh *bm) { + return arrayGetLength(bm->ballArray); } -int bmeshGetEdgeNum(bmesh *bm) { - return arrayGetLength(bm->edgeArray); +int bmeshGetBoneNum(bmesh *bm) { + return arrayGetLength(bm->boneArray); } -bmeshNode *bmeshGetNode(bmesh *bm, int index) { - return (bmeshNode *)arrayGetItem(bm->nodeArray, index); +bmeshBall *bmeshGetBall(bmesh *bm, int index) { + return (bmeshBall *)arrayGetItem(bm->ballArray, index); } -bmeshEdge *bmeshGetEdge(bmesh *bm, int index) { - return (bmeshEdge *)arrayGetItem(bm->edgeArray, index); +bmeshBone *bmeshGetBone(bmesh *bm, int index) { + return (bmeshBone *)arrayGetItem(bm->boneArray, index); } -int bmeshAddNode(bmesh *bm, bmeshNode *node) { - int index = arrayGetLength(bm->nodeArray); - node->index = index; - node->firstChildIndex = -1; - node->childrenIndices = 0; - if (0 != arraySetLength(bm->nodeArray, index + 1)) { +int bmeshAddBall(bmesh *bm, bmeshBall *ball) { + int index = arrayGetLength(bm->ballArray); + ball->index = index; + ball->firstChildIndex = -1; + ball->childrenIndices = 0; + if (0 != arraySetLength(bm->ballArray, index + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - memcpy(arrayGetItem(bm->nodeArray, index), node, sizeof(bmeshNode)); - if (BMESH_NODE_TYPE_ROOT == node->type) { - bm->rootNodeIndex = index; + memcpy(arrayGetItem(bm->ballArray, index), ball, sizeof(bmeshBall)); + if (BMESH_BALL_TYPE_ROOT == ball->type) { + bm->rootBallIndex = index; } return index; } -static int bmeshAddChildNodeRelation(bmesh *bm, int parentNodeIndex, - int childNodeIndex) { - bmeshNode *parentNode = bmeshGetNode(bm, parentNodeIndex); - bmeshNodeIndex *indexItem; +static int bmeshAddChildBallRelation(bmesh *bm, int parentBallIndex, + int childBallIndex) { + bmeshBall *parentBall = bmeshGetBall(bm, parentBallIndex); + bmeshBallIndex *indexItem; int newChildIndex = arrayGetLength(bm->indexArray); if (0 != arraySetLength(bm->indexArray, newChildIndex + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - indexItem = (bmeshNodeIndex *)arrayGetItem(bm->indexArray, newChildIndex); - indexItem->nodeIndex = childNodeIndex; - indexItem->nextChildIndex = parentNode->firstChildIndex; - parentNode->firstChildIndex = newChildIndex; - parentNode->childrenIndices++; + indexItem = (bmeshBallIndex *)arrayGetItem(bm->indexArray, newChildIndex); + indexItem->ballIndex = childBallIndex; + indexItem->nextChildIndex = parentBall->firstChildIndex; + parentBall->firstChildIndex = newChildIndex; + parentBall->childrenIndices++; return 0; } -int bmeshAddEdge(bmesh *bm, bmeshEdge *edge) { - int index = arrayGetLength(bm->edgeArray); - edge->index = index; - if (0 != arraySetLength(bm->edgeArray, index + 1)) { +int bmeshAddBone(bmesh *bm, bmeshBone *bone) { + int index = arrayGetLength(bm->boneArray); + bone->index = index; + if (0 != arraySetLength(bm->boneArray, index + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - memcpy(arrayGetItem(bm->edgeArray, index), edge, sizeof(bmeshEdge)); - if (0 != bmeshAddChildNodeRelation(bm, edge->firstNodeIndex, - edge->secondNodeIndex)) { - fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + memcpy(arrayGetItem(bm->boneArray, index), bone, sizeof(bmeshBone)); + if (0 != bmeshAddChildBallRelation(bm, bone->firstBallIndex, + bone->secondBallIndex)) { + fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); return -1; } - if (0 != bmeshAddChildNodeRelation(bm, edge->secondNodeIndex, - edge->firstNodeIndex)) { - fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + if (0 != bmeshAddChildBallRelation(bm, bone->secondBallIndex, + bone->firstBallIndex)) { + fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); return -1; } return index; } -static int bmeshAddInbetweenNodeBetween(bmesh *bm, - bmeshNode *firstNode, bmeshNode *secondNode, float frac, - int parentNodeIndex) { - bmeshNode newNode; - memset(&newNode, 0, sizeof(newNode)); - newNode.type = BMESH_NODE_TYPE_INBETWEEN; - newNode.radius = firstNode->radius * (1 - frac) + - secondNode->radius * frac; - vec3Lerp(&firstNode->position, &secondNode->position, frac, - &newNode.position); - if (-1 == bmeshAddNode(bm, &newNode)) { - fprintf(stderr, "%s:bmeshAddNode failed.\n", __FUNCTION__); +static int bmeshAddInbetweenBallBetween(bmesh *bm, + bmeshBall *firstBall, bmeshBall *secondBall, float frac, + int parentBallIndex) { + bmeshBall newBall; + memset(&newBall, 0, sizeof(newBall)); + newBall.type = BMESH_BALL_TYPE_INBETWEEN; + newBall.radius = firstBall->radius * (1 - frac) + + secondBall->radius * frac; + vec3Lerp(&firstBall->position, &secondBall->position, frac, + &newBall.position); + if (-1 == bmeshAddBall(bm, &newBall)) { + fprintf(stderr, "%s:bmeshAddBall failed.\n", __FUNCTION__); return -1; } - if (-1 == bmeshAddChildNodeRelation(bm, parentNodeIndex, newNode.index)) { - fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + if (-1 == bmeshAddChildBallRelation(bm, parentBallIndex, newBall.index)) { + fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); return -1; } - return newNode.index; + return newBall.index; } -static int bmeshGenerateNodeQuad(bmesh *bm, bmeshNode *node, - vec3 *localYaxis, vec3 *localZaxis, int connectWithQuad) { - int i; - quad q; +/* +static int bmeshGenerateBallCrossSection(bmesh *bm, bmeshBall *ball, + vec3 *boneDirection, vec3 *localYaxis, vec3 *localZaxis) { + //int i; + //quad q; vec3 z, y; - vec3Scale(localYaxis, node->radius, &y); - vec3Scale(localZaxis, node->radius, &z); - vec3Sub(&node->position, &y, &q.pt[0]); + //vec3Scale(localYaxis, ball->radius, &y); + //vec3Scale(localZaxis, ball->radius, &z); + vec3Sub(&ball->position, &y, &q.pt[0]); vec3Add(&q.pt[0], &z, &q.pt[0]); - vec3Sub(&node->position, &y, &q.pt[1]); + vec3Sub(&ball->position, &y, &q.pt[1]); vec3Sub(&q.pt[1], &z, &q.pt[1]); - vec3Add(&node->position, &y, &q.pt[2]); + vec3Add(&ball->position, &y, &q.pt[2]); vec3Sub(&q.pt[2], &z, &q.pt[2]); - vec3Add(&node->position, &y, &q.pt[3]); + vec3Add(&ball->position, &y, &q.pt[3]); vec3Add(&q.pt[3], &z, &q.pt[3]); + ball->crossSection = q; + ball->boneDirection = *boneDirection; if (-1 == bmeshAddQuad(bm, &q)) { fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); return -1; @@ -197,95 +203,110 @@ static int bmeshGenerateNodeQuad(bmesh *bm, bmeshNode *node, } } return 0; -} +}*/ -static int bmeshGenerateInbetweenNodesBetween(bmesh *bm, - int firstNodeIndex, int secondNodeIndex) { - float step = 0.5; +static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, + int firstBallIndex, int secondBallIndex) { + float step; float distance; - int parentNodeIndex = firstNodeIndex; + int parentBallIndex = firstBallIndex; vec3 localZaxis; vec3 localYaxis; - vec3 edgeDirection; - vec3 worldZaxis = {0, 0, 1}; - int lastQuadIndex = -1; - - bmeshNode *firstNode = bmeshGetNode(bm, firstNodeIndex); - bmeshNode *secondNode = bmeshGetNode(bm, secondNodeIndex); - bmeshNode *newNode; - if (secondNode->roundColor == bm->roundColor) { + vec3 boneDirection; + vec3 normalizedBoneDirection; + vec3 worldYaxis = {0, 1, 0}; + bmeshBall *firstBall = bmeshGetBall(bm, firstBallIndex); + bmeshBall *secondBall = bmeshGetBall(bm, secondBallIndex); + bmeshBall *newBall; + if (secondBall->roundColor == bm->roundColor) { return 0; } - vec3Sub(&firstNode->position, &secondNode->position, &edgeDirection); - vec3CrossProduct(&worldZaxis, &edgeDirection, &localZaxis); - vec3Normalize(&localZaxis); - vec3CrossProduct(&localZaxis, &edgeDirection, &localYaxis); - vec3Normalize(&localYaxis); - distance = vec3Length(&edgeDirection); - if (distance > 0) { - float offset = step; - if (offset + step <= distance) { - while (offset + step <= distance) { + step = BMESH_STEP_DISTANCE; + + vec3Sub(&firstBall->position, &secondBall->position, &boneDirection); + normalizedBoneDirection = boneDirection; + vec3Normalize(&normalizedBoneDirection); + vec3CrossProduct(&worldYaxis, &boneDirection, &localYaxis); + vec3Normalize(&localYaxis); + vec3CrossProduct(&localYaxis, &boneDirection, &localZaxis); + vec3Normalize(&localZaxis); + + distance = vec3Length(&boneDirection); + if (distance > BMESH_STEP_DISTANCE) { + float offset; + int calculatedStepCount = (int)(distance / BMESH_STEP_DISTANCE); + float remaining = distance - BMESH_STEP_DISTANCE * calculatedStepCount; + step += remaining / calculatedStepCount; + offset = step; + if (offset < distance) { + while (offset < distance) { float frac = offset / distance; - parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, - firstNode, secondNode, frac, parentNodeIndex); - if (-1 == parentNodeIndex) { + parentBallIndex = bmeshAddInbetweenBallBetween(bm, + firstBall, secondBall, frac, parentBallIndex); + if (-1 == parentBallIndex) { return -1; } - newNode = bmeshGetNode(bm, parentNodeIndex); - bmeshGenerateNodeQuad(bm, newNode, &localYaxis, &localZaxis, - lastQuadIndex); - lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : - bmeshGetQuadNum(bm) - 5; + newBall = bmeshGetBall(bm, parentBallIndex); + newBall->localYaxis = localYaxis; + newBall->localZaxis = localZaxis; + newBall->boneDirection = normalizedBoneDirection; offset += step; } } else if (distance > step) { - parentNodeIndex = bmeshAddInbetweenNodeBetween(bm, firstNode, secondNode, - 0.5, parentNodeIndex); - if (-1 == parentNodeIndex) { + parentBallIndex = bmeshAddInbetweenBallBetween(bm, firstBall, secondBall, + 0.5, parentBallIndex); + if (-1 == parentBallIndex) { return -1; } - newNode = bmeshGetNode(bm, parentNodeIndex); - bmeshGenerateNodeQuad(bm, newNode, &localYaxis, &localZaxis, lastQuadIndex); - lastQuadIndex = -1 == lastQuadIndex ? bmeshGetQuadNum(bm) - 1 : - bmeshGetQuadNum(bm) - 5; + newBall = bmeshGetBall(bm, parentBallIndex); + newBall->localYaxis = localYaxis; + newBall->localZaxis = localZaxis; + newBall->boneDirection = normalizedBoneDirection; } } - if (-1 == bmeshAddChildNodeRelation(bm, parentNodeIndex, secondNodeIndex)) { - fprintf(stderr, "%s:bmeshAddChildNodeRelation failed.\n", __FUNCTION__); + if (-1 == bmeshAddChildBallRelation(bm, parentBallIndex, secondBallIndex)) { + fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); return -1; } return 0; } -int bmeshGetNodeNextChild(bmesh *bm, bmeshNode *node, int *childIndex) { - int currentChildIndex = *childIndex; - bmeshNodeIndex *indexItem; - if (-1 == currentChildIndex) { - if (-1 == node->firstChildIndex) { - return -1; - } - currentChildIndex = node->firstChildIndex; - } - indexItem = (bmeshNodeIndex *)arrayGetItem(bm->indexArray, currentChildIndex); - *childIndex = indexItem->nextChildIndex; - return indexItem->nodeIndex; -} - -bmeshNode *bmeshGetRootNode(bmesh *bm) { - if (-1 == bm->rootNodeIndex) { +bmeshBall *bmeshGetBallFirstChild(bmesh *bm, bmeshBall *ball, + bmeshBallIterator *iterator) { + if (-1 == ball->firstChildIndex) { return 0; } - return bmeshGetNode(bm, bm->rootNodeIndex); + *iterator = ball->firstChildIndex; + return bmeshGetBallNextChild(bm, ball, iterator); } -static int bmeshGenerateInbetweenNodesFrom(bmesh *bm, int parentNodeIndex) { - int childIndex = -1; - int nodeIndex; - bmeshNode *parent; +bmeshBall *bmeshGetBallNextChild(bmesh *bm, bmeshBall *ball, + bmeshBallIterator *iterator) { + bmeshBallIndex *indexItem; + if (-1 == *iterator) { + return 0; + } + indexItem = (bmeshBallIndex *)arrayGetItem(bm->indexArray, *iterator); + *iterator = indexItem->nextChildIndex; + return bmeshGetBall(bm, indexItem->ballIndex); +} - parent = bmeshGetNode(bm, parentNodeIndex); +bmeshBall *bmeshGetRootBall(bmesh *bm) { + if (-1 == bm->rootBallIndex) { + return 0; + } + return bmeshGetBall(bm, bm->rootBallIndex); +} + +static int bmeshGenerateInbetweenBallsFrom(bmesh *bm, int parentBallIndex) { + bmeshBallIterator iterator; + int ballIndex; + bmeshBall *parent; + bmeshBall *ball; + int oldChildrenIndices; + + parent = bmeshGetBall(bm, parentBallIndex); if (parent->roundColor == bm->roundColor) { return 0; } @@ -293,30 +314,30 @@ static int bmeshGenerateInbetweenNodesFrom(bmesh *bm, int parentNodeIndex) { // // Old indices came from user's input will be removed - // after the inbetween nodes are genereated, though + // after the inbetween balls are genereated, though // the space occupied in indexArray will not been release. // - childIndex = parent->firstChildIndex; + ball = bmeshGetBallFirstChild(bm, parent, &iterator); parent->firstChildIndex = -1; + oldChildrenIndices = parent->childrenIndices; parent->childrenIndices = 0; - - while (-1 != childIndex) { - nodeIndex = bmeshGetNodeNextChild(bm, parent, &childIndex); - if (-1 == nodeIndex) { - break; - } - if (0 != bmeshGenerateInbetweenNodesBetween(bm, parentNodeIndex, - nodeIndex)) { + + for (; + ball; + ball = bmeshGetBallNextChild(bm, parent, &iterator)) { + ballIndex = ball->index; + if (0 != bmeshGenerateInbetweenBallsBetween(bm, parentBallIndex, + ballIndex)) { fprintf(stderr, - "%s:bmeshGenerateInbetweenNodesBetween failed(parentNodeIndex:%d).\n", - __FUNCTION__, parentNodeIndex); + "%s:bmeshGenerateInbetweenBallsBetween failed(parentBallIndex:%d).\n", + __FUNCTION__, parentBallIndex); return -1; } - if (0 != bmeshGenerateInbetweenNodesFrom(bm, nodeIndex)) { + if (0 != bmeshGenerateInbetweenBallsFrom(bm, ballIndex)) { fprintf(stderr, - "%s:bmeshGenerateInbetweenNodesFrom failed(nodeIndex:%d).\n", - __FUNCTION__, nodeIndex); + "%s:bmeshGenerateInbetweenBallsFrom failed(ballIndex:%d).\n", + __FUNCTION__, ballIndex); return -1; } } @@ -324,13 +345,13 @@ static int bmeshGenerateInbetweenNodesFrom(bmesh *bm, int parentNodeIndex) { return 0; } -int bmeshGenerateInbetweenNodes(bmesh *bm) { - if (-1 == bm->rootNodeIndex) { - fprintf(stderr, "%s:No root node.\n", __FUNCTION__); +int bmeshGenerateInbetweenBalls(bmesh *bm) { + if (-1 == bm->rootBallIndex) { + fprintf(stderr, "%s:No root ball.\n", __FUNCTION__); return -1; } bm->roundColor++; - return bmeshGenerateInbetweenNodesFrom(bm, bm->rootNodeIndex); + return bmeshGenerateInbetweenBallsFrom(bm, bm->rootBallIndex); } int bmeshGetQuadNum(bmesh *bm) { @@ -351,4 +372,131 @@ int bmeshAddQuad(bmesh *bm, quad *q) { return index; } +static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { + int result = 0; + vec3 worldYaxis = {0, 1, 0}; + bmeshBallIterator iterator; + bmeshBall *child = 0; + if (BMESH_BALL_TYPE_KEY == ball->type) { + child = bmeshGetBallFirstChild(bm, ball, &iterator); + if (child) { + if (parent) { + float rotateAngle; + vec3 rotateAxis; + vec3CrossProduct(&parent->boneDirection, &child->boneDirection, + &rotateAxis); + vec3Normalize(&rotateAxis); + vec3Add(&rotateAxis, &ball->position, &rotateAxis); + rotateAngle = vec3Angle(&parent->boneDirection, &child->boneDirection); + rotateAngle *= 0.5; + + /* + glColor3f(0.0, 0.0, 0.0); + drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> rotateAngle:%f", + parent->boneDirection.x, + parent->boneDirection.y, + parent->boneDirection.z, + child->boneDirection.x, + child->boneDirection.y, + child->boneDirection.z, + rotateAngle); + + glPushMatrix(); + glTranslatef(parent->position.x, parent->position.y, parent->position.z); + glColor3f(1.0, 0.0, 1.0); + glBegin(GL_LINES); + glVertex3f(0, 0, 0); + glVertex3f(parent->boneDirection.x, parent->boneDirection.y, + parent->boneDirection.z); + glEnd(); + glPopMatrix(); + + glPushMatrix(); + glTranslatef(child->position.x, child->position.y, child->position.z); + glColor3f(0.0, 1.0, 1.0); + glBegin(GL_LINES); + glVertex3f(0, 0, 0); + glVertex3f(child->boneDirection.x, child->boneDirection.y, + child->boneDirection.z); + glEnd(); + glPopMatrix(); + */ + + ball->boneDirection = parent->boneDirection; + vec3RotateAlong(&ball->boneDirection, rotateAngle, &rotateAxis, + &ball->boneDirection); + vec3CrossProduct(&worldYaxis, &ball->boneDirection, &ball->localYaxis); + vec3Normalize(&ball->localYaxis); + vec3CrossProduct(&ball->localYaxis, &ball->boneDirection, + &ball->localZaxis); + vec3Normalize(&ball->localZaxis); + } else { + // TODO: + } + } else { + ball->boneDirection = parent->boneDirection; + vec3CrossProduct(&worldYaxis, &ball->boneDirection, &ball->localYaxis); + vec3Normalize(&ball->localYaxis); + vec3CrossProduct(&ball->localYaxis, &ball->boneDirection, + &ball->localZaxis); + vec3Normalize(&ball->localZaxis); + } + } + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + result = bmeshSweepFrom(bm, ball, child); + if (0 != result) { + fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); + return result; + } + } + return result; +} +int bmeshSweep(bmesh *bm) { + return bmeshSweepFrom(bm, 0, bmeshGetRootBall(bm)); +} + +static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, + bmeshBall *ball) { + bmeshBallIterator iterator; + bmeshBall *child; + float distance = vec3Distance(&root->position, &ball->position); + if (distance >= root->radius) { + return ball; + } + child = bmeshGetBallFirstChild(bm, ball, &iterator); + if (!child) { + return ball; + } + return bmeshFindBallForConvexHull(bm, root, child); +} + +static int bmeshStichFrom(bmesh *bm, bmeshBall *ball) { + int result = 0; + bmeshBallIterator iterator; + bmeshBall *child; + bmeshBall *ballForConvexHull; + if (BMESH_BALL_TYPE_ROOT == ball->type) { + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + ballForConvexHull = bmeshFindBallForConvexHull(bm, ball, child); + } + } + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + result = bmeshSweepFrom(bm, ball, child); + if (0 != result) { + fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); + return result; + } + } + return result; +} + +int bmeshStitch(bmesh *bm) { + return bmeshStichFrom(bm, bmeshGetRootBall(bm)); +} diff --git a/src/bmesh.h b/src/bmesh.h index 838ad92f..329e804f 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -8,10 +8,10 @@ extern "C" { #endif typedef enum { - BMESH_NODE_TYPE_KEY = 0, - BMESH_NODE_TYPE_ROOT = 1, - BMESH_NODE_TYPE_INBETWEEN = 2, -} bmeshNodeType; + BMESH_BALL_TYPE_KEY = 0, + BMESH_BALL_TYPE_ROOT = 1, + BMESH_BALL_TYPE_INBETWEEN = 2, +} bmeshBallType; typedef struct bmesh bmesh; @@ -22,29 +22,39 @@ typedef struct { int type; int childrenIndices; int firstChildIndex; + vec3 boneDirection; + vec3 localYaxis; + vec3 localZaxis; int roundColor; -} bmeshNode; +} bmeshBall; + +typedef int bmeshBallIterator; typedef struct { int index; - int firstNodeIndex; - int secondNodeIndex; -} bmeshEdge; + int firstBallIndex; + int secondBallIndex; +} bmeshBone; bmesh *bmeshCreate(void); void bmeshDestroy(bmesh *bm); -int bmeshGetNodeNum(bmesh *bm); -int bmeshGetEdgeNum(bmesh *bm); -bmeshNode *bmeshGetNode(bmesh *bm, int index); -bmeshEdge *bmeshGetEdge(bmesh *bm, int index); -int bmeshAddNode(bmesh *bm, bmeshNode *node); -int bmeshAddEdge(bmesh *bm, bmeshEdge *edge); -int bmeshGenerateInbetweenNodes(bmesh *bm); -int bmeshGetNodeNextChild(bmesh *bm, bmeshNode *node, int *childIndex); -bmeshNode *bmeshGetRootNode(bmesh *bm); +int bmeshGetBallNum(bmesh *bm); +int bmeshGetBoneNum(bmesh *bm); +bmeshBall *bmeshGetBall(bmesh *bm, int index); +bmeshBone *bmeshGetBone(bmesh *bm, int index); +int bmeshAddBall(bmesh *bm, bmeshBall *ball); +int bmeshAddBone(bmesh *bm, bmeshBone *bone); +int bmeshGenerateInbetweenBalls(bmesh *bm); +bmeshBall *bmeshGetBallFirstChild(bmesh *bm, bmeshBall *node, + bmeshBallIterator *iterator); +bmeshBall *bmeshGetBallNextChild(bmesh *bm, bmeshBall *node, + bmeshBallIterator *iterator); +bmeshBall *bmeshGetRootBall(bmesh *bm); int bmeshGetQuadNum(bmesh *bm); quad *bmeshGetQuad(bmesh *bm, int index); int bmeshAddQuad(bmesh *bm, quad *q); +int bmeshSweep(bmesh *bm); +int bmeshStitch(bmesh *bm); #ifdef __cplusplus } diff --git a/src/draw.cpp b/src/draw.cpp index f685e90d..85dce4d4 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -97,3 +97,4 @@ int drawPrintf(int x, int y, const char *fmt, ...) { vsnprintf(text, sizeof(text), fmt, args); return drawText(x, y, text); } + diff --git a/src/draw.h b/src/draw.h index bfd524fc..e623c439 100644 --- a/src/draw.h +++ b/src/draw.h @@ -32,6 +32,7 @@ int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, int drawGrid(float size, float step); int drawText(int x, int y, char *text); int drawPrintf(int x, int y, const char *fmt, ...); +int drawDebugPrintf(const char *fmt, ...); #ifdef __cplusplus } diff --git a/src/render.cpp b/src/render.cpp index 01ef8023..e113d6ed 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -6,62 +6,108 @@ #include "draw.h" #include "bmesh.h" #include "matrix.h" +#include "vector3d.h" -static const float bmeshNodeColors[][3] { +static const float bmeshBallColors[][3] { {0, 0.78, 1}, {1, 0, 0}, {1, 1, 1} }; -static const float bmeshEdgeColor[3] = {1, 1, 0}; +static const float bmeshBoneColor[3] = {1, 1, 0}; static QGLWidget *_this = 0; +static int debugOutputTop = 0; -static int drawBmeshNode(bmesh *bm, bmeshNode *node) { - glColor3fv(bmeshNodeColors[node->type]); - drawSphere(&node->position, node->radius, 36, 24); +int drawDebugPrintf(const char *fmt, ...) { + int x = 0; + int y = debugOutputTop + 10; + va_list args; + char text[1024]; + va_start(args, fmt); + vsnprintf(text, sizeof(text), fmt, args); + debugOutputTop += 9; + return drawText(x, y, text); +} + +static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { + glColor3fv(bmeshBallColors[ball->type]); + drawSphere(&ball->position, ball->radius, 36, 24); return 0; } -static void drawBmeshNodeRecursively(bmesh *bm, bmeshNode *node) { - int childIndex = node->firstChildIndex; - int childNodeIndex; - drawBmeshNode(bm, node); - while (-1 != childIndex) { - childNodeIndex = bmeshGetNodeNextChild(bm, node, &childIndex); - if (-1 == childNodeIndex) { - break; - } - drawBmeshNodeRecursively(bm, bmeshGetNode(bm, childNodeIndex)); +static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { + bmeshBallIterator iterator; + bmeshBall *child; + drawBmeshBall(bm, ball); + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + drawBmeshBallRecursively(bm, child); } } -static void drawBmeshNodeQuardRecursively(bmesh *bm, bmeshNode *node) { - int childIndex = node->firstChildIndex; - int childNodeIndex; +static int drawBmeshBallQuad(bmeshBall *ball) { + vec3 normal; + int j; + vec3 z, y; + quad q; + vec3Scale(&ball->localYaxis, ball->radius, &y); + vec3Scale(&ball->localZaxis, ball->radius, &z); + vec3Sub(&ball->position, &y, &q.pt[0]); + vec3Add(&q.pt[0], &z, &q.pt[0]); + vec3Sub(&ball->position, &y, &q.pt[1]); + vec3Sub(&q.pt[1], &z, &q.pt[1]); + vec3Add(&ball->position, &y, &q.pt[2]); + vec3Sub(&q.pt[2], &z, &q.pt[2]); + vec3Add(&ball->position, &y, &q.pt[3]); + vec3Add(&q.pt[3], &z, &q.pt[3]); + + glColor4f(1.0f, 1.0f, 1.0f, 0.5); + glBegin(GL_QUADS); + vec3Normal(&q.pt[0], &q.pt[1], &q.pt[2], &normal); + for (j = 0; j < 4; ++j) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + } + glEnd(); + + glColor3f(0.0f, 0.0f, 0.0f); + glBegin(GL_LINE_STRIP); + for (j = 0; j < 4; ++j) { + glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + } + glVertex3f(q.pt[0].x, q.pt[0].y, q.pt[0].z); + glEnd(); +} + +static void drawBmeshBallQuadRecursively(bmesh *bm, bmeshBall *ball) { + bmeshBallIterator iterator; + bmeshBall *child; + /* matrix matTmp; matrix matCalc; float quad[4][3] = { - {-node->radius, +node->radius, 0}, - {-node->radius, -node->radius, 0}, - {+node->radius, -node->radius, 0}, - {+node->radius, +node->radius, 0}, + {-ball->radius, +ball->radius, 0}, + {-ball->radius, -ball->radius, 0}, + {+ball->radius, -ball->radius, 0}, + {+ball->radius, +ball->radius, 0}, }; matrixLoadIdentity(&matCalc); matrixAppend(&matCalc, - matrixTranslate(&matTmp, node->position.x, node->position.y, - node->position.z)); + matrixTranslate(&matTmp, ball->position.x, ball->position.y, + ball->position.z)); matrixAppend(&matCalc, matrixRotate(&matTmp, - node->rotateAngle, node->rotateAround.x, node->rotateAround.y, - node->rotateAround.z)); + ball->rotateAngle, ball->rotateAround.x, ball->rotateAround.y, + ball->rotateAround.z)); matrixTransformVector(&matCalc, quad[0]); matrixTransformVector(&matCalc, quad[1]); matrixTransformVector(&matCalc, quad[2]); matrixTransformVector(&matCalc, quad[3]); - + glVertex3fv(quad[0]); glVertex3fv(quad[1]); glVertex3fv(quad[2]); @@ -70,33 +116,33 @@ static void drawBmeshNodeQuardRecursively(bmesh *bm, bmeshNode *node) { /* glPushMatrix(); - glTranslatef(node->position.x, node->position.y, - node->position.z); - glRotatef(node->rotateAngle, node->rotateAround.x, node->rotateAround.y, - node->rotateAround.z); + glTranslatef(ball->position.x, ball->position.y, + ball->position.z); + glRotatef(ball->rotateAngle, ball->rotateAround.x, ball->rotateAround.y, + ball->rotateAround.z); glBegin(GL_QUADS); - glVertex3f(-node->radius, +node->radius, 0); - glVertex3f(-node->radius, -node->radius, 0); - glVertex3f(+node->radius, -node->radius, 0); - glVertex3f(+node->radius, +node->radius, 0); + glVertex3f(-ball->radius, +ball->radius, 0); + glVertex3f(-ball->radius, -ball->radius, 0); + glVertex3f(+ball->radius, -ball->radius, 0); + glVertex3f(+ball->radius, +ball->radius, 0); glEnd(); glPopMatrix(); */ - while (-1 != childIndex) { - childNodeIndex = bmeshGetNodeNextChild(bm, node, &childIndex); - if (-1 == childNodeIndex) { - break; - } - drawBmeshNodeQuardRecursively(bm, bmeshGetNode(bm, childNodeIndex)); + drawBmeshBallQuad(ball); + + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + drawBmeshBallQuadRecursively(bm, child); } } -static int drawBmeshEdge(bmesh *bm, bmeshEdge *edge) { - glColor3fv(bmeshEdgeColor); - bmeshNode *firstNode = bmeshGetNode(bm, edge->firstNodeIndex); - bmeshNode *secondNode = bmeshGetNode(bm, edge->secondNodeIndex); - drawCylinder(&firstNode->position, &secondNode->position, 0.1, 36, 24); +static int drawBmeshBone(bmesh *bm, bmeshBone *bone) { + glColor3fv(bmeshBoneColor); + bmeshBall *firstBall = bmeshGetBall(bm, bone->firstBallIndex); + bmeshBall *secondBall = bmeshGetBall(bm, bone->secondBallIndex); + drawCylinder(&firstBall->position, &secondBall->position, 0.1, 36, 24); return 0; } @@ -137,7 +183,7 @@ void Render::initializeGL() { qglClearColor(QWidget::palette().color(QWidget::backgroundRole())); glClearStencil(0); glClearDepth(1.0f); - + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); GLfloat ambientLight[] = {0.0f, 0.0f, 0.0f, 1.0f}; @@ -166,9 +212,10 @@ void Render::initializeGL() { #include "../data/bmesh_test_1.h" void Render::paintGL() { - static bmesh *bm = 0; + bmesh *bm = 0; _this = this; + debugOutputTop = 0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -179,7 +226,7 @@ void Render::paintGL() { glRotatef(cameraAngleY, 0, 1, 0); glColor3f(0, 0, 0); - drawPrintf(0, 10, "cameraAngleX:%f cameraAngleY:%f cameraDistance:%f", + drawDebugPrintf("cameraAngleX:%f cameraAngleY:%f cameraDistance:%f", cameraAngleX, cameraAngleY, cameraDistance); drawGrid(10, 1); @@ -187,47 +234,48 @@ void Render::paintGL() { glEnable(GL_LIGHTING); if (0 == bm) { - bmeshNode node; - bmeshEdge edge; + bmeshBall ball; + bmeshBone bone; int i; bm = bmeshCreate(); - for (i = 0; i < sizeof(bmeshTest1Nodes) / sizeof(bmeshTest1Nodes[0]); ++i) { - memset(&node, 0, sizeof(node)); - node.position.x = bmeshTest1Nodes[i][1]; - node.position.y = bmeshTest1Nodes[i][2]; - node.position.z = bmeshTest1Nodes[i][3]; - node.radius = bmeshTest1Nodes[i][4]; - node.type = bmeshTest1Nodes[i][5]; - bmeshAddNode(bm, &node); + for (i = 0; i < sizeof(bmeshTest1Balls) / sizeof(bmeshTest1Balls[0]); ++i) { + memset(&ball, 0, sizeof(ball)); + ball.position.x = bmeshTest1Balls[i][1]; + ball.position.y = bmeshTest1Balls[i][2]; + ball.position.z = bmeshTest1Balls[i][3]; + ball.radius = bmeshTest1Balls[i][4]; + ball.type = bmeshTest1Balls[i][5]; + bmeshAddBall(bm, &ball); } - for (i = 0; i < sizeof(bmeshTest1Edges) / sizeof(bmeshTest1Edges[0]); ++i) { - memset(&edge, 0, sizeof(edge)); - edge.firstNodeIndex = bmeshTest1Edges[i][0]; - edge.secondNodeIndex = bmeshTest1Edges[i][1]; - bmeshAddEdge(bm, &edge); + for (i = 0; i < sizeof(bmeshTest1Bones) / sizeof(bmeshTest1Bones[0]); ++i) { + memset(&bone, 0, sizeof(bone)); + bone.firstBallIndex = bmeshTest1Bones[i][0]; + bone.secondBallIndex = bmeshTest1Bones[i][1]; + bmeshAddBone(bm, &bone); } - bmeshGenerateInbetweenNodes(bm); + bmeshGenerateInbetweenBalls(bm); + bmeshSweep(bm); } - drawBmeshNodeRecursively(bm, bmeshGetRootNode(bm)); - + drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); + //glBegin(GL_QUADS); - //drawBmeshNodeQuardRecursively(bm, bmeshGetRootNode(bm)); + drawBmeshBallQuadRecursively(bm, bmeshGetRootBall(bm)); //glEnd(); { int index; /* - for (index = 0; index < bmeshGetNodeNum(bm); ++index) { - bmeshNode *node = bmeshGetNode(bm, index); - drawBmeshNode(bm, node); + for (index = 0; index < bmeshGetBallNum(bm); ++index) { + bmeshBall *ball = bmeshGetBall(bm, index); + drawBmeshBall(bm, ball); }*/ - for (index = 0; index < bmeshGetEdgeNum(bm); ++index) { - bmeshEdge *edge = bmeshGetEdge(bm, index); - drawBmeshEdge(bm, edge); + for (index = 0; index < bmeshGetBoneNum(bm); ++index) { + bmeshBone *bone = bmeshGetBone(bm, index); + drawBmeshBone(bm, bone); } glColor4f(1.0f, 1.0f, 1.0f, 0.5); glBegin(GL_QUADS); @@ -256,6 +304,11 @@ void Render::paintGL() { } glPopMatrix(); + + if (bm) { + bmeshDestroy(bm); + bm = 0; + } } void Render::resizeGL(int w, int h) { diff --git a/src/vector3d.c b/src/vector3d.c index 4c29f0c1..35d4ea49 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -1,5 +1,6 @@ #include #include "vector3d.h" +#include "matrix.h" float vec3Length(vec3 *p) { double mag; @@ -83,3 +84,44 @@ void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal) { normal->y = vr[1]/val; normal->z = vr[2]/val; } + +void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result) { + float vec[3]; + matrix matRotate; + matrix matFinal; + matrixLoadIdentity(&matFinal); + matrixAppend(&matFinal, matrixRotate(&matRotate, angle, + axis->x, axis->y, axis->z)); + vec[0] = a->x; + vec[1] = a->y; + vec[2] = a->z; + matrixTransformVector(&matFinal, vec); + result->x = vec[0]; + result->y = vec[1]; + result->z = vec[2]; +} + +float vec3Angle(vec3 *a, vec3 *b) { + float angle; + vec3 p; + float distance; + float dot; + float acosParam; + float acosVal; + vec3Sub(a, b, &p); + distance = vec3Length(&p); + if (0 == distance) { + return 0; + } + dot = vec3DotProduct(a, b); + acosParam = dot / distance; + if (acosParam < -1) { + acosParam = -1; + } + if (acosParam > 1) { + acosParam = 1; + } + acosVal = acos(acosParam); + angle = 180 / M_PI * acosVal; + return angle; +} diff --git a/src/vector3d.h b/src/vector3d.h index 2ec1d3a9..45cd8c39 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -22,6 +22,8 @@ float vec3DotProduct(vec3 *a, vec3 *b); float vec3Length(vec3 *p); float vec3Distance(vec3 *a, vec3 *b); void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal); +void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result); +float vec3Angle(vec3 *a, vec3 *b); #ifdef __cplusplus } From ecdc896e088f7c2a54b5d39c2056b4aed2b3e32c Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 25 Dec 2016 18:59:42 +0930 Subject: [PATCH 17/61] Fix bone direction parallel with y axis. --- README.md | 5 ++++- data/bmesh_test_1.h | 6 ++++-- src/bmesh.c | 41 ++++++++++++++++++++++++++++++++--------- src/render.cpp | 1 + 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 2890f0d7..566e8d89 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,10 @@ I created the test nodes's geometry information from Blender. Here is the render *Generate Mesh* -When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. +When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. +*Convex Hull* +After finish the rotation at the two connected bones, I need implement [3D Convex Hull](https://en.wikipedia.org/wiki/Convex_hull) algorithm at joint ball. + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/data/bmesh_test_1.h b/data/bmesh_test_1.h index de88444f..5e55b3dd 100644 --- a/data/bmesh_test_1.h +++ b/data/bmesh_test_1.h @@ -3,10 +3,12 @@ const float bmeshTest1Balls[][6] = { {2, -0.91403, 0.77069, 0.62299, 0.5}, {3, 2.25224, 0.74973, 0.85115, 0.5}, {4, 0, 0, 0, 0.8, 1}, {5, 0.00920, -0.66115, -2.04601, 0.5}, - {6, 0.01726, -0.88224, -2.87471, 0.2} + {6, 0.01726, -0.88224, -2.87471, 0.2}, + {7, 0, -2, 0.00, 0.2}, + {8, -0.3, -2.8, 0.13, 0.5}, }; const int bmeshTest1Bones[][2] = { {0, 2}, {2, 4}, {4, 3}, {3, 1}, - {4, 5}, {5, 6} + {4, 5}, {5, 6}, {4, 7}, {7, 8} }; diff --git a/src/bmesh.c b/src/bmesh.c index 767aa5ce..b81ad1df 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -205,6 +205,20 @@ static int bmeshGenerateBallCrossSection(bmesh *bm, bmeshBall *ball, return 0; }*/ +static void generateYZfromBoneDirection(vec3 *boneDirection, + vec3 *localYaxis, vec3 *localZaxis) { + vec3 worldYaxis = {0, 1, 0}; + vec3 worldXaxis = {1, 0, 0}; + if (0 == vec3Angle(boneDirection, &worldYaxis)) { + vec3CrossProduct(&worldXaxis, boneDirection, localYaxis); + } else { + vec3CrossProduct(&worldYaxis, boneDirection, localYaxis); + } + vec3Normalize(localYaxis); + vec3CrossProduct(localYaxis, boneDirection, localZaxis); + vec3Normalize(localZaxis); +} + static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, int firstBallIndex, int secondBallIndex) { float step; @@ -215,6 +229,7 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, vec3 boneDirection; vec3 normalizedBoneDirection; vec3 worldYaxis = {0, 1, 0}; + vec3 worldXaxis = {1, 0, 0}; bmeshBall *firstBall = bmeshGetBall(bm, firstBallIndex); bmeshBall *secondBall = bmeshGetBall(bm, secondBallIndex); bmeshBall *newBall; @@ -227,10 +242,20 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, vec3Sub(&firstBall->position, &secondBall->position, &boneDirection); normalizedBoneDirection = boneDirection; vec3Normalize(&normalizedBoneDirection); - vec3CrossProduct(&worldYaxis, &boneDirection, &localYaxis); - vec3Normalize(&localYaxis); - vec3CrossProduct(&localYaxis, &boneDirection, &localZaxis); - vec3Normalize(&localZaxis); + generateYZfromBoneDirection(&boneDirection, + &localYaxis, &localZaxis); + + glColor3f(0.0, 0.0, 0.0); + drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> <%f,%f,%f>", + localYaxis.x, + localYaxis.y, + localYaxis.z, + localZaxis.x, + localZaxis.y, + localZaxis.z, + boneDirection.x, + boneDirection.y, + boneDirection.z); distance = vec3Length(&boneDirection); if (distance > BMESH_STEP_DISTANCE) { @@ -425,11 +450,8 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { ball->boneDirection = parent->boneDirection; vec3RotateAlong(&ball->boneDirection, rotateAngle, &rotateAxis, &ball->boneDirection); - vec3CrossProduct(&worldYaxis, &ball->boneDirection, &ball->localYaxis); - vec3Normalize(&ball->localYaxis); - vec3CrossProduct(&ball->localYaxis, &ball->boneDirection, - &ball->localZaxis); - vec3Normalize(&ball->localZaxis); + generateYZfromBoneDirection(&ball->boneDirection, + &ball->localYaxis, &ball->localZaxis); } else { // TODO: } @@ -470,6 +492,7 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, if (!child) { return ball; } + ball->radius = 0; return bmeshFindBallForConvexHull(bm, root, child); } diff --git a/src/render.cpp b/src/render.cpp index e113d6ed..2895fab4 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -258,6 +258,7 @@ void Render::paintGL() { bmeshGenerateInbetweenBalls(bm); bmeshSweep(bm); + bmeshStitch(bm); } drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); From 106cea6b3f164a61b67011091f65febbc7c59f5f Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 26 Dec 2016 18:09:01 +0930 Subject: [PATCH 18/61] Implement convex hull algorithm. --- README.md | 6 +- build/dust3d.pro | 6 +- screenshot/dust3d_convex_hull.png | Bin 0 -> 331436 bytes src/bmesh.c | 47 +++++- src/convexhull.c | 238 ++++++++++++++++++++++++++++++ src/convexhull.h | 14 ++ src/vector3d.c | 16 +- src/vector3d.h | 1 + 8 files changed, 315 insertions(+), 13 deletions(-) create mode 100644 screenshot/dust3d_convex_hull.png create mode 100644 src/convexhull.c create mode 100644 src/convexhull.h diff --git a/README.md b/README.md index 566e8d89..c5410bb8 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 25, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 26, 2016) *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. @@ -54,8 +54,8 @@ I created the test nodes's geometry information from Blender. Here is the render When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. *Convex Hull* -After finish the rotation at the two connected bones, I need implement [3D Convex Hull](https://en.wikipedia.org/wiki/Convex_hull) algorithm at joint ball. - +After finish the rotation at the two connected bones, I need implement 3D Convex Hull algorithm at the joint ball, there are so many methods to get the convex hull, I found the [Gift wrapping](http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf) is the most strait-forward one, though is not the most efficient one. + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/build/dust3d.pro b/build/dust3d.pro index 75f7809d..6c9faa7c 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -14,7 +14,8 @@ SOURCES += main.cpp \ draw.cpp \ array.c \ bmesh.c \ - matrix.c + matrix.c \ + convexhull.c HEADERS += mainwindow.h \ render.h \ @@ -22,4 +23,5 @@ HEADERS += mainwindow.h \ draw.h \ array.h \ bmesh.h \ - matrix.h \ No newline at end of file + matrix.h \ + convexhull.h \ No newline at end of file diff --git a/screenshot/dust3d_convex_hull.png b/screenshot/dust3d_convex_hull.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9ce992354dbf0d191be280131c164249cfa648 GIT binary patch literal 331436 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 n;&wjZc$Y%QMl-eSB-6yx7nw0)gNLpqr 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%0DRx#MxYxYMz@zLC(len`suU4mw}=YER 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

OUiHZziKjBZrriz-qM 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 z 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 literal 0 HcmV?d00001 diff --git a/src/bmesh.c b/src/bmesh.c index b81ad1df..b66ad86e 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -6,6 +6,7 @@ #include "bmesh.h" #include "array.h" #include "matrix.h" +#include "convexhull.h" #include "draw.h" #define BMESH_STEP_DISTANCE 0.4 @@ -245,6 +246,7 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, generateYZfromBoneDirection(&boneDirection, &localYaxis, &localZaxis); + /* glColor3f(0.0, 0.0, 0.0); drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> <%f,%f,%f>", localYaxis.x, @@ -256,7 +258,8 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, boneDirection.x, boneDirection.y, boneDirection.z); - + */ + distance = vec3Length(&boneDirection); if (distance > BMESH_STEP_DISTANCE) { float offset; @@ -485,7 +488,7 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, bmeshBallIterator iterator; bmeshBall *child; float distance = vec3Distance(&root->position, &ball->position); - if (distance >= root->radius) { + if (distance > root->radius) { return ball; } child = bmeshGetBallFirstChild(bm, ball, &iterator); @@ -502,11 +505,51 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *ball) { bmeshBall *child; bmeshBall *ballForConvexHull; if (BMESH_BALL_TYPE_ROOT == ball->type) { + convexHull *hull = convexHullCreate(); + if (!hull) { + fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); + return -1; + } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { + vec3 z, y; + quad q; + int vertexIndices[4]; + ballForConvexHull = bmeshFindBallForConvexHull(bm, ball, child); + + vec3Scale(&ballForConvexHull->localYaxis, ballForConvexHull->radius, &y); + vec3Scale(&ballForConvexHull->localZaxis, ballForConvexHull->radius, &z); + vec3Sub(&ballForConvexHull->position, &y, &q.pt[0]); + vec3Add(&q.pt[0], &z, &q.pt[0]); + vec3Sub(&ballForConvexHull->position, &y, &q.pt[1]); + vec3Sub(&q.pt[1], &z, &q.pt[1]); + vec3Add(&ballForConvexHull->position, &y, &q.pt[2]); + vec3Sub(&q.pt[2], &z, &q.pt[2]); + vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); + vec3Add(&q.pt[3], &z, &q.pt[3]); + + vertexIndices[0] = convexHullAddVertex(hull, &q.pt[0]); + vertexIndices[1] = convexHullAddVertex(hull, &q.pt[1]); + vertexIndices[2] = convexHullAddVertex(hull, &q.pt[2]); + vertexIndices[3] = convexHullAddVertex(hull, &q.pt[3]); } + convexHullGenerate(hull); + + glPushMatrix(); + { + int triIndex; + glColor3f(1.0, 1.0, 1.0); + for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); + ++triIndex) { + triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); + drawTriangle(tri); + } + } + glPopMatrix(); + + convexHullDestroy(hull); } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; diff --git a/src/convexhull.c b/src/convexhull.c new file mode 100644 index 00000000..b2a46c51 --- /dev/null +++ b/src/convexhull.c @@ -0,0 +1,238 @@ +#include +#include +#include +#include "convexhull.h" +#include "array.h" +#include "draw.h" + +// +// Implement Gift wrapping method which describled in http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf +// +// +// Translate from Danielhst's lua version https://github.com/danielhst/3d-Hull-gift-wrap/blob/master/giftWrap.lua +// + +struct convexHull { + array *vertexArray; + array *openEdgeArray; + array *triangleArray; + int nextEdgeIndex; + unsigned int *openEdgeExistMap; +}; + +typedef struct { + int firstVertex; + int secondVertex; +} edge; + +convexHull *convexHullCreate(void) { + convexHull *hull = (convexHull *)calloc(1, sizeof(convexHull)); + if (!hull) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + hull->vertexArray = arrayCreate(sizeof(vec3)); + if (!hull->vertexArray) { + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + return 0; + } + hull->openEdgeArray = arrayCreate(sizeof(edge)); + if (!hull->openEdgeArray) { + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + return 0; + } + hull->triangleArray = arrayCreate(sizeof(triangle)); + if (!hull->triangleArray) { + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + return 0; + } + return hull; +} + +void convexHullMarkEdgeAsExsits(convexHull *hull, int firstVertex, + int secondVertex) { + int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; + int unitIndex = mapIndex / (sizeof(unsigned int) * 8); + int unitOffset = mapIndex % (sizeof(unsigned int) * 8); + hull->openEdgeExistMap[unitIndex] |= (0x00000001 << unitOffset); +} + +int convexHullEdgeExsits(convexHull *hull, int firstVertex, + int secondVertex) { + int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; + int unitIndex = mapIndex / (sizeof(unsigned int) * 8); + int unitOffset = mapIndex % (sizeof(unsigned int) * 8); + return hull->openEdgeExistMap[unitIndex] & (0x00000001 << unitOffset); +} + +int convexHullAddVertex(convexHull *hull, vec3 *vertex) { + int newVertex = arrayGetLength(hull->vertexArray); + if (0 != arraySetLength(hull->vertexArray, newVertex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + *((vec3 *)arrayGetItem(hull->vertexArray, newVertex)) = *vertex; + return newVertex; +} + +int convexHullAddOpenEdgeNoCheck(convexHull *hull, int firstVertex, + int secondVertex) { + edge *e; + int newEdge = arrayGetLength(hull->openEdgeArray); + if (firstVertex < 0 || secondVertex < 0) { + fprintf(stderr, "%s:Invalid params(firstVertex:%d secondVertex:%d).\n", + __FUNCTION__, firstVertex, secondVertex); + return -1; + } + if (0 != arraySetLength(hull->openEdgeArray, newEdge + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + e = (edge *)arrayGetItem(hull->openEdgeArray, newEdge); + memset(e, 0, sizeof(edge)); + e->firstVertex = firstVertex; + e->secondVertex = secondVertex; + return 0; +} + +int convexHullAddEdge(convexHull *hull, int p1, int p2) { + convexHullMarkEdgeAsExsits(hull, p1, p2); + if (!convexHullEdgeExsits(hull, p2, p1)) { + return convexHullAddOpenEdgeNoCheck(hull, p2, p1); + } + return 0; +} + +int convexHullAddTriangle(convexHull *hull, int firstVertex, int secondVertex, + int thirdVertex) { + triangle *tri; + int newTri = arrayGetLength(hull->triangleArray); + if (0 != arraySetLength(hull->triangleArray, newTri + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + tri = (triangle *)arrayGetItem(hull->triangleArray, newTri); + memset(tri, 0, sizeof(triangle)); + tri->pt[0] = *((vec3 *)arrayGetItem(hull->vertexArray, firstVertex)); + tri->pt[1] = *((vec3 *)arrayGetItem(hull->vertexArray, secondVertex)); + tri->pt[2] = *((vec3 *)arrayGetItem(hull->vertexArray, thirdVertex)); + return 0; +} + +static void convexHullReleaseForGenerate(convexHull *hull) { + free(hull->openEdgeExistMap); + hull->openEdgeExistMap = 0; +} + +void convexHullDestroy(convexHull *hull) { + arrayDestroy(hull->vertexArray); + arrayDestroy(hull->openEdgeArray); + arrayDestroy(hull->triangleArray); + convexHullReleaseForGenerate(hull); + free(hull); +} + +static int convexHullPrepareForGenerate(convexHull *hull) { + free(hull->openEdgeExistMap); + hull->openEdgeExistMap = (unsigned int *)calloc( + arrayGetLength(hull->vertexArray) * arrayGetLength(hull->vertexArray) / + (sizeof(unsigned int) * 8) + 1, + sizeof(unsigned int)); + if (!hull->openEdgeExistMap) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return -1; + } + hull->nextEdgeIndex = 0; + return 0; +} + +int convexHullGetLower(convexHull *hull) { + int index = 0; + int i; + for (i = 1; i < arrayGetLength(hull->vertexArray); ++i) { + vec3 *pI = (vec3 *)arrayGetItem(hull->vertexArray, i); + vec3 *pIndex = (vec3 *)arrayGetItem(hull->vertexArray, index); + if (pI->z < pIndex->z) { + index = i; + } else if (pI->z == pIndex->z) { + if (pI->y < pIndex->y) { + index = i; + } else if (pI->x < pIndex->x) { + index = i; + } + } + } + return index; +} + +int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index) { + vec3 pCorner = {1, 1, 0}; + vec3 *p1 = (vec3 *)arrayGetItem(hull->vertexArray, p1Index); + vec3 *p2 = p2Index < 0 ? &pCorner : (vec3 *)arrayGetItem(hull->vertexArray, + p2Index); + vec3 edge; + int candidateIndex = -1; + int i; + vec3Sub(p2, p1, &edge); + vec3Normalize(&edge); + for (i = 0; i < arrayGetLength(hull->vertexArray); ++i) { + if (i != p1Index && i != p2Index) { + if (-1 == candidateIndex) { + candidateIndex = 0; + } else { + vec3 v, proj, candidate, canProj, cross; + vec3Sub((vec3 *)arrayGetItem(hull->vertexArray, i), p1, &v); + vec3ProjectOver(&v, &edge, &proj); + vec3Sub(&v, &proj, &v); + vec3Sub((vec3 *)arrayGetItem(hull->vertexArray, + candidateIndex), p1, &candidate); + vec3ProjectOver(&candidate, &edge, &canProj); + vec3Sub(&candidate, &canProj, &candidate); + vec3CrossProduct(&candidate, &v, &cross); + if (vec3DotProduct(&cross, &edge) > 0) { + candidateIndex = i; + } + } + } + } + return candidateIndex; +} + +int convexHullGenerate(convexHull *hull) { + int index1, index2, index3; + convexHullReleaseForGenerate(hull); + if (0 != convexHullPrepareForGenerate(hull)) { + fprintf(stderr, "%s:convexHullPrepareForGenerate failed.\n", __FUNCTION__); + return -1; + } + index1 = convexHullGetLower(hull); + index2 = convexHullGetNextVertex(hull, index1, -1); + convexHullAddEdge(hull, index2, index1); + //glColor3f(0.0, 0.0, 0.0); + //drawDebugPrintf("edgeLength:%d", arrayGetLength(hull->openEdgeArray)); + while (hull->nextEdgeIndex < arrayGetLength(hull->openEdgeArray)) { + edge *e = (edge *)arrayGetItem(hull->openEdgeArray, hull->nextEdgeIndex++); + index1 = e->firstVertex; + index2 = e->secondVertex; + if (convexHullEdgeExsits(hull, index1, index2)) { + continue; + } + convexHullMarkEdgeAsExsits(hull, index1, index2); + index3 = convexHullGetNextVertex(hull, index1, index2); + //drawDebugPrintf("%d,%d,%d", index1, index2, index3); + convexHullAddTriangle(hull, index1, index2, index3); + convexHullAddEdge(hull, index1, index2); + convexHullAddEdge(hull, index2, index3); + convexHullAddEdge(hull, index3, index1); + } + return 0; +} + +int convexHullGetTriangleNum(convexHull *hull) { + return arrayGetLength(hull->triangleArray); +} + +triangle *convexHullGetTriangle(convexHull *hull, int index) { + triangle *tri = (triangle *)arrayGetItem(hull->triangleArray, index); + return tri; +} diff --git a/src/convexhull.h b/src/convexhull.h new file mode 100644 index 00000000..ae31c37b --- /dev/null +++ b/src/convexhull.h @@ -0,0 +1,14 @@ +#ifndef CONVEX_HULL_H +#define CONVEX_HULL_H +#include "vector3d.h" +#include "draw.h" + +typedef struct convexHull convexHull; +convexHull *convexHullCreate(void); +int convexHullAddVertex(convexHull *hull, vec3 *vertex); +void convexHullDestroy(convexHull *hull); +int convexHullGenerate(convexHull *hull); +int convexHullGetTriangleNum(convexHull *hull); +triangle *convexHullGetTriangle(convexHull *hull, int index); + +#endif diff --git a/src/vector3d.c b/src/vector3d.c index 35d4ea49..450d6f7a 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -105,23 +105,27 @@ float vec3Angle(vec3 *a, vec3 *b) { float angle; vec3 p; float distance; - float dot; float acosParam; - float acosVal; vec3Sub(a, b, &p); distance = vec3Length(&p); if (0 == distance) { return 0; } - dot = vec3DotProduct(a, b); - acosParam = dot / distance; + acosParam = vec3DotProduct(a, b) / distance; if (acosParam < -1) { acosParam = -1; } if (acosParam > 1) { acosParam = 1; } - acosVal = acos(acosParam); - angle = 180 / M_PI * acosVal; + angle = 180 / M_PI * acos(acosParam); return angle; } + +void vec3ProjectOver(vec3 *a, vec3 *over, vec3 *result) { + float length = vec3DotProduct(a, over); + result->x = length * over->x; + result->y = length * over->y; + result->z = length * over->z; +} + diff --git a/src/vector3d.h b/src/vector3d.h index 45cd8c39..e35ea8a2 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -24,6 +24,7 @@ float vec3Distance(vec3 *a, vec3 *b); void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal); void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result); float vec3Angle(vec3 *a, vec3 *b); +void vec3ProjectOver(vec3 *a, vec3 *over, vec3 *result); #ifdef __cplusplus } From 21a462979d3945eb6b87f96907969a7ede076635 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 26 Dec 2016 21:11:02 +0930 Subject: [PATCH 19/61] Add another test module. --- README.md | 5 +++- data/bmesh_test_1.h | 4 +-- data/bmesh_test_2.blend | Bin 0 -> 1325216 bytes data/bmesh_test_2.h | 44 +++++++++++++++++++++++++++++ screenshot/dust3d_bmesh_test_2.png | Bin 0 -> 358641 bytes src/bmesh.c | 20 +++++++++++-- src/render.cpp | 26 ++++++++--------- 7 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 data/bmesh_test_2.blend create mode 100644 data/bmesh_test_2.h create mode 100644 screenshot/dust3d_bmesh_test_2.png diff --git a/README.md b/README.md index c5410bb8..0f18ca85 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,10 @@ I created the test nodes's geometry information from Blender. Here is the render When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. *Convex Hull* After finish the rotation at the two connected bones, I need implement 3D Convex Hull algorithm at the joint ball, there are so many methods to get the convex hull, I found the [Gift wrapping](http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf) is the most strait-forward one, though is not the most efficient one. - + +*Stitching* +I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/data/bmesh_test_1.h b/data/bmesh_test_1.h index 5e55b3dd..bbe9e316 100644 --- a/data/bmesh_test_1.h +++ b/data/bmesh_test_1.h @@ -1,4 +1,4 @@ -const float bmeshTest1Balls[][6] = { +const float bmeshTestBalls[][6] = { {0, -2.07575, 1.53902, 0.04122, 0.25}, {1, 2.40837, 2.34882, 0.48585, 0.3}, {2, -0.91403, 0.77069, 0.62299, 0.5}, {3, 2.25224, 0.74973, 0.85115, 0.5}, {4, 0, 0, 0, 0.8, 1}, @@ -8,7 +8,7 @@ const float bmeshTest1Balls[][6] = { {8, -0.3, -2.8, 0.13, 0.5}, }; -const int bmeshTest1Bones[][2] = { +const int bmeshTestBones[][2] = { {0, 2}, {2, 4}, {4, 3}, {3, 1}, {4, 5}, {5, 6}, {4, 7}, {7, 8} }; diff --git a/data/bmesh_test_2.blend b/data/bmesh_test_2.blend new file mode 100644 index 0000000000000000000000000000000000000000..e069e21ac17608d602f732594348a8e260ea9eea GIT binary patch literal 1325216 zcmeEP31Ah~)t)Sn$D%9(M%E|_QDoo3mb|QlJtP4l0!e^C0wKX9U_d1g+~S6~Hnpv! zuCZ!st!=R?iA!zT+Qrt^bThQIZT|jU{QLX2sco76oVoXVZ{}tudG8S*fw^#V=gd9l z+&kYn_s*R=ckWABp1v|IJ$v%r8FLe|=`d5%wA~Gj`Faf

7K66H0To6qOb6$uL81 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

_xBjpbbLjwR{nA=-s@pj~D(({`b~v?{R6FOhcf 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

o8%Ox(OT8W$RO$`?h8d;s5X@E!R5 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%0AR;3;JD6ziMT_ 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�?|Z73xmvg-e7Cbsy8I9B&IDY?`g`}tl%i4y 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%0AR;Z~8roe$~o;)v7MK?2ImIr7mi9(}M3G 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�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

}Nq90Olhj%XBe9Ie~3~G_(S=YTkwIVLD_m^bI*% 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%0AaEO;y8*&bF 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 literal 0 HcmV?d00001 diff --git a/data/bmesh_test_2.h b/data/bmesh_test_2.h new file mode 100644 index 00000000..5f23e9bf --- /dev/null +++ b/data/bmesh_test_2.h @@ -0,0 +1,44 @@ +#define BIG_BALL_SIZE 0.9 +#define MINI_BALL_SIZE 0.2 +#define TINY_BALL_SIZE 0.1 +#define SECOND_BALL_SIZE 0.5 +#define THIRD_BALL_SIZE 0.4 + +const float bmeshTestBalls[][6] = { + /*Head*/ {0, 0.00000, 5.39143, 0.61970, BIG_BALL_SIZE}, + /*Neck*/ {1, 0.00000, 4.39990, -0.21690, THIRD_BALL_SIZE}, + /*Under Neck*/ {2, 0.00000, 2.88163, 0.00000, THIRD_BALL_SIZE, 1}, + /*Chest*/ {3, 0.00000, 1.39434, 0.61970, SECOND_BALL_SIZE}, + /*Belly*/ {4, 0.00000, 0.00000, 0.00000, BIG_BALL_SIZE, 1}, + /*Tail1*/ {5, 0.00000, -0.65069, -1.27039, MINI_BALL_SIZE}, + /*Tail2*/ {6, 0.00000, -0.06197, -2.69572, THIRD_BALL_SIZE}, + /*LKnee*/ {7, +1.82813, -1.64222, 0.30091, THIRD_BALL_SIZE}, + /*LAnkle*/ {8, +1.81101, -2.74796, -0.41828, MINI_BALL_SIZE}, + /*LFoot*/ {9, +2.75769, -3.34733, 0.59646, THIRD_BALL_SIZE}, + /*LShoulder*/ {10,+1.42532, 2.72670, -0.44708, THIRD_BALL_SIZE}, + /*LElbow1*/ {11,+3.12951, 1.95207, -1.07872, THIRD_BALL_SIZE}, + /*LElbow2*/ {12,+2.91261, 1.08448, -0.68593, THIRD_BALL_SIZE}, + /*LPalm1*/ {13,+1.76616, 0.53399, 0.09306, TINY_BALL_SIZE}, + /*LPalm2*/ {14,+1.27039, 0.49576, 0.53458, TINY_BALL_SIZE}, + /*LPalm3*/ {15,+1.48729, 0.03099, 0.34054, TINY_BALL_SIZE}, + /*RKnee*/ {16,-1.82813, -1.64222, 0.30091, THIRD_BALL_SIZE}, + /*RAnkle*/ {17,-1.81101, -2.74796, -0.41828, MINI_BALL_SIZE}, + /*RFoot*/ {18,-2.75769, -3.34733, 0.59646, THIRD_BALL_SIZE}, + /*RShoulder*/ {19,-1.42532, 2.72670, -0.44708, THIRD_BALL_SIZE}, + /*RElbow1*/ {20,-3.12951, 1.95207, -1.07872, THIRD_BALL_SIZE}, + /*RElbow2*/ {21,-2.91261, 1.08448, -0.68593, THIRD_BALL_SIZE}, + /*RPalm1*/ {22,-1.76616, 0.53399, 0.09306, TINY_BALL_SIZE}, + /*RPalm2*/ {23,-1.27039, 0.49576, 0.53458, TINY_BALL_SIZE}, + /*RPalm3*/ {24,-1.48729, 0.03099, 0.34054, TINY_BALL_SIZE}, + /*Mouth*/ {25, 0.00000, 4.57765, 1.92032, TINY_BALL_SIZE}, + /*BackOfHead*/ {26, 0.00000, 6.73538, -1.58601, TINY_BALL_SIZE}, +}; + +const int bmeshTestBones[][2] = { + {0, 1}, {1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, + {2, 10}, {10, 11}, {11, 12}, {12, 13}, {13, 14}, {13, 15}, + {2, 19}, {19, 20}, {20, 21}, {21, 22}, {22, 23}, {22, 24}, + {4, 7}, {7, 8}, {8, 9}, + {4, 16}, {16, 17}, {17, 18}, + {0, 25}, {0, 26} +}; diff --git a/screenshot/dust3d_bmesh_test_2.png b/screenshot/dust3d_bmesh_test_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1082275c6f636b24f8035b3d449b556beb8cbe9b GIT binary patch literal 358641 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ℜ#!fG70kri)PfuFQl;LT{}NA@%8Mdfmi$c zr?C>GOT}>WpOh0tWrhH&Z&O|U%0VNAFNbOoY%g^!9vx=ufLzsX{;+Y1t+1x^ND$fnpO=aPP)aJ7SGo744k z<%7x;?uXs4&sFmzhkxB`eZue#9W%ebCA>yaAOaYs% z$sG}#t9r;k>?FX;WWm{V`D!-yds47bha}xcfYV_CDD@OPg$YLoOnl9jGzO@uK3zg#XxnejY2XyeUFU zXfU+la?t9ZI)3$pMZ^>qbFuZ3)kq87g=_E4X2V1HlOKq9X#uso0o_a92du;UbzdAu z;B3?Vbc3yU$+U^q3-$;ECrL{NKksiN5lP^({`6E$&%VDhj=<)fN(J2mSXD9SY?vuo z67!&i#fa@Mf>c)3!%g6_y|B|`Guz<&Nf8>9smGwwRnK;RX%>4PT)?Tva`Kz`D5f8+ zOik1Ab3rPKde0gBauxt`Q9V4Uf5y=GN7clwptxIO3gB@2CtmIWdt+BI9bsJLyqcqMv{HJe#pv_Nzic1_M) z1OYT9^8Jhx&ey?$>3ff>QIoev?hJTm>t#S?w-|@=iywV^f-%9 zh9VDL2jLTZgk+?=k;M~{aMWrV#0wSXcdpG_>P|nd2J?oqUb_Rb?^|De`d2^gsFgDC zby+v}uXWb)OHlb&*qs+u5r*Cc75Xd-JHvNN`5E1x=4~5@EnoXc-Sv7hMmA1BfeH!_ z9#w+z1&4sjt4Dejsr92q}cHB9s>>- zJy_}3K#6R|%jb7De0_3^6}D?x$de8xtQ6*n(--DQQP`iBJ;D~XeOG{ zffysl(_;c*r})KU5G~hI=)3b}7S}>PiZS7O6U8UH_|w;}ZIRt8dkEr93DuZ_;&%i8 zOm>P-eB20`YBlEXfc)`!D_zfweQ>jCYV~I$Kx@%;LAtv?G@Fiq?+Y9GaUw@U%FUVp zVEDwXf?-u3dGxt$e_0nG6nt+spsR0@sNp}Gtp)!V@ip+pKcXazQh?nV4FMWt5PUky zR|5tv|C`*$XPxcuTVTI#Y<|AmQpy0@6$G* zBIJp7^&MJX&7I$_Ugp;<0@UQ(T+kG$F#WTnRDTgLkBIBiY(c@R$K>6-I*yY0OzG3Q zek0||QOz=M0cNa^UiOscN~b^aeCRG$`)#D1DLA8P;Y zGq;vX+i>%7^(oVX*0qm7o(~lVkG{?pTz^VDk!|B3 zBY*ty6Hl3yehf#~e zH)jFE%H(69_J1H8?$Fn z`=o%=jniM02kR%OfMdPG;Es$1+|)ieS=Ot96EIQTTK7B6+W3>^=PeH>7F~zADgd@c zV8D*(z~J@ATWi}rO}4Imd&kZLHoTCz_V@8-o}@m>cnpW@yKC;A(T!Un7)WU%a`!8S z9+V(QNWq8?Bmk^d%rPN)3N7zr`lYlc4cV}mw%@+p6FTQf?Rq36o)gx6azbcg=U$8K z|0GzVuOGV72qcFX-&J%KP)tT3AMzHS+;^Qjy&8?g#={JK~6| zrQF13`j9EWWn*A)e*o={GO<-Snq|TRIT3zK>;sP{0Ujvkqr!1)ae410u>ElMfeFyc zHF2%Vum6~P{W*n6Y5G@!{hR{Q@+`&Ewy6oGgW2b;V?lOYsWF+QuZrT|`h$N?B|?@%Pf*218@b^f-;SkWq4yYNZ;rZn9BdBL z^KsDgarzwhCAf*0-GtoKGwJ*7-0i7Z8sF_}x(t6Epq}MssFKz!$?{&s`Xr&k`y|28 z+wPq~4tu%E$i;cbIrNju@`g>Ui9~f z6Iv^ZO>wrg%YWW6bTi(#OR664WDE3W?+F=|h$ERn;(XO)s?$%0ULd%eUg6MBHGn+o zld|~ZvgD2UaG_a}sQ0mr?YbW@Ie)&Wnz7m~*u))(CA9c7Q#=v~ftEHJUcjVzJ6HmZ z)QAyHy z!H0-u3i{EX65WF+QL=$El?@nc$9HBy0C`iIRTc4cr&*+#jk}v_#8*1@c)#W{pE+PY z!LTN`Q9BL{hekIfqK~<}=9zK8%!NN(OpnBGwq4eG)J$_xjU2a}m+lDoGM35hqqArx zxdM({>UaA|YfO43w(t!z2SuYV3>hkB4M5DtoIsG{sNZ_+;>x9Gzle-k6OaJ?Cjp9t zmCCoPZ4pSDCNa*8YfvH5P-F1@5KWkRy;~({gm6GPtN#{aKfONMehOS;c9N+S?iR9L zsYfrcnDHy%M=&DclLY!&5H`R2YGLkQhiKTGf7_1l1tLPlyS74SVW)5SuG6jkx@_0O z8;QF;ZEvj#95vIrW4QI37ihC~e<^WZtlE+b3thT}TDoyZc};l6~(Fd|-N`<8Z^d9=xK;?m7*kmXeV7qwWaqjbgwgdb+T|IQ24TLThYsQ1wy%xmssE5Q(xR(6n>V~vv-NI&{KC_(P&dF z@4OMfPOzNlJH_sq&UusD_XyV*^WFnYiD-u?ON0UY@fT9>?YKH~teZjIi|5xvxN;BO z&W{gQ?DQKcc;4-2ZXT~AuQIu8fdgWQ?Tld6uc~Tkp~=vSkHVF`Vv@}vHP}cXbc1dI zNb0pU^1)YU(c%DU3B^(e(nK-zn&F?pZ4tL|pg-#H2@_0tmsr>fDD5 zt|DF;xZnr6npZc>@0cAe<5<*lw^^6AUv_QVzV7MSp{f1(>(JObN9_OOwPWHiA5r}N z_F-RB1e@Z)Ps;rfvRdFTSi;B?QU(pvSO$+R;D!s%zEYn9IEmav#cQXQ$HX7kVF<*o zb|(3Q3_0RbmODVuG;Pz)P2p(3O}&NwBrgP;NYG*uG&;c&kF=Vc4J ziULQXzDRgces7OGh+^iG{DA77Xn54FGdZ{)*Xg4{_Bnyc)Weqw_3}=2^Dp z^FMN>2m6-uwy&A_4kcWY#z8B`8pa3hf!kHP`yt4D^zo0)mhcu^OC#IVX|!IWnC-6V zh{SVZUk8v$f4^Fv3rdCnv?-E`W0CCzS&-stT`DL?Ys~OjVha3dt`ehQo7j50kCdcw zxc_1(nqhDu&(76x1EbRTVvuk>)t{2x+teBF|5?fZW^hRs3OE?>>=a!aTEDqCwT_Kb zJPsLhz(^Ezkx`76zWZZ5KU6Xlwz4{Qzpk9qHRq~%A*C%B{7@oSZRfFA;)A?WG4A-W zosQ9A<*W`vMDZhxG~4o@?w5%JQh=N>7QOnl|4$geAH7WfHK*=@*IjLY9f*Mj^Zb&lKmDH{HkXNK~OtC7D05oLJiubMG_}SHbspBroVJH?q zLMmpv7I<-Q>HV=R#?F^HB30{=*RWd>kocY_fe-zha8e|R4S{eXfE7iJa4C|8 zimJrRE?2@703BL@n4GDK4z@kA(hrM_CGWYCuI5k!M`bmdDT(_1`2Fdosgdv221d(Y zj8~KW7tUowYrfatygsh7MBCA8t<^!r;QVI=dMGaEY&E8Ni>Z_4ds&=aoz{gh4Sn_OPJl% zZvFcv{ln*P0|Jz==v_$~t=2tMJ(&2$jN|RGXVCJWUyt=bW#dVjU@OJJ3+L_0Ci;Fl zLG*CR*kW{9FX!jSGM38gMwBm!Xy;JVYH>s}E^Ik4oQ$1pb)|623XpW@|AdzR3K_Rj z<7H3gva8D{SkXgpv_8qH@FYxmN1DB-eNKi@e4fco{{2G<4WDnyy)x@#&b*UTOBuab z2!(B%@20U4kXL5A{m`|tS=O6J-QV3gtiezw>I^$N z*m4n;N|FpM& z5KO&t22@LB3O$;!qmlUbW^Y=ZWw2SGnioEnQItxKQRinfSBhfjnRsKp$Sdgny0yDs z9QS2o&Cb`!r&vJ&ARf4MPao|JaEI$qRZ`WI)aG(k*w@*ixic5K;vRy%D#$T!E8{d$ z>puGJ721wBv+|F7`57+u#!3#))whTOaD7cNP`FL@+M@_bGuO)HDa^Vr&z1kmrHLs> zIT#2yaeW8Dii!&p>gs$kw%gE+#(S5#aODdN(>_WDayZ6akdkCL0OHm4;8-m)*?)5Xq+O=h zlyN-*^4>&w(Py&%cum!A+;B5PxF*@I)GyxQ+SDH^!c(60eb=y!XVj7*Y!^tcncBUJ z(X|z`Uyi#^(y@utx8Hr|j;l5|9Uv%6EOmIp2h#=7aWzJFi~oIpM2&z-)YbODFZS?9 zQJO+-9L=^HTle_T6Odk9w{N3?;h*9*)A+L%GTJ{8fPu#Py0jCw{V35#W}-yD?nilM zG4RMm>py0iwE~yDGpog}LkQl)t@}=`nkUjF-qHnG-1rX3)hQ#+-5S@Xl?@IVyI|4v za4nFpp7o;XkF+pQU!np$}U=; z&p}yyzvIlnI`grQT&HC21A9)85r;Ss!S)!*Au)H5(hzlFqxwq8EE3VmD1-i9SYnt= z(e0*F669k9Y)V@r(ktJ)6Bnw0-YW;%Cpm!Ni}1Yl_Sac5sdwpY;^I#ZE_=^f4FkK! zmBMgvG8fCL&u?z{dLs^lvz{gydeKJ2fXqSlOpt!yXhDZ4AC7iUlW^ZiT0;o}6$o45qX%!H@DaCzIMt*@VE zu)b0g7k{#W2Kbp|2W_aFav`O10_xY~1Qc1|D^)W&d*eyapP6@sDxAnSM@zd{z)=@Q zjzf5i%(cibayrznZ6~ss&)xV`k_k;j?XYt?mwK1Id4$2`TBBi@%KggMM)3IgN4F z^k(Yo?;tKmV|G(VpLMVJ{^xt`^>!BFiWvF;umDsn-wM%T&vK8dEY&l;x79`G8 z@0(;AwGd{tqV)F#v`NAK=T;EVL+_*(E|s#G+7{(W&a^S&8Ku1}wpa_ff-5rp+qSFCd4*vsUX}L4Y`T;vU64s=zXKCs_e?Em?u)Z@gNF=C8lkzX2`%UFHhp z_NVvmEkezSGex_%tw?j+!a|)+``v4*SXBb?kqMw1a;5um==(xijuGjWMY(P;kguDj zRqR>%LgBf_6a?@)PG19fP?Z31G%PyQ522GyeRCVfb)C)t4Qe;cMuwJ@b#hcJNK z#oi71i?oL=MV)%WFMjBe&09XDU_0Jd=Y~bEKIjuS%zO)}c(hthd@XIGNs^G%^Q%TT z0--zL;rcIglIwQW5x)yproaAm#59^fH|ZYozl$K(KP!S%(A^R^cQb6SSN_3=czXCy zq_C+_@zG58RkC+l+?$SK<0K zqc7p%OrLm+X2h8*iW}=NrT*6Y(ZqB4*^vhyav=lDIf24ycaHM>O%Ph~ zd#0_GVFTv{i!KhhEa$|xYg3@+f%bj)%^TVFKqKr;UfNDsA;D*h5y~Np*d9<5he8E| zsB`#op=YU!zwF=-7Bbf7a6l;}xluhAsUZK5ofu8V@%%FhNnC;9zZWi)t(K+_>`xLJ z$qY|%XDWy@iR4;>$C?9}&+S9Nd%R5^ElPzP@k*}<_reXJ7#3%IaY}hx72u!oRbKf{ z-ZTN{T0R3;)%dJ>Yk;9WqN4owi~4+d8PVgi-XzFMWraIt(LFse3*Qs#CrynURpyBc z?{G*j`FE*Y76IPfkd!YY+;lJH_dG36`U7rS@C{ zJWg)2+*EUS-PSqtH~~v1b7ffWWfp)qKyavN3TUm|9D-r4AI_70AMKE?``ScV!KZSW zOJyX&8mgJTpln3=E&d4AG2>iCv}Bcu8yZ4h$SYp<2>kjuahmll&)CTENH5w@6YB)o9 zzX3ws`*C3S8w&U!x51}03u}N~1hB>H=fA3b-Wx|uyy;17He}2uZ*MSGq~EBxQCh8Q z!A3l}zOs-KSSe8^E}(4?1fhT?{q7RUpbaT#S=uzP43~TxiVcMUpi88wgXfRT){-h< z_S1Oh+QF?Lved}o!DC{dV}^CCpR_SEfK1nr;amsa9kxbdvun*NT$wO6H0Z|d*wQw& zRlBz{}cs?!j^9SK?{U${6>ajb`&5BmI~9{|Orbh69zR z-$7kr-$$C@F>6_JS-C+`{!hZ&%uPT|qsK_w&%^ESvx8Hj$}AImVv0%jfrXHDDW2@r z^{Ym!-o(C$tjW?tkxJ4{^5sCRK#3I!-rOGuh`tv+}lcoG44)nwBw z-9MQxQ=-`e;LuQv*J7~~!Y9x{=Gd|`7+-r&V>hv*k1L=vjff3m#=-zW&(*3;&hlSw z((7C1`M{X=qB-^>3po73sx7j5i+tplsXN< z_|@Pt={0Kx8aJksDZp#rT=P(KJ-&vk9$ngz6)H;8FOC!LtRizaDBUShRVPUqy5jjE zTo*qvrCAr%ffJ)%%mUsz! z9moh?Jdpx2L9uKwbxv#LcjEo``MhgPPSy(H?ZTwQRCy6aL};HWV@Wu>ndSZx<$mnF z$%IMeL>1|;8>=b8M1x%UE?4CZ&h@vjTKP17#QA|du@`Z@o10oV?wiB#6FJ+ zDA(U-%Tn2dWET{J{vdqRvA4aP(b`l>4WQU7S-?RZ<^L^ zfMwiHY}YF5ky2^(Ly`w#>HCXXBmVp^A_Um2oSK>I4JbOPx?*(GHhyxqmM{R&rRr*P zQg@JHZB@Kz&ZV+;)r+6?)31Dqja`grbuFg@h6s2Yv+ARJ3rN(adTU$}Mhd|E>Cl1Z zXB&xGWJqctL|taVl*QC@_Qz}x*(6{Vcrg-V5z6`c5M*Q0USi~*1vtMqU09E3GQqYx zy?HNu_urrD<&2L?( zX}PwhT)3Ymrx@jxkj~n|$4yEo-kfC$tsac1!8tX_iExr-JmY;;ct|gT7KD1=qr$Kl zWczC%KxSn*oTOxrB;;xIkWttAVc4;EaLr?oVEs&RzazKe zn+C%V+8HdcL9zz$Vm&ITqPRTvhj~t{ZUsO`zti%dnN=pV+lPTu>HhdP%g`4M6Z%c~ zvtZ04mt)fOsk|du(6xyH8w2b~-8Kt(+55fe78Tmd8?`O%3M3|(Qz;ADp-{p({GO@| zVZyz(=x&ucd0KRMt{CzAkt@4b;lL#`6i;qB)4n>dwG83=B3Km8rE?Hn8BUyk(x3EV zdcnJlkg*Hf%QCIwHi;%8plPf0$2^5VvqJYTT&(*H7pwexNc@Mm826p#TzM(Bl6Gki zso(y9WpcbfsBzP}!<0G(zZ*MLQ3LIgj0Dd^Ivnv_!N^*I<5XqMt!eg^k`^QFW643? ziB51}wO7mAPVpA3u=vz2BhmYd#T>wy?(3J`Q3ukve!ae$PM6F<=a@4i*ypPF-Dl{r z&wGMAbs@klBTSFt!LETkZTsp!EzddF*YC zvQVC;9S5Az=*!%GQUhYJU*C>*mEgTpH<6^t4ZsV9f4tf7{NSey_Iu~=P;Y)kCDB@D zkNBSNVOxHpCt8;h+U(^z3ko<4!y^e(%%8h_7)%<54}8Ve?i6yW233?c5*^;Ts6!qz zUH=%*zHgBv7C+gJZV1L^Py zGbxpLY-x}zd*}dPGrbx5z83pI;|e569ou^Q_gm5yBpRzjd$J-Kh_Di`g~slPC4lRLnpJ39G>cz4Ie zKrTRCSlC?Wa#hrS-Xh#I&)Qhdyw4H*5ln=SDDP&~n^`;uDQP&VVFLzFD!!9eZ|@4M zWJq88gMK5_!jpE(SNeGNIi?~%eypblZDfv*y;r?a>pDBJn#@vm_y=AeB8jHIf0+SK6MnhPL(5Tk*{DX7G$v|9W>Y^blAm+hV(aq~$>!&Qc zlAq&MiW4e+^GluHT59;l4?y4uJfym`C^FkX#Thn2PcFkQ{aV-PbFb1&DL>+FJ^^hR ziLsU6NzA7;uK)c>@SD8M=Wnevj73B6p(buSkg-=|c)*bp*gf$h7=}3PWt_l56KinU zf8sApL6nboSIyG%Xs~tz=Mfg~6P1Tz1`{R2ZtX(ab-ewvFd)m8-}MeitL%1LbmG1I z{al6c+s0}}jp=w{Be+k;;Hb)EFQE`A_}BX9+1dKX=)VT7ft{Vo=}2o?JgrWH)sg$Y zc=L?>kMto5(O|0{u>q~MzC7*CXc?4#rFB0|L6M1%9ztE%KqS4gCY|w92ey#BO!B;E zr6``+3GtrAuru(MZK`|RnJ&-8g#>6Wc(_CoV&9e;pByL{!#Wh$7?WklVieLG_lXdj zne>>3T{CfGeoQ0O5{z#zQ)&Zz z;Pzmm&N$bSsT#nl;P1PuGqU>}&T8FVpvWm5FT3~b zdQy|)2#e`>u1M4DpfuE$YEycSy3!>KJMSTMUD5EE2)Sz4Q;i*b$?Z$1Kc>AYr*(hT zxj}r#L%i-K(x(pABj)iQ`QS7|i2o;Y_mZ(1j;GqA^wh%ZCj5d1Y_zYT#-mjEe-Il5 z^G*9Y)w9zR{O?cCu33e9RJknP_>1JyvYu15$~0`P&o-N;jIG&4ljcemHGvIdb-!mc zzD_bw*UxwdI7bZpF0Mn+D6ZPhQf}>dM$7*-jyj{_&1TG9%5mRtMFbF-(s5>=y@aPi zzYf3Gd>&#qTTKm>28bGbyTA2+g3|ZDe15zsHMKIiKUwOJ(L9~>LUdsv?b<8%OOta) z8Wcjcq=q5xS(JeJnegU1g?c#+?%hl|&AXc_A;?p}Z{U|e)cn>qg@4p--6Z?(YC`3Y z-T@25yZoAG*nO%XL977<@G4>-{%AiQN_+ddS<)+KtH?^~c|;ylires07l(W>xS3B= zCR8kTKXt>`cGS{4zX1hkLnG-{5*~U3Ub*O0SCEai-Xu0x_{aQ39iQ2B8}4%%cyxO5 z@j5Mh{YB`Nl0;g&WHIag%|y#yE$*?(>M?=LtscE?g?=R-t^${5U23b}**4Nm$sQVa z@OUy)yd&l`E%`hOUHJv!5{T?B@y{gwsQ3$xVL5|i_Wl29g5H$CfD!7A zxv-c~tR6s6_`y0)Aetp~PiRN=J2xp>_b9!Kc?^c#)Z=#YxR*26aU&aQh59Cj5wvyM z(}>7P+3>!KtqdgS%aAgHrHL;tm}kiWR_L{KM*2?liWFAl(&U%~>sKJ1K(H#_|F9 zY7{ojXWc%On?VOBG z1CVwZuBhRR4`FvK19IGxU0{-4rR6M~z_Kcpe0h+%tXwm>0d-~-hqf)zccD+N^F}}2 z$|(!Rt69LRSqBo2w`FWVp+__uVA3%YzCf)%6T?oU$Zk1m?hwdbj@pM6D7;F!gpxC*wFC2{RZ9d#@c|jN#RZ&pW)om2VY@b4}2bU zg01my8@YYmD^tBOnv)G+;(cyt2U(m%W`*^l?zl9>pOVsH5A3u@ij-nE|3tm=aZC3# zCnz_vUuxP{lp%wBL8x~AtIJ|1$4%wi&4{ks$!*E8ri>x(hVAEcLWix%*{2|$`CESc zWGGJ+vcAoCK+I?}@Gh#s0i+E3C*F*UoZXpW0|dP_^NOV+hbRx|v!yI@9B*7l$4)@GoO+n7sEz|ekql53SQGA$m>EHx1;VVQXW9BwZE$<40O?IIYN`pb&vfh0_oW3>5;?j}-NBNYe11+Yr}a`oqOWt>EW2h_Zw1A;&r$ z@o~$w#kN5E84Dkf;plK-Lc85m0vgcFMbFZ}^lv^(dOzZ(w6Gll+{^wYkn77kxd%f0XCuuuNuT+sns2L-XE>jIs*N^|;DkdyjSr7NIOP1Elc{O;OX zHG!#3<4RAZDr=z+#z{6cSfhcfD{~zWOHa#|$NiY}YV+9~{c64{Vix&~S{EWG1n68`|$OE8YoI=WeHH29Kvli==sZmTJ(ASd&Kq__~<&vk7$I z-f|gbM|n^?Xwh`Y(HOSM>r_pLKDpX}YJ?$aCmibKdIuzgDFriWxl5mqROjzY`>%W8u~F> zewE1tg(UY^|K7+-yf~{~4_yD-wlPuw7z`d5gEScWKb&j$ardHx)gBxg!RaNS$79zS zQhWr$c^&X1(!4^7eSrOG^nR+hKc7@~3;uWkHl>Ebt)hPC1;?4#hA&cb?^*xqTi>f1 z(G0`?l29cZIa|^qD>lDS6fIK@{%j3r8o2jUG&lKfUu}#dRUcMZ@OyeVW8k~T|U`n|3!T*dc|VKVH2Y zEIH%%-gTb08|xGM?11BbFFRz0J%^^6K`#+1%n29aHT;!>tKMeTM{J2 zgTq2fIrBnK_DTb)&vF;{Z5BsCPRG+Wr42{7&FM#!%`ODu^`<3p4tkZg>Gxzn>P*N3 zRIM89>Fr3w(`eIkkXj^Lpvir`blT&Y1sPn}+)X*7d*UeleT3hMRC5FxdgrMA~POqU`B_ zm&{a2?Lrcr`Q|4qK$L?7hOe>-pmnQ;$j$M9#nXq|zkQg@Uzhv;l+2C0bVoVvp=1}A z@8(atYtY~bc?wfB+4E{3%dSJLS^K-PDbYSLesTCKb9@k_A>dGiqPMDY8Azn!%JV)C zgQEf}cM4Ngsfbsy;DcJ}flC@BvkPk8ZVU`49uzxREAI_1n}pmyj&i z<9qF8vTN^?MzxOf#yc=2h2N~7@RAGbaeXAej^|E!{_1BWynoRgBw%Nkiv7PQ;Z+8P zpA^J<)`OTCp!s3a!`#@;!skxp(0*E<9C+!Pfm5NT>r~q47)ZfR8o4nmJ%y|6B_Lmz zahE{W^1SQG$A?M65LcE`Tkktu#@qcAzh{2ZShWT-lmh0(!xYd@n69r)os^@S3DN)` zV(t%JS=5Up^rBzg3j=Ya8z*9CKtZ8JGPjcA%N^PqfWL>W;seD?0~B4u2Pb8o3Uz8A zq}wR-(j^|geX+nfz)SSCr`zmu^|&EqEH;mLqMvis$E3@SX-#dW?v2vwLOC-fm&cJ} zTWbW73YEb2jCiJ!{ES&sOlEWL1)NQ}rTho4yp)~X9Iao@P5w=E-DQv^md%0|Qp{^g zkg1r$QuJ-tM!V8b1_o2oubQg^u;170mLbI9uIzjICEzJbdD6RiXWU6ajDM+Qr7UM>_c}X{R_OnYN&7Z*Rjx*#Q_E~!?fs|9MipNs0#+)%MSW{~htNgy;Si7YuI>Gg~u z@o+f4@k*ZB$>Bf%V!(GneCu})8Tblr?6UcY+w)viM*xN2nkW)ieFDIcc9gPR+8Xxb zT)SKV$-P7v@|HvJbz9j>&H5jYtAkD?-uB|>+NhYfcG<|oY84hr9(PzO- znRf_b{7EZU%(J-U0fkL6C!mc-^osSgX^3p9wAu(3l|5u=CuiO2PX;1-QXXE&ZtG!S zPn9R&@VCcJ=8{bPFyJK15EGIPdS>SHTpwb}uhR#=+|k$Q_k7nhS;GEh!~QH0Na*3$ z;z|Nz3rAGzsr{;Q9eL&%Mx1_)ws+g zM&Zm*mc5CaK7rrfkX$z~*ARV9Kl8*N2zD+G5?}(-YPR1f33YW=@>02<84w^=z8AJj z_8o1VBp4ftVS@tWS%aiq0kktW?~O=CV*g_~Uot3}^bGba(R}ADa01FrHdRu;ZkR`_ z-wFw5S}iY+z5_dFEaP($yVf3CBj$r2%dAG}2jFwa5RFx4=rnhy%B>zIuTr_K4;ZG1 zk5g}JAzX|GrEkGX^@oq5yH!ob^k9er&O<@83N&{#y-@jBqOa2 zZHeS?>roX;uZEF{Z+uxV{)Il%UXs_a%m%o~Y$AUbH07+ee?qTpq<}iXU(pCIk5V&S z5Ok_WG!9^bt+dZmk4ilGZrWxLEqT>paO8acsAwO}Qw=To!1F6vz8m$h^l}HnYyu

W4r74Eb63c@eo1o%Y(S#>#(Ea$S%Xy$+y_o=j&sr$VZ#ggk-Fr0uRfj)0>rc&}(j zn?SQCn*55p##+o>kgWLxAS@Rq4MqB2kwa~+$@olNg{|B*V)$8oPtwf}UrmPYm$jfn zzz$Dlko#4bXkeA<1FC$wS|TnqqCD3ASTrMCAX_`P*TShH$> zAMNC>n!6&$nP{F~K6sIF?SpplS7AdkpY7pW_sA|8^OcHO;V(qwTNY767ijMnX!M}7 zDtwT!R*|!0kP~$W8LQwEC@ZXN0bjDnB+AaNo^X%%;Vquz88*@98qONP#bN}sdJD4& z3VB+TIP{gE9r4FQ+|jusvU@yplsXh8%=+c$DNH!5Ij7 zYxq{<6R?~gzoW&vxY(d>nbTzH!I_n?BcSm)RZ=*Heg43BaMyI%xu}%(dAkZVsPW)6 zY%UbQuO75$VknqufGhRD(Yw6+ZeiQ%*?xg}V8HQPbC>Hvnz={GaT+gxNU{au|CH7K zG~n;(yRZgXyr99rAQP%-D!H~soEcQPRJ12$Xi+8gC?kER2(maSVF+Gr_d0eB@!42N zP;vLD?01}S1 JF80WOVmC3PMzI;>c^UMtcYfzoPR2QAOZ;hpkkHqk*cRB~D-bjOs&gsuHdC6HHuwe9h!aAyAlRm=<>f!+mbfNVc=VJWGTtI&Vle z(_~PJl;<}oCea$3>fXH8_O)c-S`HA%w(e<~oAt)gEApwCC_chmdU!EzSg><~>A&*wdl+JJV; zNX@Czt8^`I|GZs`fM8^|5q*YKdVKVf7haah|))TH7^7h z`_Q$8y&dcdyrX-M=5z=A%O73MtiN-6n7(c(qjNPf*3DtWk)SrF5Z6HGKG2FUA1{hz zG)zZHLt3kYl*E0&cTfAA{4E2yazBW{q9;M*FM#}RO@Mh|eA()C^a&6Dd00e=#1aOx@xID`T)dTg$L0hZ9XbQ5;5e*n$L6a*j3d95wZx~Ko*|qwU|c4^V%2~9r)Lx-qFI0 zU)ET#4~)7MgmcyIy+B?F=l^KLiCdDBjGOA4bP$4e?5M!=Ov6(F6@ai{)2qlD0dV|r zxtCxQ<<$4`XYQ>O|AL?V6=z2hq|e?yq5tyjv%FNcoH;<>tXy41sjWFk|3J8Odyi#M z@uC1&kbZ0h!kQ#z$S@pQ^cyC9i4sbb<;FTaCn2HISo1!Dk6iSZy;VgWb67U`-sZkw zvQ02$Lme4(Ev759y5-R4TZm}?8Bw0&!03gX|H5fUa?*H&4f zPtJ%R0Ej52**DKsRY1Ocwpw8ufz^6|UjgBoAuxcbT#hG$cy^FKCI7Z`!?KcM%nQJ9 z+jfB*A(p+(1fP?`#ktB2;x9cZ+?ImfAn%X%1opDrf=n!WCSR^keor`A!Vxax8&(Y) zmWH%TlSAJPrEsxFU_nKnvla9q&y?sx7VGVyC`2|FE&h-Pv~S3gou{* zd4sc1E1-`bmqA3~Lw5{m${jIM)dd?nv6HHKfBq_0Z2V_O_T|4lvh!tI8H=}?BjZ%e z`#h|6A2=3ixo?8EmUsVP`hL0((c{tso{y{)PMAr-4BJhm2~Wt7VyF=f&XX3bnz=Ai z>g*I{IrDStkY6{(mNOoZQhc|&T!`G-cY`2BP3^CVo|@z)`eF2)2*3=tO(5ef^zjsg z>-(YG`h>N$BG?=Uc+J?J8T0!stC@Wdl3cN)LN^fD(trft+`GBv#jLVwL5aK6?Qguy z#)VSjTvMA7x8n3~_*)fnm{TUW905rLmLs_ug+WEZO!D_NS%1keWzgNLC$1D`Nnu1S zEGf;|M;>znDm6 z9XplzoCTu<&*nX+vC2<#hdPw0b}a|#JfCR<@aVl_>?iFCxxL8u*UHyEJr3!~{WV?! zV!eqY;E=nmd;6F5wFhjFl{xXI(j^8o=Hyjms6ePXlXZ0P*)9seGT3mwJAL@c4S$am zw(oo64cC$b4cS(W@$Jp5@`3VXGX}P)SIOD;{7!b#BLl;$6qCn^6fc>{WRobmh=3e6 zywI!ItL)a3-1~at>Tz)-UlEg=BN3UAfC6@lyh^z7;P;mQ@M*uosqdK-ac=jeqJXx> z)*mRNMc3=n%Is#sH#R=m zNK515+wENhCmp4Z=lz6$FiqS)ld!WuO$X;vpO+16O#(ZvmK^ko&OWC7wK9%sqX)7XC13*N( zY+$%NpJ!Y6z$p z!K(zx)-c|Z;4@sIv^d*@i>dTy_MoR8UC0gGZ`}o!?03d@hq|I|(Kg8p8oYhWD;UG$ zSy9{6eX9xqRdL4rKxH3zFK28^wN74zpF`AwS9qVyq^QmuN1w=`&hUcXbNiTb#eeg% z!UfKNLz{vBnwI4psG%5mf`UEIjPKItIJl5!(jzbEd9Ki;hihcjn{9MYnrzs8Uu_z- zw_j({v#T|!211*z7VZ6}p|OUZ)A`v-cc)e7p={fx`5fO5l?&#SAiQ}hkf3&_x*CmIs1;`N5*jI;#uoo=KRg5v6DnZwY@Iw_oU7c zmU%zC#3%TF&4Zy_}oMxH+7ePs@{UI=$Ks8d`vV4UCo5Iy^&sFlG?SsS= z_B<3%INFN{rH^s5g``;AzgYmJ!>R5GGd)m5u(FhUS-1fDFb>S*y=g* z^PgMYU}X?>75OBe`vtbMmZ zBmgCXPu8Vp+*z0St>sn${kFn8z!#O+;1vu5%?*4p%-mzg(NJpmk?1B|0Q65M6WCr2 z==X)p<)WV)C}be$V&<5Gm{M{G0*>zm%=%Y-g}DL51NQ9nsMTCEM?cLOfJr%xssvX| zQ67K%W(Z+ROyY>7!}q%Mt9@P70Qa;o_X!!!QuZTU=#~g6%1_3ZqKgo(e@2cM1{S1m z#7wJJpH0=q>$NP^J{u&@+!*K5t8q8+67&>#=8V+meUxToHoJd!PK5d|ZyMX5Co}r@ z$^4gF#Q<7@)U{8=(c7_sipLZi!D2PLc{MORKDOVZ&isfS)Vl|)_dlE#BNpvz;sWfS z7H?<0@t)n;1g3N9EWt6CO}RY=40G$Rq!S>6fQ7d4SciwsZUcxh3kt4nI@d+RoO{JJmc5R~aoc|O~%uzmBaJUP` z0_2F1l2<8Oy;gaPUGi&4eT9t|=72QVb0T2xwydTy6DVtf;q?Y^k##w`$KhqG&&c#GhNa}lqo1ys?j?WK0EOqOU#B1c{5U8GzEt<;KPg|M_Z^N~6W#kp zzi&Zz@+4^ZA@1qL!>CoqE4=!dN?JUVH(79rl_9H1^-`QCU*a1Rmq8u4Ov>)dfAp3s zE->-<{CeYNVs!!dNOX*@?7GrY{sJduhnLc^rP~7)ZaHwV2b?nN_9xO^z%Z0M`rgw} z75^CmU9fKmgXOS|0m zWKkeJdS@Pl(gz$2+c0&{>6d~UyqeI|r$2>uf$`zQ`u&+^A7I|yrm6G7Q z@0D4wr7>J6KqOH#cjiFI7@1pUG1D#H?e#xZOpv@gerVDgy)#|xwQENx8E|u6cKp$?E$Na`3nbN52pXZ4kw9Y zH&k9Qjh;;4O)5fNd{WmOIc~{a?$&S#DLk>LP*Wnd*5wI~2JEA=z0bLSuld?Yg;N)0 z8HpWHZ_-qs4BGqs-iuk*uX(l2CbdFcm;A34#kteD>3qub>>n#S*Pyr->ausiTF{e{ zZ9d<&z01FZs;Ov`!Eq;aLN;d>K8-)IgnFYRq(Os&X3>$zA;XYf%I(&9v-h!NBP_#w zAG~Jd#r41YkO#F z^MI%41G%;Krwb1r0lnv5p5MlvZjHj(@m8)?Rz zy-+T_dWjHMKP+-jH2~Q6u~SH6aqAyqn9a7lUK7(KiB_*kPAVR{w7;o7D}kTsAs_!+ zIc+`t=PCT-O&@RyLmELGy=vQ=3pEH`Nmi)whmsI3ylxa&UA+6ihpQ5E2 z72bbJf+!}{Pnl~vG(X`0T~@*Ve*tZWH+0j9A0q3w@tqYRA2I#4MbiTD+^J0qGXCqk z08RiiV~vac;{vg-cDtJ0&zQVtx_P@5P*RVrPnrZC{9Z9kJAClMiQD@C*!Uzb9{3A8 z7DuH#1A=R!n2Q_}SI;+m4F{brfN%WhvDr=in)>@ObG-LD)wGA9V&8RT#-w&3M8c34nM4K82gqq&jYE#{5n^6j|q-OBh*X1NUgi0?OCtiuMn|0pplW0Q946!+&2fZXa0@{Wy z%+`#TPSj~}!|CB;7Z`oh)7K(@)>BKq{;y6b7qZFQ?gRO8#KE(~!8pHNK0x&PT=8^& z#uLDes>}B|tH>P6!VQMA)B(5TTaeZoxajk64R27z$yKg9BXK1(6IrUk zDRp)ulDnGWYiMHd8ajJ3PBHM__FuS?MEUdfT>9_!{J$Jx0{ijk7~=A43m(m$~ zV>P=tMdwPsUjm4()#2EQz@tG00x3RX!;>VNL74W%j2bsCdm&@tYr{sgi@L#uK~l5( zCwiOc3}z%44@j)aOlR*1rr4w%14c)tw0-q4iCgKjQ^rLKiuQS#PoFH4CU-PSubQK2 zYm_mQ_jhY<50#J1nYMWDH*f5&R(4t;WkEL}eW==v7B?^bRqJySl}FAB?pAP=w{YL; zx!5jQ?y!+QP&|<%H|%)aZ><7_9Tw0NtOo)}mOq7amjYW;zUNhX#23~JL8OO?LvB&e zxld#5S6z>T@AYeLH~==ePePv+kzrO}rRuun$l_PbIM=`=ZZ&H&o?Y^9Tep9HteHPjvqDBke2S)0a%y?QY&M3H?uBS1u zxCBY-P;vd@b%70;Ln1`5gePvk*U&VvuylHa+X|o@bhGmJ9Ah?PGG;P^Os{|9{?T)_ zIDO$IT8h5EmUBMtxeV8Y-i_D4!A5i#3F$4sh+q0nUuhUN>e@{Crq5bF)algQQpOYF z{rmYOhXsN)#&odD#KEJ?XSVF|Y+~o^*Cjdm^|)sltWd0-*Mp{wRvw<5-OKNcJ`EYo z)Q&3eQNtmNx@k&^&qZqw&Rz*Hox^%^Oi#&Naqfq-8UFyKge{|n32Q_$jiSCpk_Qir*5dB1m5p1Lb zD>wVGvBAnKT$9sHofHvuqg2bRmHJ~dMeH@Dg0=5mZaZ!7tI8JWx-B#9(mRTH2&_GHSMuW@N!PF?Rtz1zTGLHu+BPiyxo8KnzgR9XE52t zQu*uSFPsDyNlF*SEqxcRS`!5g)eVt{tI+vQjk?0Hb?aOqT;c^@K`*1XZhi(o7GIFDy<{bHSOfk z++jfDuQo+M=Nt_r|M%`%B~?%DKXHM8=O|^DDA2kEvcEV|IF`}ZZ%}!L&><7NPfe>E zoz6vM*IJ~As0CAO{FX2KUM=>9tDooT+h;9#Yn~IUTQ7KiEz{)D(nvWt&(-vtz6 z9@lbrU%_3Nv_3CeU3C#aUTFC#Q79*wv2H+5c8U}rnyOhJ0x1P%D2~f2v~bckKHZLi z+X}xtN8MWIX+vut&$Bo{91db@D@hX~HaHYfU$4mQ-ytShy%U}VGAh)`lv~MUz6>fHzWA77qK@*kV(|lUu z9@{0%hgJbR$kv4-9oFwrx;;$rmI?>oYZi{(FJ_FJqq%J871nW-_j((E(ezBXT-7QN zQ!5X6x;Nt+IJ=u4JUOIUNu=iN-br(7VQ1K++P2yPV0yPHtAGul2HTJ>Af(Se13Ac> zk3`$Ax$01L4hsuHw>^kqe#`M?j`@;@=$2THk!#KsMQ?`I?5pC4ch_ux)vY@Zm3_kF zT%9VNXLkYyjV)2VozGr9GXLvrJO6A!fBxUDP^@o+Me3OUV=A3>$=vMgafmmM$Zbl+ zq;u}&jt*ZhOeWhlhhKadP4!uRL$o8szM!3>uq-?Hm+?Fv7ct^oBhpj>Kzgd^Fkmz( z9whC*ZUTt|+zJ!X@~(Zc0I0ot1X!1aa+pC1rYd#|T>^wj*nBeiT&}v45Nr1UZ<7#k zw;IxzSub8mgF097>AkU4ys7Z@K`e!BVK&(aDE`H0HKG@>5=^n|B_`%jDaKqo)S}Nu zf}|FGQr6Ls-YGYM-0hO@uBf#1FG8`Y^c^+LC4DMN>XOBeZ{f@tZh#Bx4+o1ml3@3E z;D-3TBgpfTsO5|(QJ~uHzfRUP{XO*T<8}YX#+lKM$=R|Cy22dh=DV7Z{w3#|nU}n3 zH`>By_i!OIMBL-SE?1Fq0k(g(Gp4tOz0Lxy5M5OHp~NiH*SGK$jQ3(c`MERok2Bi5 zfcC`Vw0dgW)h~bXQr@5QQvQb(uDarl?Fy#)zbPU;%w6{-52NnoKv?MmbMr}<3M<&f z^pM6jH9zYMhsz$KhK=A=X@Tf+-{QzU%-h$=f*W2E#R}nHKh!M>8#79oz>YA|SK_nM2bLh=qNIN^Wuf2`qpkDFfAc9foW(&Mz#l7V+=8)4LUB zt`0UMO=sC_t4j?$T<|>j9k1EFajq>ZDICO_@u=v%ev7DIZ=ybrOo`qR4|NZ{^e7_L zK_N%>bT-K)rXQUK48vssQ?X9K8Mxy*TzEM)Wn;2g`&GsGdA(LOp0;iBav@|K5$#@s zsM(lF=!xpKpeI(f1inC>&-Y=_o%mUR%^*8 z@FdOq^~8GqwSHKL1dcS@Iq5ICo+Gb*&ZqxmHwKlVh@>u#6@HaUjEpKQoP z+&?2ymMM<#Ed&Pa2hmbep8{Wm*Eh$ z>AH%8*`yH*zm`k2{%DlR)cPnv4+$ZtFim?fGQi{e$p{$*$enZO?t;EDVy^`Tp zF&9gv{RCJ2en^|I0;skXmEtk<(gIOVkLTCFSt0BiO&^SCQ37GDV-;bm<-UM6o*+NI z5#!A{9*LHQ{a^zm@14~5Pr{WhJ7@+tL5UFgvvU#jIa;Ua=uhPt7qS;|70^z_AnZ|< zdM!MKW(XN~GNOPk2hpRPMO)6NjLfba=_5m_!H_Ja%8PpzGFIy zt@;O_6UDO5r0wJ2b^#4UiE%(xTm5yO&pcN}5_7G0e8$b}Q5x&B2@KiM6-*8ksW(Ya zval(>z6)$HG4J(83e=CQ@#TPDE|**bSjA3~-6H{Q@~ASQX|Ps>(m;U7mvr<;>n1w} z5T}wRPk_6TGgq5N6(B30wxdc6Tom3*HR7HHxub7?^L9Ik4M%uCqQXp#wLZ|uRvs3%sGNy0j!cn-u z_L-P$e&;P0!aeuEGIlXC%x>*)yV#4~wWwk;9E;?cKXLhoX2%F@CIhn=gXRP?f6b~*DLPmW_-IQ&{2lgle7L|_y{RorB7wv%95 zy7fgrAjW7$%5X@ZztGPhWj?QAa;h!-nRk+bpzAxKl7ipig*-rj)e4h$F3akgT+)adgoYECs3D~q$xm99o@n}cy zBC0Fk4T4hiE5HLYfe?+BffC$Qxh95x5bN_ zBH7ExnyZmpq7E=GSIZ>pE)apl#<~N#+G|0FUic13Jk34|9(K&womI8Qd^~Ab{wZ8i zIUHx&#RW^-zel*WJ;Q);Y&9;*VmF(S6QxdlQa*fZF4?e*TKv@=~3N{qHGr#8uze4CR&GbqU?P)?Zi(3!QrQE4jNhp|9sC#x2 z4J?H_8;OpkAgIDeKK-Yr(F}XW!I!EK|sAc%DQjG2?|;Y~~xhEn_aJn8Cw> zS&Y!SV!ecpa|&xH@W`_WU+)1l`OkI^H^ctHBOl(ng|}6fM%EG*-dDTArnPaPr99>Y+h3rjnmd7`gjrVd=VP@CjU_0H}fm`bezz!M-81rHff#7Gx zL9~Qv{I9#K%Er3!3?PJ`RBUCzqn}yxPhRn0@hSWP`-Uhe z(J))LoLCbI`a0+-cSQWuNe2)kuqq(EE#P;-VH3TQg&Aw4?xxkH4_H{6t(ibPd=Ik)^1EAkBQUl?@f@^iPTNszvVAU2@gI@$^K87@F?#_Yfj4;(*%*S_ z1+nnMt-V=EQjx_JZETAGX-X{IV}6z1b@fo0_*oGkuy~F32^7k>X~`TH+dJfRPn(1) zeq2wFZig;-5HS+nZ6!)sbn+J?4)oeHuV0Wq*7q=Uxs+%M^7BdhP?8jPS15Dj_`>yQ zi}Jq|47&YUfKoj1e}H&hVo010JpVI4^a7@$->}B@6$K-WRyA0l+VwHyVQ8g9NVp_~ zl3Z{w{j0x>Lu-qzlTqEJb()5XW?yX`imR9wVt(V1{gn{%725_iejikHSEvkQ{~;RT z5B&M~lhS=Egn}{coJH*R#t%egxc8C!rC?I}t7(n7_7C8Z^;gpnoY1BdFSa( zUoR1e*g%(G zoB)#;BcK-CSq2iuUCS#c$FjV}UF^HD532B(B!~(Fu7%k^0bgYoG={6dKW7D4{$QJ$ z<4U`H7v}UCLzvH2#mah}5X1^Q2NQ3rgfI04I#GK%e_KL)$%>1N>PIMw^1hzrNT;nLUk6|54G%_` zgy>q_DSeNN-z@y5BXK-f9C(QjYN78>Is%fsz?}<5k|LO?N6oyaLftr)&PfSNBp7fQ zDNz9q0UT~qjpQ^C4EQx+6b|UcA}nmpAWNCOUB|ulQ6ks~^afx#jZ8I5J6X2pm+h0j zXwCn8NYFaG$E>Yx0(11CV~r+QipSJVq%3sY4!dHZW+*Vj{3HEhcDSC2w`Wp$n^~hN zBHx<^|5L&{TyY(@gFRd{{l2T0L;5Vby2~3rt4xgBoeYUa$Eb*BM@%zqlbpnO=()(odZm;B9qkGJ7O<5xQGSkrCUT?0S2ms;9aC$QV|KIm60^UPux!Bd zsXwK?I0R7RRzH`8G!sx9LrFn-u>8kxwW%!B#|8Z>mVs+@H({8t~GGz+!s0N3$Uwi?r+*UZ6+7!B)CUF2d8#Q z|H1q4V`k^AT8e52E>T%wkN;b|(LxK$#ckF6ww7pwcm4y93dsC;p6&YmQf)b7XqWup zt=9Xdlm#BoAR*2bZ&GdRM!C<|UdL`SfyevRWNQ_T;B?Zp&-umma({gObNoNSWM-Y0 ziRLKjOCjD%kKT`OIJPBq9`G430KczgC$&f0qNOJjR1N?%fUJXuoOOHVl?HetIp5QM3kH8#}E zM`v68nl-dto~?Y0DnL{hgi9!vUqOMA+;kU(=O7+ zKJq6~)=>A+H~5Rg)2&p)esT^@TN(bvm7x?!?}tA^bkWg{ zaViW7KaBloVz0od;GJqrK%VODT?b7%8^|h%NZI;A=<|8VCzsYcO^!(lttUgg>(am&r)^nDlCSa8@MANtAz^;T`Db^SAJb_skkCr zQ25?85*HO25HA`9u%;sM--=3r*jd-)#p~CGa!;-`*OM-{NSP>fl(U0zz#z4R)wNS! zWY$=hb};LR3m%Nx6#Zqw4WzeFuGfZ-vT`T2ucirhxD9Ui3^y_N_6$`xW|T~ecR&h4 zJ-JPyM7)7SUFVuEfzty`SYThn$iP8-g`-&bkvBjHNUf^ns_%BL{wx9Y>j`5ZhN5cE z@xX1u8kbNP4{v)Is6<8dK`;hip23E3BmcG(TkiU)r{$TS}n} zE48(G!5S@?ms*}09dN5Ea!L+17TOE%+BtFykP3u7&sn%{0Vu9^JwJvG;+p4?mc&Pnk&BaZPWn0qPSBTO`4Phu5`c z_+`~@;#DLsL4>=kJBe#{(e!3tBYH!{?G{50b%SO>U$R9I96}yF%&E zKVVS%9hiZO5$2TkzRo}VzOw}eO`&cl`Z0JL-rAs*8HEQOv|C<=pA)0D+uqJ`q#Ak` zOBB9~rmp7FSi0o{(BFmu@4pqGUGz^Dh%`#^jIqsxq#F}saMHEpzX1Ra_>GEIp?<5> z6Brs)`U6Tw4?CpfE4*p1AB;U$g^zEg?h#ZexE{z;q;K`>-++5jV{TXN3c&j{DBLL7 zTjson>kbmUk9bgHHD}1V;)ZbDBXtnty9O74>0lK<2pUeMhpH+Zeb!A}la}ARc{C^L z*zwcEJV&>?qGYvE$&5>5&25tIQ|XrLW8d6yjWTNoYLb!`zsT^IqSG~_|M6k{U*{ps z7VY#G0;@LeKY5L#{?co?YpTe#^E9SJX`RhkJ|4wN`v-bVR5=HLv4ZX%097L+N4}{X8{!Ij_`S++6br)8SJME1=(@%!|cz-8b?n05H#Azx1 zkp{irR?70OJf`Do@4sx$FH7m5P%h9g8j(nRSxDNV)$SL)vxedE{I21RaSV_`L&X`Z zvVB2FPD}El1tQo7r>o>$I;BeW4T3>!4V0?&s{wCc-9nuJj^*$P4MS0#Gn32Lwie}6 znWXB?I2dYF($11FhMbE{stf4k6T`Bm-b~`IC8YXv2ox)bF5jrm7tM^EC|6HO>$Fe)*+%T{z)BJ!!@Bb|A%eamQE|GhGX@%y`wL<^n`aA4o zP!XBX`;Vq_;9K(ab&}OkUJXVxgNKf77i{Oossj#qb2R(9Y*%u3*~){{R}oc5&mPOi z5B7WPY5P(BOMQ(R*D5w5LUM!WSo+BU?&J;!vbS7y(gav54J(*IvR|oRg!9in1N4mQ z4(@m*#U?lE!tFYh|~#_dF?PM;eiGX?=;tU=a1-5y0GCZ&KG(*k9u$Vme;Xv z5Umdvfg`uq24WLYT<1xem+HJOtI&z5PIBD4-|vvX{d1rbh*ZDUBwaW`VbdJ88HOOk zd}=Q@Cz8g(>iG-eTUS4?`Pz|Ho|*upn#5}XbT}4ewLWH}kll(*b%b?0zeR1HCA(+zX6A`Xaz2}{Fu^T7%zYZE zN)UUrK`mcB1u4Dj@e#jB)X%{n5mR3KImr*}$aqLFQOhl1MmS|0^LK-3ecoVl!2Vw6 z{&#E*e=>r}a_*r-qgAa#^+Ms${C!!msO6_!CF{@MrTBc^n^vU1@8_U0;sWmsvUH$7 zyzt4WfhR3F2>L6@yMXpZj)8{^N^a!v85T@qYf87+AN0NwB!|{YkUNcLx zpy-d{?NC@C(Hwi?Gl5MKSamSO4_i58hTtu@o+D)}Sa?kd20Qaq1RU5oe33_9bDXt6Zk(?AyIZAxs`iTzwn2_pHc# zHM|yIe%ZZTM9gfE`{Un3LEX%3;Mn9;{w@m1UO7F7{WoKQ56ii}cRneZC<~BNEixyV zE5``&pkgC35Zg~_<>r}ASgJggPH2YiCoQG=I)Y?}aEUJOoGU0&?|@)WvUUE1(tQdD z677@YG5ll0<_Rqo>D? zp@iqD8Gzh#a@9>W(s3bWaqE05G4_UjubpT~I-L7%Eh4qQZvWN!qAhy2_1PONtJy=- zH1Fw`y>#dCm57T>T3r>pxl6|e4Bg}JZ;u|#3UR&vDyzUrW&<}b1 z(=9DT#)7)$B{>M8f;9?Z9jRfJJX%o$W60>S>}S5u%0ecA9i#k5DSVXYD&LV*)z3Ui zY6pMmwc3&4mx6)39Aw4VM=<7s(!csIUqCH#&+V>HJ8S)Bf?shrI5Q^5ykc3s)&6BKlcv5Q!o29?G=o zQiRFsBdhdJODkDQW0MHNBZfUKw$5F)c0gDrwewZ4fnNo7Vhk75R`RYmn4<{#Vt+SF z;UmHPem^N#*Z(!x42>ergW6{62p}PTX~hS-Bu$_pV@q0N4UTJ>-7@tXwDMCgn5Gkx z&qcxfHcUDYOi2stxH0LbcX1(>=!EUp1CLgvuTi+=qcX6|zpqjQ0Mw58A1x0IhMqv) zepwm*^<;72OK%H-wODyL^2?{aiJ+ilj%r{QJCvQ!XGsd^(EWds`V?~oZ1=hmixuc9 zxJP7iI-e*fNEc+nj*?*;Ls6))q#zeVJhg=rw6;6We_J%kJ7B%d)YMP0^3&BeOJ|X?@Ad^%f++q1xJ^(&Z8AP677b=*qK)I~6W}A0gzt zRpa=_pd#QhmE?M;JS3%P5R~;JHzrX_3>z4f@MDPWt>1zmW)^A*abNvpG@>5TuS$-n z*L82m>=iJvN8JOwv7Ree#tLB!4%Us{D(u0Y84QI3Jsn${K$S*;P`V22=c%%v3yF)S!SC3#WuIX$Mqa8mx(hFK zTUfOoklMVQpRgro)--5sB^%~y}0-+uR5<`@4;ZW^0AdQ!_`Lypn*6s zOJ@*22nD1Frtj6xDZaTLqO`vHcF%dVM!O+D-`tt`@uyczq5yy3SsMfdGdusMfpxp( zmI@dnsL+gP)*GyRv6-<-#N{b+G|OZ%sN9zx#)H-kL3rQj%|iPK8x?)#k6#=6I>!M) z8eb+B+RG$jCSi~QzHY---A{r7dJ^y2#uX4Fn1lup!MhWU9~f zyBBEUR2^Y2rk>C@Dz;$F-Q;Jf6T!# z5b{_}`0e!U?ROPx{Idpvucdd_5SQScLk|@_7}3(Ehczvq=*#caTIL^!CyskWfPX&5 zz`+13UDxhlUU6?!P4+4iC<)C^lJ4kA%L_#_mYAq<;G{vQ^chBUA@>oc(YKSF0Lr5h z4-r?n3FO#TFJ3O<#5yH zBTQZWi|kdIi0ryG8zX7cM1i%-mN;Vw>Y|yk(&B_aFQUq6{Gh1jN6np|mnOcCTrW5I zLDUR<>aw3fy%Dg<8cm^+y>^so(9HtEN>1v8n9I@Z5H_wQ=JtITb0qHl?)SNCg;p4p zn~~0E`fdxpRud8Mv%2N*bmjBl%dsMG z!4%hNFugzeJmrNWs_2}}j7EaeK(9bjWrcXDsxWaCrmq(%lvNnPcz4-@{zqM4S6$H( zi~h+(T8!0KKG=`er-XBhk2~PU;Xu>+MOdAQBY&k049oSFivDEFOkW?6UPgZ}M#+$7FzBA<3&HC4=F%W@Mix~N* zr$&wW5e~69zD+vhZvXD(?MyJ2xuEe>hxVZS5%GCqIwL~>BTCyHH)8dz8%>Kje+PjuD05fg@h`-2)4cyMOTPq2nlZ!aV z2(S7w=||3!F8gpBU000Zi~$S7s$^Yte>U+^f{ff$$m3p4r<2lRsM^S>wc_7}(Ed_4 zUdL@-jKA?a^!uoR@a{sX#gdwJoT6sVs3*JPhQ8rEPmb=V;E;&Jy{jCZWi>KxfjR?2 zH?`Wd_zLBGE)-f*V>Lf|(H4`AorWyf{kWELlIEWoodSaH!cFPX(ISLLwRcy>@O=f{ zC)9b2oZ7tkzn@v9VSjcCElE`Nas3Wlm(YWE4PSr8t8jBR$mi%LsRyGP`8=uK@!i7? zM0Ll8tv;c4h-v2n$duhRyHS)YEO*(PnbuvFHOT(%L9v*nPf-z@N~%+e3%i?tkyKLl z%!j78so(Imlr_@^Qd4^yWLL_3%-xd&HsTfPalC1ThAs8IjO~JFZQ~nG2SNM<7wUA%U8Cl( zJy75Ikhl*}v1nWFH?iuBlHU+#oESSfEs*m3F2Z6z>a(%MCiC;WGdw_Wld!bg}Xahh^LG@^<$_qHkc zS`?Nq9%~Vzw!Xhva()5YL4} zSZWqmM_J7qGe?W{JF?Xz`k0R+K0)=TE!r9rAAvqUz@5*dW|13fH&aJ|-Nb7oU-@~9 z1{d~D9r#wUk#+$v5V8-OIezoT_ybW8%DLndPvh6|g;mbs`#V*=ZN4@~4_5nnup2qf z<6s^~ruAOY$O~vYvc8&%1QBWArBnHM{?h$XdH&M9{)aD}DLK5kofC4A(_*ocQmG9T zHHR2@LB9Fn4zesUbcX$%Y{IX>pN#6iqUEF!BYKxzEG-h|udWDNrAb>-3C_K%zr2RI zf;s{k#YC_=#w(6o9aIXw*yyn{Xw*+1xDJs6OjWevo4>_^zLwu$R(VNn264?Od_$^r z=hVITmd%$0>#osnNh5Usa40 zUGUjGm}y$>oU^VI=nf7b!au=0myJ1YJ^g%(7o09ae9IXby!!$MfwQ1UP!y|gwMF^L zZ_hv2rc_}Dz7fliRH9MIj>%fR`_B{Po8da>m`4lQK%tk6b7jgTF%_k*`OGbRt3t*y zv&sysn`ys)c++yryIN_o<#G80k9}{`DsmNO#VF$4UgKqgK~4V7kiE^UtsW17n~rU= zASIRa24y>(B=p31Qe@qz*T8K!d+O@)8H9-XRgYjXYi*I${x(TOz!L|NRNa@V~PS6fKrt9(4=)s@_rJ`G&dI6t-zR6dt_*#?Z2f=)jzGO6?NLvrqZZNTQF(<%tV>ssYr|+UFLx4+)xkCphcc(Z z>%IU`+M)0BoffC!%*(c8Q!5099T;DvzJB0!#VzWF zD>*x6Q9|owEuZM97)Y^~R*<@`cbla4FBX80X1fgPZn8zw)1LDCy7Bq~n8Uil=A!#0 z3e0PMB^DtS47iK8CP6AxqM*wl0x4T#Dhf0VdWBo0R3QQ&tOq8mbJa$1QUOnML6YmX zKDnqm0XQvA8cg`+OPdq^WDNtPF@1Z$pl$uzW>6MQh2miyA5)qM-M;iDM4x*~AAY^JU6;IOV`x)6eVEwb2OBA3WXxkgkq-NONd^P0puMu#>{rY+>JdH1PIO=)de^7UEj`{>c$l{LfqlELGRJTv zgR4BWTbfYqMxpEd%T8{3L;hokL!;74xogKK_564SFnpvYIy>c!GN$Y*gHqc z$?`gwxc<>F$JxO*U3Z+`CrB(kwYtcs*yVvtZ}-LThF5&YckZi;-~6jV82c8Z+51`h z>;6^Uqk4ZieW4p@gO{%_|L24I0>Xk6-tSeL(ATPt|K8k<{y}iZ#qD$3nOEq#Bev}+V%%Zk2OV!?#qAAWBEf`M;i%JoG-S6D6mB{~yswwm?l z=*y@iEm=J70TobHWygm{UQGfa*WIih=Ngw#Rgqg3;NgwrOVSEA(HgSJc^4?sX+c@k zHqEUhoJ7AqWsP!+>)`ZR0kY#pp+W-Q8QAHI554hSkO2NF1R%AOI0PO)KjlOX#{4h2j@_O+QHt>}~PM0Y_6##A@Rs~kPZumA#^a8nG^iJmO(xKMZ<9_LuIG?w+WulWc>6Q zq4MN?1^slHyCHkR>EwC&lEiD{!qFsn_Z3sCG*}z7NDKa9fL&?P{IgfWK%Lg+P{3u; zSAkI_I@@osp+FbX$o9kI=`vpqZ(QS;cNIPDdcSFDS-)v!F7aR0{h<_uZEZG) zbs~MJ6Vy3%%UY$)_xa1sZIyT1%{RI?^NhxLmCYQAKL}{5j_>r{oeNmCcl`~run0#q zmphhMERi-H4rNrV&i3<6dy4|r@G?u58-y?#_WPw45X#FSDDL7{QsWR8G1?SGKTj$f zNDnzhKFm^ZlD#0oOj{eA3mhB|{1phnI0Q-pA=be|lsEyuVyoe)zAWwN-^BMqhC0$E zHyG)7u7QY11gzGuRPMK|o>(@c?)o#p@}1!J0AyAY^L}@`EbXLY{t)oizV8*;rsVp= zp5V0taD_6yN3r%pn(4DcDe6-?2iSB&zL*s2p$nl9u?-V5f}w1JH2w7k?fDUkQH6edh6ekT!e zCSCG^5luVEfrgsNa%~M7S!SK{ES@Gw^1z`syB#;XKT@|_P4!^Q{Bzp&dkO+(SsV7r z0D7?Stds%hD`>a}8+bG_k$5%ZT>eJWMt-7NjLChG$|7Q7Q$W2&SR-9ztDtu&g`soB z_#HsQzKy#=yhfdm<2)Um z%S^j*F*`b1cLXL;6$YWhP>dvAQWv(&?DnwyW94Xh;Uql9k(2D~$IYtj+xfw;o~UYl z(@_NtWfy~{O@;NXeWhkuIB@LPT1|` zqh>bso?EoMVpjvUc(ISUFQ93UifK7zG48nF8^4)e>&8Viv97n16*+Q&96}&%Vbn#8 z1afiR8~wOgKPsHSqzNZZpk3|zQ(Ycs^wn?>-W3DhwUD1r51BuqxzKv+xbgYb7;2Uq z;-!uC9u=-8GMz&%a6U@c72rHS+ouH#p^=1VE83QajOX6ct8RbD=!-qR+YbDYSpigp z(~Z~Tl|Pe#GC5uf*CP0GTFT%C16kEjN-)-fbES&~A?_UV##AOX3k9ia!5^+YmH#!E zE>G}9$%i21Ws!{NTCiF3PK%t~H>wO8jK~RvE*Cy3JHX-Yk44VIV2eaunTvtaTgh)X zIWAt4>=|0N{v4S0$??~x3FeJ&Jq0x%%H@617L-SwJcDegfnc@j5pd?nI3@yi4V9x`g9EdMyt4}hHXnT~I=WXjC5tRN3N*6wSLh?~g1+Eao` zy>ghm2fG9908lA5yevp^xb+pMZvS*plV*FKGn3pz2(ra1_gYn?MlJ$?C=rofmW4%(xj*wU-16Hfy8T1JKen7KPgqR?2=XZev|# z{_zt4-f#QYJADpu#6YfrJFt9Zr-m)pkpq%v2C{X&Ne=%KGbZI9&xnrz6ryg%k9UGe zm!*Kd`F4mMsQb03O44$TfRZ;j?+5q)xR%GqN*3vzFmtjW2l30*c7J(MBa8$T2O2a# z4!I2y|-<@`h+2b4(8x?;Vq=QBYKqlZf`ZV*N1pcS3;N*{BW2?FZCQ@Q2 z3CYHiAL|mB#-_()IWbCGJ8et8Cg1896Ubd6$HELmD-%Vnc=%{c8iyRI{sScrhUEB7 z2|oxvX5T2a?Ex5N1YgHq7+;Zhb2z9hw9_wsclg0GOijXsvxEIz8|mS|9Qi-C;t2ScK3PcM>qQF>BM2=}+#8+_4@Mhe#@)kwOr$9?WmDzpC4`1XCn z(leH{Mrk_p7C5lu+w!xpWbhJTRn_Q~l5oDcXV+R%}V!Iuw^{?bM_w=_w79 zx{gxk^@5B>K06BBiMTz# zxa-k|Z$GF;OQRXYoq7Y~LJ#rBhct|E)BVYhbAe*&)m!noENlC~k|crT?nZCK z2-*VTbmm=I0tjnP{WoCaIKL6|dQM#@&}|ZZ+FHW{FuXBmS9IKkSbd=y`%3!6GwIHg zOmJTr9g~cZ0f9UkY5_ukCIY+5jfpFQvop}fMqgYxQUHe44T$_+*Rk=coju>$w+5!; zw>+JWqHADLb|ETkYV)1nsm)M5JrXUqWRes1yu(k++`z_URNN-0eOLWra^VxEbQZL= z)g;nU;!z{j#x~allP98@rwsZ+ASM*AtrZOCqaGguKw){KnXjIg&n;*QxT|et?K~iv zDC_e95ceMYENXdVXD=?9u1BrUEKm=7^~kVu^hKvaUz=aqBZNZa1z#MZb(oh-h2+1A zNtQhTw*QZ|TMhh29EvU?j}PvDz!tq6(iW?n`K+c@f?B_H14lK#v@0|yp2~sFS$U=6 zT);U%kW!#hHBy=oNTgfoG?eH7wzNBG*k3urb!0E*zWfo`0))1OiHV89H>&qw?ti%e zY)J{xFuoK(9Y!GOYXJVl$m}ux#CGGB!LGeguEi2p{y5s{;Wo%R&Tkkke6f!4h*smy za~xsFq#$lqE`LaHxI2l{c(#TZ38jvY8;Mev`u0OA-wx-=WI~uS6PJapHUZD&t|f8L zkbBai1~M|&b_8gtH3th1VUv-$UaX0_)aW<)!{}20YA;yG&KU7Q47w(XJfSHZ8&i|) zKe{L@T_6Ud=z&ygq*P`U$|P5rHTVit>Mhj}-(tPZRauro=5f)>xxQi{&yLZJn2gms z)Cf1Gwvljl2Q1F+fG`xe1H{bVng<*Ys)$bblj6 z@tUAvP^N;x2lAd^Hv>irEojHRC!USkO3XI9iT!IbI03IR!~UJJM#0_mjf>f*i`f|} zSVCv=db;X@RDlfa$}?m(&+J8>{>jyqLMjXC_Wg?^d=!F3bJ35EiF!u}2b7gc}Y&W< zP|4t|-XjWG4sdT2(#iWsmhoNA$NV5l2=Jw!I~y?Niq6_5MBQ(K0vvHa@FMshi6yYP zYOhxKTLl`<%fe3K7t{t8o=BzH#|K~5+L^d{IzpE0bF8tpLzI3tv}Qru!k-{3W zZ8GCsw9)YH!M*c`nv9eoiM2<}CIoKhw%acYrXbt?PIrE$BkI04Qj?gkw6QV8zdYHN zl^2y7{wPw$MT{0`Z3ZFiH$;dF3o>`X;&80Mq0ZseLpvZ6dQoZq#&ma`D_!^_qXJ&+ zEHiB##`VkLH#YG*`<_aa=`(SnUEjp%VvgDH*@s`Ewlr`XWZU zG7sQpU)u+liY>qqmWem76XMUeEZi@(7c;%VyQJdV6^`a%QK0o_HIorc9#;5le}M*M z6r^Z?x2C#Sar=WF0TkEfSS=kLe#`3Xi2;#grPGbiaNU~(1_y@6BxqadD7B%U5W^;w zuiv(Hy;}zEaRSiDWy!5p_P}hP3KDY^-PvbVLN*3u;Hd@x%-%UJ=N}}>#nyQW)moe~ zf_D`z#@iBU}!@|7JKovD>#l`7I;KORb3mJE-egNHQ77d@RXAO_wvbZV zA|y3B+}&#bu>+<~mHQ*fVl?IyBT^wIA{& ztBcG9LH~q{Q<*9L;Q4;xi#kgBmYH^X_!0*jL6#i&&ts)5KqKu)A?UNE+us~ovf!CS z^tJEpClfRmZUm9uzIk4U#JA(+%+u^qVdkQX@%ZaC^9mz$QJLhmQT%L)T`QSm!l7hH zJ_WfhpGyZnU(CIx0ZvqNf4DRLrI~R@bv)|n+n?*7q72tc%U4ovKCq6}?SN^0xwJDK zZHK@sZJaUD@h@Lp7H9y@%a|6Jp_2fR|0l@(EVziu+#OH{4j5~>3VztvzeW+g<}-Pi zTC6M%$j{CVIbvTxeG2%@YQ|Tu?w#z_PF@*F=SiXmLU?Q#;ukuMSnpN;OjW9O;`#Z$ zTY5WZY^jfwe~T(6*8+7JzS2)x0yh4-Au8{28oRh9?Pgfg)~Cfw(-fLvYrhDA40-pI z&EW2>k*%iScOPvI8%bZ=18wbpD@$Nl4Uj;!$X7-lH#bY*8 zYm;AAa z%-cI&zR_`gubmccJNz~AFuKZd%Un`qqdo-Q9_6pf#Vnjk0QNw$`gByp(lH@L^no2! zjX}r5-kX9F??$`;bzdLi^Moz$sCkzzCE1FQe&KX%zw8_mMaJTZJj3$E04d-SV5dTZ zN6^Db`e;6r$^m51S!9*!Bib*ho>g-cKFzyEPxZw!lAkTK#=5R8B{pSWKkAvPZ<`t^ zZO0cYFlk&M?b$UkrH}}%pPV`PQB5>@v1EHd3*<;uUT=xOjzy&dP~X#mGXMA95poq| zSU+9YqBJ+gfLw=NdrH@$s1rBVSn=T9Td^O~XcE6_K;QUBH|g^4_#|zKpG~m;d5Ym@ zPchN6e>uVa=U`j;SxpRRK$rEWmcf_jWFkI(VvA$frx-dUmcgfzMYF&8`Kk4F$XvSA zV8ZTmsR62EW$cwy=I#dtbWu@MJeyRfKj~ivM_KT&t=czrta-Lgj2=>D;Sk45+hmc# zAmG@+qoBfRqMqR6VNl7myfTv6fC!<_LSe2h0}y#ch4l$?RE1Sr_X%y9{`bxV9ABh& zjeyDpDkr9qh{o;J>@l2IHgYJ#m~;49r`+o1J61Z%-=KYz>gzdOV=&32nlvY@Gai6@ z5Dw=wvPzEB7}T@npVMvYK13Xr;dz4&=Q5{Qyq_53s!UEq|5% z8veBJ4=5~4M1m2zf5hyL+=W-jt*S6$^U%%l8bo;cm0Rld`=e)5t zr}eYr^9ishyAL~0U+4SmlZaFR`8o`fCy57nMvHyYk}AU1*L#umDap+p{<_uPOyTL> z>q0M2tWK{sdqdfhq3G$0+DJf-yLW{d2=PsP?gSblF(&Q_j*|oDk8-_iSIGd_jmk(S z(eJAq!@a#08d6P5ANu?a4^W>|*EF#V>!DA8G31iDAjqU_ZFl$Cm+W52cryB4n~z!d zS*sLYYqBioCq!wys|Xsy4V5^kBsCao39;l=)6(edHZuSo?BQslT7hWtl{9E8q>e~A39Lu0Nk%?>$lTwr@Q z!-mZwMu7z>@{!i}BRzyrMYCIptC`LuawHstePTbZ`M9Sv+?goUWp4^%a{)pp=A!~M z5~Ow|dePcd1`_;17|2Rhhg=;O-9V`f z2tAZb2-UzLMUK__qW6UCSm13rHU*VLEB5nl&?#SZw^Z3(=$t#(VJ8_2M`xd zU)KhY%+?GNAxb130=M4Ll^lJ>&H&`Maok+SS+*s7R=K?03h=NFt6*LfU1!^v&2PDG zzqjKV)u2PW#0>2zNyTHuuJ{jSgs zIiJ!&Mi8u2{&hVjm8yh+r(6Ts1wxG6sWI{(Ebp7T^(GVkl7Z=$*psDO^=2x3jE`*Z z)4F^2VV%f6qd74E{5C=iYyGS5j+^f+56&}8qc#XDMO?sws)>7^xg;e{c{;k)AQmWk zQ%P&o-$^_Ty?-?(FGA(V3KucW{AFdwi*Jio`tMuB94`+pls36A)jow?4lmb@mCZ_h zWWC`ive=)%xWlXPmEW3t!JCzC&EUr}@EZR=G1>o=B~5Q7+K0a5{zn237_&l?;C_iV zYzSeXA#&$Anu*gJ9jkm9rg|*!gd01X!4Qv9Tx!Z$K)m1@68~U_lX3$q)-kB2X**x_ z-Yk-*v}IzfUNL)_h zFleRn;gJn3DH<}-(59nJYu~_Hz%G#*p`Jc7F+(XRoB?OtRW4s$=vq;Ey0A+jW5g_c z?N~OyG;UmH>zd~I1uvCU%%v*J+tG@s`za%cGjF2JUr_{%w*o!r&TS1Z{tdPPjBk^974n5 z6d&flVl*k}L7!I*6!7M6n!t*O95M^uVy>|E3X;js(rx0kEUNcRXiz9>5DWc|Iq|U2 zqs%1_mf1<}QN2%grMYr6(E%6HH#(FodLbcx*cTm&M1s!SiCtNo0SKa+kamjUe911*xX_WV(yMieyph6AtCocte*pn2oBRvNCx`GOp4 zSRw8o^*hzA&6WJZ*X2(e(gjmlcZ!U&{FK&Ng zK4-yLMtt(D(q)g?t+!&`MpfxaA9s9Y!}K?8V;7=)`xOzSV>uuWL6g_*{s`yq>(`V< z>;ufHWqc?w`PMYMc3m9bAs)Tr+In>!L=ydDHftN>p#RyvmCYgILXCs8YhFyLzU^|H zeBO;BWv?bzO+34QOlrmlcZIPi;$i$#(sXrI_GA}65Q|ruiu48PWJXcV8_~4Jd97T( z_BD|iVE&e4t4u+D#qfXd9HF@QoMYuO49d)1avFw zPQCe9{^`+Ds9q{39fImgnLv8U^8{tYROE`$#NY!>FT^1zj>KBd2c6Ibt(^+fkU_M* zyoHRUxl^~4;RjGqtS(5&5&x$gz5M~4-j*!AO11agz6Z@CiA#lFCxj#&4|Q_CoTh!s zy8AUpCb%ReYivJ66IAUI#q2gc;+nn&?2TqO&Q0?N2pBaG%x6P{z77I>@p22@X_{y? zV3YI}u(8ka&hXL{iY6ycLySC%c}ZRh{lQT|i&N+JtH6qr>sER~wR_Ch+DKJ!l9pd` zb^I4e|%Z|A_FdxRia1`ZXnSx4d6!k&l;HMPTgP%{L3@2JP?6;eOJZLm- z6k7A86&dR3B?Dme>i1S{K$sgL4e;fmBhsmCj8&S<(0>EY=9o}u*pL#A@JmAMLw+}y3%j?+A9z0L|YzM1oFxpUw4EY z1yhkg#n7Dd0!g`i-Tn`{g{|xmK8iPG;y8u*t^DmtA zbr@hhOaISEX7QmbXyn{;W@ctLAi3*piJw1PI0${99M-uX2#Y!i-cHEeb|y>5~T22;nra3nAg_2gv7@KOOs?BMj-k=^h9I#*5C@Xbv_ zed>9WXTO>yt*kQ=sr@&J)Ld2er$}JnK{DM)jLK6SS5w!`)9YPm9Ib@OXY`eas_atv zT+IgRVc~t67;E7k#Tgm^h^rkTM?+bfrx@8y^{=((hOh`#u}YSZ0uZyKYlW;PP8BM{ zB!fvaQFGg&THak+vV8+D>Nc@1w*;_mO8ulnQvehRFUG7H-OZr1Mx8z?haVOdOH$QA zq7j=vngX-40LI-@$p6T*boN1=$Z9R8s$B7PJg_oU5D-fg78sNU>lPZTs3zRX1}3HI z<`?SHKIiOsz`n+9Cpm*4s?niO?)T$7k|>S)b)p3*{Ba8xD{)>la;cYzOPmh958xwN zd^My4_f9rF#uLMQW?ncBN@b@7$Z#Hf;h<5ZZVuLM9RjMuf9KQaYS z5~HV^-VQ3+VxS`GC%T|#TSuEXiY?8)TQ((+mgKlp5}#Co^~2*dd<`$fHQ2&WiOPDl zH?E50c;Fxt909o^N zf*}sKotFJ@ZVrbH3IoYX_o#xMovvbA^+Z#t>%$O-x;1xd{FrD#C7Yq?DZ{peZhMXouYOR2sE39Co<9#7{mXffrVFcbx6+y~z%1Nv_Bmx`SbUyySgW+Ei~6JyF(RD| zt*&a9ONYox;KcfUdPJ=dy%DF_QCszBfa|wH-{wrA&;9*h_x3?VBRx4`kP?gAjX|T)cV;ldZ>hM;Z%L3Cy|Z3sX%$_-6y*vrr>%;Vg_Xv-Nuiu* zx-#g5a{C{j-c9j7?!UhLtaJ84YdN%zamN0~#z?y@f(R{uRy2YoRvxu1u2D50GWa9b zfIykiQoH`~FHe_7tfI1kO#4`KOmO!5JMTdor=mE|#&;JfRzyZU)&?GEb}1@nyf(Sc zW`%TAftTVVO<2V2NLm@Zl_}TRq^}$aZ`8dD%~~J)sC%MvlUIgmYYN{BDvPl{9NEh= z4S*AtDc6V+kWPz6UCUc|6CG!UU!o{EzOy0frrR%|P1=;+lqKlK)eb3SyA-(5?Hc4=KbT!oamzlG!P1P)igZea=oeb>m#>@_ zrUNiE5DGdveXNCT6qjRy0)CN!;_}qDFKi zxd|wFQ`Gr=cO+Ir9Oj&_xH>o%wE%=57JK)|btErC`sDqeCf`#`ZoVAT= zHCzfa!Lu-wKd4WAdWF4+IIpg@~Q_eI3Q1cLT%_l6%*F$VrbzAe0t#v|+|V zx=!fKv37c25F+`leLv*ZER-<&5`lm0J%Mx_$$}o{tpUASSqqELmSqSQvlg4Mz zJb7L}c#mk2Ymu^M2KloiO`w(D*!{wXL0@R)3l!@POMc;eSBw$Xjs4U-QM8E52*2wv z8mE+9aB0r(1>t_}J$~-{)mh%W%}8Bwk%4%H-w3rWfKXqv{Ebk9w;rziBR)+}Z7#>2 zH~5|pK^#wG2y(P2(Yw{;t^QM_WqYr zyCS6$Wk#CirYlW8MFP=7U!A$m>f3E2^jiI(<;(9#$IB!Pj9H?UM*$%7!x^XLinN3% z({@!Q=@yx>OB%Belr5T``HsN|?H~B?JM^D>#_6aEiw7BtNt3}Nm#ve39yJQvcJY+C z<8f~5SFO(F2LJdgFu~M26lk9BWhq7F0CDAE)RK6uTf!BF%IQgWU#!cOxP7|h?ldnr zmsLKrebtMsp=hT%EQi09#2bFS!nQ*#KFV^5+qjgU_08_b7Pt|oSETCU4T6Wdh?T6V zdt4b%w*R00{I9&TUW3B;Un{+okx&E=4Zk|rJxmIey_gqTVxHdoCdmD@pH(k-@$EMf z^R9TUEzdp`3(!z($DO<@eV==Fd+Ddb#%Y}LFaSEYtp*x(5nFIqh4no>W?*Cz3yTqy znoUQ5m?dMu<$P81r8H)>H7^#u%e@cxg9g?f_}=FxcKQ~=M0L5CM3w$WIVD2qZwe4Y=OxAFlwaz4O>1VAyHWMyBedaw( zn{2=C3IXJ`&7iTj!zYTgCsI*jgvj(D)UIV|g^0YPZqLVKSkL>blAWO$lHT}qT(wW~ z-ox|KmHNV8o-Go;i4P=5A=iy$^=fn+JN+N@h|gQ}Ft`ma6JA_li<5ZnSV@W@>WTMY zhWmXB+Pvb@_c;uoiyEjNoFw~o@bLNnBcWgch6$G|K6iRsu}JR$a=+JE~f0=$Ed=Q&&P^yd+`8f%spx~ndjv9H3kJ56* z7e~Q9e?cwaPE)rPJ1^f|X`u(mv1-pa49?eN50RN>a&O{f?b`C@=#ns+(s-o>*zWB0 z?Hh(Q%KvMrbnM3SH)&LHy_5Ui@kP1&-l^mrm(6{w_^fPJoe%5Xo|bSQTSNSI^31YF zbIs~H6h(Vc9ish#b|=bK@zpYvdw1U9Fo$f0KM9834oeQi=-w@AF^3r*x9L$<;cgB; z9uSy!mWp{c>lU%82<>D#YS}IN z`e(HqV*z1@P{-5PYEWIb&rqjI)X2w!a@V?UU%>Dp$+r+aQ?R{IZ!c&37{* zBEjJc54jyqw-PMf-$m0jFBmSfsX&di&Aj@b7u6&|;f+30>)k45UuNIXtWi<>o3<2r z`!mfy($p#XjZB_#yYglK8kyvms0)6kyFzada@WDnzvZ>Z)4Bb{-owac?+3_6n;Uky zYjn(_+xR(a6kP5o(5lK{29pMurpACytZPdP+Zh9+B2wE=Gs%SKVL#*f~xpWCLmf|c@UD@qF3e}iSA{JVy{(C2sEhHP>dS=HY(d4Mk7zPkE!Sbt|y+D~l9GJQt< za8+*RyHs-dv$e><5km}a!bZ?&Y4XW*qYn=aE$)uGg*`VC&`4te(T*B04VMA?82VqH zXI~8BV0OdxJ2AlC@r?xEmVlYNa8(R7gOZEQt&o8I`;P4E5K#yg9ahF=REVf?h3t5G z!XlG}6CuT4M0UKG?~wqK2SY`Abg%mr zzjU3Jw|zsn$9FUQ$&J;6!5gEQAc{WIu%8-gSX)x~V|g=WLp?KpXxUZG^L4N?fr_fA zFFCOcr&FVI)g!G^oPHUj@e8_Hg}=Y{|053X3~2jIKN+aqw!U@=iMd#PM>f8q?HoQ7 z56b8G3l7!ak#f`o48V9)ZmM8hi|#v_A(<+iLi-`#(l?R9D6h#X>Ik$Yz%KHRmdPE1 z(P!Y0u+zwGMhVZ`$NhsITj$ef#K15qmDlKEM&6N5DJK(@Hr|{h5Cb*>qM}IN`!=mHE(d?f{HVmUDqT<-GX_RzCLt&Cu-Il z%sXG>LK9@B*Vnd@G0YZ}cwKNq;)Qr2n3a@Mm+8 zgX^!k=+7k3{U9f}@1UBnb;&syE|BBkGn><+%Yj#Y4z&8b;qm0?TH&q6kIyksDsOl= z=JxZCX{qm}r(P}6*z>yewpf=WFSOM z0(K6>l>DJhmJAsFr2vWY3L-x2$MxRFl3#meG#CTJ^&wRm&2HV(IG;$a^Psm@jL$ zDE_wfJ=m}0lcP`q`!SK=cgu#CTT><6d6!(tdPt%X2U~O5Klp2pTp7imtKOJvc8h11q@}gu}fuRdO7_c?CEoEpyN@T3I=&>3J z(wQ%P4R@We<<&x+WGp?e*4)02QD>!n_lk(R=2!JFfCP_o6^kefrR8eixeGw;yw2u2 zA4}Y+l>=IZKCruYe(D}F_-6V!&aShRrHbW!xJqg+TufDLSp8a@#P;{(;kdoI)u#Ab z#1}N2Rx*$yw6_4_2Nc}`f@B16L@aMzjr?DveU%f@kW@}t5~Hlwz%0$TH|RNu@Gz>MQzHBJ;oDB5RF|RgR`0kj`jWgD81;GP5uLVhh1%AqMCETZq9QY6R8E(HUzB>N5BiM)!iq6 z`Q>~N-B<&?S;pSDSeoVq=6YMWF9aR{0hB3iDw!s^p-E>#O813EYVX@0hEkLOveK6B z#^Fn6D5t%b>6gu{bZCeIeJ}U?$SCpfBAT%-5l9hw=f$ z*ZJi3wJ#axMTBpS*ZBWxZ@$@|p#k3izP;hA3*OD;y7qDP*EKm43G%lV1 zFEKP%AJ*Yi?K;`aPP^OTk}VZ8SN%R;as0tL^IW3?R26}K=z3>130fo13Z2_JRGGbdaevc-9M2%+4hIbg)aI#tpL9XSW ztSr*=Z!Kjw>M^chHkd!NruZ#~&TDTPyOcz5^Yw5Z=YK%Poqw?qRn~0_x-e@HMp)41 zdDZ4MkeJ#Ze0Q~wKh}G_KX?~RFOy=j6CHTXHIT-j-5*h7qns99JSb|$v-!&;l%;Y8 z(F(KvK3W0Rf}w+d()~C)AfZqlPL=7Y7Y<+Tb`Ihe??EPRdwn!re@6bd@UqugTl(5g z=>SheTgKy+$bER$n| zSpfl|8YfN1XFMd4(>$6O7v8nn*vwR5A<0cGew!Wy1C;OhdZ(@kq=cI#ew8tkOF}H% zg-^mE3_J{H>JByUYaViJ5vbecf(*mQhQ6bqXkIrVRu?qGlp$B$v$mfYJjPD%e1WNk zPoY;3%jw2x32Xm1QhAbAU?RiUIDV(1wk+Kfkzgf2a2%0~wA3+n_ikq549^?)w-1RC zS8G4L0KSj}b{X0#P^cJ^VZxFaXJPO0S;vP6W*3pS&a+SI21p+)^8F$oGtcy)yQ>Xf$ojs5VV5L1Nc(!PM#aNfL12i<4hyj977Tku+lIrc@>M z)`0tQqX|-qc|74Y5;)3emSyJkinFt}>!IItOsD-oJ85C>`f`Y04dbRp>nBMYgIDX0+@Di7RC*Oa!?BJJ`B}RxqhMvki|oFd*N20g zslAjMqI^!znModIZV1hW^8fk?ZvGtrRrLEO_#>_-ncBROl0E@Z3^BZXF>fuiZA)qC zn#v7XXO;JKT}F=PT{Ta8lKEm%o-ENnp>0VS-+^X4cG-E0#_Bq5y$5zYl3H|Qdb5=J zfpv2op86gHV1cp6)7JWQSyTia6Yq!%=pGHEQ{$*UQrPY;$^_6~M*?dXfdr_+oq5V! zhPSi|q}D4$*vienTBopqEzY^@mv9=CobT@MT>0wvUs(W@T<^Z8Gj^lU41h@-G-Pd6 zUSPtO3?8oBHErC|!uhOCF*`0L4ts3?dC$EAR(rYjc2%k@x${!ZBCA%!T&G9FM>!%D zvU$(X5hOuRhO)X3J{1hQP4m$I95iy4rB^AV?E;LVF4^EQd3uYxmSyisHA0txe>jPy z{?+fvob`Kw8^07Fe=2^<0ge33Y*M|<$^b*>j9vAtV>-wvLG<(JZHtW7uk3gu_jXANoj)`Zj2pqMO zRBUY(4g3TT*1xuoKa)B9I_iLsCeWs7Y7qgzOucIt?|B>ZE`4;pE0D1RsN}IekvM&& zvR4VgTWuL@D4(AE)BOqw4U=Q<#R6TLz)HDcuXTEi?=y)2Q(Rm@e)x5FM|EpyD!zLq!tWS{Q?EGP=7PO{~nEn zBcc5IRc>=ZD?;@#32vZK9efXkfptS79XiLE%Z4mkU6n&@Tp1{a_X+Sk&A{2}2iHMh z_uy@>B8Qa2z$R}fDES!>b0-Rjgv&_K)j$N2u-*471VD$aiFQhs@N!KAG_5dW8i}1N z)yG_)X`u|G?o;6Su&s}oXzNB(C(tNW#Sp4F-!oC;pkMRDS^-y2(}r}YZB3s6>I)UR z%cyai&8oV&1~S}HAg|1LOi&V;;r@ScZ()I(3{ z)z`Kxc+QQFx23Tk6YgIv5dCR8xX>d?RH3UvSn7{k@4vK5xX-`B`?OvBe$8Q+6DB3w z_(%J1pWnH&@Acc-zy4nD5jhFoNT7G>Baf^~Z@ez3!0&DyLvG856!8;Jbh$L$s6G5O zb-D`VxGVJ8A&tj7`Av;UxD*-Sx|D^fuaTbZc8>#AiJF&6Tkyw7AKTteXLSt8R&TBkn9n2f)D`vEGph!F@~-?FEL4YjQpU z6}tjoM@4yGJqy{?HtrM9*&6KQ_n!Rl#>ruH;m2~sVZ&T;!M8zietSdb!FFwe;=Ww* zE;a?=Zn{#&!Zke~hnK-A{jzqwe^#ULP~QGGQe13Co*rNRTXQ^phN_;!{$_pu3{@op zLR$xkO+-}lwW!-E*^CH}le48_2d*8(Eyn9s?-@KDzLs<|F2fKh((8dxyPri+EJ)SG zCG?nxY?yrY2L!)zC(%sZ>;;wA@4 zR4wleHfn8mO;@lUP_ipdHk2^^Lie?=w!Fhb1@Aw$tSa^6p1wGSe|fop=^p$fId^Z7 z;ZbI4C8d>v;{6#*d1rfRg1|G94$LY(=KXa8sj%!U7kw!TzXsBu%`Y>ir3*dYES~e{ z>Ew^QdG%M_vc#OlIX(Yfw;X~EGdZCD*gEh7!BPn~jpJE8w{)n9bI%v-X|mLz(!ZuG zw~M38OLMGc5Q~M02@yXITtt$0o=fP()9R0gpAFD>!0y-wY(rM@S;NprG6*$aaX`|_ zfph9z&mw)@0Cz!B^@vOyirTzsC|5J>0?=W@X5xM932CD*^6dD;rkFsq#;?M6|e+AZWbS`BA_f*OWcq&7)?igHL?>ybVxnp+B z$hRmSeCgFl+MdNscIKV^bh0$=_PXS|co1McfIVq`5xH=0Y{U|JSeRHnd?zA112hEN z!aNpH_v0}t7~FiX_0belvsic@aS;KDzY7<~azJN?MCTTE`YhelA*n zA>~jMe%<3QzoVTZ>DkSXdb3--*KHs;{Dr^#_EV>BTA5%A0{e!A1MdF97c%ag;R_tU z@r6H)%DD|P3frAcQQ(xZ=-ar&0DMgM1*NrepWO@q=L*DYAYWt3&x#Pq;;=NT*HsQ5T(rO!QpGw>Y zCKDeC>(Vb2s3=cNphWnh;F~i8Qnt6%4-@uu4$p@S-Y*m37j>LCczAhFURu_yyMKTB z!Jfn>d?Lftet}m<12nvxYtnj!x<+!I-19HIwzS{F$~Y+j;ic#2-n3IMwQ)=tGA=&| zo7k{kD%Zr>PXEq}s{9)$3;un*|F^a@p@`_0>rF53O@a%S+z}Hg9d!^+bVbIaBFWDc z%UhT9cxB7NBESWnDiM;sMu#~WY`@f({&ZdgTb~>5 zZ?!v<0w@No8-qA9%!8spG8lCx`!ts1#f>Qb>)uD;B*KzrJaa43HGFk>@L6MQ&#IA% zNM*;TZrjs`1=`nUX~OFdZIV`#7EU^BwZ z4W6`>ev$hH1Oy_^c#g}zr&V#g;%xY*Ke1VS%t;zlHKsFYH3xhte8voSlIg6OT9fPd ze%QD%mj@L1P}f4jhxXi9?KxId^qAsm^q{SG=1S7~s}#Cvk9Thp2*b4+XQqg* z3)=6lQSgZHo_^Z_WIqh5qN`oOv`SHT=P!$GRBd;%IMGNS0ro0T&zan+84FcaoCatN zyPs->1->`A3&~RbUzMXzr)ax-;t^x^+e3)5Ni?|ZahC%lE^aZH>G5r!>Lt`=V?k~~ zKFZ@Ssb&Oa_V}#I<^G7W_m#xb_`cD|IRx2)1DoKHh?}dt$G8|<1u<5 zKZiO;gIeIn>aZ}pOt!D%?E^ywpAq4!t28~sa7v#BwT=B3skc-J>u&+8&r)A*!i6>1 ztLEzE983j$M(-oVJ4RF*7ZW z+#T-u7E0TtqkY8{D9ko#BKnzaCEaExTM781?e2aQjg&HwSpx%`H|l7wwhWcpX_mf! zNbKb44+OG}g7Oi#s?mMWFwS!Zdcg(J6h?U_qrZmNK^DOpwJ3W>SvkLPV zE7hFcP3~in#<%)DOM@HKg5T{yjKcb*vLTnv8ZJMO_M6g(7I%x@t)|ZWT+_*|w-I^-lds}j&PuIco}jxM3?CTBCD`bG87)cp4pM-A%iCx`u2lCQ2a zR@3+P#K;qe^qum44f%Nj?3oHMEU_f6gHXaicAzdGbVHwtJad=%Er?Iv z;Nv3g;k@Kja>}?)iB#tufg!NgfTyRhz^pcv#SgDd=rB961l@T((N0Zhd^0O&Mo`he zfZdPJ+DUjA6bQpB}zAx3$FklBnpJepoP1<)Qt~aVnvu}YWI?B1)Q^m^Yj@N)5 zoLZ_^C0>h~aq-RtAFEiOClS)p~JIVd9}m!F6r|YSm@>y_Q;h(@iR= zI*b?3XMh5E1@Cdm1f!OY1HOb(k5@&Qdd<-he$dy#<3lZ3%l(fD3^LFu`a;TE709#T z9^!8%0mnPGH{ z_e()-g+#+xYYn4bt*%<*SIVKwE`4N1+SFd&wqU65VJJQ?y%y_me&g7%RX;xJhYU#t zS~IzpW&7tb$FZgitSshQyj>= zgD6XQ7?uW@=oU0|`6FdTT;s?!_&95y>^Kbg%`8705MDy{OanG3YZ(~0B-qTAub1WU z?OaCli-J?OYf^LDO5MhCPv<)YI^>?zf$A`?UQurs3G(&sheKuuBDa*Q7B>j&{9z&lC%c-B2{=)R}7Wd%#vk;|D2jLf5u<`5>NK z?D=<4i3Qa~Rh^y}d9@^fh`chm$Ih5_pz7*7HKLujGi2#}i5fja(_34Gv4o2lnzMX^ z{{-l@0dLm-Nb&$jybDeJBPRs>-OgpCJ!nx2TWf+DYIur|eN^6vR=Hqm#L=-j>QHc{!`YzSRajpr30 zyOCZ)w5u>E*(1(jzM@6AuYVz_=n|2ntSD^Ceudu*^LQOA!}=yZh@i~2*rRm+L?W8Y zxL|=!2S~ryzbEEwT7>p}7-)IWr?*@!Jn%`;`r)4J?ZLb?dEHj_v-#^kak{Z*&}~fR z?*@(N@|$xvi2fitetuLd{9H*J*;{DPXD3xdskqb1}b)uLi)~<*lQxx;*#&?x>;_<7;9I9`fOr{$f6$UOxH4Anar&( z1RMrprM$xW1=-FjgvLzmjXpfa8TU?Qfvb`gl3oB?yVo4gTQ6eLpDxD-Jw;bFI`L?p zUMQIv=uk59i-IkZ7AkMB58U0@`DOi8?En9lIHJpUX(dDd=qtGs1dY?LQrm_@IqMit zv}KvMPx|N+hsHDsS9K7_L}=Xt5|6I5CV4di<^68QG~7;GatIN#sn3RlVZ~nYK=Iyr z->}7VnPz6PR_lZt%-f0E_A;88Sve*$e(ROtskIwYmEp&Eg_WPIn}E2Ml3E~kVZ;nr z2jI7A#hO*xEj3n^3oex0pF+)>lQ`*K$sg*&TwUV#R^fKzX1#1trNTAr@bn8l_I)P+ zc=c^91euoTUs`_Jk}k)3!+mSu0sjf+8V;6G;I_rRg<%}w^ltkqqJJS}K1lS}9a=6q z!!Qc|4|gaYozc#wl^1ZGR<{M6rSaCB)V#~gJDT3OK$@Zv3^@@~X}`frXHUqS4LWh0 zfW%7a@oZ|=E<1S7G&Pl(7g^a)2lm4oCKr0oYmTc>dP6gVqzNp{2ZKxagK+-LL)Ldn zr5iONoDv6jj#p|=^1!25EEee9L8G&;wUCa&kKEob|?c+}&X16yxkO>={( z<0D~ShCSnBQa|z~M$fz-x>p^E$X}ZFRS~a^1$t!i#o#x2cVgdPk_~y2{V0!Cj%RW- zO78ELvdXW1C?1SmK5qG(21`Qm{K9$K%Yiepzx=ONazFq|STOcOTb#+G0b<%up#0I; z&2YJAE*Ox00~q2j_932Ui7W`uFfK~dA@|AeBy%BcuhTL~@K8a_rYTO?R-Mc}0$9fB ziofW+rXHe|W+5+mVh1TW-gR5{JF?E?lTT(%Qjg=(%z66#ZVS>u{}#mxCRNghu>(*m zmh3T7>v#hDK_g$2jze+lH^O<@u^!K?C z&wl)8dJ;I5cHQt$cy;IL+D!`OzknbD!M2&pBUiig>*9gu_X~ANtM<~Q=8{l_9!EM` zI3ZB*h~xJ0^2%allcr8fPqDD=Tu0ed&x0lYmYM`_Jck2Q9Wi&5E>o>2s+?IWv|L&u z36$^~3u-@Ackq^YwS;oW0jxd+oKalqgZLZ8e$3i3S8}m$*kXQRMe#pYVCvThir~ zT96UHL4~wWFHTja&*dBI?J9Tl_ylwagziUyBHQ6773E#geL3>K8Um*(jvE4R|8+xv z6@oqseOlOvc|RfB_!!+1K^qUrDNhNF=LqezTEE~^vcB4JjdT6AjFGp~TQ4~Q{J10! zZoGimEg{iHRzvosWIdaTC|o>xxjR|ZY=^3Nxv|GGU%cur-JbN#g@eiEi{#YB2&|mr z;;@SBVV6tNyS&R<6(21o=5FV&oasEE==pXUA!^zjhGH&$@TvtHj_zQWt>>1Q_n1$*enE~Ge$-W*_;^-$KL>k$8 zo0{S5?%ya#Wlo$9kiX$MZq7Y3+x&4W4I&}p?Ixo8#Z0hkdIc05o%i(0UbqY38`J&y zKZmMlHG1TpUfCf7mH(J!V5Y7ML)YrW?GV;IT`h&nnN@pMNwSCdC)b#b9>&>>8;ib^ zN#48MOqC}|DS8q^>7J8QdUqzxq0Pm?Liz>%B=T{5c@%F-G?|5;jaDj4GzFql^%p-< z{Fe??;Wt0>hdR)|jD1Rq8XJrr+tu?ofSStJ^YxeK#C%MYuUV0%EHr|RcNa^z$d2BA z?MqVaPpZy+!Xa~ew6jBW`ubYG$4oa(lKit_1^uJ+gr4n{+h9GjFD=)Fx=Jd`A7#O3 zFq^a4-zYAesv25?Xo*CtvLB2=YpwYF?q2!QgqOS)XxzucNefZwOx6x@>kO(ev&rhe zED?RqBJ{d$Q9B8w*pPCj(yi+GKH*^o$>|g*jBa^m5fPOB3)0FzI+po8aQ-Fp`_u6! z2==k)6ZP}d;}--AcLhJxQaqE`49J)}^bLhAP6cW;-)Gcyzm-j?nKZHE&iqg2N;QfNNgumy<<#7c8BF|}z z97R%0Mz>9sGY6ExA(IH}Ps^!QSypqMd);F==C&%C8)w#=6muDnZ%)1l|?JTby}b}2+SlNWS8B@#3J;>sLEON#>` z1|{UBzN%M#F!GwtX1_k^8d^Lzk^kVQBdp~`Z=!5GSpAo!ue(K&*O~UhA_mR8nLh2py($KR0 zTy1fgX@l%?n9YyI^Kk9ws%UYGneJ34V4%tLo)3c1%Mu!+TMrE|4d_-`eMm1m(-*I3 z(tTn?WT7Xq-R`-7cm;n95ZJf}@Y@^eX^HBdFIcj`nX{b#oLhyYDk-%^NOXeFH_IJu zp7s-hNp`O!n=CrRtRH>x^PR1)=9-B|W* zh^-`*&(0?8q)^iCmkEm|i17M+5a|k?{sVi+_#hD|6FHqn5-**PK|%Q4q>>IgXCL2b zK2^5Vl8C#9i|p>z9YD1ReuJT+-3Fc2W`cGJ;q07H9nPOUH%BTDfz}il~D^ zMhL2CdRS(wiAPn$SG+Bw#jIQPqYOm%Yi+*Sys|?_O67%twMu=%?y1akvMMZbQl<2| z?v~oRs;r;36>f^)Ay9) zmqR;3xyIHnu^H#C<|z}rf0{%_6q|LKW&>7-rHT2x*U+w6XGnjT{{L`~FNey!&aK%9 zk?ZOjjL|w~niIe1R{yf&$oORJS7fxCnlJqm2V(#WpD6dqhWZFMp3X_wpLiyq!e-Ex zrx@9YJCmuaBXh$(Knv2-wz{G&1%1NLApA1^<19tXE#Q4W+>I?TZi}}D)|E-e5=rEM ziDd@xkbEX?manG_l-a_$+NJG22wM*V;l)*^7G?bNu6nji*CCm4 zo~_p=%)<99Hm7(CW$GgJhtd)iCAQrxN*}ZJUM(9x(|ME0!5qnct5ek>&LrycugdAt zUki^y{!4Y4l(=hB;Ol$*2a4dnl49<;mrN;;6Wi@)35+OsT4wB#Ufdt`^eie>G)oa-$i(ld--9UYq3LlTfMOM{!(4 zJ_`76M^SJ3Aw*>v%O+-c=@e)AZt4sPHB2cce79aMA@dG>j8Go!ce5Pf)4SiQ>OOWg zzc{OjTPkb5E_MCyvY5IIX7ugEiw#ELJzPr;!J;T)e5^HgDSZ|a16VKN0-ymbBQLJT zGJ7s>kA*NTL+#_AL?Z|742WrDENpGJa`i@cQfS5KECOKx*^k&(HO1dr?LF+@$aHnP z(`gPF*w-R+qEufxF4olEQNC9MT(Ur3vdD1K2=q3e8d@LP++r6OwM7+aCu4Xw6UObJ| zydX&y(Q~kY;HY7!;+~*p?n6tuSGr(#q*an^};WnSjLBwMO~?A(0mQW z8PnO$OSt@GR`iyTq!0+M65+MxY{1=yc{#$Gh?qstrr~23m_%L}``*>Kph$d|U6e5> zg&`>Za>|FW-HojScbkDH&gvU`_It61vqRdYS=mduvw6G7r@Hwa7+5R3uJBQ-PhB_g z*<;(rP^`{%L>aKekL7R;5qb%ni}JPm=h*$w67}YJFRW)&6?!dm`lss>%Fe^YI-?%V zcs)?K7!i`j&vHi^lQiVNW_iE#YV7TVgu?K^%Rb(9K5TfDf z4 zThwCVZd|Uk6RQvTPfyH?!R;_{x67M|%(4x|AGK;+&T!dY9;J3lmVwEZ&1Pl0M`>PM zDi?^B(PHFkomzb210%C(*8X;3KU3z~)*~x8z06a#RQE(_BryVLhh12pM2Ih<#nLh2 zZ3;waVmppneucVLezuQYS7ng(O@hx<)0!-a@0NciKOJ)~Dqf)dlS1`dGcddDEVsA) zK5$p)qMWe$0H>?z_&Ec`oDAkhc1;!oWjz&&E+nyaVQ&VLMxo%R+IZf*Q=+r7 z@cv>JXU$E1atht>(uGR5BLt*@6uaCe3bERr!~-AHhy~`8j4cwB$Ns1}uvVinx#$>X zgK#j8OK(tjmm)-FH=|amTt0xtbcekXh;a&Y(jG27?+_a8PLNukimbh}$yBdXANi#} zf+j%qv2%83@5ZGF=%d8msTA{>&#A603kx>=uk`2`~{YQcbWI z4(toHbl80^AVGhXuD~s9X6L6))OfZJgzEt(s|s zdkLhZ#q#tsKKDz|Fu~WAvFggmSusWaSVnfilGRCno12YOx}loZg(sw37e&EVpt$m_ zArBFsHkVytpP-@vlm}P48rc3#YNtF&!YI;H*5pfyMcsHp4BxIN93Je6e1?vQhoH$l zT5U5P73h=75$}GW7kI%%HUJYSn~UkBS6**SGZh@8oMsygbi2o};&@ zn9Ul*DcS2XG8$KTIh{4&fta6}|0o(ex(e15PxY9`QX6lWM8|R%gi%?Y`seR``}P_| zv@X=B*jRn^Qce>k4$=^oqy38{)AW!=(U8_c=coy|BFJ7UNXTh)Q%)zTn8B=YmIogE7 zMW^fP#MsSG`TPEHL5FoNQ;X_&=-XhvsmXhu=_gU=d_*W+6c|~ZcHRdLZO(|O_!qbf zE31%bivzW!J@TLhI}TX*s%cC=uxmP3FoFA?hK*rshBgK&ch3ORxbQM`g6% zG*IWn5`lIh>h}72kE*x^V{__fp{<5Cnp+S8C`j7Cu3_WFFLV5BZ&W?M#!U2jo|K(= z?3B;rc+vBu6qNF2A@#`<<2IH`PF>GRmin-KLBg+BxD(tYd9praN~u!o|13M$WN~pF z=xKwBGq-Jby5bA(AI$t9{`J{jcHpyR)_#39onSMW*lX;K=5 zh4G&L{;?ORnCkXd*pBRH_)xirR`hpY z)QpJ6o=)3A*E1SZ#8X#lL`(DFg#3}hsk0*Z&H3x!pZe zrw{5r2;E1Nq&_STKB+9#CGy0zPkh8QfiOHx#zS#P?VNP@=98!G94pH_G&cm&+}9V< zkFEA6r@R)YTES{BD|ouV-g%(1ZZ)WDPvnL$!P}v<%Pg?POS4{n$6F7g%fY~JYr4!v z<^%D9To_B4x?YAq@eowvY_Wp4UV>Mj>+>((vnf8REBjv)#3ddl)Xk<#K3kFrB0TF; z9VAo+@q{ff&U&RQ`=VjItO)_caIz7l7rGz)<#fT-T|w>!h8pI?D~0xu20F+=FTp~D zrS)TZLOsv5ZHGOaeX+T6kzvF5)(exoJk`bKMgdlXF^J=EHPVb1^4f)KUo}JsZZIOC zSrQgk4;ogpX9fmFs)A3aWO%C|hE)!5?|w2}0-k_7p|X}kJMFIEUGtZZfBbsp5gcr5 zO5&z4D=>`8kn)38yp{pR)i`pB?L$V4)VvX+2L|?B90Oy+h zVm#NMo4fZ3`R00CKf-2X(J^CS)1xOAR&6#tb?OpEH*I_nIx<-| zwM)GW7k}OFNe6Jh(>DIy{jSmQ35qjxD%)c=s7F&dK^g?h-tpN+xEm8NpBJmzk)K;( zWP7}s@~ys@3kjDKzr3BI3a(BNl5&|Bl-*61jrL`t*LC`E9qdXiQl@E_7z>1NJ@kQd zQ$S$z9J^o@m5B&89&8VRznLDb3lQ;HI93syZ(wjFl-h>0dr^DcVd%`;-Bc_7z>$G{ zr9X8DPk0eye2_JQKU-O@Mcn%FYpI%hP2ms46S&3k?#{@)@S9BQ=iu)Ow4_;nUGK5u z>wRzg-(7EgX3X7F200i;0#s^VEta9q!-7%8{<=l0bVsgV2ke!HzVIoZU=GCl)0g*0 z9ZfT8o7>~0+UE4OBuVTLE#Z8Vm22%h^OxMa6`qTIXM; z3t$u}Q<02gzy+sje2gYW6`Wn>neTTU@9%ri*)73@{Z z3w;yv!jhQu4he?(*(TBJ$`~&CUUs83uAa5;<-$$sU4g2Usr(jfY#$%Va$LDTIlDWa z7r1W(fxUnjQ}mluj2b+*WZ5bww(c&S=KUGz&iTm2J>5&7Th`eUZybmS_kr$<_7>io zzp_j3y+S{kYm2ldM-f>_&E*s^E?j!c00(zlWtf~|c>=7r3fCH8oFh6oNpRNf*vaco z^)L2vy$EkJO)h(oW&23reZzZ1meib*lzC~}wK5pgyKtB(`t;R=a3m(~{i z%qqT?IN50ymoY<%yHW!f ztBNE2TI46lDS*S^MB?7olK64U6~G!@C6`B%%Y5^=r*YBke+OZ#~gg@Eld*|c@I!D9Z2ShO!teunT=CtFWeL)8mjh_}yirg9< zMiUV9rg~QK&iGI8A{62M65;Aj?o4;*1#SDCX^^%{iaOO5?;Ce#s&xI%+jkv7TqFMt zSN3!Xlv5RyUSbujJ$#Q#{mEVfj3smwm;es2bTa^*s`~aSS*N z)`;dgz>dBmENX0O>F97N1_(6GM9qrgT=16UA_P05e*9X8YytxAlbRS=TMH`CPlrEeDvSjlOO|vjzJJGo(9TS zQwWnB%+nhf7Y}dOi<`CF8eR!@bwX0%d}ucF=Cu2RgwT8KLE@`ao#N|!34Su2i1E_G z#-Fv`5}qA8Gupf?eXe-a)09^A%&Vc*&>dMZ)jnApB7EsWYGOnFsWeFO0?zTRw5nKS zU)oJ=>@(rJzbZA8<4UdaUsh`7M5qQIvyz2 z_Hr+3LO3yG1JM|!+u=D{WcUDrF_+!bTmxcEyeAOpicckYdsUATVZ>rN6FeQra}<04 z%A-WtpC^FP$)YH@#wGXh#?x!F>NWU%Y{)@mIZ*vr9;(O}(_v*N4%9f6)5Q~`Joqr? z?3XsKPm6U;zg%XZVJqXHQXIaO|3E!W?Ta+k@^!3B!n57;sZWp4V?{FI{?9%=sp)xU znrKw{3+r_00IcKtFR_j)qrn)J6D5ccs=Chi$Hnkz=QQ4xS`6G&Qc|ctvH3mBV_p(o zF+E?pbML15jtinA#A`iyvR~V_4JIi8)XqggG*`;}aX^_nPUHjS#E7*T$)5l}T+Wa+ z`qK>?)|s7LLN0ljuC`lLhh&k@sgd5262X%Sn-Ok#km*hgQ~v1Ad3S=@&7W>T_J+G_=l6{ zG{MN2K09`A)_AQlBDxd@F`wTY_|G=lEr%2))Aezj=>5j(_@HGy zoZP%1(wN3{;l6EZ&$2-97r$4%JcUS0K(sh)tjDxJG1&{KNh5!G*e!7I7&bN!f_*DY z95XNG)y!4W*{)DJy->p|{2w zjErhp|Cfz<`nm1G-%&4Ub^=uC*-8KMqnjY`=Vd%77o+T3oQ81r7=8-rE>-8N$nA)t z&kyeo8x-2$#B@u@riahI4?K+inIon#4*Y(~cDf^~!xmQEKo&F^)|DCy6e*0dhV+B^ zJO&`GdTtO(;+jn26%ce2ggX9n#|EC%W`zf{`G;2d>`cu{M=#>DY94N;vK07vZ_}sK z^akW!TqX*JVZ??gB1C##sE*E&*TmLhEE*rE55MC!3x$cr z$~;eE)E?;ssT4yFm_+WU+Yp>D7BrUhd2hLT5BvZ!Rv@PO#&dVruOc8Xv=MTnT=jG+#4wEv9g@xJyh}0v8!euzen6l3u9~<>AgVj zIUV_)Vsj!HIyKBgw8Dn1hu8fk%FPC%Jy&}{@7|y=_pUpdlkYhfaGz=(BfhP&_rg4r zHVo)vjddB_jo!RFLxy)EkI6lKX5?g7hJQ)C?Td*!@LJ&Dk{O!9+hz|OK>$Q^- zyAbOX@4YW(E{-C*qat>JOM?AZU*ZKM^=8rvMc1FdsXH4HGGtfxXf3=nC;YvC$rN3( z2=*i-;<%mc%bI=pjzo9fiO4c!Rk>36gf!mW{iioXil za~@e*@Z7eqCk!;$BKKVJzo@;e7a&r;A6uTuH+oxB;QsxIH4VFJ&*gup{&_I{#r?s& zNPU6ZgBSyeh5+)Vr&n)DGEei)ILuwMhSG_>0s}e1wanmr8y1s}RFAiI(f&BRLn8D7F0YI=IYvJG51ua-avnLI;Ui1rxWO58ORTo*-UhaAd4G>ao5EkmNIKm9VVJa znq1<75RCIipZXL#(>Ty)BVZoTVPp9l5do`v*1YuQDW?s_#IaW*>uph>U4s#u_G@r> z1VKiMZTX8=UevzUTp9B+mPM;Uby-M-3?KcRT{_njmX@xfm?)!Cq<+6bHQ`nBsgKzq z2jL7w9s5^l6eE6)UEkrISN5hhFKM&98}oOvxclmu()`r$?*I`%k7CzmpL{G{`S`>D z@ngt81PP&*dSQGt)Kr#Bu$`F}p|_xH+T+vR?Gu!r2ZL5MlPR0JMk&`Wk286 zLzwV-p|oQ?S!x?XEwUwcuNlOag=XLJGv%sl8^|&nN0p!dLWO8);1fBQz#?GJEN0HO zHZ)l&Dq7!i#=`F~EF$FE-$<|w2asT+{r0-L(Dz}DDx)m1dzeNh2JXOr?9knL)}EOq zHZua^U(d3n)NM$QU9r$eLVa9Ea@Yl@7MIx=%lmQM&~_oe1%P1_%7GBl^jZGy&TY1xD=4~P?BP3skVKR22DPdHNi>tTcD5re zw`EE~x`wJ-zM747WkB9nZtryEzbn7w*)os#B|XB>yzrc6f|&4A@Z9i;(4fnYI+SE^s&XAR5bF-2?NVuruoyp-_4xWaa0?G3B1vYir(PN*xIRJNnbwmU#* z{p>;IlZT@92^U%T*`%GO?e3eNb@&_kL-or6-%+#sU!u9g8Omxd6iiw5fdSNyb~uM( zVLZ5})Y&}u)uP$FSN&ZIw4*tH)%s({(O2}*fY6a8AqaW|LYN|6|72CG6~n)(czx+x zt5_^B`GJCe7yPluObGS%ySUoBHBho{C40=>VQPl2HpUbKDahUq9_zq^at`FPfcWf$ zsm0PK`l{bMW=o%Rs3_|HeOK!;kCPMezoc*emz>-`c7UZ=lfqK(##TeTe=t{#k~^-~ zGo^bezT@_O5TGojJeGN0w_QRplMbm(3L)H~*A3(I{tLBgTzboLn+OH0hThl~k7j@k zARgeK%Nu0^JvhP8AQ9{p48XP&w5*~4ikLs+XhrczoiN)fxKfL^(h}{* zoHXvgWTvoCI}$%yUGFNl)WK0(%ebw~-Cz=An5?LEo2xB;WPN0ZPKw2^gGHgB|(W&z_O#)>cSZ?QNj*{M;PR5<-0xLz? zdull-0dGaYisYvZDz^=%+E7Rs=F|%8XcqEG;tc24E4(c`7H`j+tEW0Rz+3Y|bYdaK z#pu9HBR-3uq05NRMK-*z_&X2#XCD`B+P{moKWaJsFBA(=hWo`=83(x8>}|s9@j^^0 z8*GQ%_!@<%7-G@+-XJKKg;6MX3JdZ2i+uaQ#IaxpgJi#a&j}vzA#E|@F`#Y}*S-W6 zY_{Aks3r0#ksM*n^OaxZYQ|ZEHo6~|`1KL~B(4@jz1(=%{Es`DrkpvJ6tCSZIm@V2<03id zrO)1!*H3O2%@yYy(u@Wdyg_DD$PsKNj5;n!_Q;vcQ7cSv4c6#F$BcZ^$nWIumA(9+ z!}_5WuZ_qF$7R{((r^Nw_MPc=1HTS~n#@)&#?XAE*Nhr$%U33WTP-t&ySkxj^un&& zr^l0dPN@m$26P9>XfNgW9ZS{7HtV^Zy4}N=2M>P5Cf8#wcHm!f@_!@EYX(7Ef?INw zOO6jNQtWVvkTWBE6V}0WY6SPr<iR#d2McN|!Peo(idTxaPd6{+gQJM8J=Vj3Ds5{R;5Ohc)(ZS) zuKU@3TN&{&wqh4;sTy~IGJS3@-KjLGx}YX;Pk$`l4&&<1T#7mCnOiNjn9mWmF19+8 z%s1WL$-x@)OzYQ|r-LuAKRNPWQf{lliJUkq^WYoR9;LO9JG1=!Rx+Wy*^Ab1SEenT zr62Zs$5v!AAh-ET#*HsP4!)`Gzbqf}T00H6#I0j1ZG15|VHz@gTyxqu`0VXv6Kup? z9>naV4jp6X;&W#fiF+$Nr~27&i9TgY{s#~BgZSVFi98K{FguwEJi6Vm{BB> z@d94w{%Lc`+AfDBXLBDqTpKUnp+z-#T53TaY@)d8f-{YX0uB=6Of07i>V&&Mn@Y^>+tFT|u@NIal|u6Xye*hkwXM_g18g4NUTgE#PET;{KP;Fobr z7uMpE>zR?=`>i$G0`q3%9Z_5Rn3BoH50`hyDImM3q8XRHsX8o@e%126ivHFHGv%jb zft~IIW3|n#Ze#@hZvD7*7+FXARbPDOp;eLqGRPB8ijOSiha!F^TBbhzo4mBk0wsA4 zizpL*I2rUXm z7yWw)*TU-FCLnBG&YMRcy%V=8fi%!26P3FHT zo}Uj82b}!Uulpp z@UJ|kBS+WBwy>o&6_q8K=qi51i^}w$ONsGvx`djg{eV?*Nc6=$UL?VddcZhF4mems`x~$`@UT^=iMMPx;PdObOl9 zpzcf3XrfC}vv|v3$JO2iu_rr6fB?Kf=pE_U+|S*K>liX?-H8Ba!AzBBsE|Q6P{w-} z5W|#;@{LAC zf`gu045Dk@HPlyA+te~Tq&g;xPr}SQ87|@EqrcE_0g9(HWLwZS52}BjDiz0ZcvmY{ zat$SQ6e#vv!LxOYh}D08`5!8H0KdUies6O1tkI~d;+Xu1GZHu z5x!hYZoH$X4sG_p(!1TjEHp2o&wMZM+PUVJB&OZTx>OkSbJ+sbu2(^Q-V3`q3O4Ix zU$L+}Mfn&FPrT*1U*f%a&=%l%`Kv9!ST&q>?;o{Hxt6&L+{jRH4(C6_p)>s`otJ9b zoKU6@%rn}o8zx`TNSg82yI_sh;`~?-#7k?X7pd;ilL!wiNqNt0wdQFb*0<|aJcs73 z#8_)ET7l@`HtnuP;^_x%xkZUGRlL2DRYU=kXvB!E@PSS05PV@94X?5fl${`=8iSa$ zFPa#iY8yHTi6o(A6|C?clQ-K#^QiCeO-F1zw?Z&a)UPQF-?9AU%zOCkD0L?{552wx zrjr~oxi(%(0iO2jEAb;@VmWBY!3)%Ul#29*eu?r_M&jS`W7Pea3Q+!y!RF#^+Xw#O zVK`e^g;?V8n9nvJR*d?6m38N$T3zOUD4E)2wA>8dV{-PkI+W7el{mQ-P^7qQ*FnD( z%~G>p!{AtZ-WY~6O*F?Y<;7K7mhgs&fH|757^ZO%Y=6Eu>1rcP;uM6bx&d62inn>@ zDBYv^(xRo3L5FW<%j07>hpq)}eKVJ%CARSE{QhY*E#xM~!sN}_OP|eH8M>!tYs{*% zL%%3{XCKWz|2!v)wGT>TNzFP(N4ta8WBnCsX$T*WR!ka-6-O*DEX6;6I+RVgF8in` ze*6W?lE~!G2qwpVH_mpwx~%~f%?_QG>KZeBMeGmuqeDjhh%)p-x(NVe_$Y7>P))T| z8mtfAxAC7YF(8DevkDEc?PQf7gi*B)O)Wg`o%eum#=t|^V3UoP&GxJXN$zm=ANVk?jYO zTpXSNTIOb}wGef2@aBXJuM`h~-~6?S4C3r-cHqQh7S7$*t9 z&3MTNXrN(fAy(;X%H(sWSc8{jCA>(DIh)HQ4NO`|!SQ(VXp~&ccQ0HoYQ6 z`3_9?!+FLphntK zMKQmi;*Cti0xKxri`FbFMu~2s8`yLgc&+5n@*XnMt`X0Mh9hUCH z^7Nm^R2Rf(wXuJn(%r{(&$d~ZrJjFZO-X%66@n5wVqBU9wx^DQ zgtYZcTX9oNjvUohX0;%1cr?vq9}~uP;0z8*=pe8kl=@NOtvAsdtDT-v(?UfP%SbZ< zQeTv!{mZxcs_BjMIz@_i66$P{HUYs1Rs`QkC}uM`z7~<+H*F8iiw?3T+Kv32?TaVY zp4x19QRcPnXsUGx52pOwWA-L5*?8nRnK_~*E@K_dgU5n-*9S-UU(ni*?Bq9y@{RCA zS?bo1(c!UPnZNQ1^TKgndG#x=XsvrWYF_&T*?(>--z;sFuiT(^SNni{3twu_*S**= zOvG0IStUt5o=JJJsPCw?(j(0LmkqZ0dUAmh5E+k81rCSULCvcjGsv)oIO|R4umx7D zx_Kt}rr4(i){`EqpUM~0#{mIXENzQM9ym^BdDIx#T;G^rz=SVxxtHojM@mN|H;v?Bg2KhmnLU~BH5`>sGJ zeu>9C#!83g?TvsTpdm$ms=~}oUQcyWj9vMLyXr`k6h2)iiJ(SQ(JU8?=^y2rbr?!{ z%>Q^7yu|##j!&C)_l(p#gtQ-@KC6|!vbT2(8FtilOJ31wc70DYdGh+D=lC(izgNH%_?JuWcQ9KqVeEQ{Ji$=cnkFImFb5y` z!rgJE18Tdo5`GgO0$9WP2T%5!WKol8&_o1Im+*rO2lF-8m@`BB%ndd)k#SpB3p>K^OIH z;%o~|N1~8WqMLgZR2fZUZ^iQ^+Vwp0BcF1>u47l1Wr`NEj}opgqqicf^4;bbC8W&w z-BzOD^j&RC^JgAODK4C0vXQZbW*PP~h6l42O%*+(RlFA>gV3{|%$)49Mb>#P`>};x z)w~h+bL&g}S1~)@1?k5Fdb;T(jW4dglrV}2`WkRQ9iucbG{f&*IWX#q(b^H@Vjo~~n?*kpA84Q?qb&d59oryi)gSiZBNo)>|P zhx3>JoQ;*){+T&h+mherQ|iZwQ>Ilx?=sop2N=x@M$f%1)#<-eAbZ|~;4+oo`c!|X zxO@U})XZEq(%o06+NxBilGHH&xO2Xkoe?AI>DLw?5oz9PR`fIfhlxll1V&XTy%sjO zK7zunub(Ev-f&KBA=1!9uAaSfM_P-$f2mW=F85x8lN0yi1+5JvI+#Bnhc@u#I4Hz! z4&4$Gdl%35`8Y(kxPP>!zt4CH;JN;$D$v?V6wqhTe~`TQhe7(>OnR}e-1l748hAl90yXsp1rF?rgF7twk{71&Q_WZ)|bL3G@xk_?eC%)4=L$8kdQJn73;o9A}hi!~xO zM<0f*8t#jZ$2v)K+-=qO8aAcul=%rK#$X_p~Gjh-E%kv@Y4WPXv@g4xW~X z7H6fjrUy-V_LYcMv;B3uz8(vpCF+iESNp%eT_iKjI&>o#OLxjZ~*MuZ-Q4?GlUX`9;W)xOeM)q8a_bCc0e z#?wDa`2^)#l?j|I`Cd>t_44K5hr_u+Fxkny1V!9q@CFAF?Y%1`2YU{TT(tlA5VR<*@P+vAy&Bit@qonlxtF_yP1oCuz+iP+&! ziYyQJg>ROaH9?;vwR{k3B(5=YN9%Qy;jRa&=M9RO&V8=ee@|l8 zSTmcE^^AcAR5MvKI$UWQQDwepr+hxNS{1P-Oq*I!aPuvjn&M|K)e`LX`fpS)1yDiU z{4dgzys_uc;L_Z>B6)ubWjamaX;F-H;^oX1xm4FWQ7J=XMv1wc5>yR7(08fJCJ!{m z&tY8ZuQOmaKOdyw)A`E6+f1ZLATc5y3r{NEaaH&D2hj?Kf>G_2K`{@TMo?-fTACLi z_I}zFxg8CfEs06B)<)=spJTx?wtJEj)*yJncTjeaHbGUsJ%nd8AZgrW;idb|3)^ce zN#68igv5{$vy~3NlUn~=zA8lEHl7a=Y9+zEkc1I9C^fR4SE|gfRbP`0TI%?X9BAx;D53rLoYkL^ zS&aQ!#MX{KFrV`*(@qvzQY7UysLyoHu-0*$B2{pPbhajNXX0E`&@DIe4-=1i_xGe~ z5Y_vYWWDW@wq&SLZTL0^(@j{b&e&?_J`uyh8<*XX{hO07p7DQkb=G}&7wvZT z1VTT=kQdX&y}K)-u`A;eF>1)0te#5tOR3a)EN@hv`*pMKhLrtDN_=P?f%28pT~neo zxyd4?^fXwDa$Ei&goTWHTo1N&7z7?D`4&gXjFbO zJfa2%X7d^%MHWDVTk-Z)On93CSS%^^ogZ3ao02`Cc&o-eSNDwjj4AFVI%qSfq^o)+ zz98Y5ha^ewvk^R1cteygyo11vU??N^l`eQ98dK$;nxw({)--8OnWhj31}~lTS&(yV zn-PdCwH-3Csa&bo+RA&QgnmMaVCzt8wSnX!9CpP>yuOL_lMRf=$puui8DRuklAN%_ zy6Y{yTZSI4=jeJkD!!mw)puDP5PRK{W1oM;q}bz|!}9y){8>!8+N;G+apxmAs`mzI zFRbX}%D<9X2^Xq;W_b~PH|IV%)7Uh=dfwuvq~spzD>uu%r61)zo|7q5Z3Ucc;_58Y z1~xV04n?kWvO<$idr(-rUW?1=@4zK0H3`xO!zvt0-Ur#d8*i*Px3mr}VGUJEBY!Z! z7N6{)CHtx;P@2<^-o+3ZNLdMqW5UL@P735(Kb-Bd?SEYR*$A7c>9mK%6&^BOe7x$TuB{Zhdj6KCGA>=;v>1=hVm1 zw{@^no~!v9@kwL1x<#`8nOj6y$lraLyPuAQQhmRLQh$a&-({4X%(-(R^R}rHJCnI& zV%fCGHFmY1W#^MRXR@Mq9&QP*r?$V(w65Lk0Sa)IniX%RwfduP@aqd_9S;r#A_@BT zB{&Zpp&vr9%)Xk$P-YhK8m~;FQaFtZ_uGn`J8a~qM7GeZ1+ig2D7#4Y+)c3b6$jFT zV695(NQULY^m(^$Di1uq`U_|=K+yCdRgtf$C2vcA&-4$zoB_X`iM!nVJcM3LZi8n?*{i-OH50GW&^#OX#=jGcCPR zAF7wKt5d`6Eq8wn5%zrrQ0m#me@m34^qF?@ieL$=0J1@nJHiSc~4} zUi^hdp8Jy3S@yLx+m;pWYYX+UuJ-7rTJ*ieX0z-CWZhQ&O)x*gM;JFq#uqYn1V@)FCYS^S<1ZLfb=L<`bz77I8;qr%=TCBZGp(wBD7-eIitL^TTa`TT#@&DO z!=(wG&rZ0_%=K15A8@>M3XYEt5@L)VCPDT4%ZWC;S+YN+Gc-p`q)G}s+hr|4LMk}J zZ(T+G?tf?gKY~k$TQuuGGi*0=f%=NrKa+bh$NwURPfwe|O)PHUmaq#tdY7&Gww|PQ zE?K%$*!N)XEf2GfHFIsJdE$zu+8rE!5@B=LFc0sVT|W2%?vd}APKJdP;uvha4-Jb9 z>&VwK*>=brgOwf7(&9K(v@U$uN}zOt09TE9=k_DsWhkmPEpbbGfByaV7FIMCclo?d z-AhsUiMJC;0<0bvrP_qDqZTe%eFC$(K;1Nge-txf33zTujP9k~&V$MH8jp9l?d{8x zU~yuhde`MXVp9@Xv^SDGUCa5xfv|o*_lMn@;6A)U-J$9ri+oHtadm_5LxQ)OHKT~X zY_{6sEi^Jk?K9tZ_l4(VejY>(VwwK&4p#fzYgoQUs(o z-3X|FpeVf~1Pr}H5{f9OGz(Rlh*G4tP!l>qDWN7ns3L?GIsroa9`<=Hl}T6ag37?U!K>WIju}+a-s_K_ zBg=Bf*^&&>{XS?>eRW_a+c?crIyw`a_EQJeKfz0l*NP^pUL^-=G6}kp-uJYvr|iBO zSm~5%6I$Hyaa)ScFK$)S5(5v~CTedBS8dcyB8Kvd4XS^jvV;puUbYq`W8jj<%1Ilf zoo`KDOa|J-dm49&^#@il$Z|3dFmtyE=wP(k6jB-&>kJosr%bQ19yKpML0O>S2+mg^ zzfEE)8--2!Z^^8_i-g^wl!V};E|w~+4#)@J_WuDFz8xDhCY(|{yTAAB(KGyf+SA#6 zU)_Z?2kdnN!)rryOfSexcZ*F-91d?7R}XF&_5Ny?|E+sAGx=Izy&ybh@W#DZzJ%wZ zj7dE@uAW8T_Fli_c|da?>Z(B>`(09Yvklp7T&~h)E+>w^w?-D(Nrhi@yg`RBw#g%} z2-z%dpju&DDLaHI4LK+yC_LGr&(vx3z7cWj8Pu`R36Lh1CVqb87NW40rz zWRy669`GkoIZ+}FeGYK#R^LZU7xNuehoA-CeuJa0{M^8a1rQ&Gc5~mrM=Ctct60(~ zc1c^f@Jtirv1DKbu8_o+G8KH*7!ExHqe}5Sk@p?cCCiuFrO3GbGt(E1@SiN_>f3km z{EY352`(B+eY<`(6-D=l?lZN+)m#hvgVkL2BLPO4GP_mC&8gB5CT{Y2I#c2!Un&UT zb~j8Rpr;e&%w9pUrNVUF&G`a))^x2>6mR$DA+@oOJo^}p_^A8+=00SHGj$+aIxOXI z_C8Y&i-|`55GLcDXT=-go3!{Wo7RilZR=$_AGcN#Jmd2Bb*c_JtR2Ny2eaq5BC&k< zCX$#WomHx=TW#`a2?2hbSlLC*roWA7Y9--UedG)n`Ik!i<|VS<0%?#Yt|Is>1zue8 zH08mHqj*1$U+s|ddUjj*{(6;zrGlkkCwA3{Za@^fU`po~ptbFXU8(fAHMo!~Hhet_ zX@vIFBQs=@TB3Fg;8H4#BcMNM2Hzm;LJvmQ|0TXsc2Jmy9~S0+i}h})P}u{Gi*W3~ z?K9k8Jj{DvTfcq~Emsi4kkMh75GStUBI1qQeKV-F=St#6IB3CIjXm~>Q!)NKR#Ua= zBH}h_yJLf@p`Q)jwkNt4ZK34$8xx<7-tpS4Wm*-xPFqU?@>-{=RWY@_t2uvpd_I2F z52|R331Yi0XA90%u*L8T!rStwn!woP{Rkpjp4quQ88g6P52%{Jd@^YUlABkw<)Fku zHTx?Y@yaz@`3`x$jryO6r0+ZK&a76uBoA}{4UVC`CqLYJWwjksqWVQQ#lKef_Q~E- zXKBbH7ki)U<61aN_XqskWBhd$<-<|RF9&_sog?*KYpw=pO5Ly>yo1+@j8HJm^w^UD z8%CWJd74y;MfsCkPVa#;PAWE~?#(x>44YUH_Lq%paA^r`h!4p(jgp~5L#}<1IoJSH z<8z3#Rw=JxYllwzy$r`2dW*vjD8g!0yUG5_xwe`7nzlr{C&GnJ8SNxZkJk!j1#1n6 za_0Wk0OB{Ul42|mf?yFEZGkoPGz=g%S&Xg*~u@50a9uWsscb0p6YHS6J%` znhIVVe&)DyS}yxR2NuD&#Ed+|e8lGXJPwM_y0VFn1R#z^W)?sxj!6|tyMaPgX zV*70GP)sn};=&!KJpgY55od`yYKJmT7KR5wO8Zxk{w+DHP>TL?E*6hRz+6(7nB0Ts z=j>)bG4d`prQXs&cgzStH+8&XXTSF=7}FBBsHOIkWtBwFkJa$Ut0afPkm1Y&8tOvtR58T?i8Am zhBN!lV@MGslQ-z@XYE5L`*z@D)JJkMB}jl~U}?H$Q4O%V)f`~o*>ld(-*1L|e@SNN zH8u6Mbq5^VqM|>dt2G~%w#Ca^08tR}8#rk$M=i(EpLB<^2pA!dGBhXlG8p5{W8WlK zFJE%|)-;m0Q}39=C9&=A9U?RO9Fp*$P`qy`rnr0{)YEcs!t>trX{e%=))K}@kdY9I zo;OX4tDrs5R5}Gre{Sv#eqb|()(bN$gbhGOtsQs3I1i_&*Ji1U!^aIm+-a4iSm{XN zKBJy)>*dC!OpODt4dG=EP0L!}u195`jX8F6d1NkUVY-`N`ByIHxsC2&FY!jvLCSh{ zn6fyB|MLV!%4J|A_s=-Iw5@4|O?`VStix~)Ct_kE)NA)~;#TT)P=t^f!UEC7%{$;g zl84}+mc>Du1pR>a=Mausn|CGQ(n7VgH;GX?Z2};vr=LFvW_mUy4^OT8Bk?;#t=;D` zJ0Dxy=poLGDSFUBDu@V$T5F&L{(8}Jc06S6xF918~sM)5zD;k_hV)s=H>$r9H`l*qx`l{s+T;9DXc*yj3MT3ddS z6bX*z+G$PUH&2)*PitG5hxiYM@Qj7`YJ3o6qw^M3?0YbE)7W^jC&{0zXM-!7w=XKj zlmWNtVqM}y4M|uCBOfp}tAhpcB-+vjDwLqbFe4@+({s=GVpbVmh`U|&YlM{aa`1y7>^-vjkS*N8iCjin>H20wFw zi_F#8KP}N0e&Ylk)zv|LTJMWDdw#unECEczD-RB=8Cc7Uk?8^iYCcR{AMU8x`8=>L zLGPU8kxbLSBqS-wS~_Y)-QxMf_s2&XY}urmLuL&U|F2$PwOubEGUKC_LMNc%unSUeFXU+)frcgjZpZ`+ z91O}1{52^1H)>|TB8mhmh-Ly_x@T48bs$CT3-hHsw7XDkok<%ok74pd_95-h&F*hG zAo|*jrO>KNCG*eZ_Q_1eb3F8}7FkzO4Zu6~mr2{e1VQk@-Cs}NNs0uxro-4=`*ZuU z{nrZny+bIXiOnKt)J~}pLEC@hDvUd7Zx_n5S-|V>ds47?5@YIS%Eqts~ z(FtiN8SAUPxX_UGSCC8}1PSplNK{4sb1#^muHf`R&*h_Jnafu-ehv|}va}rT2$wB^ z(wiPOxm$U45j{h+uTfC$sxWGjECo7Ze~F_Q{nKQMt7@ihCPA@aVv_U&aPymG&uqWSfL zBt>4b0^#(3il??Y9(J9s94OLF{Uz}N9v)51R{IM6hK`iDOYLo%cr{Wev^Jc5XEL6PS6zX`SR}DzT~Kn~{w=jV zfEv73K$$5D#%uYEs}vKj?{@(cejuC0xe-UE#Emz7&9npE+Es#U1MA(L^HmUlp-hCd zGdjU4DwZpWZFiK>R60qFY19Jfch4tRT|34;mJjFf29i6c2E9KaK`#qFnAqdbj-Qe{(K#>mxvxW(1)@DA=x*+x+wwASM&E@u=)3*U) zT6135Yn)wCpLI0(gS7ib6o(95Ue<>E2I@uc>+KWUaAY=VT zpW(D&(C|?c=%BC~{O7BRagTE!LHh&DnstrH*waK7VqcQX5cD>u>5WN~?xjZ`?xJow zYs$V{Ov%F8`DlIdadMCkiYFK=Z)vb^0~OhICgP~44#?U>|8w|Zd;40-!Mu3pQIjQg zfrZ_)D1E_za@7eocwp(akzeY+k zOTH-ImbEOqCpB{PwIWMSCN)@rciVw2WgFB+!lAAaZO(mRtofNp zUw*{|4F$~w7{-)37}k}3Rv|n(*PE|WgB@=+Jm+p_%k3noesQk8A1ozV)$`=pVTZ*E zm}EwX<(L5%(QA{}C)Dj8j(xJHptwbG@6PSV?*0k?sdMTlMv;Je@li70qNnwoq0Xnr zvB#O_)O|djrz^K}-bVhxu{LTp6YV)I8T+C+%J!g7B^v7>UbO(zo)|O1q@drhrpgN3GyLzVsna)BR8>z}{Rc6&rxcQ& zaUOi!10PjCtJb7SPv7Z{FP*AlB|4LHy7L*5&Tf`z)?h2BJ>O4BgEAr%KBikFaG$)X zvb6yt8cn%v@cuxd5rosgU;-lpY2N=PG{JGyHE+13_6M-oA%%h`h-xWVAk6#>{P1M^ z7EKqbI?1Z2jjJh)-m2|Br$Qy6tL;)4SJj^Srw zU*$tVGT9T2MZ#l`+#ryH%zfiPOEk~xAOGOq^YHU3h%fIlU1%9hbsZ>y@qBkaq1-NB z1zL(`q><-amZxq)ADS^u5#&7Su0?gYX~eRR$7ioubrxgwV(t`|>DVwhUwF|^cBo8` z{0(7Z>TFQn4-P$rTXs)PD3oG7Gl2a1rzpaotI~Yv@gB1#7JsYtH(6LN%8O11>+rg)ClWRowKtZOP4+)idUb}|Kl=c z-ZkWFUj;O|7Cge9f-cyKi!8*^MKSLswXS;419lBUZpT$Hj{fZQyKfWRwc7%2;M)0e zc+O`)Cio}kWHMJaslRnfBwg4>MFsoh$*Mj@(%Au*=~ktaMLvmLMR&=b^W1*9%yu0a zPTTDIU!rp=NQsL=&9deGg4~bax>)DR^wE)Z>q_Hd#&GYbXG8}adEK|nxkV7M>8<2XC+iXjpb3@82GcKR8J&(hl3qPdq|{1R6e`j)Q&$G)r2HT zd?-(PzY$BH;-r&M@!e}d+uvrLkh+(DGZ_4WWJTV9PQP)$(ftZh-oA7`G}5SJV-^@u zz0wy6+@t@Gq6G}77z#fhaR)j@ur`?dRV14;H|Ogmu0*~nQO2KZqjjEKZ4r~bbT0F! zG*9!{qd)LZ)g$C2%*Pw$?!^j@kCb*~^wBHMrBhU2E03AN%MRKrDa-S^IB=b;?OitZ zvK#bPEikn+`y!{b9xaX+s28Y~I%KZjA`ig&*-^oou^=^KrUouyXxMPc!CjJ*?R=au z9pCMqJ1VCF0#=M=pXcQ3(9x%H>8E}{=yM$Ryk(N2&YgjGF#~pH9)vc&ge@>qert?& zUZ?bgX=$Zc6|zCn(O_#cYFj`-Y^P6c_KL?J`#Z!2#($y1KEH#N0bfl zTcH5W#-qxgl^{6pNgu!6Ey}F%@B#O$FLLGg2%@{scGJg@LO#wXL7yDVYmf6;%+Sr< zF{7T&Bj)-`N|Y_>&%HqPeB4GjGQoRKC?=qX^1nf9WYX1h&vv3y{b6l|l41MFhX&<3 zsF#zDS}(IvfaFptCmx0Co_lwU6wUoYfT6>HKZYUmPPwE`{AYiwMa|j52W>Rk?>2N* zduptblXP_VgeRu7`Fm@K*tdlPA3Pq9S`*1Km!+u8y@MTxD@*&7u1=c~Ytp@+dYh15 zpN?4<(D!1I=N{|-q+^A0yT)EQl7>h=4U+D zqIN;3?3K97?Q0gGt00OfBM3*KEuHilM;U`ZdT5e8Io!U6%oMt;zaeYVd%`5J3prX@ z{XFMvdBir;!+lS?-SO36e>79X;r##OD?nz|U;b-D=5K9iV`$Bl;R&;RS*k`e@+V|T z-N`y}rBmW>n6zQK25=0RX>Wbhr1bF!w3KvH!Z|W?e|kx)beCl3(@#%$TzfZ0uP%1s z*@@90<+i0* z*Bq!l&RO?atL^sk^@G4>7!9m4jn?+EQ&M)V8X#HL`W|Z_DT~|C;x_6KU`%1nJPUjP z1^z|0MeCErIBm;AN~Z%*I$9Z~l)Y=|o1knxjnb*(>^>JSzWfh&;C`MI37#4kjS|$t zxr0!&r;{(ZU-<)ByDNk&7MEHov3q$t>DF+ZI&y5)DZ-&VD_^HO&2%h)8|~Sa+Y!-@ zN?lpv?q0W-L|D+^{zztzP7&^5spZGViN*o{>o} zy}bBfVtaEXBFf99jED1z*XF5K)zjozTDUwZ@-wp)(#Ke$7yXpiied4+kG^ktRe*>~ zZLE&;LFTeJP}Mg+$Xvrm&0Gi|x27=NtL`LLWcn^4H2!?5lW7M-5e0H#guT5=nf6>G0DGtC-z z;#%?=pj5zyuKs@M0WqF^nd6cxK&K)Qh&Ta}$mGTw+6ZR4JOViB0tZmJxAShi~%Or`yj zhLN-5emdotiuQfH__u`m2B_^bp&q8NcOIT+o*gsM?vIMyzvP%_ah~v4%3DO1&q-eZ z``to|%Y<5Bu2qG`zExH`R7?+i-vq~qu!fs@P1QdTd*G0w6EB2+UC8!cAceKuq|-Yk zY$mDbl$5()f@XkgFMTd3sVZ}sravYF>vwSCKOJ^9mLZA5IL4a^DZI%mIl(X6LYeXWoYnZP$lJd1m*NC1Ls+WUR`6n^oP8iK$we0?%C1) zPvSoUJg5~JwjS1%a>&R#U(cjl*uI$Vc&tcg`L0kWR@`W=`7U?0FqQ>)G+_F$MfQL9 zasFOq3CMi+)?N0nU031W>NUtN?Yn)y>Y1BE6o}iKMmqs77DbKkehaM0vxieo(+}9a zcEyH^@m+2bR`*r=+Hd`)(%K)EnUXQxRU+1~FEt7)K0#z3Bo$xGb^kUTL(@+OSsl*t zNE2EtiDia8zql51532V}iT`)DWo!VH3RU@!sLN)?0>Ie7Q%8k6oe zrLX6%?&cI@yJ5z93EU&7+mh>UCXwq2c{9bzyF>Xkg2%e+C&L&jO+^X1% zp3wOmmWiGvcqf#mo=C7#rK0=c@XH{EP7VhT^0l_^E-#>&MW|!1uel<~)2u;@CgF{lF!H;MNTuqep6b>B>PabH%G%nakP-JKqF%F=t0-^o9hEz<1U zX%0HmDyzc%zcAO&0T2K{RBH8awr5|%xc@1W}Rho?<*_iGEZ5#3Ky zuXW-1Z+-=ubAquWCWEsyRwE*r%5bJmL*(st!S7T>inbsvU@I^R?=7-q0!;dqn~Y9& zcNWRTt{*(OQ0Ze3UugIWlBQXv9j0n2$-r zoTZEV?}9$3zWGtdo;Qk9`l>uU*PDm;M2B*NX&z?ip52*zsnq2M$JjR8C6Mrr54t;{ zFNh|AQ9j;PM9JKBtLk+sR9zrKt~Yf(jki?`PU6ftXcqkIiK=V=tXUw!Y2GkKH~RQv zcR-9a_JPkYov*2ew$8mb@R`5nZ)s-vsSfvtMU7o7`JR63#OiXOsJIyJr{hZpeZ~9` zSh`>bCH1ItbpG=EE$%LkY-+i0pg%qp`+&AgPO4@NG>MUI&-)n@fGg2cgy|ZmTcO44rWitzVquv zL}-eo-~1Ss!?+74TbuluFwxouKE9KSiYUWJNzAOq)p4YpKl3VS1u2p{A2-?kbx~Vs zZ9p`_P@=cH^IH`Td^h@K_XObvl+i2qzqT@ux$bhM?$UG9(K8U3INc&gfW2=Uj>==?T;@gZh^rKGxxNq4 zIFH4*i}AvB)s@ypf5`UpqV>@yuO?tm>!)ss(wLz~4%!`je?ER9b8xRV^VhxF->P%2 z*CO&V;hyg;@xh+uRziJ|rm-F`P|Zox6xF=`2srEWtD-@??jxV_QI2@}iPp$c3G%>5NLW&$bxbN0}!VIC+SJQ#iy*b@g!)$eX!UN%Q(iF1)lp+EWtdG3r4E>OsS zmH#HENWUp-3q#rBc~WXBub!Tzfbo1>)@B`5iNA?i0Orb|w_{Fu9LrD?|MDa_1KsOc z8sTonYi`A58=@oslskR}zGl5G({38ne%L(tha3!8qDcH9^B8@CS`^i&Of8m?`Gd(e zFn!9W6E6dNBrX`)t6Byk=DB@)YjPe2gc{dI2V)Q)JcJV zgff6uBHtIn&+4UI9`2<_RS`NxaI%j~)D9*nW@8V^@qe`p57zPjk$k7mHE;^EzGw17 z25uNMQS{Nn4-X`1t)zQLFM2qJHd%(Sse4a#-gfG`S=@e&)qY&=7G;#3?(4_?IHbCw z`qD^T&sct*Lh$_%C0z3?wY>TgQHZP3z9fmWdkxd;dB4k1m@Ie#@8$@+(DmngS%3Dp z{~`4PyfyI0fLexunJeXl)}6$YMGyURl2%{G!Nr=s)QEQ0eFEEy^IWlNdCkJI*DQ_{ z)($RdQ4Z{XEj`3m9O?JGM72lu%IYK8VJi5x9P&jr%V1d!q{33R|1{c|(jk|>b*b!k z*sEF}>^HFfwcqf!dawrv1fa>~T#%*bdl$Rva*yx&wI|M=LSxUmx4C52@Q?Mfy}4WP zV$Vhm5lXm6-_$3_X~;*C(e~iLp6vxC`i9}Cl%ES3YLWBL705&gl&a_Qug{&Z4@9Wr7JcJ)OGF0C{Wa?t4G`}CCC(fX@J>qX5&M69Tkm>S;<5TcSlzYGN0v*kRihd6 zI5McGUdxuL77jEI6N0fXIhzx2ond+~NTszkk|lT6k?KkU>~zR6oUME=KOl5{eo#6> zAP`b=a`uFc_QhWC$=pZW9WHjZeI~0Wh{nBHfFDGg9aaWy2lw%sM=WK52l3v#c@rWm zdu74A;=;g*E_FYbB=aziliF$p)VW+w&)VJwtAGVMI%hhBQkgy_=`mV1-;nltlV`6< zzqH$_0#X~1PM6Nix9hlf31qb0hf*o)3np>9dTmKAyxl0gvvjG?Pu-8SGICltE3eIi z#5s#P>~jC#C4|4L`g~{7zB_g56DW4Z@)X-c*pr#>RL2I!2wy!O_=+vtictGcL{UHt zEK)I1{Yrb2d~bZjD1CqAyxR0_&%b37UIi?xok8i8e?6>%Bn z)bR8uXjUY_*XKm@>FaYR?%yP!PA+(KY#iub{Y$Kx=Kt(Y{M}}{{OvUZ}x`7OZt3M9U1rQnb{DF2eY-cobXVHTLF zpo@G+<#TZ8^CFc5A;1y3s8k$JV4`F&ra@ANe(=xp>4oe3bTXpm93G_~Kz2hMnRSHe zSEmAKQcjk))iQ)u(#*J(tjp5T$r$R*>N~~VRA#JvsOQ|93u(}Y@aS>>Ab8~9n%%NG zJP0v1Cy0z2uXMJ*We-*zOTjs0xaD3~U#d6^{hou+Z*MsoRRu!-1S>1^PqDEV+(u7d zGtt+@yim`aJtkD^dmjEEo{ImhyX~EK<7SDX0njI&4pUD&gu?TkDCI|&lbX)crR7{# zj!8w)WW>APANyERfMvA{zsZSc2=qj}P@a49eS~1WyM4JgC=QxvWD>tUFR}Ufzinsf z1qcjS7zxIzcZBeR;08t$|=)wOffqvs3=ho1i#5_)(Hls4f_C_m^cZKy6lmdM(r9mg< zZCRRu!Byo^nZmOJXohqd#`$fM4ju=B;)%tkz)Q8F1SzznK4DnGh8Iw8->d6Fi=&7| zUhjBQgxu%`oA<&N>&qMnCqO@MNk^0G#Y89{ABY0}OR>HFpS3mr^n?2n@^LOy<~p5s z3~fek?wV#$N0gi_(k%At^nz2(lwXOs?7r7*cs>0mH5IiEM}Jt~s34B3P68Od?}a29 zntgc^7GE_Q>IK5IBT<0N_c?t}O$jWmahp~?d0j*7sd*$vkkTsSurZt!vRFhzZ<0x;E{^N7V1t9fWn=Ct?3 zExMrnjsUa4AkK~IFG1WdWs9*e&u;S1;vbt&*#nr6R+n;~lb;ver1V6ChnHh)XKR)5 znCxZWZ@ce>mIvC%Vp3z5zIqCFEeep{Rl0o>nf00(aGVy!o{O=&H)?QrL1cRj_}Yba zN4(Ae297^}Ua>I7QqpWrQ8}>=JX>oKstuHUGay->%3b9m$GaD}kM2(2Vt7XXi@R(+ zl2Y^=m>s{is%7bS=(vQ5?C8?z{sVq%nex5I5|AjAu?CI0+S3gPPYQ$gR8J5lk z5>s`PEI*`qBAa865l^Nlra51TC1p#^Oj4lFo+_s=mw%$=l?_DiM_ppV_Pqo;WLtREcodjAqh9z$SdvWEj37fe-1VFD+6 zHf-FC5Yg1I=U~QUap}sH_V@7oLvFPD&$v;IcK{=^NuogO?d(}`T1U;m%5M-`m>YfP z#?li#k@fyZ!VU$zkk~vxqXX0+oT|Ct^qsr;il_46SArc%f!P`RhF=BORFM}2u|Vbro?6)#W}Ye%W<%afEq0H>s_`& z1H~zJC0+9gEpS%?#2@;Sc~J`)Cxsei4w@NEnYq21#k>oZqH;oDS^72<=@ys?&;3ld zIh(f@ZG0RQgEIYC%I5d^T?5?E!EPIpk%8H61juCdx+%bNA>sZK?%}M%ei1^xQ?t0d zuQ^8Mpc59?JhPZTS{eUvxhEzMd1mAyYqKQ4&iI-s zXhArf4KTC!I`hR_*_W=)xwVe~9hFBG@038=dw7em-cHMgZW1mri}3wUw{YP&DZ29g zovl^;r_!4EUf)Z8i)CUSJVS;!&W_bz8z>sYJLh!EShDRNd#o!g?Ws4m7xB}*ZA|9| z=Naw?b6gU}x}h@R889qCzo{Pc^HIbmoBBIJ%VJoYs9#iVGdczqq^n(1};!<+((D z$()+9Ne1I^t^LT-SF(PD+7a6wM$xjw5qOY;}vBkPJmg&EFdOBg!Dq{KKF-b+^ zw0)9aZIQm%a^7fa*m}+2DBg862ghE0yQ*r_y-Cr`DY{kMVz;h63011Eh~HvGDUtk^ zlKj8GFYW~Nq4B+$*=ylS>KVGOqvR3zgc;+o7rboHNNd!&?L!SRczsE#UzIBMjmd1# zH^7iBR;^2m(aSZt<;$5)7f-6%6^ahXsxij)Sw5H$NLiQBEnF%tkGhCzdUPqYUy#== z%t@qReCi~Aq<#?pz-)ghbz^~fLw>Y)APwh#g4gece*MU{{*bwXrm@Q?Y>g4i3(DIc znPnI%bgJH4moQ87wTZyMfU#x&Ntpu4P5Y4*qe;{K>s~Ff=m@{Me2|rikssf$b$>!9 z75?sVokDf^Th@t33rYQ4n2&?@fT7_hRiAX;Dg3vdII3&j@UnFMf_ztOXzQkSZQ&+} zB{a)EnIh4QXapJfzNKd*rkm~t!#Mb?D#BUN=V4Y`L;C{m_i(9BOCvI~bdS^{6e8B4 zd}2i=40+4Xe5QvNt~QH9chRs!(ZM3%mw=6zJtAI1S_g`FKNXfG?-3=Op9VTyO3dp2 zs+jr4MIb~T!LV=2v5$WPiX=;ZHjiQheaLm|bv6*1x|zIUkYdG3uN0~-^V3LBrRY`r ziYR*1lM2L})8z*Cy<6MFgSL5>yZo$xLNyOlvWLtFN)FVXcDjWSZvkazxY6xXBs03|iTpA5YK#=f6-NgNwI>QS&|M$0 zy>0G8R#i;CFu#o~dVn_DGMuH$_VE4W#kLfQdq^dePq{aBfAJ)bR78rNy1(>KNUaOR zyD@n}BBU^%axvTDw-H+aBW^sfj{s{rNaka+6=~A0*?#W-_l|kKU^#d;6IA&c#S?wL zXlva6&i8ASPHhW6grGY!qd%@mv_{hecFW{O6WXVSp#%X!g|1miTf^M!lVgTlB9bsB zZ@HMjG;F=U?s&h4S*4dL8oEe`oUQswATGCZm@mS1*KrAZ4mFc%m5U5){i^lxKoD6y zv;-0*rT7sNrJ14mgtCM$@ml?xm+vF4D_b9jn$Kv-U$2tZ{Eqw}^3vzKPnV#R{NlBu z@tsaOy)CZJQkg2u$P9dJcy7lzvEMmyq@%8O1UWH!MjBn2@4|va0#R-fv^&>PhpOX9 z+!cq2#0UX!BM!g~+O@GfYNFfvDBm}ywmEc~m6zRR-kZJpM;VpuNNW|t`A99_OhnvG z$6S6=ZCoJf71FIN;Q=WiKZA(8aqjg9B?i2En>Ki?@+!5y zUbUfO*%0-QA#pe{PzLD+MjW8w!SU4Sf#X?K9VMBg5&`!E?P5_l=0L1yGg90+mS@^T z>*QrUmRKl8CIafqd`EGr(Tf~|PU^7k;N*GPL|_|%g3pNW8u&hzYQrzaFjp-E`aoPH z+|?J$>GBZY=6FT6F9AV3Wprn7J#u!FnQm+xR#4+OUH9djE z5(T#npzSwC2kwj(JHyK+GEJa6*{NQ@PCY@V3Q-UYX)>q*_I|?fs`>z8gAWi}3_$F6 zn+!mn)J=@wfSpuT{@h@flos6jOf+LT3Pa|~*55QR{&9NLQsBLceN3cGbL{EbkJ75`5O!)ULSJcjwu%FYH&) zk0;w3n|*S7#|u2Yg^(E&rF?!?lbhmer|rMrn&&m6M?Br;bSvgh&!cHvMum_#!2@1V zzau7S2!I{qS4TXkEP3XPGAu|Msj+hlMlQpOrPnh0PM`RkR#O<|QCl?BM-IWMo6*PQ zZX2d`DfN^5?#eu?fhjreAAye$Du`NaS0;qH?&Y4qh3{MowI|B!NXIDcn55nyq5Im8ed@#C=FOQZI^Dzw z8x~@^=)5-1QbKbVvD+5=^Xq$!dj%H$BYBuxPWzj5!Z@>Si4KbTlL%y<5`?RmpdTA} zIpqWrm*Rmj#}E7t81#jMcz%AAc>eQ{Mhpfkl!Z;pTnhY3YaM%?{x`LTlr}5V?zXNL zW!6WJG$-%wHY*l%qT0zKNgg7nx!?iqKL@*6SezSX|Gsw)D?;d4fe-<82JNM&nOklEAD$8Mh+d$}l z=MO5{We7743d~`SX$#$2`eqUo)8^l(Pj7#5T%$>Nz3?VLzstiok|j!WrMbm7S;B(v zg!KGdU=b?txH+q*O%J9ORH~D$q{PlrLPg40p}|C3gEJiTYnj-Pb_7HkZmy zh&s4%qZ9iPrxrR|#(N^ON=CdkVNmj5p2yxM_R$RUppy%u;as@_rjj9N88G3igEnO-ss3rnIJv+TU(3Qh30OoF;^H%_Uxtk=&U||=i}eJs=za> zTzzFT;rJFgQK2gRuAjR|a?)HC53dsaW)K@GN(r=3`IAWK^VNK%(2JtGm|uGf!n>AC zPY9Xx$n?s)h&K42WD|KAz-RPi+fq)JL(@!LU55G1OR|YrnP=rWY;K%dTRE7*H!o9~ zzH%)K#au9GwAqTYvJcEndsxQvJXFTvosMPKa36i_n1#6gg%Ge34(fSIeY3M-!O789N+l!sQ_L}&N)d{oh1(6}?im zH$T_jV!Biojh%4Mjqg;3zS-^PHQkH(VR+qpM;-}zAY>RfggGsB z-Yp^pX@1+939@ZjsCsGufnp<;roabQM`|g^gq{qocB=0K`9`LFyX>8&+Ws{cmy$c` zYdPm4WtNIMJ!75_xKoNzL-$}~`IL^k1t=V+iG>nm zD9X_#SvpUlhP$*$M&A0th_<7LkgJG%+6Titm4%n!wLe-7Y<8b>nX=tAWUpqvGWT+% zxB-qPU{Xedw{faa19``xkH~^wg5E;ccEKR^DO0zc--i4o-~5#;mcOAm9l@GmMVs=x z>+Q6&;lC@k3TY4#s>5!_g~z;3oxjRPPWQ$vZ1v*|9Pc{cnWo{2^uN4j1oEB$_BLl76k`ZGW7l=`9>juE+0kOz-w}a*9{8ZJ|n}2Au95=BVMa!Q;9Py5|pZSd93-;YE8sNUCI@!Nae&BRM=!V%xU8qNDjk zWJViBJ~i1qbcow8?y(|7&yeF&oYK0?yY+{2ieXhu)cRn1qt{sr7dPrX*yH@a{Em&F z{sS0(aTFM4>zCzRe|26Dc4|_yNbwGLUDC!@UF|z~Bc1J9!|-0-7+nKqDTZ`9k8zsL zKXjR6_mQl+qI8<0OKxNL>WW)UYQ5s%{Q#ellZk||4P&Eudfa(`;Uw_x#Je`6WaF|{ z*l#3OgB-9z(2+q-jUiQEV*Tv!#RwrhKTmC;fyVcK8OgH8T=CE~Hk~OkPe#~c5T-BB z8mAvV$8$MPZ4-J|Z_B<)xCbY_GJ@eZj$B${Udt=&$W^Oo$`8hph>G6|-RyHWk|+Ap z6#W)|+s-QWAg??;a$ZRb*3R54HQO#tW3q6qfq9cO7cM;sq4MRmoZ>0jwh*?$)lUSU zgADmhmBGvkzF4 zp3B8scnEy{cYl;L@1Q0oqkmYfHmoM+Y%D?`@7i}eYb5nJ2P!)n zOW(NY{j5dHrUd5jzHLCPUFF$bKhvw>j!T!AabHX2pyFgO@VCipIkXu;d z&^~H9M>wd6|4ezOxPXc{^xe3D4*pG#XpmN&?Ok{2e_OrxQyHnHC0iVS@lISmVAEon zVYpzP9m_JX)VVX$!|(5AKJeby)!mMWo6lE2GZDliT8jxAl;YUECHHwAOPLS4?BX}` zy(%_FtbE@)hXYZ3B5mR8E|d}~4^iT3Xx>2@{^t0W2VeE{k-w@q!vHzmeU_`xA2toZ znU01@T0{zyFueA*(kGD)z8%w`btunen$rB5y+Pb7sIbe1!7}H=vp9EGQuhE)$vQhx z#L7Hhf}~6?@)(4yv0_i4U!BWSM@c%2a_o@?#Ug$OF5UM7cExvOc4ZK({p%TA-(arX z#meHmwU8u6lo@+=RDO--Qx_NpggLQQMTP*l(OBLASy z0)LUKLlpt3{&cnlj<#~ysjFqhHQ~}D*YWkMWw@B)XTLihuOa|OrSko#5P^|=8fjKI zrg>*kDzT$EK9V0C@Z6wPHjO_3O`Tt3@P2ix#D4xnGqV0i&t}!cR^9+L6owskVeIgH z03qF3tQcnpQeKEJhp`tImJ0ub#(krwayMWgZ{+Npc(+vAA%IB%0Cw)eQQ=i#;;qD9 zu&$@+DecYkgpglhsoRr=cO>`kPw!&kGaTcxfg`VRC#HlNg{?PzCn`vV{4t5&+1!L> zcp{U~6jzc#N_MJ5%mALv0U}t6Tj)GX1Xpo){|;Wk zTL51X);%g;@ohfOqJpiqn{5B1wJg4)<#l9M3MEO$82YR0+@8d^pW~vm>uiDwDrU%~ zZ;tRn0&@&U&O}_>{?1(F0865ILN=BmZw_gp^C&jap6A~6?3PrgEMU*Ja?GUE{XW`1 z%_||M@NgF;tlrhVOJ@Gl@x1PnBO%0QN~NVmX1)tv_=1K@&U8-_e}-+faEuk-lefQ+Rm~d*e`dC{Q&#Ysumq70 z$X@!9$=*rj&4P!}{`0hi;x&t{lZl(`c#c|4CbIH2e`_hm_7^w1eia=yd69|BY?-U0 zBmyiOb3JeJBRULo3fAM%z7Ml&pMWIME4(DyS!!QbQYh#5SAV^GY-9;fsqUxU*RUIp zmah;&7@qrGp5OLA2;V114&UhWrF4wFODkG7`9&YMx%gFZ-DS6)DU@PP`--TE7W56e znTGDD<<1xFy6!#>Gn1TH>5{%uy|aZ#Y`rW#W>K+$Yl)rr3N2j7TGywE?N1igugqvx zm_)I!7U~{$_NNb0^w%S&==__PwvE(UELN$B(YmhNR+H@`z0{|jm+=mG-lPrZOVk4% zPunN#h)9WznTi;3=P5{CFEf2i3KEmSLAhNOhG=XIKRO4^b3PRW0sgDU6k0&L{)_Ap|n@t23NBTWW4++#i z>_LKg>p{cw{NMI$S_br-@Ds{TW5Eu@1PLW$`zl8$@aFAS@$su*xnv}EJZ!t7$8gMe z>4)M)Ov^57#0lo_YVe75!JYE_m1qi){w2Rv$&^63jcBNqpHdt5;U~2{_@tMQ{7EtL z$9Q#hMm1K#m*VxDtE{q5A z%`I_#(1pc+PjJV4#2DsW*h?MjJv>844RGS_yf_}GLv9xa0BrZs0hTF#wf&Oi;#z@w zvxH2K=y*EATm+~%X8&@@Mn7D9xOJ#-qGKRx80|Qnb{e%n#Was&W zl;WIUlIXgSiHnZ4f<+F+>5z^ed;gEM?~ZCJ-P%`C7?q|XQUbAz9mI$mCl=lYyRHCb4V! zrdNiwG~L_#T(P6A;Ev#R?>qr`=XA#z4%(LEeDZh;keA({fL^AHwdK3ZZ(6N7KiNIP=xL^Xv z*b=u+qW+J>Nml78I1$m`aXY_siEsWE%QbSvRff9Tl6p=d*bxCK_Leo%8Q-7v;(2L; z2$^*ZfgJPm#Ps!<{IICn?M|l7xMw+Bu_*m)xzJeA;6L+$0rmzJzJU|mfda}h+kfo? z8^7XFrpk>{Cbx+LVmGq;GcTU*7aJ>o&l(R`xq}GCA!Jg(pC~rD*u>JT&0b(?eW~VK zHtu2nm0*OLGuM$bP|L#)eCV{zL42Xb)N8Bx)YuW8Q_mf>EhH8 z7K7`xiZ{s~az4_IPDu;mmQ;&ucaiPrIizWx-6UaAN;*h`KJK+kK;*60CwB09kmDQH zS@;3(V|5j5u^aoJ4EQbFAmnBfy<~Dk*!2-l_pFX3`lvtq@X_Q!R-wl7(F9hk#;=8% zn7}*+azc~ZDSKyL1H0oqx-WRt69ey{wlD7_h69}|$&#-PFjXCFv2KM~l;)W=A`Cmu ztK4;Nm?dQfO!`d*3dm|XE@B0`y&|HTu=m2{)LhxrUFGFNML1RVJG14uU&nfv+GOqF zU-X7rmx48E=qCzj>tI2x?yALh%;&GpN1U34Smcjr;vvizhO7xz)6_1%Qh7J&&ggCM zojPF5W^BU*$xz3|;F*ZFqb~RNXcZ4#*=j>jzqLgcx&1-qM@?{tT<(h(b7Sr3d&dvy z@44W$Fuj}|fS-rxdtnz%i7P%W>bqB-QFk4@LWa7 zhi^#fytD@Kfl@irdEB#vCht(jm*x+?gdMqFTa&n;Bh913# zFj40%7dpPA_7(B5g=7rZ&|W4V8=8jFEWsA=%e10R+r#I+5*`#hY(m$)Tvq2?y+6iT z`D_V;m#|-H#n`jMJ0{mU58iJlbJ0%AQ|1TfFFOsYnMfW^jOBAJm(_QPN)DeU@%=f1E1?V zb17-@byh^qBhd2D#}Bto!iGkUPaGe9#vIqWWmqtU<7CRte^l1YVP}*btp>WXgr+(z zV00?0JeL{coC)8HMUO2g;n%!%Coq*3796|L(8U(63RNjceh}mpE=|wke9j&!3ztC8 zHqGo}hWJdE$>-uTH#t9+kIkRD)Yh71>n-7)l+9OAXjC3KXua@!%Pd4>+INQe^3V>lVct{>G`mqXp`UwTnS)4! zXDC(L(NsLWL{G@)iS)0ft5@$km1iwkLDkdb9T@hK>H41Mhv4D0c-xg0MX8BfWm(h3 ztFPuSlA(#7g4#RTB`Ve51|1Ts&QIVQ`z_RUv1{Ksyq4ETe%7?n6pSfYb^T;P`2!3C z)NPglrZCP>!j2Xic}gI(^A@jYonDA@RC~lY%CvpJ9v2BJOEor&>y~5<=J0>X%Uk_C zG(Pcc&Tuv!n4+BQTH^Xr#a11@s4ZKul4D!p6{(KpQe!i`LD+9&H9zqzk+V@t#M}Ph ze6gTn&|WQ439|6Hrr3mI9Ddi;OJJ9~ykY(GWyi+11luzVnEgYl7M%&`E=4Anw4gXI z873sHg)K9W+sy7XoZrpm6uV7!^5Ko5a)Oj=nscTt zb3}SNB%%U@uKlSciZgYD)Z;yO#KAATOK2=g@LcPMP0Nny0WFa*<2^8>({*KP+)f|= zeM_TqHsa`hYR4R9@k>m>h+<>#m|QvfELp!Fn@R3D$s7@0BX>FXc^QA@Mgy9I{SUH^ zlU37C1FTkm%xl}`8o}6SpEE^!IiC9iJVPeEIKQg3)wDn&fYmjSs2-F+yVq$ zxfDMvTUG9QO=J{rgmI_I^3DIQr_2rl2AsDC&x0DsH_D^t3aKPKW!*WNdCuXxVdrqH zk5y6ZVC0z9`}^8c>L~^Y&HAG7ojQ{s?3!B^T(z}I8lOTQ`Wyy zZGsV&Sxgf}4=f#jhx0{^aMVH{?NQPYeK_gxctq*LDmH-LRjfcn7aRVlS99HixABT% zb{o#P)$V<~zLQy0a#%o@`y+P;NXsP99O3gB(UG`6chLuLNS$p$9e&Y7gZ4`$S-0&< z+Noa>mS`PHb`>;!RK^GdmlZ4oyoH<8qQC+;dDTzF=}H7Aw5y z__%6gum7aZ-1ZN;BJTzS6tJbg2b51mAD!*mLqe9lXNF{D3wv*3ul+q~|e=cL$v ziBlpqP$OX2kG*M}npz?0lL9{5Jm$e?T*EEbK`Z`2LPy%*|NpvSI~x z@jMJU_8Y_4v+#>jS%H_tFlT8~+4OOblHk*o7H{XIPIrtisG(ojmb6(%E~TVUPr1F> zr}5{kR4(Ac9oshM!b-{~WbGCHP0O~jG1XepT`RfVr9`L8v(g24%wv}*#Be9&t1z(|5w`<89;Kc!iea8+dPU52 zV|14qHP_9L5eS&yBy)8_H~skh5<^M@nj!v!bL z-Cbrw?HgMVrtwrH>G68-PylrHe1qMU&u=-OC;hJZ{&sa~HU%e`o_1^#;@$H2Zzwk?2<&V+Oz9@_bQv^Wg6fOE@2w zTSWRuy%WkIB9Mw*y`j^zumzXLc-0yA2)c%109;kMY(8hK*?BxhF=HWzc$&$5+EI$- z%9b9S??RU)<^;%j^&k?c8gU(pdW^zH-)(Kg)Xcytdw(jm0;#yy&Tsr3+I} zoz30KwBaIy0t^{KN_FB?Q{`wu$HU5)XFtq0rs`qqhtOtpQcr8ZFWiBIH~o|EpUW1J zyq9J_60ULvv|`XBqcPWh8CDY3WTNTCjeYybh+7mzJyPrpB@3y?z|z(+rdf)IF_$;; zk--Yti#B~zHxeLQIX2Y+!{*9;Axr!N@h815U-+PjB3YQw-@1fWFFlyr z3GwY>zDL_h7V3jE+Z8MHF*ZhR)V=4>1Wd(zlIlhMQhb=?;F}rnk5b#&ssDhJGYp9w4b!LYEr6bbptLE zc=t^3o@Uzo*_~_k!efp3Z8I5a=XL&e3U>O zptO4L4J5pD-5rh`mr0dh&h@3p=!_pcz2I92n-Y<7jZB>3`*=afrSd^13gMl#07X@9 zv2cm*H+tV>Q z@I(kK$fa~i?=9u{NvnBZv6!03nK~k-nMW0>Jr(Rali<=z;TSf9K7F20^*_nx#Lt{{ zZ>+qHbo{z7)vW5Zh3`uY&@jaU!g+2{&?27W)5}ugc+ZqSOrV$EJ?<`p%p9!nQP9Gr zua^nl@$h8RhD_~H_LOz^K1SFh##J2;9rwdkzQobE`iNL7ru{-izv(@lek+}R540>_ zxky$yJ&~AAjuxDh3P1>DsiQ4f9-soMja4Z5Sfg*$L^=-7)(dkFtuV>OnoUerZ*}D2 zo0X5OkIuvZ(p}luH~qoU<9?Ohi=j||oz>zNz8{wvSDy^L4o0^m%xr#$6Cj_QTlhI@ zR6Iaw{z8opD%iGv<;U5H>(I%L1g_rrFGb32xwX{~8jzAGC;n7f_q3()F8D<9gss(kXD{Zk>by)$QB-XS&CMSO3XQoF96pjl zXU>|YYIvIZxFJm)&7QijZ_CFR%%_$qOwpVuM&gD~9!!7tu}_I#quCm(M}av>f!V%T zM9AV~*K{{h-#AV^3HDA`F00qGy-;0cc2B`OG>Dxr5l~A1Y@0hrl>5xFOv@***q306jPVW8oS78a&JX7A#uGK+t2C4C$y|^ONnKusvBnn zS%Fl_hf!!+1AQ1i2A#2RlU!q)gQ?PZ&jTsP^1FvdC>uWG7{?o$Ys zLFZPCSA>luq`-aYbxJc|lkjWtKDifAT#nL4;;E&D6@6QqN~p|4(M!SR)oo5>9h(Wc zT_$V|iwT4|e`LmL^M}cjYaRuflIJJ9xtvasc=WHBmp<|<88u2GfHW%hfpx9M2OE{g zZFbj@P5aaJZ@Zn?gp<^K!R}VligjHg`(n^NyHo;MqUyy2nwRg1LNNy#?^dQSz`8wsI$+a0;=E5y=~ zpL7bir-_^|2m0I0-yU~AcZYrX=YficHgo`-at;4{UXvUyOJ zIGg>hr>~dEq)1}R$>oo@MnDtKN8)`mZX8SlGwu`Oa9*k18~t$ZVXsctD`pi`|eCL`l*R~nbP_&K%XqyV4Jfbh z8A9~FZYWc+^QKqoCK*qK*GKD--W8pDS~md+=wn|>(I^piJa`nx*LEq&BE z^=Xr=+@x>eowiC)^iCD01@h^#7+-Pz&nhLavA|Eof{nYV56AnE=K@w(irKSR!7=NB zagkWfcr#>UA8iy0T1<43KN8hcjsERu?{fD1_yU-@MkT{lt^+n!QMJ)#(;bn{#LbwF zxj;v;FXIariZy5Y_#`T;$EcRra^oSTIPyKKcUKA?auiJnWD{^Pm&+-`fMq(h^*XD| zfdeVZ-M5b{6Sco~BVMGav;S1mGoF&-Hlifn+;zJS+xj==kr&#yvIWdo-TA|`CWER}) zEjt+^q=85To+&JB#NvkK)r&dG5R;WY5=zAizG$##0=A~Cf+C-|A6|Um9 zALs&&h}qisEHp18~S2)XG?q_bsbyTJop5gPr`EWUl zLXTH}VC^8wt_5+}bs)Vf&%|!tz&Zg_tGN4DqsY~dwdy|*DF;L1nS$Ow!fnnkznd%a zs>>%i^~_1Az5$1IFy{;z=XAaCbH7K!Ue9Z2y5nV`pW>hOr3hlwxF-&-M(JX%F|KOf zU#nY59S3SKai=y~z@PhtE>U@XlX8C#xRC!*$IPz+zaEB7R3?xI6MPRX57hghSE#Uo zPyJHG(>b`pCq(k>kXvQ3&g5KSXXM=AOZ0t7l%)_h&grX$X;|S}tkx3+Vs*ntV)eH} z4_@^U!GR;26ujlT`_0ttgt98A_zIwLOdm!%}|Ni?{e%b!gCwh#b_qwq% zS!KFfAsKT4H2GZfV(F!D87kOObZ=Onx4eeewk0+;&5iB`OzBxF$Vm>9e-mL(CVpt} zS*ZFsSbzkKyUb(^dxXZ2|E!oP^V%&3HvY9%Br2QKA8eWoxH!jOsS>%IStY}MD*Kbd z>j279a=v%AnO=4&ANi4XfTC82V{`W-OX4B&L>4tvu|g%xjF~y_R6)2W5kFx2VodMB zRY@#5v!>B!dflL_0E5m^`!8Zlz~(-=h^>Nwj))ycmg6Jlb5;1h9MWieFcnHH)smYi zziiY2Uiu+!#|m6+{2gN0B&?M<)ehVR@|zoYymgS%<2enSkczegL+_{O%yQ?eAFI;g z(3N`ggz9yb{dN{m+1Cvpd(*s!=6CTsdpKzFNZyZ?PS{s{)t!>(!Pec={4G8n>{G@V zZ}e<)OY%MN(ree_FS|prA5?Ji4;-o5@r&DiYEWbN@oIaTH~N~h9J%heD41RVoLLFQ#Ja1GW3Ho z3)yaRyrdu~ACZuDsQ@3XLDn!TFEGBRt}ilpC96wU&t!Dvnq^6UX&4h80<^>WcI1i3 z=lV=CoN+!b$VcRLMtp(Ch_7vc5q~@BIdXud_*i;>j|PqZEi?S{vajokQZX&WdsEEG zmMpg{-3e^w%%lc&-=)M8Bk`G!7CYH(&L*Zk#<)X1NqHf9^E7oV*U^}wYb5QohKrF( zfZ3St-?*pENj%=~E3&Lq;q)}AUgmH{1~Cvm0)#uV?)>9R1$}!p$VH_Zj|Vh9hwJZs z6gGa$a;KKzz^RFM;fh^UMJ#JlNOsC=y0Fs)H|l&Lt5x49dVTOp&K6M4DfEA#oYR#7 z;rIs+Rg;`S6qBTrO;4m5ircpXQ?4g7hntB(_-cPvi;ObcW}?tRrlQAiXBmy0p7mfV5L#r}VO0yE)qaxZh}P+IDF@ zkGz|uPs^t}jW@N)6YlY{Y3IaCS3&BO5)wovxB?A#b{<)YFzRb@Fve@}%GO z=P}E}WbS~kg+{9iYn-~7mC)RaljewrJPV!kNb)8?vd4^_)^#>UFJMGCeHYPk*Km47nQ8q-)qySxJb5eB;`DV#^t99$< z)vlt{Hg4UEf}=i%nxqX@ueNdU=azrS8jE=Fv~!i)K0M>LkHRm#^!0e$r2;2Isq&{$ z+g`Y1K6XZAF~{JAf?wyqp5c03?#F|X79EMRYScXLBM@v|9xXtg?jJWUk0%iMcXjvC zwmg;Sxiebc?>Q==8L&ABVI+2=Ian1lPmkZ*FTOk!5Oy?aS=`)h7||;3-I&m7(-I9K zXcN6hC4JFl<3BC|!%1lO&&BNZcAmIAAkaS5jSHmAzfg%By1wJVuW}Cgnbgi(W_q)& zcd-e9Osf}T3lFNHR_JN{+1_y0-0N*`hRt%pIPXwP(g!2wc{$*C(6q_{>V8xe=!jPatdTdDzjC0{6>xiNdvK%7QggpWcbXBY zWc{E_jyJEE-L~=Eq)oE2=|F+v^8>0!w9iwhV;Sx0T4jAx@uV*8siH=odqe3e7x>D| zri^d|jW{30@ieCe%=`KwOjl}BBq_+PiskSDw`~9QlO?unJr&_~!W@G(o{G5gPo_sN zoF?KX29FF~lg662i~ItIMtp@8&*(%td#6#cPEXYo6h9$`+GY1Q!1H~!tqf^j$d)1N z)1xLXtR9u@o@@Ixra9ch{HxSgXPmsr6guS34!aESr9wA+jMu9^N^r7{-nfO*`hY?( zOJUuc{LOdnT(WWLkziF_NBExKsT#z*M%%1zLmKIgyELEEvDrNq;yPUmBbQz?ZO0VkERC5-&HvL@H?!I*_%H?6v?u}#78M{p?&pJr6CtuSKaRR-or>bgA zG`V7{jW%PkJ;g_<_Y{*FK+LjNxtPxikeL@m6`e%a&?QwCtn4VKvX=T5=9T^kXRJ_0 zlH&j_SDuc>A=ju8teHn5FKnC|dBO+YtCV9rG@J!yQs?YNvM@zmSx1|kz=e#=#yD-A zPd$z%7xZZr^c~uban*d-w?oc4BYFJ z{B!u0x7i|Y!{>l}Mt)K6ZL<+V?sx0rd<{#J5p`RhW;K-7UuA!!u$g z+}TOT?DF#zFE9DJH4-D6UoK7m%q+1bk3#0}W^GozQN{_a*DRqe__&l8ig#tTtP*kc zd0~}n6!PpP9)-NQ5ef1ULUz9^qTclqFT z1)TCkEELJda*J^VCNt@cL32dJSl>fS^AtX|_KkH(PV*!Q+_)q%0RyRG;Fd?L5udxd z7Q25^a$iDJEV7uwhZZaEzi?_iw6vqgIA3Na7ha=O$wxP@i1>tZwH)jGnKi+3Oj1{s zEdw^bv2b${cK5&;$9X)`Xyma^_@AWzDla9m+V~eMJmCGCl2=20iP@^QMKV#MtdA^ zDA}tgPBKt%4L3!)c%4PsMrZ(VK>1wk+zp+{!H|F*!B;2JM+7q5N~AU36ea@Z>K4t3 zepc=&aDYzFV4%zF7NsxG6n8spMb8NSRQD_D=?~Mh^VHp3k}6xU+GvY?)s%qyU)U$$QFE6Zr8PS4& zEz}8=^UO+YLuPd#du0~5$!;cGozlo_U4UDdm}tw{ho!>ZDyPiz%Qde&Ru4w_aPT3t z<#~HhGR|e3>w8`=3KUTM=H@VK1-X*TOw1vnv095pI`d|OtnuJ-HD*OmzeVY|*M!@U zg726%dW=Q3#7z(^{y*dCaX4@P7fx#{nC5Y%HekV=du+}S;aV$Dn^|-}hFaeKq2*k3 z+H=QI`CtTVmQ2aBD$gE7F-E&1!sbTJECv^{`#hRz9m{a~Hle&gYvNHn@+Yf?r%FMVDbV9&q=EQZ z-D{2Z*9gRs=vXi!FlSIz&ona?2IVbWKF}xE``z_b9kIXoPnnpbCa0!xffZMZmiY(y zz#Uw_nHi(l9+OvcD5mpLL~$o@E5KaBv!>Fde##1RmSd)^aV&96y49nfH>9Sm9f&NIAfH+(+Y|zN#UoX6WJp-v!&Q zB2JCWE+lo7vYF;&M8aJHNe;du_+%4}T+5nmHq`yZ4LMl%>x%UaNAdHK*E$d(OV&1@Izyz`QGM0;^hnSbt8F1AhQFH-;c3h^{?#HjqccGjLVP$KAk zGJBU4A5O)Z&!UlctR56V6ff+XEPbfhj`fK}5KUgo{i(W)kH-2~QN5-<*5>C>WH3kW_5 zySIY9>4MS(Pk)dlWFL&y7J0fOfHnY&`*hrYonO+YDs<^sgwmyNYstU+l8G<*BA-Yw z8ystDjEUKHzE1X3ud?qxc@N~~u8ueLwW>k3kRvyow(}hk699MLxdHhT+QR2GrB+ST zkLUi6FDq7~YH5dvHiiinjO&F6w4F`Yj_D*8{5`tDZv!kWXN8L=7(c!B?OrMhoXwEaIA>kHpKI~>L0troYq z&B7A!vgt4fOvZt_I+$m8-73W)$dR{OGGHL@A>wa)Y$5#mjk>1qZ;1vk$dR%kLIvlj(Yq-j%=2pn7S?OPsil;Cr=UZu?N3hW$?Gi+6QwJhnL$dDgvy4x_Mb5&^VM}@$VVQprpTc$G1KvXZHy|_+X9|bV-Xzt6 z6z>{&5_n0 z4ivhSiMP+vC2BfE;Yy6fBoK${e18@8J?y9yG>i0&s$?gX33CBf99wyLmk{%3@CQ)~ zh#e-Ywg(B&w{Jpd{3jtO|0aa2JV}Wmia50dVSqq|ZI^dlX9jkbU#_InJ4>_1|`W2kHL%&hK;bH-a&CO8ZtM zP^X5d-nTSb)%4VMIvQ{Legt^%;rzjD+b1RnVVmZbebK|95re=_4mGyQ4aig9K3vFk zrYG5(W18;s+X(8|sk!5_DYbR?{(_eF$P=@Q>BV1&(WnEKUb|jyzn210%AgF;YgaF| z5e@>ot-tS0r~ls(g$&;%*%rEIaWc%zupa5ssuiEqxwHbtv8Ilm*?aXm~VwZ}AMFnDG`*>|kf_!*=LjuA@#1|)pl|54Wo z+mr)uh$Vi}-D#-A+nMfVm*xr$=iSj!52Jfl=nexHwtN*7_4+H3$~%XOX^&qT;LoYZ zjSst(u>)391DXP^)fj=yA5w_lR-jVC3IA@0XDR+cE?xwgau_C!gEe_lF7>cr*jfK@ zdB#;w8~a0Hi?K}(vFYFZIh_8NXrJ_k{MYri#G?gv_*AVg=QD5=P~A<5R!HO5_z~(z zMiot4Z6OBWa&>_6-T$NV4`#P>_uUFS?;Y_JpCN4bi$bV%0?ZnrmT9YnQcA}gYSTnv ze`7Ztf1z+;`i@O@N=;SFo!-r9O|BW2^j-*hI!YZP78xc3ff7h737bEEH)w2DbTQ|* z*wT&VoLkbymOE^T!<>{4vW5B?i?Qk>EO0IR@b5sZe6hDsd193fz33aneC?QTBogpl z0`Ii~Xt$FN>i=c!O3@Jg7n3;H^I?yg#^$up=-pup_YZ`91&OsC6h<2A2rGE|HEsDH zC=ky9wwOfvJ$@QRIUi70^Ga?qhw>{QzcjHW3FcetuT~V{-G+}Gj7eTE4+s1uf+0T= zi?a)AY%;(9Cxt@pb+Few$L=XlJB} z$B!%lmj)aN4<$~?MgaL;(4~S4VYbsAXDO*t&WPN??j(N^u?V$TXIzrNr zY|h^1Rdyx~`(2(A?b~o>a(4$enOX(M`Ux@b>}hsT3cM_@Fq-TSONcZM9fau!nWo9O5$mCKq0YA{Q2)SWbwBflL85VE;xsGF!z z>maP9%yoiAJ>!^h>ohFBGw=c@ zfy%O6eW|_p5~|Rh5Vga737iH3M;kNF#EgS0!Z@qm<(LJpccT1*N9*cq zqiigOQz2pzG&4x}qF8mb;S>;Cv~BXFTzdi)YU_0ca}4mZyh}6!)$|JgwbdR{hg8&! z8-_Ymil!+u@}S3wIho2q_d8W1xl`r<_gG8VRw_10kFTsM?1^Xn}(gnGoue z1Ip4krMWy$yv5vc;ky_1)UL~C4bkn6J*1Tv>j#F7`{9kL91xf$sl2y2cPgWrdy+6` zN|>AAjNrHeAT}U9EvP%RpQs)Y?V!%ue-GuT2Ovk{%5}&pS1-s3oz0^*haM)j+>8zP37)N5bUu zVuQbh)A_Pv`POo^XA^W$+S4C69birsm{UE0nJ-;Eb))Y;#R?hziuv-16*6H~k1!i< zq03pJvYagye)!45_Jbq}=L%(Z6pPQ)LLg~KhN4lPiPMRIk_W1!B3m^Z2PGS;Kj?qY z8g52b=Qt#4jonEo0-|jFRISfx!!pJhFzoLBhSMgeq^o-#VTO$`!(h%5ZgmN}kf*(z z*Iz6A{e0jw9}_;HzdEZ=m@g$Pm#(f%tn^K+yreeMoN*V1UI+3g;pB+Wk2Zn@x6NlH zvm#riR)DLuM(EK+@5ms>NU|%)AbpoXtP$%j*oO2kvJU7i9njm2_UFlm6CoK(P^tzp z1xT%{B&yF4izSnl=RRfEU%0otjI-RkGLPXhvE2S?T<{a<_i=^vaT7*Sh{h4K4*JvLCvgF-3*J|T9D@o0uv@yM7{cv$M(PUS7 zK!=ELypQwy8t-dxRsFH4H7(&iTy-eg$aID-QHK<)QE-GREXH_5S}THF7xYEAea>8l zGdGSfxsx#2o3!*UX-PnvOV{S&e30cYzAtiPB~p+x8KBLHBXC&+E`du^;L?&f z&ES>hdCYPlb{UJ6XzP-jD{`14S|3nVE9E(lUZ_u$d%RMJ@S~BZZut!}GwZ|-Ji&WSPjIu6J zmgv8?Ok!=jHKuEcBg}iPBv5y*Zr| zGcXwub&5%ys+Ru8ha*Geo4)?D+G8cmr&r^r22*rww9n8Y>B5$pPn@Eh%>q~-Fi3S> zKJ3D?Oo=@^1-V&W07c?T07=IqWB8G6D}>2EqVPAWd2(s$cAA| z1tA)3k;l_ukqa@W>lTj%?&8}C5mN9@4~0zDxQy;zj(s3Htg7D#NexwHAl%=l&V2zc zDGVrkph}6%+)F(Z1^EZL@jWD2|1@~i1L`7qgmKmoynGMjlqsGQxEMsYNrcGd#Ioj& zKe=_Ky0Cpfv97Gr>X34`QD)>Ib0~Wv5V)WyzvfU~D#Y6{e?(DtnO`h}(N0xUz3fy| zK=E<`YUET=0bYrm(I%!ooOdI5Pnu=kTU)oLT?U`*%ZKP5j6e%{WafqtNTtdf>$Jcqm;lAPIoP&^07S^RBJL1lHs(k0+ejN2?hB@D})&dBJiL~ ziZVF*nIxKo!>pRVkY)9&x>}8}moxbwlz(#%kWV$;XwR2jk-HowO(Lw7Cr1BSASczI zPp`bmGf+bxmul56sJzWCL>2>X%y=^lx!Doqw!;)+8KkD~WL7gE;jmDIdk3>KC)(fe zv65&#LsZQ(xk3Cx@IqCQnQS~%psE5umXKQ#+fp7tJg$&xHMng%P^6<2GDq6zAZN)_A%A!_G9t!6jG^phgJAtcAhRwOT-JVcZyRcknAQv84}0>S_0 z=WkXZo+H(oR{OjqT$y4clf!t^zZ(_yYb~U4Z}nrMG8{x4Q2hd@yICxx(CxHruI2!d z!RFM1+2l**k-_x6N$t@F4U0-?T!4T#Tb@xS4R`z_wtucZpI-kQ% z_H(HG42WTR1?{Yec5sYQgW5vonanD9B28j)_K zigWL-Bm=y$^Yh{)!EPw43aHUq(yItSrTxJTc^f6bME9iV#|<0%-A(F;n0Pf4}onCD}_)&D}v-Mvr>i` zYToIec)3aN<|Y%r&@M9*`G#89LH|hN$7n+$glgk^%WO8!YrD?qZM_Q_y57|ldi0OG zSO&zOHIP#2;pbpoa>Op_g*pA2`w2=-wMZbha&$yw3ILq~Y^cC0MeQ3%IRG!I8~hT$ z@%E#JsAjUw5KWI6gr`K)dO#ZN2IQ>0o9vLN!P{0SV-GpDZX}r$t=y2q=Etn;fk5Hc zQAo4nq&m@b!}-^XUkYh7RpLJ}F%R;ajqX^-ACH3|@>OM*c;wu8?s=$Z?L8&Nn_6$N zI$Dod!F@=i7O`gW>Xezcvc5)zcu3es4ixx@jve5F`#@DEQnh;jK9zA52COG2nBGTI zs`35HTeQ-iel6?}OjcX)Mn0$mF7CK{?m-sW=jO#YbvyMl@5r%pgaLe*;UYI;hfWH-iryy3KGV+K*ev#FWqBT8}YXV=s%i)bVk?cGN# zuQhn{)45|mnlkTK*+##MrzjE*?}LO`Be-`$>Gl_7Y84m^Xju4@o*qx=q-vkk4c1{W z-6S{?A5As(sVyAx9TX=XOd1XhcNcbV%0Zs`j-kk|A$KGQlCPm#mtWr+&inron27&hC1WSrFc`65?IOc+_>gTrg3spUCtl(B4MB3 zulyPMhseAtc`dRfEwnfqF4#>+#Y4vpP^OC~K3Ee%a-KOu{<32vUA6X}mWx<^o9m6HU2#o$mmZ9O^84s;*e}&}Gima}XTd%-9S_6iuO-4l zm8E&C4oJs1O0t}Psr#GkA6t0Urgvjg5P$kH8;A;#CZPsQL#Z)r+>-D)l{r~jt~`wM zY6K8Yi|BA_Ngi^#=iv>;eZ(KhK;1th{XmFd{tiJPN3V+D>s;RSsP>{v6ko5TjODP2eQ}l+BK(ICQdP+uhGjNY2@k z!*C;){5EafziIOi=QnK;eGL3Kd1GtIKEd_ho_#w5-*P9o9p;%go(O74S0ewSWtx1{ z@|R0mtm50OcnI3Am@4*&@=3A9jEo$b+WPV@l6qETEEshBP@;IQ;!|sLk3p@>^+cYW zY9bF`-(7vsnj4iFOy+QmYa{ICE%w^BI)r&XGzWEt}EcC?JK{-mBXd}O}?8<=ceV|TRAzS`tsD=W#%Lb4Z@Jqjbjbx zj?K5zKQV!$3CMn(uZU?xrrkRRg38py($r50@Z@`Ol$F6V_RgH>YaYrpq#mSbCs^M}`WpL!8vU-} zlx3cNo{{Y0d+ybl{#PuE8P$o`P>bGucn^1_iA4!3#mkFVjWi7ti1-uZOYi##r+&Pu zqcdu8`k}XCI8`I;kXJ=edP%;qCcCqkQ2}aDZ#7a%LOuc!(ou`4{YmqWdg+|FJFO#b z_7z@o6IbHCS_F51le(LG4Qi7;Bli7WWc59O$P#m7U#1=Q9vz127_FItc|+oRL(kto zPV9qKgfAz`kl8ZrW|p<@5$(?8^pOg8dW?bt_r4|7wP)(0J~fJo9eQLYJlbgN33tPJ zg0%0wD$O!ZpZ|FVuqyMJ4%Tb*^E4uVc3~_oqQFLQjyNCvJ8Yi%;ZvFic zx&`mi87HvG`gLdeVb@_EAhqH`w&Su7@Xc&eY&5at3E1ESR8wty_#`(#a(nR_T z1y&-CW@coOsUC|yMA<|5m=uqer=`zngoFNO75WFVOFTLc#5f;e}<<;ZGoK^9>-@EPB&c z%x>RyVC6~qH2iuoWx%A?q@j4}_vKi6JleU<)jW1~{8`leuqu02O&0DPVFVYpOetj` z+3Bh6tk<>4c^bL;hVK_+VPqxsvzigg=}nxGbV_SQxC!tA4%Hb6B%ZS@-~ILmR564Q zfz}Ca{|Ti@yz7(tF7+&IPqOW~Pq_N1iLRRLni-KAi<3>+a)xKLpOUz>8U2|wggbMYM!lyEAV*1Ku z`1>WZnGSeSmPdi164iCIm@RZ&Kc&e*k+AfBE`I_>8M*zs>og)w@qNYBR?J;_#3%e^ zXWp*_EbjqGYo*om6+);SwcUMWg55-V0o)aM!mvEAgh*cy^3o7?iZGIGYKetkAtR_! z%k>BTR4xyby;ZjK?hJ^)y@xwRrl%^Y8s_AaMiNcp5ij)O%wuaM;ciVISr7U@f#=Es zND950>Be(_j?89^;oIdC=B;-1!Q<;86((wfBf$NM#*#xrTk{AtT}-lR&gVok?!nn z=UJwkV>l5-G3lk}FpB?p0A4x$uHsNqW||LJaiR#MngC&?JIFL?-Zit|{F7IPEHl=1 zzL91Y?EU-CU~`XmkBCud4RX%^>+bs>lD@b9TWedpZL6(sb0uzTo4eVUZDgi^Zfncd z7g;l8lEQ9Zc%`hF8X_RF_N|pBYhHDlz?zu_3b&B_0)qFJkzatR0asHfQAkh_5E1dq z=ZW3-`@W_B;M1?g^L1Y5dCucJ&f^?tZo40YSCh^Mor~oo@gXf6(k5bIEFXXR)=}mS z!=CQ3+O(*@zZqce*4O{XTm@QL2B6>lPCK3)|R64og)Wq zvm1+xb-$T=-z`o%IQObk9%H+&A?9j`B(bMs4h!6Sx;uz3OHxy(f2pRj2|BA1f>Mu$=$Umh^NXL{U)PyOmkpkzQm33D! zY98MGLsqZnefxh5JkU>O8K0xdR<=t-Kh-%U@1QG(rM3e|K1Os8TO&%WD6_&yvTZfq zeOsFb+5<=)#2j?g&t1xy4c6?Mg3R*H&(!kx&;KuL@CPgEbm6j}4ybpt2#J~- zriQ~c)LoTl-eKINDUXc4TsGTax^B_i%LWdxEHZ&qL=y}lC(`#{Phju#wpvjA*`~ZQ z7@I)F`w=y_*VD;V3^fnuV+>b0WbnNm9vW8-d#=9V9hPU0D~QLMm`)SIYc%^bSvmwXYC9jY5CJ}1QGbg1%Zeo< zCc{6vFf7dxu8|g@a_wpuN9xEd@)li267^&LEH|U)qU*QOvcolaZpwkYP+v0QY$ke; zR$Jnf3M@Us=~{cmT*2H}4EwreokkSh-jvYNRr~C!7ENQtkGh#iL54f&TFOtkdCvaQ z1|}$fJA^Wd;8Pe23EsP1e0Rptl;o*5rq6AXWoo|;NeuwnT}!qk!!BQ9C&JMJsxAF% zt2b_wPzdvl{K>~@B@H>znUz$=y-=1)(5Fjs^&N5V?tZQDFu=p!GhQZh7Y7t1Kn)$o zg|QQM17^lha3%vdn4w@!a#dft&s!3?L-<22JbSf`-O`XSgurFb5TyImC_!q`8Wi|T zUWz+61qX@8Zf`(?+O#nw1&&H}Oj2QOUIPMRbH9sQP>UZ#tn@p#xrTV&Qp6D_+QgXZ zMj=drcJ>|7B<0l?vT`s&DZeZyR}j3}1Cj*;fa3mnk+5xNUaS<>BWGgWOa!bg#SrTW zo_olQI--f-L5yPhiPe0WC;_i~GrE-zQ+gs<@?bs_ll#`Fn{clR({3$K3sA7c9-Xr06_$=U)V>cPk64V(JfU8Znky-69}CL|u$R-2%cb5}!s zlnknP3f7gC;K?$M@ST4Sbb12}D|xmGp1`P}X(<^VKQQB{NqIZWPbJd?z=H04Bzo#< z+Mv483^O+X|26uN`IaXZd$hXG&}E1X&vv_iTT&nCx)>| zFPoA2-^Y^<4L4ARuuYcs-c9yf5?Nq>hR$ncz3McHqvKrP*6Fb+Ha}BVas$-x&T8x?s)VyYs4Vu zPsxLq57nk^TOPbHX_~Pw12Fn;#DH2U7Svvqgeurl=MPty4waw5T*ZLLdUkmHh5kPd z%tON1Ll+pc!NVEV7Uz(^ZmK{R<98qc0%eA9^tN-#lD?=qL-(etVd}<~G;P0~Gs4gC z_|~(ATFcD*dY+%7#iTuQ?6%(N!46$&F^WRk3?NeE{oI}ugL%oD3u185V*5uA#=ra9 zeTV!&t$5OSm%tu~=V5n~f@2WSp=Bih-w7}a(Yg1*qRc4JR4~GQ2k{&nk=xl6eNRQcYA=>I4naw9=Mkjv~ zkUhDu`Rt+iOJUp*_fWY07ZOaJYRmg~ru$fO10BL~;@u4jV<}~@P@sW!^R;{8)9wv8 za#lfx*drEp3P@DOWwI`;>DJz}Hq%3iao}&;D|i@ObRHcE^Y&Ft9(BW5;DH5aA#fwu!kV zrufd;hXu=i>d8M)1Ni%n0=svkz|xh2srI%pl-JFAGpzvFDCltETfoodb-66Et1X4$ zLl~v_XXCYLR+~XwT5P^+<=c%@!45cNNRKA|j}Gt{E@Qa<;CzOo89C6@B{DTA(%({p z2yfh0)9_9c4zvvLq`d4Rx}lAJO#gL=rq;4PvV?>6=8WEf6YdRk=CVdy_T5}}PL{Bu zXZn~Q&F4mfMBaw&?TB#CyU~eF3S;&g7bKwRr=tNOpkv7%`)#KQ<2%;W20}J6y0s!S zCRdddulJ{qy&R}+fxPpa-@Up2#g~O;Wix|KPDA%-FVFm#T z_b3PU!fo~2vRm>yVMVqw#Z#RwOp>N@wA$wW(wx3|pq#=G$r4X&BY+TmW3$kCw5ct* zJzd54#*gT<4B_~f^M@da9j5reK-{>vWXr3wh{3P##BHXdJUec>rROS#FinZze@g@K zCXK&Hof+A{rSl#K;>8v|P7o`Il^>X=X+o#pvh~@T{8TPrr>v*102)n8E=$m4aL5|q zIwuvSi1g$N&!6%P{yWnS^aCg8++ahRD8E<~Dnwoyc8ET6kueneH`5(G66l}H|0_g+ z0Gy5k_AOs?H$eos{q;JU*8rH4L-cVwt;l{HkQKa3RL=piLs)G;-ouyTu(*51PHJY- zJcV&Ek_>0JD(j6g(}eINwP=5#797?9txD1*&3%PCe*3uyOS}@)C~cb+SAcf%LTj^6 z&BorGl~@Vr+fOYp<--Tiihno#{Hiw$#Ij{3d0y+147Z zsV%Swu=tcvlE&Bz7|mmPNgKakWUt23=0;rk?WYS%*_;biU80+XK!W`0uUcFR&uej9 zt#a0D&xRwU8|3s=q-6J9%8dk+U}*9!A?@S5So!FM^K)4YZqi)VO zNY|&pTiHih@}etK)$g!`l3e@SKLym;&4}w#td{5b#KnnQZ@^CO z!fRZXTp_j3QO{gs#(^w&=#GWRCsuREtBJ)WtJ<$zc{uppAKmfPDBMJL?rZ!sz*HpR z9_o7GI~h8pO*_<$Q~r!YR+OFcM=IYLyjeOs*^|U=2}Oyh_X5#tEkLhV*c>3<-cY#M zU+SfI=&iWHqT(i-07Noeo|HCEKk+ftpv9>_O7kEsH$t5js(NH_wZ>OxwX=QDbZGE_6=qwV_PC2!qZ^s z4r@Fq67Uc$+^HfDI( zD1rc25_k9cR*}wgfB%wH`RRVQD#~>*T!+*qZmfwfjOCl&<<G^U0AgZ|O`E>`N}hHRr=GYBN{$#;lU41b&QT58dD7hjtg zrrzV4rwrp4|1ha{Q_#1QxgPd-HZv&3^~%GeS#{7Lf4q7K*<63~9DizGe2s`hBQmPO z%^#EM~$4(Ik*{MG>U_Bv}tle8mubaRb^fZBeUHJM$Eotjy6{<F; zi22*BudoRp-{-h%wWe^@lcBk$mS#hPtU+AKyz?x}$GMedig4-fGz!JFxzi3=0fLe=cjU~~@UVIkJ*r-c_= z8nmrp=;O5My4~HNDS#gmPLzna)N3cnSygg>zENJoGP*d|IUOStx1SR^6JU>N3kE2> zQRWT&xh$ln?`GdtW5;u1@emHEi4h33JB}w{ib^is!`$w{F z_LuoUyXoi1Ww7g?N8=>X_LyNuZlD#0qGkXbb&!dlns~pp|4<9Kz(R8ytujI;JTO;% z1qJ{N%o!Y$(`UXQZ4lCG6I=(a)mUFUibGBDyMPJMVV;(704)(%iqO4qZRfri^Idos zUk~Wb&&JN_^;m#d`s|$9ok4T`j)JO@(a4KC10^_sHrB4cL8^{Jny4~5@+AS#?*#A6 zrMjE?t&Y2yXQD4Y3}=zI>)tG=Iz+FZn^4yx59y^-v*3EbjnMnZ|NQ(#d6c9(24rr5 ziGw(-yi0noy%%d{!y6Pw*!^O^EdR$EG|=BF1-R}*S9vL}SVMN4Mi`3L=P^C>Lz zlgW*O+R4hUSds#6VHE2l3+aM84KdE_aUZP5m{xf$nm?L7Sff?JFouJ4Q{}&cMF{vV z&K_ayqQORmsLaR9zCuoQ_KBy`hE>%xpc%uH+Z~?)weX6+6IfD%gXVq-a_@L zI4(yl7d;0H2vhs+2Nn<@OaMv#x{JL|a=`v>7K3)pW;KP1h$s+f8ReNX#eW)Gy#*8R zfA!u@aVJtpFbPF7O}+QRmezB*8@OWaH^Qq!_Xwiuvc`WeJ|1=G6I>q%3%(sYKlVE8O& zk}z>@ZcN@7Tg5a5X*Qxr9Qyi6B%vjg>^|;BRSvm%3Li=vEg=6-20AAX4Hw6PsMVAQFMq}W#WKd4C+nU9KFh&3V1S0 zx`Fw~kxlr&c4*HECnyumPY2LX#4Gi*zjY4(*ASp_scXA&IS7l!GX6LCXNwlC`{J`t zK04U@E{qyG`zQD!4PeHhwDCu+zCCsU)_2G!bpo8lvu8`8gP<(WzYRFVo>~+Wy>!?w z>q*il=Cuf9uJ(-6OGzjMORbcf`f%vxbKwEe3$jVD?3}9n@mV0X`_G1@Rkk3CIXYg} zA5@m2R}DmiVeJi1MWlQ0Ix5Bk;y`R{MR5qDp2S;|MJ3N-J(dY|P6ZC|l|>?xx8IS9 z$H@Qi+WDqzl!D)9{xO0h*zU}IA*kcPW}$}Dllf~5$<~_q==4GY3Gw9_OYbFy1rQ#y;b^>mfyn@9$>O9yysYG}N3-uQ7F4 zz(=7IfLkaW&cBnu#bEV&T(f*KH$0D$3Ibj|@pvpn3vke%lu!Kl+KLZ3GSLdT4%G7|El>>TuEYN-@ zVatacl*{cRUc1@)8OyUWfVF+wT;AMTd4~rbv|EbQ;Vh$$YV&VjXbW_xDn_*NEfvbI z06;l`Z;--Zb^yL%~dACQ$~|G6ZOkqR$yy@>3~~ zqKy{3Xf`Pi$&t=It`lHz6wOnDX>`xNK&qGvKi%D)A7=n!ZCtqBwL{N0ORjtD6SgUa z&`-i;73Zaw6h^u6(mkd`*653GBB{)`KN?@X_65pF5Bs`vekM}>+(0#$0YX&XZgKl@N8d~wh6@;GdUUnWl9L@tGyI@dnO<&=d<`48lW^8t5 zPXpDpi%7dS&?*YC$idT@h?pV-F(>ZOCj{z0Pb&26pfEKENaQ(37R;y#vb>QF_uWV5HZgZ?)^~j^&>sfw0aB0J#5a-1FA43pDXLVv4{Quk zY)x>m6Qv3BUkAb~k~%u8iC9kXiNP09Ae(m1_yDV*D4?uLPv&1TN* zs)N+=JDI}qL>5wnr$%M=A@U?XB{7ND)c*EuHh2{7e;<{7I`PnuUruSjk6!nqi}l*X z!Tlt~hO}xRA2AZ93m}>{?bwzD-W}sCkxeiDqxlB?N&#~y=P^;-aeDywcT?mkiA=dMChuN zavT9kj>H6v3RYx?pT-it92wEM3vwurH2Kw|CPx9cGhP{-0%u^X_ij~$&Ls?o0xXW3 z2*H=Fe^K)1DbJ5BDrpfVAw;ur=Ad=_7+Pi29NlaN-2eP|Dlywws(}@7z`SxF7z?mn zwvJoN0$5blifq%dJGPMmCLobTYwUt9MDJPiWpi7Q`$U2-E489Yb5Yk5-E+Uy&e8R_ zwyGt`Z}w3+?8Gp8bu^&HY#fxJSQ&DAH8=Wd>Yd{^X;EYkXEIZ6u7FF<1jtT{mP{?N zNgw?itSPcA8&J7qj3nOLVaXP7$oE2MNKFu|NCC#{_pA(zRFtM+UYz&_fIbHT2^j2hrkyv6@+~*Nh zX*n{&vlL(To>-cp@I z01!Kv7GA+`$ul?#ra?I6HF7MQco?fdUiN+$Cz4(p8aNl?e)yoYWW7WrnJrB_xNg|- z5+7GNn$4fxvrdWZtO(_FMzbu&G{uIw0xU}8woye*I59YstB+eHr1)pN=zLSzdsx3M$%$R^0|?Y;cSRgh||QUd{o^Pc4Dw8o|Wjx zpI{!;k-fD7Q>!i+L}5S0LN~Xck*IGXghm1tAj;@VGX+6YCwGbdh~|?mY}8t{ObwFlWuC85(RVswQ=enq$=qq2#5E+pAzha_YPc1Sl+!tC*(&Cly+26Q*&hhIMNYuDdv~)+qIshhQ6e8# zrFZ{;RzHdWBR72{2_i@XL2)eNG-7LP7DS#7Q&;DHvCf@8{(B_vJitS}s+ywMAk?ao zs0eGnD~f&-Wq9a(7z80pdxjH%yCfuvI**mQJw7B^kvV`t<0%vEO;4ciSo9KG{f9lJ zoemX}qO)<t*ra)e~DC$h&n65E4T+WRf#8mCN{Afqi<{0duwe|8f*BAiGCils{Ln(L#AZu48RT%PWmX3k#NYJ zWl2U)4kWV84_}*W>W$${Pq$H`eXikuJiV|?{AICW;Mc>81}r_4DTKbryl1Ag=`AMo{%2HFNm(M}v-lL{Cb(_!To*YYn?kRfQt#bH%de%T8e6&LmfXs^) zXD(LD-ijcGkjpM$bS*trXgTNz^t`5J*9c*Y5@f6QpcP76Cn)SsLP zDCM271^xv?Olb&+^u#zKnI0v>(gyZtP26`32`dmW9t1fJJVdfx6Bma=7(u{-zsBhN5j1Wo9X)$+qEP0$t% zv-g=hBBr{?D``@X$7E)?KeE}d%15cfK0f`OoPc|OeQfJ#ES{ItPpV@oSdApue`*ooc_ZaXy&8l7mm z7{h!+Vs4*dPp_t*Ql=t<<9tp9RacJm z2&Vhh6rKI(O98had0y)Kv^Cj`U}ttwx>nlVwP?d_O|CMrM%W9H3+`KDyk9)T$VUqp zagekT9iktWSwd>mWr*IuRj@@%fF=PY-%DcCd*>|COkWkN>}&RZFsNG z_HS!jzR;pkWFKQHcO=SF4TYkv02yr2;vh8aneYk;C``7}ZyYl} zwV%b#-9b!9qKtf>OF?xbsd|Y?K17j)F;&kjsKFyEC$F!CJ>SwVcUh!D+j1mU{mY82 z-B^1a@=x|phKx7HEC#ABm(oEk2@=^S3gD_I)*%+1=I#d`kDzogOM)D4_oWxJw^}s5 z(elwX_B6@Av)%TlOgVzs|NhPpJzKOblfpOyAK?VWEOhcyOY@(X-ukqI4b>mf2E#v@ zRwb529wIauMmC{qX6`IIC!ADLY*byf#5A~kJTcQ1ZU1HNiec&{X=DI4=PZ_+J{|;e zj{A_kjIJx6OtqD3X8r=SDqGJto*C`3?}StR6g%B4ML^2vd)QGp;^{zHZ^fi{37-7V zOmj3vbuJ>uBeh{&7#{$1i9Ldlm7_^xYGvx*eEFsQtjREsjq`Fy;M+(!%~-r1dBhHN zdJO5CoP2dT!=spGt7x7y2)6K))0DTy*jor3 zsuoh_YWq}m<3)6e%5!k}+7-*C1m(k0UrgprX1TCe;dyHzXY|WINpFww@-9I(S4U5< zjL^h1=cC;x|LTm;3r&uZ87^urt&H1)9raNc2kro_m{cy2Sr$L)@kP^TEf>9(8LXL} z$j)Oi56GV`#Ihe^eA9ay67-`;_g@bLEZ=|lAbF|u{xfR6%Ee<4?cQM3dkDi`QquAK zbosK2SgujyJ8$?*Ku9Gjw_5( zV@DB8#KC|Mfz>PF8)KM~Jp{4+XN!alol=!plgh_`k*}+w>`)`hFL@?T1`-8-Q=)(P z%5bpi!ENv!xi{;6Zg^{0{uAYxyTD9Sz}<#z3%7GY*FQPDMDO_5qhR$a!#^b)YmMx{ zmX9Y03JIL|=ObLc^cSf|ITwmrtON__}k|Ej?Nl+Ss}+?A%*v(>%L*uKrc(<|#vm zFJf*&mwRmFiB2KzK?GsbjLBd#GEO(??a_Mv5lWhF}qOXdGA^Bnl_ zqwfL?2HyDnt>#MH*&+9vYommazW)NH`|TeCmKnf@#^_5=UYq#IUbeS9BImCy7qZdM zta@v~GyM`$^VT<-D|;`>k8k-#KmE*$1q%AQZ$El6i>DVYPP)nvmE8SQ8A1Qs_eLk| zxvzc+bUcW&Zx^jiH9UA*S#YwEF3Eo!|9lVkWEKo!H# zkB*8oJVetjPOk|#P#D_$c8|4GRPpkI!?(U#@p1FgG5L$%f3$Q#Vtm-V^knI=_m)2C xuRy>2-^g5eM1b7)WKjJ7{tuebuaC_I+1;P47%zEk5%}}jr*WSMKK|;v{|Cpt[j].x, tri->pt[j].y, tri->pt[j].z); + } + glVertex3f(tri->pt[0].x, tri->pt[0].y, tri->pt[0].z); + glEnd(); + } + } glPopMatrix(); - convexHullDestroy(hull); } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); diff --git a/src/render.cpp b/src/render.cpp index 2895fab4..ba893e47 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -162,9 +162,9 @@ Render::Render(QWidget *parent) mouseX = 0; mouseY = 0; - cameraAngleX = 20; - cameraAngleY = -225; - cameraDistance = 7; + cameraAngleX = 30; + cameraAngleY = -312; + cameraDistance = 14.4; } Render::~Render(void) { @@ -209,7 +209,7 @@ void Render::initializeGL() { drawInit(); } -#include "../data/bmesh_test_1.h" +#include "../data/bmesh_test_2.h" void Render::paintGL() { bmesh *bm = 0; @@ -239,20 +239,20 @@ void Render::paintGL() { int i; bm = bmeshCreate(); - for (i = 0; i < sizeof(bmeshTest1Balls) / sizeof(bmeshTest1Balls[0]); ++i) { + for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { memset(&ball, 0, sizeof(ball)); - ball.position.x = bmeshTest1Balls[i][1]; - ball.position.y = bmeshTest1Balls[i][2]; - ball.position.z = bmeshTest1Balls[i][3]; - ball.radius = bmeshTest1Balls[i][4]; - ball.type = bmeshTest1Balls[i][5]; + ball.position.x = bmeshTestBalls[i][1]; + ball.position.y = bmeshTestBalls[i][2]; + ball.position.z = bmeshTestBalls[i][3]; + ball.radius = bmeshTestBalls[i][4]; + ball.type = bmeshTestBalls[i][5]; bmeshAddBall(bm, &ball); } - for (i = 0; i < sizeof(bmeshTest1Bones) / sizeof(bmeshTest1Bones[0]); ++i) { + for (i = 0; i < sizeof(bmeshTestBones) / sizeof(bmeshTestBones[0]); ++i) { memset(&bone, 0, sizeof(bone)); - bone.firstBallIndex = bmeshTest1Bones[i][0]; - bone.secondBallIndex = bmeshTest1Bones[i][1]; + bone.firstBallIndex = bmeshTestBones[i][0]; + bone.secondBallIndex = bmeshTestBones[i][1]; bmeshAddBone(bm, &bone); } From 7b58a62aa6d2cea8f7f925a52b2d8cf7983c7f85 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 27 Dec 2016 07:51:25 +0930 Subject: [PATCH 20/61] Fix elbow rotation. --- README.md | 2 +- data/bmesh_test_2.h | 6 +- src/bmesh.c | 154 ++++++++++++++++++++++++++------------------ src/render.cpp | 4 +- 4 files changed, 100 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 0f18ca85..22ea6ffd 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ When I am implementing the B-Mesh algorithm, I am also think in the future, how After finish the rotation at the two connected bones, I need implement 3D Convex Hull algorithm at the joint ball, there are so many methods to get the convex hull, I found the [Gift wrapping](http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf) is the most strait-forward one, though is not the most efficient one. *Stitching* -I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. +I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. - [ ] Export Wavefront .obj - [ ] Render B-Mesh result diff --git a/data/bmesh_test_2.h b/data/bmesh_test_2.h index 5f23e9bf..a22d8dc9 100644 --- a/data/bmesh_test_2.h +++ b/data/bmesh_test_2.h @@ -5,7 +5,7 @@ #define THIRD_BALL_SIZE 0.4 const float bmeshTestBalls[][6] = { - /*Head*/ {0, 0.00000, 5.39143, 0.61970, BIG_BALL_SIZE}, + /*Head*/ {0, 0.00000, 5.39143, 0.61970, BIG_BALL_SIZE, 1}, /*Neck*/ {1, 0.00000, 4.39990, -0.21690, THIRD_BALL_SIZE}, /*Under Neck*/ {2, 0.00000, 2.88163, 0.00000, THIRD_BALL_SIZE, 1}, /*Chest*/ {3, 0.00000, 1.39434, 0.61970, SECOND_BALL_SIZE}, @@ -18,7 +18,7 @@ const float bmeshTestBalls[][6] = { /*LShoulder*/ {10,+1.42532, 2.72670, -0.44708, THIRD_BALL_SIZE}, /*LElbow1*/ {11,+3.12951, 1.95207, -1.07872, THIRD_BALL_SIZE}, /*LElbow2*/ {12,+2.91261, 1.08448, -0.68593, THIRD_BALL_SIZE}, - /*LPalm1*/ {13,+1.76616, 0.53399, 0.09306, TINY_BALL_SIZE}, + /*LPalm1*/ {13,+1.76616, 0.53399, 0.09306, TINY_BALL_SIZE, 1}, /*LPalm2*/ {14,+1.27039, 0.49576, 0.53458, TINY_BALL_SIZE}, /*LPalm3*/ {15,+1.48729, 0.03099, 0.34054, TINY_BALL_SIZE}, /*RKnee*/ {16,-1.82813, -1.64222, 0.30091, THIRD_BALL_SIZE}, @@ -27,7 +27,7 @@ const float bmeshTestBalls[][6] = { /*RShoulder*/ {19,-1.42532, 2.72670, -0.44708, THIRD_BALL_SIZE}, /*RElbow1*/ {20,-3.12951, 1.95207, -1.07872, THIRD_BALL_SIZE}, /*RElbow2*/ {21,-2.91261, 1.08448, -0.68593, THIRD_BALL_SIZE}, - /*RPalm1*/ {22,-1.76616, 0.53399, 0.09306, TINY_BALL_SIZE}, + /*RPalm1*/ {22,-1.76616, 0.53399, 0.09306, TINY_BALL_SIZE, 1}, /*RPalm2*/ {23,-1.27039, 0.49576, 0.53458, TINY_BALL_SIZE}, /*RPalm3*/ {24,-1.48729, 0.03099, 0.34054, TINY_BALL_SIZE}, /*Mouth*/ {25, 0.00000, 4.57765, 1.92032, TINY_BALL_SIZE}, diff --git a/src/bmesh.c b/src/bmesh.c index 6c23e0a0..63537a8a 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -229,8 +229,6 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, vec3 localYaxis; vec3 boneDirection; vec3 normalizedBoneDirection; - vec3 worldYaxis = {0, 1, 0}; - vec3 worldXaxis = {1, 0, 0}; bmeshBall *firstBall = bmeshGetBall(bm, firstBallIndex); bmeshBall *secondBall = bmeshGetBall(bm, secondBallIndex); bmeshBall *newBall; @@ -268,7 +266,7 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, step += remaining / calculatedStepCount; offset = step; if (offset < distance) { - while (offset < distance) { + while (offset < distance && offset + BMESH_STEP_DISTANCE <= distance) { float frac = offset / distance; parentBallIndex = bmeshAddInbetweenBallBetween(bm, firstBall, secondBall, frac, parentBallIndex); @@ -402,9 +400,12 @@ int bmeshAddQuad(bmesh *bm, quad *q) { static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { int result = 0; - vec3 worldYaxis = {0, 1, 0}; bmeshBallIterator iterator; bmeshBall *child = 0; + if (bm->roundColor == ball->roundColor) { + return 0; + } + ball->roundColor = bm->roundColor; if (BMESH_BALL_TYPE_KEY == ball->type) { child = bmeshGetBallFirstChild(bm, ball, &iterator); if (child) { @@ -414,41 +415,55 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { vec3CrossProduct(&parent->boneDirection, &child->boneDirection, &rotateAxis); vec3Normalize(&rotateAxis); - vec3Add(&rotateAxis, &ball->position, &rotateAxis); rotateAngle = vec3Angle(&parent->boneDirection, &child->boneDirection); + /* + if (1 || 11 == ball->index || 20 == ball->index) { + glColor3f(0.0, 0.0, 0.0); + drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> <%f,%f,%f> rotateAngle:%f", + parent->boneDirection.x, + parent->boneDirection.y, + parent->boneDirection.z, + child->boneDirection.x, + child->boneDirection.y, + child->boneDirection.z, + rotateAxis.x, + rotateAxis.y, + rotateAxis.z, + rotateAngle); + }*/ rotateAngle *= 0.5; /* - glColor3f(0.0, 0.0, 0.0); - drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> rotateAngle:%f", - parent->boneDirection.x, - parent->boneDirection.y, - parent->boneDirection.z, - child->boneDirection.x, - child->boneDirection.y, - child->boneDirection.z, - rotateAngle); - - glPushMatrix(); - glTranslatef(parent->position.x, parent->position.y, parent->position.z); - glColor3f(1.0, 0.0, 1.0); - glBegin(GL_LINES); - glVertex3f(0, 0, 0); - glVertex3f(parent->boneDirection.x, parent->boneDirection.y, - parent->boneDirection.z); - glEnd(); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(child->position.x, child->position.y, child->position.z); - glColor3f(0.0, 1.0, 1.0); - glBegin(GL_LINES); - glVertex3f(0, 0, 0); - glVertex3f(child->boneDirection.x, child->boneDirection.y, - child->boneDirection.z); - glEnd(); - glPopMatrix(); - */ + if (11 == ball->index) { + glPushMatrix(); + //glTranslatef(parent->position.x, parent->position.y, parent->position.z); + glColor3f(1.0, 0.0, 1.0); + glBegin(GL_LINES); + glVertex3f(0, 0, 0); + glVertex3f(parent->boneDirection.x, parent->boneDirection.y, + parent->boneDirection.z); + glEnd(); + glPopMatrix(); + + glPushMatrix(); + //glTranslatef(child->position.x, child->position.y, child->position.z); + glColor3f(0.0, 1.0, 1.0); + glBegin(GL_LINES); + glVertex3f(0, 0, 0); + glVertex3f(child->boneDirection.x, child->boneDirection.y, + child->boneDirection.z); + glEnd(); + glPopMatrix(); + + glPushMatrix(); + //glTranslatef(ball->position.x, ball->position.y, ball->position.z); + glColor3f(1.0, 0.0, 0.0); + glBegin(GL_LINES); + glVertex3f(0, 0, 0); + glVertex3f(rotateAxis.x, rotateAxis.y, rotateAxis.z); + glEnd(); + glPopMatrix(); + }*/ ball->boneDirection = parent->boneDirection; vec3RotateAlong(&ball->boneDirection, rotateAngle, &rotateAxis, @@ -460,11 +475,14 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } } else { ball->boneDirection = parent->boneDirection; + generateYZfromBoneDirection(&ball->boneDirection, + &ball->localYaxis, &ball->localZaxis); + /* vec3CrossProduct(&worldYaxis, &ball->boneDirection, &ball->localYaxis); vec3Normalize(&ball->localYaxis); vec3CrossProduct(&ball->localYaxis, &ball->boneDirection, &ball->localZaxis); - vec3Normalize(&ball->localZaxis); + vec3Normalize(&ball->localZaxis);*/ } } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); @@ -480,6 +498,7 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } int bmeshSweep(bmesh *bm) { + bm->roundColor++; return bmeshSweepFrom(bm, 0, bmeshGetRootBall(bm)); } @@ -488,7 +507,7 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, bmeshBallIterator iterator; bmeshBall *child; float distance = vec3Distance(&root->position, &ball->position); - if (distance > root->radius) { + if (distance >= root->radius) { return ball; } child = bmeshGetBallFirstChild(bm, ball, &iterator); @@ -499,47 +518,59 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, return bmeshFindBallForConvexHull(bm, root, child); } -static int bmeshStichFrom(bmesh *bm, bmeshBall *ball) { +static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull) { + vec3 z, y; + quad q; + + vec3Scale(&ballForConvexHull->localYaxis, ballForConvexHull->radius, &y); + vec3Scale(&ballForConvexHull->localZaxis, ballForConvexHull->radius, &z); + vec3Sub(&ballForConvexHull->position, &y, &q.pt[0]); + vec3Add(&q.pt[0], &z, &q.pt[0]); + vec3Sub(&ballForConvexHull->position, &y, &q.pt[1]); + vec3Sub(&q.pt[1], &z, &q.pt[1]); + vec3Add(&ballForConvexHull->position, &y, &q.pt[2]); + vec3Sub(&q.pt[2], &z, &q.pt[2]); + vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); + vec3Add(&q.pt[3], &z, &q.pt[3]); + + convexHullAddVertex(hull, &q.pt[0]); + convexHullAddVertex(hull, &q.pt[1]); + convexHullAddVertex(hull, &q.pt[2]); + convexHullAddVertex(hull, &q.pt[3]); +} + +static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { int result = 0; bmeshBallIterator iterator; bmeshBall *child; bmeshBall *ballForConvexHull; + if (bm->roundColor == ball->roundColor) { + return 0; + } + ball->roundColor = bm->roundColor; if (BMESH_BALL_TYPE_ROOT == ball->type) { convexHull *hull = convexHullCreate(); if (!hull) { fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); return -1; } + glColor3f(0.0, 0.0, 0.0); + drawDebugPrintf("root <%f,%f,%f>", ball->position.x, + ball->position.y, ball->position.z); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - vec3 z, y; - quad q; - int vertexIndices[4]; - ballForConvexHull = bmeshFindBallForConvexHull(bm, ball, child); - - vec3Scale(&ballForConvexHull->localYaxis, ballForConvexHull->radius, &y); - vec3Scale(&ballForConvexHull->localZaxis, ballForConvexHull->radius, &z); - vec3Sub(&ballForConvexHull->position, &y, &q.pt[0]); - vec3Add(&q.pt[0], &z, &q.pt[0]); - vec3Sub(&ballForConvexHull->position, &y, &q.pt[1]); - vec3Sub(&q.pt[1], &z, &q.pt[1]); - vec3Add(&ballForConvexHull->position, &y, &q.pt[2]); - vec3Sub(&q.pt[2], &z, &q.pt[2]); - vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); - vec3Add(&q.pt[3], &z, &q.pt[3]); - - vertexIndices[0] = convexHullAddVertex(hull, &q.pt[0]); - vertexIndices[1] = convexHullAddVertex(hull, &q.pt[1]); - vertexIndices[2] = convexHullAddVertex(hull, &q.pt[2]); - vertexIndices[3] = convexHullAddVertex(hull, &q.pt[3]); + addBallToHull(hull, ballForConvexHull); + } + if (parent) { + addBallToHull(hull, parent); } convexHullGenerate(hull); glPushMatrix(); { int triIndex; - glColor4f(1.0f, 1.0f, 1.0f, 0.5); + glColor3f(1.0f, 1.0f, 1.0f); for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); ++triIndex) { triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); @@ -568,7 +599,7 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *ball) { for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshSweepFrom(bm, ball, child); + result = bmeshStichFrom(bm, ball, child); if (0 != result) { fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); return result; @@ -578,5 +609,6 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *ball) { } int bmeshStitch(bmesh *bm) { - return bmeshStichFrom(bm, bmeshGetRootBall(bm)); + bm->roundColor++; + return bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); } diff --git a/src/render.cpp b/src/render.cpp index ba893e47..2bd765be 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -274,10 +274,12 @@ void Render::paintGL() { bmeshBall *ball = bmeshGetBall(bm, index); drawBmeshBall(bm, ball); }*/ + for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); drawBmeshBone(bm, bone); } + /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); glBegin(GL_QUADS); for (index = 0; index < bmeshGetQuadNum(bm); ++index) { @@ -301,7 +303,7 @@ void Render::paintGL() { } glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); glEnd(); - } + }*/ } glPopMatrix(); From 97141d9ee761b964ce86b0531e3001324480e887 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 27 Dec 2016 10:02:00 +0930 Subject: [PATCH 21/61] Not generate triangle on the same plane. Remove incorrect triangle. --- src/bmesh.c | 8 +++---- src/convexhull.c | 55 ++++++++++++++++++++++++++++++++++++++++++------ src/convexhull.h | 3 ++- 3 files changed, 54 insertions(+), 12 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 63537a8a..1938c9c2 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -533,10 +533,10 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull) { vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); vec3Add(&q.pt[3], &z, &q.pt[3]); - convexHullAddVertex(hull, &q.pt[0]); - convexHullAddVertex(hull, &q.pt[1]); - convexHullAddVertex(hull, &q.pt[2]); - convexHullAddVertex(hull, &q.pt[3]); + convexHullAddVertex(hull, &q.pt[0], ballForConvexHull->index, 0); + convexHullAddVertex(hull, &q.pt[1], ballForConvexHull->index, 1); + convexHullAddVertex(hull, &q.pt[2], ballForConvexHull->index, 2); + convexHullAddVertex(hull, &q.pt[3], ballForConvexHull->index, 3); } static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { diff --git a/src/convexhull.c b/src/convexhull.c index b2a46c51..e6dcc1ad 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -12,6 +12,12 @@ // Translate from Danielhst's lua version https://github.com/danielhst/3d-Hull-gift-wrap/blob/master/giftWrap.lua // +typedef struct { + vec3 pt; + int plane; + int orderOnPlane; +} converHullVertex; + struct convexHull { array *vertexArray; array *openEdgeArray; @@ -31,7 +37,7 @@ convexHull *convexHullCreate(void) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return 0; } - hull->vertexArray = arrayCreate(sizeof(vec3)); + hull->vertexArray = arrayCreate(sizeof(converHullVertex)); if (!hull->vertexArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); return 0; @@ -65,13 +71,18 @@ int convexHullEdgeExsits(convexHull *hull, int firstVertex, return hull->openEdgeExistMap[unitIndex] & (0x00000001 << unitOffset); } -int convexHullAddVertex(convexHull *hull, vec3 *vertex) { +int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, + int orderOnPlane) { + converHullVertex *vtx; int newVertex = arrayGetLength(hull->vertexArray); if (0 != arraySetLength(hull->vertexArray, newVertex + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - *((vec3 *)arrayGetItem(hull->vertexArray, newVertex)) = *vertex; + vtx = (converHullVertex *)arrayGetItem(hull->vertexArray, newVertex); + vtx->plane = plane; + vtx->orderOnPlane = orderOnPlane; + vtx->pt = *vertex; return newVertex; } @@ -103,19 +114,49 @@ int convexHullAddEdge(convexHull *hull, int p1, int p2) { return 0; } +static int isInAdjacentOrder(int order1, int order2) { + return ((order1 + 1) % 4 == order2 || + (order2 + 1) % 4 == order1); +} + int convexHullAddTriangle(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { triangle *tri; - int newTri = arrayGetLength(hull->triangleArray); + converHullVertex *vtx1; + converHullVertex *vtx2; + converHullVertex *vtx3; + int newTri; + vtx1 = (converHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); + vtx2 = (converHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); + vtx3 = (converHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); + if (vtx1->plane == vtx2->plane && vtx1->plane == vtx3->plane) { + return 0; + } + if (vtx1->plane == vtx2->plane) { + if (!isInAdjacentOrder(vtx1->orderOnPlane, vtx2->orderOnPlane)) { + return 0; + } + } + if (vtx1->plane == vtx3->plane) { + if (!isInAdjacentOrder(vtx1->orderOnPlane, vtx3->orderOnPlane)) { + return 0; + } + } + if (vtx2->plane == vtx3->plane) { + if (!isInAdjacentOrder(vtx2->orderOnPlane, vtx3->orderOnPlane)) { + return 0; + } + } + newTri = arrayGetLength(hull->triangleArray); if (0 != arraySetLength(hull->triangleArray, newTri + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } tri = (triangle *)arrayGetItem(hull->triangleArray, newTri); memset(tri, 0, sizeof(triangle)); - tri->pt[0] = *((vec3 *)arrayGetItem(hull->vertexArray, firstVertex)); - tri->pt[1] = *((vec3 *)arrayGetItem(hull->vertexArray, secondVertex)); - tri->pt[2] = *((vec3 *)arrayGetItem(hull->vertexArray, thirdVertex)); + tri->pt[0] = vtx1->pt; + tri->pt[1] = vtx2->pt; + tri->pt[2] = vtx3->pt; return 0; } diff --git a/src/convexhull.h b/src/convexhull.h index ae31c37b..84285270 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -5,7 +5,8 @@ typedef struct convexHull convexHull; convexHull *convexHullCreate(void); -int convexHullAddVertex(convexHull *hull, vec3 *vertex); +int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, + int orderOnPlane); void convexHullDestroy(convexHull *hull); int convexHullGenerate(convexHull *hull); int convexHullGetTriangleNum(convexHull *hull); From e9e9a170e379cb58732d18bf20c7bc15fea211e0 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 28 Dec 2016 22:16:25 +0930 Subject: [PATCH 22/61] Add triangle to quad conversion, not finish yet. Fix convex hull algorithm. Unify generated faces'normal. Add hashtable. Fix incorrect realloc in array. --- build/dust3d.pro | 8 +- src/array.c | 5 + src/bmesh.c | 130 +++++++++++++++++-- src/convexhull.c | 283 +++++++++++++++++++++++++---------------- src/convexhull.h | 2 + src/hashtable.c | 117 +++++++++++++++++ src/hashtable.h | 15 +++ src/render.cpp | 17 ++- src/tri2quad.c | 324 +++++++++++++++++++++++++++++++++++++++++++++++ src/tri2quad.h | 17 +++ src/vector3d.c | 9 ++ src/vector3d.h | 1 + 12 files changed, 801 insertions(+), 127 deletions(-) create mode 100644 src/hashtable.c create mode 100644 src/hashtable.h create mode 100644 src/tri2quad.c create mode 100644 src/tri2quad.h diff --git a/build/dust3d.pro b/build/dust3d.pro index 6c9faa7c..06f8a778 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -15,7 +15,9 @@ SOURCES += main.cpp \ array.c \ bmesh.c \ matrix.c \ - convexhull.c + convexhull.c \ + tri2quad.c \ + hashtable.c HEADERS += mainwindow.h \ render.h \ @@ -24,4 +26,6 @@ HEADERS += mainwindow.h \ array.h \ bmesh.h \ matrix.h \ - convexhull.h \ No newline at end of file + convexhull.h \ + tri2quad.h \ + hashtable.h \ No newline at end of file diff --git a/src/array.c b/src/array.c index d678c9ce..2654d40b 100644 --- a/src/array.c +++ b/src/array.c @@ -23,11 +23,16 @@ array *arrayCreate(int nodeSize) { int arraySetLength(array *arr, int length) { if (length > arr->capacity) { int newCapacity = (arr->capacity + 1) * 2; + if (newCapacity < length) { + newCapacity = length; + } char *newNodes = (char *)realloc(arr->nodes, arr->nodeSize * newCapacity); if (!newNodes) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return -1; } + memset(newNodes + arr->nodeSize * arr->capacity, 0, + arr->nodeSize * (newCapacity - arr->capacity)); arr->capacity = newCapacity; arr->nodes = newNodes; } diff --git a/src/bmesh.c b/src/bmesh.c index 1938c9c2..fd3e2d8b 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -3,10 +3,12 @@ #include #include #include +#include #include "bmesh.h" #include "array.h" #include "matrix.h" #include "convexhull.h" +#include "tri2quad.h" #include "draw.h" #define BMESH_STEP_DISTANCE 0.4 @@ -518,9 +520,12 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, return bmeshFindBallForConvexHull(bm, root, child); } -static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull) { +static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, + bmeshBall **outmostBall, int *outmostBallFirstVertexIndex) { vec3 z, y; quad q; + int vertexIndex[4]; + int needUpdateOutmost = 0; vec3Scale(&ballForConvexHull->localYaxis, ballForConvexHull->radius, &y); vec3Scale(&ballForConvexHull->localZaxis, ballForConvexHull->radius, &z); @@ -533,10 +538,22 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull) { vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); vec3Add(&q.pt[3], &z, &q.pt[3]); - convexHullAddVertex(hull, &q.pt[0], ballForConvexHull->index, 0); - convexHullAddVertex(hull, &q.pt[1], ballForConvexHull->index, 1); - convexHullAddVertex(hull, &q.pt[2], ballForConvexHull->index, 2); - convexHullAddVertex(hull, &q.pt[3], ballForConvexHull->index, 3); + vertexIndex[0] = convexHullAddVertex(hull, &q.pt[0], ballForConvexHull->index, 0); + vertexIndex[1] = convexHullAddVertex(hull, &q.pt[1], ballForConvexHull->index, 1); + vertexIndex[2] = convexHullAddVertex(hull, &q.pt[2], ballForConvexHull->index, 2); + vertexIndex[3] = convexHullAddVertex(hull, &q.pt[3], ballForConvexHull->index, 3); + + if (*outmostBall) { + if (ballForConvexHull->radius > (*outmostBall)->radius) { + needUpdateOutmost = 1; + } + } else { + needUpdateOutmost = 1; + } + if (needUpdateOutmost) { + *outmostBall = ballForConvexHull; + *outmostBallFirstVertexIndex = vertexIndex[0]; + } } static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { @@ -548,12 +565,22 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { return 0; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type) { - convexHull *hull = convexHullCreate(); + if (BMESH_BALL_TYPE_ROOT == ball->type && 4 == ball->index) { + tri2QuadContext *t2q; + convexHull *hull; + bmeshBall *outmostBall = 0; + int outmostBallFirstVertexIndex = 0; + hull = convexHullCreate(); if (!hull) { fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); return -1; } + t2q = tri2QuadContextCreate(); + if (!t2q) { + fprintf(stderr, "%s:tri2QuadContextCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); + return -1; + } glColor3f(0.0, 0.0, 0.0); drawDebugPrintf("root <%f,%f,%f>", ball->position.x, ball->position.y, ball->position.z); @@ -561,19 +588,40 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { ballForConvexHull = bmeshFindBallForConvexHull(bm, ball, child); - addBallToHull(hull, ballForConvexHull); + addBallToHull(hull, ballForConvexHull, + &outmostBall, &outmostBallFirstVertexIndex); } if (parent) { - addBallToHull(hull, parent); + addBallToHull(hull, parent, &outmostBall, &outmostBallFirstVertexIndex); + } + if (outmostBall) { + convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, + outmostBallFirstVertexIndex + 1, outmostBallFirstVertexIndex + 2); } convexHullGenerate(hull); - glPushMatrix(); + convexHullUnifyNormals(hull, &ball->position); { int triIndex; - glColor3f(1.0f, 1.0f, 1.0f); for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); ++triIndex) { triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); + tri2QuadAddTriangle(t2q, tri); + } + } + tri2QuadConvert(t2q); + + glPushMatrix(); + + /* + glColor3f(1.0f, 1.0f, 1.0f); + { + int triIndex; + for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); + ++triIndex) { + triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); + //if (triIndex > displayTriangleFaceIndex) { + // continue; + //} drawTriangle(tri); } } @@ -593,8 +641,68 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { glEnd(); } } + */ + glColor3f(1.0f, 1.0f, 1.0f); + { + int triIndex; + for (triIndex = 0; triIndex < tri2QuadGetTriangleNum(t2q); + ++triIndex) { + triangle *tri = (triangle *)tri2QuadGetTriangle(t2q, triIndex); + drawTriangle(tri); + } + } + glColor3f(0.0f, 0.0f, 0.0f); + { + int triIndex; + int j; + for (triIndex = 0; triIndex < tri2QuadGetTriangleNum(t2q); + ++triIndex) { + triangle *tri = (triangle *)tri2QuadGetTriangle(t2q, triIndex); + glBegin(GL_LINE_STRIP); + for (j = 0; j < 3; ++j) { + glVertex3f(tri->pt[j].x, tri->pt[j].y, tri->pt[j].z); + } + glVertex3f(tri->pt[0].x, tri->pt[0].y, tri->pt[0].z); + glEnd(); + } + } + + glColor3f(1.0f, 1.0f, 1.0f); + { + int quadIndex; + glBegin(GL_QUADS); + for (quadIndex = 0; quadIndex < tri2QuadGetQuadNum(t2q); + ++quadIndex) { + quad *q = (quad *)tri2QuadGetQuad(t2q, quadIndex); + vec3 normal; + int j; + vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); + for (j = 0; j < 4; ++j) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } + } + glEnd(); + } + glColor3f(0.0f, 0.0f, 0.0f); + { + int quadIndex; + int j; + for (quadIndex = 0; quadIndex < tri2QuadGetQuadNum(t2q); + ++quadIndex) { + quad *q = (quad *)tri2QuadGetQuad(t2q, quadIndex); + glBegin(GL_LINE_STRIP); + for (j = 0; j < 4; ++j) { + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } + glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); + glEnd(); + } + } + glPopMatrix(); convexHullDestroy(hull); + tri2QuadContextDestroy(t2q); } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; diff --git a/src/convexhull.c b/src/convexhull.c index e6dcc1ad..a0156143 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -3,14 +3,14 @@ #include #include "convexhull.h" #include "array.h" +#include "hashtable.h" #include "draw.h" // // Implement Gift wrapping method which describled in http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf // -// -// Translate from Danielhst's lua version https://github.com/danielhst/3d-Hull-gift-wrap/blob/master/giftWrap.lua -// + +#define TRIANGLE_INDEX_HASHTABLE_SIZE 100 typedef struct { vec3 pt; @@ -18,18 +18,50 @@ typedef struct { int orderOnPlane; } converHullVertex; +typedef struct face { + int indices[3]; +} face; + struct convexHull { array *vertexArray; - array *openEdgeArray; - array *triangleArray; - int nextEdgeIndex; + array *todoArray; + array *faceArray; + int nextTodoIndex; unsigned int *openEdgeExistMap; + hashtable *faceHashtable; + face findFace; + triangle returnTriangle; }; typedef struct { int firstVertex; int secondVertex; -} edge; + int thirdVertex; +} todo; + +face *convexHullGetFaceByHashtableParam(convexHull *hull, + const void *param) { + int index = (char *)param - (char *)0; + if (0 == index) { + return &hull->findFace; + } + return (face *)arrayGetItem(hull->faceArray, index - 1); +} + +static int faceHash(void *userData, const void *node) { + face *triIdx = convexHullGetFaceByHashtableParam( + (convexHull *)userData, node); + return triIdx->indices[0] * triIdx->indices[1] * triIdx->indices[2]; +} + +static int faceCompare(void *userData, const void *node1, + const void *node2) { + face *triIdx1 = convexHullGetFaceByHashtableParam( + (convexHull *)userData, node1); + face *triIdx2 = convexHullGetFaceByHashtableParam( + (convexHull *)userData, node2); + return memcmp(triIdx1, triIdx2, sizeof(face)); +} convexHull *convexHullCreate(void) { convexHull *hull = (convexHull *)calloc(1, sizeof(convexHull)); @@ -40,16 +72,26 @@ convexHull *convexHullCreate(void) { hull->vertexArray = arrayCreate(sizeof(converHullVertex)); if (!hull->vertexArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); return 0; } - hull->openEdgeArray = arrayCreate(sizeof(edge)); - if (!hull->openEdgeArray) { + hull->todoArray = arrayCreate(sizeof(todo)); + if (!hull->todoArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); return 0; } - hull->triangleArray = arrayCreate(sizeof(triangle)); - if (!hull->triangleArray) { + hull->faceArray = arrayCreate(sizeof(face)); + if (!hull->faceArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); + return 0; + } + hull->faceHashtable = hashtableCreate(TRIANGLE_INDEX_HASHTABLE_SIZE, + faceHash, faceCompare, hull); + if (!hull->faceHashtable) { + fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); return 0; } return hull; @@ -65,10 +107,13 @@ void convexHullMarkEdgeAsExsits(convexHull *hull, int firstVertex, int convexHullEdgeExsits(convexHull *hull, int firstVertex, int secondVertex) { - int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; - int unitIndex = mapIndex / (sizeof(unsigned int) * 8); - int unitOffset = mapIndex % (sizeof(unsigned int) * 8); - return hull->openEdgeExistMap[unitIndex] & (0x00000001 << unitOffset); + if (hull->openEdgeExistMap) { + int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; + int unitIndex = mapIndex / (sizeof(unsigned int) * 8); + int unitOffset = mapIndex % (sizeof(unsigned int) * 8); + return hull->openEdgeExistMap[unitIndex] & (0x00000001 << unitOffset); + } + return 0; } int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, @@ -86,31 +131,24 @@ int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, return newVertex; } -int convexHullAddOpenEdgeNoCheck(convexHull *hull, int firstVertex, - int secondVertex) { - edge *e; - int newEdge = arrayGetLength(hull->openEdgeArray); +int convexHullAddTodoNoCheck(convexHull *hull, int firstVertex, + int secondVertex, int thirdVertex) { + todo *t; + int newEdge = arrayGetLength(hull->todoArray); if (firstVertex < 0 || secondVertex < 0) { fprintf(stderr, "%s:Invalid params(firstVertex:%d secondVertex:%d).\n", __FUNCTION__, firstVertex, secondVertex); return -1; } - if (0 != arraySetLength(hull->openEdgeArray, newEdge + 1)) { + if (0 != arraySetLength(hull->todoArray, newEdge + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - e = (edge *)arrayGetItem(hull->openEdgeArray, newEdge); - memset(e, 0, sizeof(edge)); - e->firstVertex = firstVertex; - e->secondVertex = secondVertex; - return 0; -} - -int convexHullAddEdge(convexHull *hull, int p1, int p2) { - convexHullMarkEdgeAsExsits(hull, p1, p2); - if (!convexHullEdgeExsits(hull, p2, p1)) { - return convexHullAddOpenEdgeNoCheck(hull, p2, p1); - } + t = (todo *)arrayGetItem(hull->todoArray, newEdge); + memset(t, 0, sizeof(todo)); + t->firstVertex = firstVertex; + t->secondVertex = secondVertex; + t->thirdVertex = thirdVertex; return 0; } @@ -119,9 +157,15 @@ static int isInAdjacentOrder(int order1, int order2) { (order2 + 1) % 4 == order1); } -int convexHullAddTriangle(convexHull *hull, int firstVertex, int secondVertex, +static int sortface(const void *first, const void *second) { + const int *firstIndex = (const void *)first; + const int *secondIndex = (const void *)second; + return *firstIndex - *secondIndex; +} + +int convexHullAddFace(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { - triangle *tri; + face *tri; converHullVertex *vtx1; converHullVertex *vtx2; converHullVertex *vtx3; @@ -147,16 +191,26 @@ int convexHullAddTriangle(convexHull *hull, int firstVertex, int secondVertex, return 0; } } - newTri = arrayGetLength(hull->triangleArray); - if (0 != arraySetLength(hull->triangleArray, newTri + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; + memset(&hull->findFace, 0, sizeof(hull->findFace)); + hull->findFace.indices[0] = firstVertex; + hull->findFace.indices[1] = secondVertex; + hull->findFace.indices[2] = thirdVertex; + if (0 == hashtableGet(hull->faceHashtable, 0)) { + qsort(hull->findFace.indices, 3, + sizeof(hull->findFace.indices[0]), sortface); + newTri = arrayGetLength(hull->faceArray); + if (0 != arraySetLength(hull->faceArray, newTri + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + tri = (face *)arrayGetItem(hull->faceArray, newTri); + *tri = hull->findFace; + if (0 != hashtableInsert(hull->faceHashtable, + (char *)0 + newTri + 1)) { + fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); + return -1; + } } - tri = (triangle *)arrayGetItem(hull->triangleArray, newTri); - memset(tri, 0, sizeof(triangle)); - tri->pt[0] = vtx1->pt; - tri->pt[1] = vtx2->pt; - tri->pt[2] = vtx3->pt; return 0; } @@ -167,8 +221,9 @@ static void convexHullReleaseForGenerate(convexHull *hull) { void convexHullDestroy(convexHull *hull) { arrayDestroy(hull->vertexArray); - arrayDestroy(hull->openEdgeArray); - arrayDestroy(hull->triangleArray); + arrayDestroy(hull->todoArray); + arrayDestroy(hull->faceArray); + hashtableDestroy(hull->faceHashtable); convexHullReleaseForGenerate(hull); free(hull); } @@ -183,60 +238,45 @@ static int convexHullPrepareForGenerate(convexHull *hull) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return -1; } - hull->nextEdgeIndex = 0; + hull->nextTodoIndex = 0; return 0; } -int convexHullGetLower(convexHull *hull) { - int index = 0; +int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index, + int p3Index) { + vec3 *p1 = (vec3 *)arrayGetItem(hull->vertexArray, p1Index); + vec3 *p2 = (vec3 *)arrayGetItem(hull->vertexArray, p2Index); + vec3 *p3 = (vec3 *)arrayGetItem(hull->vertexArray, p3Index); + vec3 beginNormal; + vec3 endNormal; int i; - for (i = 1; i < arrayGetLength(hull->vertexArray); ++i) { - vec3 *pI = (vec3 *)arrayGetItem(hull->vertexArray, i); - vec3 *pIndex = (vec3 *)arrayGetItem(hull->vertexArray, index); - if (pI->z < pIndex->z) { - index = i; - } else if (pI->z == pIndex->z) { - if (pI->y < pIndex->y) { - index = i; - } else if (pI->x < pIndex->x) { - index = i; + float angle; + float maxAngle = 0; + int candidateIndex = -1; + + vec3Normal(p1, p2, p3, &beginNormal); + + for (i = 0; i < arrayGetLength(hull->vertexArray); ++i) { + if (i != p1Index && i != p2Index && i != p3Index) { + vec3Normal(p1, p2, (vec3 *)arrayGetItem(hull->vertexArray, i), + &endNormal); + angle = vec3Angle(&beginNormal, &endNormal); + if (angle > maxAngle) { + candidateIndex = i; + maxAngle = angle; } } } - return index; + + return candidateIndex; } -int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index) { - vec3 pCorner = {1, 1, 0}; - vec3 *p1 = (vec3 *)arrayGetItem(hull->vertexArray, p1Index); - vec3 *p2 = p2Index < 0 ? &pCorner : (vec3 *)arrayGetItem(hull->vertexArray, - p2Index); - vec3 edge; - int candidateIndex = -1; - int i; - vec3Sub(p2, p1, &edge); - vec3Normalize(&edge); - for (i = 0; i < arrayGetLength(hull->vertexArray); ++i) { - if (i != p1Index && i != p2Index) { - if (-1 == candidateIndex) { - candidateIndex = 0; - } else { - vec3 v, proj, candidate, canProj, cross; - vec3Sub((vec3 *)arrayGetItem(hull->vertexArray, i), p1, &v); - vec3ProjectOver(&v, &edge, &proj); - vec3Sub(&v, &proj, &v); - vec3Sub((vec3 *)arrayGetItem(hull->vertexArray, - candidateIndex), p1, &candidate); - vec3ProjectOver(&candidate, &edge, &canProj); - vec3Sub(&candidate, &canProj, &candidate); - vec3CrossProduct(&candidate, &v, &cross); - if (vec3DotProduct(&cross, &edge) > 0) { - candidateIndex = i; - } - } - } +int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, + int vertex3) { + if (!convexHullEdgeExsits(hull, vertex1, vertex2)) { + return convexHullAddTodoNoCheck(hull, vertex1, vertex2, vertex3); } - return candidateIndex; + return 0; } int convexHullGenerate(convexHull *hull) { @@ -246,34 +286,63 @@ int convexHullGenerate(convexHull *hull) { fprintf(stderr, "%s:convexHullPrepareForGenerate failed.\n", __FUNCTION__); return -1; } - index1 = convexHullGetLower(hull); - index2 = convexHullGetNextVertex(hull, index1, -1); - convexHullAddEdge(hull, index2, index1); - //glColor3f(0.0, 0.0, 0.0); - //drawDebugPrintf("edgeLength:%d", arrayGetLength(hull->openEdgeArray)); - while (hull->nextEdgeIndex < arrayGetLength(hull->openEdgeArray)) { - edge *e = (edge *)arrayGetItem(hull->openEdgeArray, hull->nextEdgeIndex++); - index1 = e->firstVertex; - index2 = e->secondVertex; + while (hull->nextTodoIndex < arrayGetLength(hull->todoArray)) { + todo *t = (todo *)arrayGetItem(hull->todoArray, hull->nextTodoIndex++); + index1 = t->firstVertex; + index2 = t->secondVertex; if (convexHullEdgeExsits(hull, index1, index2)) { continue; } convexHullMarkEdgeAsExsits(hull, index1, index2); - index3 = convexHullGetNextVertex(hull, index1, index2); - //drawDebugPrintf("%d,%d,%d", index1, index2, index3); - convexHullAddTriangle(hull, index1, index2, index3); - convexHullAddEdge(hull, index1, index2); - convexHullAddEdge(hull, index2, index3); - convexHullAddEdge(hull, index3, index1); + index3 = convexHullGetNextVertex(hull, index1, index2, t->thirdVertex); + if (-1 == index3) { + continue; + } + convexHullAddFace(hull, index1, index2, index3); + convexHullAddTodo(hull, index1, index2, index3); + convexHullAddTodo(hull, index2, index3, index1); + convexHullAddTodo(hull, index3, index1, index2); + } + return 0; +} + +int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { + int i; + for (i = 0; i < arrayGetLength(hull->faceArray); ++i) { + face *triIdx = (face *)arrayGetItem( + hull->faceArray, i); + converHullVertex *p1 = (converHullVertex *)arrayGetItem( + hull->vertexArray, triIdx->indices[0]); + converHullVertex *p2 = (converHullVertex *)arrayGetItem( + hull->vertexArray, triIdx->indices[1]); + converHullVertex *p3 = (converHullVertex *)arrayGetItem( + hull->vertexArray, triIdx->indices[2]); + vec3 normal; + vec3 o2v; + vec3Normal(&p1->pt, &p2->pt, &p3->pt, &normal); + vec3Sub(&p1->pt, origin, &o2v); + if (vec3DotProduct(&o2v, &normal) < 0) { + int index = triIdx->indices[0]; + triIdx->indices[0] = triIdx->indices[2]; + triIdx->indices[2] = index; + } } return 0; } int convexHullGetTriangleNum(convexHull *hull) { - return arrayGetLength(hull->triangleArray); + return arrayGetLength(hull->faceArray); } triangle *convexHullGetTriangle(convexHull *hull, int index) { - triangle *tri = (triangle *)arrayGetItem(hull->triangleArray, index); - return tri; + int i; + face *triIdx = (face *)arrayGetItem( + hull->faceArray, index); + memset(&hull->returnTriangle, 0, sizeof(hull->returnTriangle)); + for (i = 0; i < 3; ++i) { + converHullVertex *vertex = (converHullVertex *)arrayGetItem( + hull->vertexArray, triIdx->indices[i]); + hull->returnTriangle.pt[i] = vertex->pt; + } + return &hull->returnTriangle; } diff --git a/src/convexhull.h b/src/convexhull.h index 84285270..067d83dc 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -9,7 +9,9 @@ int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane); void convexHullDestroy(convexHull *hull); int convexHullGenerate(convexHull *hull); +int convexHullUnifyNormals(convexHull *hull, vec3 *origin); int convexHullGetTriangleNum(convexHull *hull); triangle *convexHullGetTriangle(convexHull *hull, int index); +int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); #endif diff --git a/src/hashtable.c b/src/hashtable.c new file mode 100644 index 00000000..d6ad7c45 --- /dev/null +++ b/src/hashtable.c @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include "hashtable.h" +#include "array.h" + +typedef struct hashtableEntry { + const void *node; + int nextEntryIndex; +} hashtableEntry; + +typedef struct hashtableKey { + int entryNum; + int firstEntryIndex; +} hashtableKey; + +struct hashtable { + array *keyArray; + array *entryArray; + int bucketSize; + int (*hashCallback)(void *userData, const void *node); + int (*compareCallback)(void *userData, const void *node1, const void *node2); + void *userData; +}; + +hashtable *hashtableCreate(int bucketSize, + int (*hashCallback)(void *userData, const void *node), + int (*compareCallback)(void *userData, const void *node1, + const void *node2), + void *userData) { + hashtable *ht = (hashtable *)calloc(1, sizeof(hashtable)); + if (!ht) { + fprintf(stderr, "%s:Insufficient memory.", __FUNCTION__); + return 0; + } + ht->keyArray = arrayCreate(sizeof(hashtableKey)); + if (!ht->keyArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + hashtableDestroy(ht); + return 0; + } + ht->entryArray = arrayCreate(sizeof(hashtableEntry)); + if (!ht->entryArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + hashtableDestroy(ht); + return 0; + } + ht->bucketSize = bucketSize; + ht->hashCallback = hashCallback; + ht->compareCallback = compareCallback; + ht->userData = userData; + if (0 != arraySetLength(ht->keyArray, bucketSize)) { + fprintf(stderr, "%s:arraySetLength failed(bucketSize:%d).", __FUNCTION__, + bucketSize); + hashtableDestroy(ht); + return 0; + } + return ht; +} + +void hashtableDestroy(hashtable *ht) { + if (ht) { + arrayDestroy(ht->keyArray); + arrayDestroy(ht->entryArray); + free(ht); + } +} + +static int hashtableGetNodeHash(hashtable *ht, const void *node) { + return (int)((unsigned int)ht->hashCallback(ht->userData, + node) % ht->bucketSize); +} + +static hashtableEntry *findEntry(hashtable *ht, hashtableKey *key, + const void *node) { + int i; + int nextEntryIndex = key->firstEntryIndex; + for (i = 0; i < key->entryNum; ++i) { + hashtableEntry *entry; + assert(-1 != nextEntryIndex); + entry = (hashtableEntry *)arrayGetItem(ht->entryArray, nextEntryIndex); + if (0 == ht->compareCallback(ht->userData, entry->node, node)) { + return (void *)entry->node; + } + nextEntryIndex = entry->nextEntryIndex; + } + return 0; +} + +int hashtableInsert(hashtable *ht, const void *node) { + int newEntryIndex; + int hash = hashtableGetNodeHash(ht, node); + hashtableKey *key = (hashtableKey *)arrayGetItem(ht->keyArray, hash); + hashtableEntry *entry = findEntry(ht, key, node); + if (entry) { + return -1; + } + newEntryIndex = arrayGetLength(ht->entryArray); + if (0 != arraySetLength(ht->entryArray, newEntryIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed(newEntryIndex:%d).", + __FUNCTION__, newEntryIndex); + return -1; + } + entry = (hashtableEntry *)arrayGetItem(ht->entryArray, newEntryIndex); + entry->node = node; + entry->nextEntryIndex = 0 == key->entryNum ? -1 : key->firstEntryIndex; + key->firstEntryIndex = newEntryIndex; + key->entryNum++; + return 0; +} + +void *hashtableGet(hashtable *ht, const void *node) { + int hash = hashtableGetNodeHash(ht, node); + hashtableKey *key = (hashtableKey *)arrayGetItem(ht->keyArray, hash); + return findEntry(ht, key, node); +} diff --git a/src/hashtable.h b/src/hashtable.h new file mode 100644 index 00000000..8915162d --- /dev/null +++ b/src/hashtable.h @@ -0,0 +1,15 @@ +#ifndef HASHTABLE_H +#define HASHTABLE_H + +typedef struct hashtable hashtable; + +hashtable *hashtableCreate(int bucketSize, + int (*hashCallback)(void *userData, const void *node), + int (*compareCallback)(void *userData, const void *node1, const void *node2), + void *userData); +void hashtableDestroy(hashtable *ht); +int hashtableInsert(hashtable *ht, const void *node); +void *hashtableGet(hashtable *ht, const void *node); + +#endif + diff --git a/src/render.cpp b/src/render.cpp index 2bd765be..3b17f992 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -8,10 +8,10 @@ #include "matrix.h" #include "vector3d.h" -static const float bmeshBallColors[][3] { - {0, 0.78, 1}, - {1, 0, 0}, - {1, 1, 1} +static const float bmeshBallColors[][4] { + {0.00, 0.78, 1.00, 0.5}, + {1.00, 0.00, 0.00, 0.5}, + {1.00, 1.00, 1.00, 0.5} }; static const float bmeshBoneColor[3] = {1, 1, 0}; @@ -27,11 +27,14 @@ int drawDebugPrintf(const char *fmt, ...) { va_start(args, fmt); vsnprintf(text, sizeof(text), fmt, args); debugOutputTop += 9; + if (debugOutputTop > 200) { + debugOutputTop = 0; + } return drawText(x, y, text); } static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { - glColor3fv(bmeshBallColors[ball->type]); + glColor4fv(bmeshBallColors[ball->type]); drawSphere(&ball->position, ball->radius, 36, 24); return 0; } @@ -129,7 +132,7 @@ static void drawBmeshBallQuadRecursively(bmesh *bm, bmeshBall *ball) { glPopMatrix(); */ - drawBmeshBallQuad(ball); + //drawBmeshBallQuad(ball); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; @@ -277,7 +280,7 @@ void Render::paintGL() { for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); - drawBmeshBone(bm, bone); + //drawBmeshBone(bm, bone); } /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); diff --git a/src/tri2quad.c b/src/tri2quad.c new file mode 100644 index 00000000..e01c5bde --- /dev/null +++ b/src/tri2quad.c @@ -0,0 +1,324 @@ +#include +#include +#include +#include +#include "tri2quad.h" +#include "vector3d.h" +#include "array.h" +#include "hashtable.h" + +#define EDGE_HASHTABLE_SIZE 100 + +typedef struct edge { + vec3 p1; + vec3 p2; + int inputA; + int inputB; + int score; +} edge; + +typedef struct inputTriangle { + triangle tri; + float area; + vec3 normal; + int merged; +} inputTriangle; + +struct tri2QuadContext { + array *inputArray; + array *triangleArray; + array *quadArray; + array *edgeArray; + hashtable *edgeHashtable; + edge findEdge; +}; + +static edge *tri2QuadGetEdgeByHashtableParam(tri2QuadContext *ctx, + const void *param) { + int edgeIndex = (char *)param - (char *)0; + if (0 == edgeIndex) { + return &ctx->findEdge; + } + return (edge *)arrayGetItem(ctx->edgeArray, edgeIndex - 1); +} + +static int edgeHash(void *userData, const void *node) { + edge *e = tri2QuadGetEdgeByHashtableParam((tri2QuadContext *)userData, node); + return (int)(e->p1.x + 1) * (e->p1.y + 1) * (e->p1.z + 1) * + (e->p2.x + 1) * (e->p2.y + 1) * (e->p2.z + 1); +} + +static int edgeCompare(void *userData, const void *node1, const void *node2) { + const edge *e1 = (const edge *)tri2QuadGetEdgeByHashtableParam( + (tri2QuadContext *)userData, node1); + const edge *e2 = (const edge *)tri2QuadGetEdgeByHashtableParam( + (tri2QuadContext *)userData, node2); + if ((0 == memcmp(&e1->p1, &e2->p1, sizeof(e1->p1)) && + 0 == memcmp(&e1->p2, &e2->p2, sizeof(e1->p1))) || + (0 == memcmp(&e1->p1, &e2->p2, sizeof(e1->p1)) && + 0 == memcmp(&e1->p2, &e2->p1, sizeof(e1->p1)))) { + return 0; + } + return -1; +} + +tri2QuadContext *tri2QuadContextCreate(void) { + tri2QuadContext *ctx = (tri2QuadContext *)calloc(1, sizeof(tri2QuadContext)); + if (!ctx) { + fprintf(stderr, "%s:Insufficient memory.", __FUNCTION__); + return 0; + } + ctx->inputArray = arrayCreate(sizeof(inputTriangle)); + if (!ctx->inputArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + tri2QuadContextDestroy(ctx); + return 0; + } + ctx->triangleArray = arrayCreate(sizeof(triangle)); + if (!ctx->triangleArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + tri2QuadContextDestroy(ctx); + return 0; + } + ctx->quadArray = arrayCreate(sizeof(quad)); + if (!ctx->quadArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + tri2QuadContextDestroy(ctx); + return 0; + } + ctx->edgeHashtable = hashtableCreate(EDGE_HASHTABLE_SIZE, edgeHash, + edgeCompare, ctx); + if (!ctx->edgeHashtable) { + fprintf(stderr, "%s:hashtableCreate failed.", __FUNCTION__); + tri2QuadContextDestroy(ctx); + return 0; + } + ctx->edgeArray = arrayCreate(sizeof(edge)); + if (!ctx->edgeArray) { + fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + tri2QuadContextDestroy(ctx); + return 0; + } + return ctx; +} + +int tri2QuadAddTriangle(tri2QuadContext *ctx, triangle *tri) { + int newInputIndex; + inputTriangle *newInput; + newInputIndex = arrayGetLength(ctx->inputArray); + if (0 != arraySetLength(ctx->inputArray, newInputIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.", __FUNCTION__); + return -1; + } + newInput = (inputTriangle *)arrayGetItem(ctx->inputArray, newInputIndex); + newInput->merged = 0; + newInput->tri = *tri; + newInput->area = vec3TriangleArea(&tri->pt[0], &tri->pt[1], &tri->pt[2]); + vec3Normal(&tri->pt[0], &tri->pt[1], &tri->pt[2], &newInput->normal); + return newInputIndex; +} + +static edge *tri2QuadFindEdge(tri2QuadContext *ctx, + vec3 *p1, vec3 *p2) { + int edgeIndex; + ctx->findEdge.p1 = *p1; + ctx->findEdge.p2 = *p2; + edgeIndex = (char *)hashtableGet(ctx->edgeHashtable, (char *)0) - (char *)0; + if (0 == edgeIndex) { + return 0; + } + return (edge *)arrayGetItem(ctx->edgeArray, edgeIndex - 1); +} + +static int tri2QuadAddInitialEdge(tri2QuadContext *ctx, + vec3 *p1, vec3 *p2, int inputIndex) { + edge *existedEdge = tri2QuadFindEdge(ctx, p1, p2); + if (!existedEdge) { + edge *newEdge; + int newEdgeIndex = arrayGetLength(ctx->edgeArray); + if (0 != arraySetLength(ctx->edgeArray, newEdgeIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed(newEdgeIndex:%d).", + __FUNCTION__, newEdgeIndex); + return -1; + } + newEdge = (edge *)arrayGetItem(ctx->edgeArray, newEdgeIndex); + newEdge->p1 = *p1; + newEdge->p2 = *p2; + if (0 != hashtableInsert(ctx->edgeHashtable, + (char *)0 + newEdgeIndex + 1)) { + fprintf(stderr, "%s:hashtableInsert failed.", __FUNCTION__); + return -1; + } + newEdge->inputA = inputIndex; + newEdge->inputB = -1; + newEdge->score = 0; + } else { + existedEdge->inputB = inputIndex; + } + return 0; +} + +static int tri2QuadAddOutputQuad(tri2QuadContext *ctx, vec3 *first, + vec3 *second, vec3 *third, vec3 *fourth) { + quad *q; + int newQuadIndex = arrayGetLength(ctx->quadArray); + if (0 != arraySetLength(ctx->quadArray, newQuadIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed(newQuadIndex:%d).", __FUNCTION__, + newQuadIndex); + return -1; + } + q = (quad *)arrayGetItem(ctx->quadArray, newQuadIndex); + memset(q, 0, sizeof(quad)); + q->pt[0] = *first; + q->pt[1] = *second; + q->pt[2] = *third; + q->pt[3] = *fourth; + return newQuadIndex; +} + +static int tri2QuadAddOutputTriangle(tri2QuadContext *ctx, vec3 *first, + vec3 *second, vec3 *third) { + triangle *tri; + int newTriangleIndex = arrayGetLength(ctx->triangleArray); + if (0 != arraySetLength(ctx->triangleArray, newTriangleIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed(newTriangleIndex:%d).", + __FUNCTION__, newTriangleIndex); + return -1; + } + tri = (triangle *)arrayGetItem(ctx->triangleArray, newTriangleIndex); + memset(tri, 0, sizeof(triangle)); + tri->pt[0] = *first; + tri->pt[1] = *second; + tri->pt[2] = *third; + return newTriangleIndex; +} + +static int tri2QuadAddOutputQuadByEdgeAndInput(tri2QuadContext *ctx, edge *e, + inputTriangle *input1, inputTriangle *input2) { + vec3 outputPt[4]; + int i; + int nextSaveToIndex; + memset(outputPt, 0, sizeof(outputPt)); + nextSaveToIndex = 0; + for (i = 0; i < 3; ++i) { + vec3 *pt = &input1->tri.pt[i]; + if (0 == memcmp(&e->p1, pt, sizeof(e->p1))) { + outputPt[nextSaveToIndex] = *pt; + nextSaveToIndex += 2; + } else if (0 == memcmp(&e->p2, pt, sizeof(e->p2))) { + outputPt[nextSaveToIndex] = *pt; + nextSaveToIndex += 2; + } else { + outputPt[1] = *pt; + } + } + for (i = 0; i < 3; ++i) { + vec3 *pt = &input2->tri.pt[i]; + if (0 != memcmp(&e->p1, pt, sizeof(e->p1)) && + 0 != memcmp(&e->p2, pt, sizeof(e->p2))) { + outputPt[3] = *pt; + break; + } + } + return tri2QuadAddOutputQuad(ctx, &outputPt[0], &outputPt[1], + &outputPt[2], &outputPt[3]); +} + +static int sortEdgeByScoreDesc(const void *first, const void *second) { + const edge *e1 = (const edge *)first; + const edge *e2 = (const edge *)second; + return e2->score - e1->score; +} + +int tri2QuadConvert(tri2QuadContext *ctx) { + int inputIndex; + int edgeIndex; + + for (inputIndex = 0; inputIndex < arrayGetLength(ctx->inputArray); + ++inputIndex) { + inputTriangle *inputItem = (inputTriangle *)arrayGetItem(ctx->inputArray, + inputIndex); + tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[0], &inputItem->tri.pt[1], + inputIndex); + tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[1], &inputItem->tri.pt[2], + inputIndex); + tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[2], &inputItem->tri.pt[0], + inputIndex); + } + for (edgeIndex = 0; edgeIndex < arrayGetLength(ctx->edgeArray); ++edgeIndex) { + edge *e = (edge *)arrayGetItem(ctx->edgeArray, edgeIndex); + inputTriangle *input1; + inputTriangle *input2; + if (-1 != e->inputA && -1 != e->inputB) { + input1 = (inputTriangle *)arrayGetItem(ctx->inputArray, + e->inputA); + input2 = (inputTriangle *)arrayGetItem(ctx->inputArray, + e->inputB); + e->score = (int)((input1->area + input2->area) * + vec3DotProduct(&input1->normal, &input2->normal) * 100); + } + } + qsort(arrayGetItem(ctx->edgeArray, 0), arrayGetLength(ctx->edgeArray), + sizeof(edge), sortEdgeByScoreDesc); + + // + // After qsort, the edge indices inside the hashtable are no longer right. + // + + hashtableDestroy(ctx->edgeHashtable); + ctx->edgeHashtable = 0; + + for (edgeIndex = 0; edgeIndex < arrayGetLength(ctx->edgeArray); ++edgeIndex) { + edge *e = (edge *)arrayGetItem(ctx->edgeArray, edgeIndex); + inputTriangle *input1; + inputTriangle *input2; + if (-1 != e->inputA && -1 != e->inputB) { + input1 = (inputTriangle *)arrayGetItem(ctx->inputArray, + e->inputA); + input2 = (inputTriangle *)arrayGetItem(ctx->inputArray, + e->inputB); + if (!input1->merged && !input2->merged) { + //input1->merged = 1; + //input2->merged = 1; + //tri2QuadAddOutputQuadByEdgeAndInput(ctx, e, input1, input2); + } + } + } + + for (inputIndex = 0; inputIndex < arrayGetLength(ctx->inputArray); + ++inputIndex) { + inputTriangle *inputItem = (inputTriangle *)arrayGetItem(ctx->inputArray, + inputIndex); + if (!inputItem->merged) { + tri2QuadAddOutputTriangle(ctx, &inputItem->tri.pt[0], + &inputItem->tri.pt[1], &inputItem->tri.pt[2]); + } + } + + return 0; +} + +int tri2QuadGetTriangleNum(tri2QuadContext *ctx) { + return arrayGetLength(ctx->triangleArray); +} + +triangle *tri2QuadGetTriangle(tri2QuadContext *ctx, int index) { + return (triangle *)arrayGetItem(ctx->triangleArray, index); +} + +int tri2QuadGetQuadNum(tri2QuadContext *ctx) { + return arrayGetLength(ctx->quadArray); +} + +quad *tri2QuadGetQuad(tri2QuadContext *ctx, int index) { + return (quad *)arrayGetItem(ctx->quadArray, index); +} + +void tri2QuadContextDestroy(tri2QuadContext *ctx) { + arrayDestroy(ctx->inputArray); + arrayDestroy(ctx->triangleArray); + arrayDestroy(ctx->quadArray); + hashtableDestroy(ctx->edgeHashtable); + arrayDestroy(ctx->edgeArray); + free(ctx); +} diff --git a/src/tri2quad.h b/src/tri2quad.h new file mode 100644 index 00000000..f7053b9c --- /dev/null +++ b/src/tri2quad.h @@ -0,0 +1,17 @@ +#ifndef TRI2QUAD_H +#define TRI2QUAD_H +#include "draw.h" + +typedef struct tri2QuadContext tri2QuadContext; + +tri2QuadContext *tri2QuadContextCreate(void); +int tri2QuadAddTriangle(tri2QuadContext *ctx, triangle *tri); +int tri2QuadConvert(tri2QuadContext *ctx); +int tri2QuadGetTriangleNum(tri2QuadContext *ctx); +triangle *tri2QuadGetTriangle(tri2QuadContext *ctx, int index); +int tri2QuadGetQuadNum(tri2QuadContext *ctx); +quad *tri2QuadGetQuad(tri2QuadContext *ctx, int index); +void tri2QuadContextDestroy(tri2QuadContext *ctx); + +#endif + diff --git a/src/vector3d.c b/src/vector3d.c index 450d6f7a..f784725a 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -129,3 +129,12 @@ void vec3ProjectOver(vec3 *a, vec3 *over, vec3 *result) { result->z = length * over->z; } +float vec3TriangleArea(vec3 *a, vec3 *b, vec3 *c) { + vec3 ab; + vec3 ac; + vec3 cross; + vec3Sub(a, b, &ab); + vec3Sub(a, c, &ac); + vec3CrossProduct(&ab, &ac, &cross); + return vec3Length(&cross) * 0.5; +} diff --git a/src/vector3d.h b/src/vector3d.h index e35ea8a2..0b23356b 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -25,6 +25,7 @@ void vec3Normal(vec3 *a, vec3 *b, vec3 *c, vec3 *normal); void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result); float vec3Angle(vec3 *a, vec3 *b); void vec3ProjectOver(vec3 *a, vec3 *over, vec3 *result); +float vec3TriangleArea(vec3 *a, vec3 *b, vec3 *c); #ifdef __cplusplus } From 3ca8e64b68874771e1f343f8490487b75eb126e0 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Fri, 30 Dec 2016 20:32:34 +0930 Subject: [PATCH 23/61] Rearrange source filenames. Remove tri2quad temporarily. --- build/dust3d.pro | 9 +- src/3dstruct.h | 21 +++ src/bmesh.c | 67 +++++----- src/convexhull.c | 108 ++++++++-------- src/convexhull.h | 8 +- src/draw.h | 15 +-- src/osutil.cpp | 6 + src/osutil.h | 14 ++ src/tri2quad.c | 324 ----------------------------------------------- src/tri2quad.h | 17 --- 10 files changed, 137 insertions(+), 452 deletions(-) create mode 100644 src/3dstruct.h create mode 100644 src/osutil.cpp create mode 100644 src/osutil.h delete mode 100644 src/tri2quad.c delete mode 100644 src/tri2quad.h diff --git a/build/dust3d.pro b/build/dust3d.pro index 06f8a778..930d75a2 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -16,8 +16,8 @@ SOURCES += main.cpp \ bmesh.c \ matrix.c \ convexhull.c \ - tri2quad.c \ - hashtable.c + hashtable.c \ + osutil.cpp HEADERS += mainwindow.h \ render.h \ @@ -27,5 +27,6 @@ HEADERS += mainwindow.h \ bmesh.h \ matrix.h \ convexhull.h \ - tri2quad.h \ - hashtable.h \ No newline at end of file + hashtable.h \ + 3dstruct.h \ + osutil.h \ No newline at end of file diff --git a/src/3dstruct.h b/src/3dstruct.h new file mode 100644 index 00000000..1e0bcb79 --- /dev/null +++ b/src/3dstruct.h @@ -0,0 +1,21 @@ +#ifndef _3DSTRUCT_H +#define _3DSTRUCT_H +#include "vector3d.h" + +typedef struct { + vec3 pt[3]; +} triangle; + +typedef struct { + vec3 pt[4]; +} quad; + +typedef struct face3 { + int indices[3]; +} face3; + +typedef struct face4 { + int indices[4]; +} face4; + +#endif diff --git a/src/bmesh.c b/src/bmesh.c index fd3e2d8b..c07179ba 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -8,7 +8,6 @@ #include "array.h" #include "matrix.h" #include "convexhull.h" -#include "tri2quad.h" #include "draw.h" #define BMESH_STEP_DISTANCE 0.4 @@ -556,6 +555,10 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, } } +#include "osutil.h" +static int showFaceIndex = 0; +static long long lastShowFaceIndexIncTime = 0; + static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { int result = 0; bmeshBallIterator iterator; @@ -566,7 +569,6 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } ball->roundColor = bm->roundColor; if (BMESH_BALL_TYPE_ROOT == ball->type && 4 == ball->index) { - tri2QuadContext *t2q; convexHull *hull; bmeshBall *outmostBall = 0; int outmostBallFirstVertexIndex = 0; @@ -575,12 +577,6 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); return -1; } - t2q = tri2QuadContextCreate(); - if (!t2q) { - fprintf(stderr, "%s:tri2QuadContextCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return -1; - } glColor3f(0.0, 0.0, 0.0); drawDebugPrintf("root <%f,%f,%f>", ball->position.x, ball->position.y, ball->position.z); @@ -600,48 +596,54 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } convexHullGenerate(hull); convexHullUnifyNormals(hull, &ball->position); - { - int triIndex; - for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); - ++triIndex) { - triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); - tri2QuadAddTriangle(t2q, tri); - } - } - tri2QuadConvert(t2q); - glPushMatrix(); - /* + if (lastShowFaceIndexIncTime + 300 < osGetMilliseconds()) { + if (showFaceIndex > convexHullGetFace3Num(hull)) { + showFaceIndex = 0; + } else { + showFaceIndex++; + } + lastShowFaceIndexIncTime = osGetMilliseconds(); + } + glColor3f(1.0f, 1.0f, 1.0f); { int triIndex; - for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); + for (triIndex = 0; triIndex < convexHullGetFace3Num(hull); ++triIndex) { - triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); - //if (triIndex > displayTriangleFaceIndex) { - // continue; - //} - drawTriangle(tri); + triangle tri; + face3 *face = (face3 *)convexHullGetFace3(hull, triIndex); + tri.pt[0] = *convexHullGetVertex(hull, face->indices[0]); + tri.pt[1] = *convexHullGetVertex(hull, face->indices[1]); + tri.pt[2] = *convexHullGetVertex(hull, face->indices[2]); + if (triIndex > showFaceIndex) { + break; + } + drawTriangle(&tri); } } glColor3f(0.0f, 0.0f, 0.0f); { int triIndex; int j; - glColor3f(1.0f, 1.0f, 1.0f); - for (triIndex = 0; triIndex < convexHullGetTriangleNum(hull); + for (triIndex = 0; triIndex < convexHullGetFace3Num(hull); ++triIndex) { - triangle *tri = (triangle *)convexHullGetTriangle(hull, triIndex); + triangle tri; + face3 *face = (face3 *)convexHullGetFace3(hull, triIndex); + tri.pt[0] = *convexHullGetVertex(hull, face->indices[0]); + tri.pt[1] = *convexHullGetVertex(hull, face->indices[1]); + tri.pt[2] = *convexHullGetVertex(hull, face->indices[2]); glBegin(GL_LINE_STRIP); for (j = 0; j < 3; ++j) { - glVertex3f(tri->pt[j].x, tri->pt[j].y, tri->pt[j].z); + glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); } - glVertex3f(tri->pt[0].x, tri->pt[0].y, tri->pt[0].z); + glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); glEnd(); } } - */ + + /* glColor3f(1.0f, 1.0f, 1.0f); { int triIndex; @@ -698,11 +700,10 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); glEnd(); } - } + }*/ glPopMatrix(); convexHullDestroy(hull); - tri2QuadContextDestroy(t2q); } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; diff --git a/src/convexhull.c b/src/convexhull.c index a0156143..27c0b276 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -4,7 +4,6 @@ #include "convexhull.h" #include "array.h" #include "hashtable.h" -#include "draw.h" // // Implement Gift wrapping method which describled in http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf @@ -18,19 +17,14 @@ typedef struct { int orderOnPlane; } converHullVertex; -typedef struct face { - int indices[3]; -} face; - struct convexHull { array *vertexArray; array *todoArray; - array *faceArray; + array *face3Array; int nextTodoIndex; unsigned int *openEdgeExistMap; - hashtable *faceHashtable; - face findFace; - triangle returnTriangle; + hashtable *face3Hashtable; + face3 findFace3; }; typedef struct { @@ -39,28 +33,33 @@ typedef struct { int thirdVertex; } todo; -face *convexHullGetFaceByHashtableParam(convexHull *hull, +static int cantorPair(int k1, int k2) { + return (k1 + k2) * (k1 + k2 + 1) / 2 + k2; +} + +face3 *convexHullGetFaceByHashtableParam(convexHull *hull, const void *param) { int index = (char *)param - (char *)0; if (0 == index) { - return &hull->findFace; + return &hull->findFace3; } - return (face *)arrayGetItem(hull->faceArray, index - 1); + return (face3 *)arrayGetItem(hull->face3Array, index - 1); } static int faceHash(void *userData, const void *node) { - face *triIdx = convexHullGetFaceByHashtableParam( + face3 *triIdx = convexHullGetFaceByHashtableParam( (convexHull *)userData, node); - return triIdx->indices[0] * triIdx->indices[1] * triIdx->indices[2]; + return cantorPair(cantorPair(triIdx->indices[0], triIdx->indices[1]), + triIdx->indices[2]); } static int faceCompare(void *userData, const void *node1, const void *node2) { - face *triIdx1 = convexHullGetFaceByHashtableParam( + face3 *triIdx1 = convexHullGetFaceByHashtableParam( (convexHull *)userData, node1); - face *triIdx2 = convexHullGetFaceByHashtableParam( + face3 *triIdx2 = convexHullGetFaceByHashtableParam( (convexHull *)userData, node2); - return memcmp(triIdx1, triIdx2, sizeof(face)); + return memcmp(triIdx1, triIdx2, sizeof(face3)); } convexHull *convexHullCreate(void) { @@ -81,15 +80,15 @@ convexHull *convexHullCreate(void) { convexHullDestroy(hull); return 0; } - hull->faceArray = arrayCreate(sizeof(face)); - if (!hull->faceArray) { + hull->face3Array = arrayCreate(sizeof(face3)); + if (!hull->face3Array) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); convexHullDestroy(hull); return 0; } - hull->faceHashtable = hashtableCreate(TRIANGLE_INDEX_HASHTABLE_SIZE, + hull->face3Hashtable = hashtableCreate(TRIANGLE_INDEX_HASHTABLE_SIZE, faceHash, faceCompare, hull); - if (!hull->faceHashtable) { + if (!hull->face3Hashtable) { fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); convexHullDestroy(hull); return 0; @@ -163,9 +162,9 @@ static int sortface(const void *first, const void *second) { return *firstIndex - *secondIndex; } -int convexHullAddFace(convexHull *hull, int firstVertex, int secondVertex, +int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { - face *tri; + face3 *tri; converHullVertex *vtx1; converHullVertex *vtx2; converHullVertex *vtx3; @@ -191,21 +190,21 @@ int convexHullAddFace(convexHull *hull, int firstVertex, int secondVertex, return 0; } } - memset(&hull->findFace, 0, sizeof(hull->findFace)); - hull->findFace.indices[0] = firstVertex; - hull->findFace.indices[1] = secondVertex; - hull->findFace.indices[2] = thirdVertex; - if (0 == hashtableGet(hull->faceHashtable, 0)) { - qsort(hull->findFace.indices, 3, - sizeof(hull->findFace.indices[0]), sortface); - newTri = arrayGetLength(hull->faceArray); - if (0 != arraySetLength(hull->faceArray, newTri + 1)) { + memset(&hull->findFace3, 0, sizeof(hull->findFace3)); + hull->findFace3.indices[0] = firstVertex; + hull->findFace3.indices[1] = secondVertex; + hull->findFace3.indices[2] = thirdVertex; + qsort(hull->findFace3.indices, 3, + sizeof(hull->findFace3.indices[0]), sortface); + if (0 == hashtableGet(hull->face3Hashtable, 0)) { + newTri = arrayGetLength(hull->face3Array); + if (0 != arraySetLength(hull->face3Array, newTri + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - tri = (face *)arrayGetItem(hull->faceArray, newTri); - *tri = hull->findFace; - if (0 != hashtableInsert(hull->faceHashtable, + tri = (face3 *)arrayGetItem(hull->face3Array, newTri); + *tri = hull->findFace3; + if (0 != hashtableInsert(hull->face3Hashtable, (char *)0 + newTri + 1)) { fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); return -1; @@ -222,8 +221,8 @@ static void convexHullReleaseForGenerate(convexHull *hull) { void convexHullDestroy(convexHull *hull) { arrayDestroy(hull->vertexArray); arrayDestroy(hull->todoArray); - arrayDestroy(hull->faceArray); - hashtableDestroy(hull->faceHashtable); + arrayDestroy(hull->face3Array); + hashtableDestroy(hull->face3Hashtable); convexHullReleaseForGenerate(hull); free(hull); } @@ -290,7 +289,8 @@ int convexHullGenerate(convexHull *hull) { todo *t = (todo *)arrayGetItem(hull->todoArray, hull->nextTodoIndex++); index1 = t->firstVertex; index2 = t->secondVertex; - if (convexHullEdgeExsits(hull, index1, index2)) { + if (convexHullEdgeExsits(hull, index1, index2) || + convexHullEdgeExsits(hull, index2, index1)) { continue; } convexHullMarkEdgeAsExsits(hull, index1, index2); @@ -298,8 +298,7 @@ int convexHullGenerate(convexHull *hull) { if (-1 == index3) { continue; } - convexHullAddFace(hull, index1, index2, index3); - convexHullAddTodo(hull, index1, index2, index3); + convexHullAddFace3(hull, index1, index2, index3); convexHullAddTodo(hull, index2, index3, index1); convexHullAddTodo(hull, index3, index1, index2); } @@ -308,9 +307,9 @@ int convexHullGenerate(convexHull *hull) { int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { int i; - for (i = 0; i < arrayGetLength(hull->faceArray); ++i) { - face *triIdx = (face *)arrayGetItem( - hull->faceArray, i); + for (i = 0; i < arrayGetLength(hull->face3Array); ++i) { + face3 *triIdx = (face3 *)arrayGetItem( + hull->face3Array, i); converHullVertex *p1 = (converHullVertex *)arrayGetItem( hull->vertexArray, triIdx->indices[0]); converHullVertex *p2 = (converHullVertex *)arrayGetItem( @@ -330,19 +329,16 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { return 0; } -int convexHullGetTriangleNum(convexHull *hull) { - return arrayGetLength(hull->faceArray); +face3 *convexHullGetFace3(convexHull *hull, int faceIndex) { + return (face3 *)arrayGetItem(hull->face3Array, faceIndex); } -triangle *convexHullGetTriangle(convexHull *hull, int index) { - int i; - face *triIdx = (face *)arrayGetItem( - hull->faceArray, index); - memset(&hull->returnTriangle, 0, sizeof(hull->returnTriangle)); - for (i = 0; i < 3; ++i) { - converHullVertex *vertex = (converHullVertex *)arrayGetItem( - hull->vertexArray, triIdx->indices[i]); - hull->returnTriangle.pt[i] = vertex->pt; - } - return &hull->returnTriangle; +vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex) { + converHullVertex *vertex = (converHullVertex *)arrayGetItem( + hull->vertexArray, vertexIndex); + return &vertex->pt; +} + +int convexHullGetFace3Num(convexHull *hull) { + return arrayGetLength(hull->face3Array); } diff --git a/src/convexhull.h b/src/convexhull.h index 067d83dc..4d62e0c9 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -1,7 +1,6 @@ #ifndef CONVEX_HULL_H #define CONVEX_HULL_H -#include "vector3d.h" -#include "draw.h" +#include "3dstruct.h" typedef struct convexHull convexHull; convexHull *convexHullCreate(void); @@ -10,8 +9,9 @@ int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, void convexHullDestroy(convexHull *hull); int convexHullGenerate(convexHull *hull); int convexHullUnifyNormals(convexHull *hull, vec3 *origin); -int convexHullGetTriangleNum(convexHull *hull); -triangle *convexHullGetTriangle(convexHull *hull, int index); +int convexHullGetFace3Num(convexHull *hull); +face3 *convexHullGetFace3(convexHull *hull, int faceIndex); +vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex); int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); #endif diff --git a/src/draw.h b/src/draw.h index e623c439..450885fd 100644 --- a/src/draw.h +++ b/src/draw.h @@ -1,6 +1,6 @@ #ifndef DRAW_SPHERE_H #define DRAW_SPHERE_H -#include "vector3d.h" +#include "3dstruct.h" #ifdef __APPLE__ #include #else @@ -11,19 +11,6 @@ extern "C" { #endif -typedef struct { - vec3 pt[3]; -} triangle; - -typedef struct { - vec3 pt[4]; -} quad; - -typedef struct { - int npoly; - triangle *poly; -} object; - int drawInit(void); int drawSphere(vec3 *origin, float radius, int slices, int stacks); void drawTriangle(triangle *poly); diff --git a/src/osutil.cpp b/src/osutil.cpp new file mode 100644 index 00000000..744200d4 --- /dev/null +++ b/src/osutil.cpp @@ -0,0 +1,6 @@ +#include "osutil.h" +#include + +long long osGetMilliseconds(void) { + return (long long)QDateTime::currentMSecsSinceEpoch(); +} diff --git a/src/osutil.h b/src/osutil.h new file mode 100644 index 00000000..5450cec9 --- /dev/null +++ b/src/osutil.h @@ -0,0 +1,14 @@ +#ifndef OS_UTIL_H +#define OS_UTIL_H + +#ifdef __cplusplus +extern "C" { +#endif + +long long osGetMilliseconds(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/tri2quad.c b/src/tri2quad.c deleted file mode 100644 index e01c5bde..00000000 --- a/src/tri2quad.c +++ /dev/null @@ -1,324 +0,0 @@ -#include -#include -#include -#include -#include "tri2quad.h" -#include "vector3d.h" -#include "array.h" -#include "hashtable.h" - -#define EDGE_HASHTABLE_SIZE 100 - -typedef struct edge { - vec3 p1; - vec3 p2; - int inputA; - int inputB; - int score; -} edge; - -typedef struct inputTriangle { - triangle tri; - float area; - vec3 normal; - int merged; -} inputTriangle; - -struct tri2QuadContext { - array *inputArray; - array *triangleArray; - array *quadArray; - array *edgeArray; - hashtable *edgeHashtable; - edge findEdge; -}; - -static edge *tri2QuadGetEdgeByHashtableParam(tri2QuadContext *ctx, - const void *param) { - int edgeIndex = (char *)param - (char *)0; - if (0 == edgeIndex) { - return &ctx->findEdge; - } - return (edge *)arrayGetItem(ctx->edgeArray, edgeIndex - 1); -} - -static int edgeHash(void *userData, const void *node) { - edge *e = tri2QuadGetEdgeByHashtableParam((tri2QuadContext *)userData, node); - return (int)(e->p1.x + 1) * (e->p1.y + 1) * (e->p1.z + 1) * - (e->p2.x + 1) * (e->p2.y + 1) * (e->p2.z + 1); -} - -static int edgeCompare(void *userData, const void *node1, const void *node2) { - const edge *e1 = (const edge *)tri2QuadGetEdgeByHashtableParam( - (tri2QuadContext *)userData, node1); - const edge *e2 = (const edge *)tri2QuadGetEdgeByHashtableParam( - (tri2QuadContext *)userData, node2); - if ((0 == memcmp(&e1->p1, &e2->p1, sizeof(e1->p1)) && - 0 == memcmp(&e1->p2, &e2->p2, sizeof(e1->p1))) || - (0 == memcmp(&e1->p1, &e2->p2, sizeof(e1->p1)) && - 0 == memcmp(&e1->p2, &e2->p1, sizeof(e1->p1)))) { - return 0; - } - return -1; -} - -tri2QuadContext *tri2QuadContextCreate(void) { - tri2QuadContext *ctx = (tri2QuadContext *)calloc(1, sizeof(tri2QuadContext)); - if (!ctx) { - fprintf(stderr, "%s:Insufficient memory.", __FUNCTION__); - return 0; - } - ctx->inputArray = arrayCreate(sizeof(inputTriangle)); - if (!ctx->inputArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); - tri2QuadContextDestroy(ctx); - return 0; - } - ctx->triangleArray = arrayCreate(sizeof(triangle)); - if (!ctx->triangleArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); - tri2QuadContextDestroy(ctx); - return 0; - } - ctx->quadArray = arrayCreate(sizeof(quad)); - if (!ctx->quadArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); - tri2QuadContextDestroy(ctx); - return 0; - } - ctx->edgeHashtable = hashtableCreate(EDGE_HASHTABLE_SIZE, edgeHash, - edgeCompare, ctx); - if (!ctx->edgeHashtable) { - fprintf(stderr, "%s:hashtableCreate failed.", __FUNCTION__); - tri2QuadContextDestroy(ctx); - return 0; - } - ctx->edgeArray = arrayCreate(sizeof(edge)); - if (!ctx->edgeArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); - tri2QuadContextDestroy(ctx); - return 0; - } - return ctx; -} - -int tri2QuadAddTriangle(tri2QuadContext *ctx, triangle *tri) { - int newInputIndex; - inputTriangle *newInput; - newInputIndex = arrayGetLength(ctx->inputArray); - if (0 != arraySetLength(ctx->inputArray, newInputIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.", __FUNCTION__); - return -1; - } - newInput = (inputTriangle *)arrayGetItem(ctx->inputArray, newInputIndex); - newInput->merged = 0; - newInput->tri = *tri; - newInput->area = vec3TriangleArea(&tri->pt[0], &tri->pt[1], &tri->pt[2]); - vec3Normal(&tri->pt[0], &tri->pt[1], &tri->pt[2], &newInput->normal); - return newInputIndex; -} - -static edge *tri2QuadFindEdge(tri2QuadContext *ctx, - vec3 *p1, vec3 *p2) { - int edgeIndex; - ctx->findEdge.p1 = *p1; - ctx->findEdge.p2 = *p2; - edgeIndex = (char *)hashtableGet(ctx->edgeHashtable, (char *)0) - (char *)0; - if (0 == edgeIndex) { - return 0; - } - return (edge *)arrayGetItem(ctx->edgeArray, edgeIndex - 1); -} - -static int tri2QuadAddInitialEdge(tri2QuadContext *ctx, - vec3 *p1, vec3 *p2, int inputIndex) { - edge *existedEdge = tri2QuadFindEdge(ctx, p1, p2); - if (!existedEdge) { - edge *newEdge; - int newEdgeIndex = arrayGetLength(ctx->edgeArray); - if (0 != arraySetLength(ctx->edgeArray, newEdgeIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed(newEdgeIndex:%d).", - __FUNCTION__, newEdgeIndex); - return -1; - } - newEdge = (edge *)arrayGetItem(ctx->edgeArray, newEdgeIndex); - newEdge->p1 = *p1; - newEdge->p2 = *p2; - if (0 != hashtableInsert(ctx->edgeHashtable, - (char *)0 + newEdgeIndex + 1)) { - fprintf(stderr, "%s:hashtableInsert failed.", __FUNCTION__); - return -1; - } - newEdge->inputA = inputIndex; - newEdge->inputB = -1; - newEdge->score = 0; - } else { - existedEdge->inputB = inputIndex; - } - return 0; -} - -static int tri2QuadAddOutputQuad(tri2QuadContext *ctx, vec3 *first, - vec3 *second, vec3 *third, vec3 *fourth) { - quad *q; - int newQuadIndex = arrayGetLength(ctx->quadArray); - if (0 != arraySetLength(ctx->quadArray, newQuadIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed(newQuadIndex:%d).", __FUNCTION__, - newQuadIndex); - return -1; - } - q = (quad *)arrayGetItem(ctx->quadArray, newQuadIndex); - memset(q, 0, sizeof(quad)); - q->pt[0] = *first; - q->pt[1] = *second; - q->pt[2] = *third; - q->pt[3] = *fourth; - return newQuadIndex; -} - -static int tri2QuadAddOutputTriangle(tri2QuadContext *ctx, vec3 *first, - vec3 *second, vec3 *third) { - triangle *tri; - int newTriangleIndex = arrayGetLength(ctx->triangleArray); - if (0 != arraySetLength(ctx->triangleArray, newTriangleIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed(newTriangleIndex:%d).", - __FUNCTION__, newTriangleIndex); - return -1; - } - tri = (triangle *)arrayGetItem(ctx->triangleArray, newTriangleIndex); - memset(tri, 0, sizeof(triangle)); - tri->pt[0] = *first; - tri->pt[1] = *second; - tri->pt[2] = *third; - return newTriangleIndex; -} - -static int tri2QuadAddOutputQuadByEdgeAndInput(tri2QuadContext *ctx, edge *e, - inputTriangle *input1, inputTriangle *input2) { - vec3 outputPt[4]; - int i; - int nextSaveToIndex; - memset(outputPt, 0, sizeof(outputPt)); - nextSaveToIndex = 0; - for (i = 0; i < 3; ++i) { - vec3 *pt = &input1->tri.pt[i]; - if (0 == memcmp(&e->p1, pt, sizeof(e->p1))) { - outputPt[nextSaveToIndex] = *pt; - nextSaveToIndex += 2; - } else if (0 == memcmp(&e->p2, pt, sizeof(e->p2))) { - outputPt[nextSaveToIndex] = *pt; - nextSaveToIndex += 2; - } else { - outputPt[1] = *pt; - } - } - for (i = 0; i < 3; ++i) { - vec3 *pt = &input2->tri.pt[i]; - if (0 != memcmp(&e->p1, pt, sizeof(e->p1)) && - 0 != memcmp(&e->p2, pt, sizeof(e->p2))) { - outputPt[3] = *pt; - break; - } - } - return tri2QuadAddOutputQuad(ctx, &outputPt[0], &outputPt[1], - &outputPt[2], &outputPt[3]); -} - -static int sortEdgeByScoreDesc(const void *first, const void *second) { - const edge *e1 = (const edge *)first; - const edge *e2 = (const edge *)second; - return e2->score - e1->score; -} - -int tri2QuadConvert(tri2QuadContext *ctx) { - int inputIndex; - int edgeIndex; - - for (inputIndex = 0; inputIndex < arrayGetLength(ctx->inputArray); - ++inputIndex) { - inputTriangle *inputItem = (inputTriangle *)arrayGetItem(ctx->inputArray, - inputIndex); - tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[0], &inputItem->tri.pt[1], - inputIndex); - tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[1], &inputItem->tri.pt[2], - inputIndex); - tri2QuadAddInitialEdge(ctx, &inputItem->tri.pt[2], &inputItem->tri.pt[0], - inputIndex); - } - for (edgeIndex = 0; edgeIndex < arrayGetLength(ctx->edgeArray); ++edgeIndex) { - edge *e = (edge *)arrayGetItem(ctx->edgeArray, edgeIndex); - inputTriangle *input1; - inputTriangle *input2; - if (-1 != e->inputA && -1 != e->inputB) { - input1 = (inputTriangle *)arrayGetItem(ctx->inputArray, - e->inputA); - input2 = (inputTriangle *)arrayGetItem(ctx->inputArray, - e->inputB); - e->score = (int)((input1->area + input2->area) * - vec3DotProduct(&input1->normal, &input2->normal) * 100); - } - } - qsort(arrayGetItem(ctx->edgeArray, 0), arrayGetLength(ctx->edgeArray), - sizeof(edge), sortEdgeByScoreDesc); - - // - // After qsort, the edge indices inside the hashtable are no longer right. - // - - hashtableDestroy(ctx->edgeHashtable); - ctx->edgeHashtable = 0; - - for (edgeIndex = 0; edgeIndex < arrayGetLength(ctx->edgeArray); ++edgeIndex) { - edge *e = (edge *)arrayGetItem(ctx->edgeArray, edgeIndex); - inputTriangle *input1; - inputTriangle *input2; - if (-1 != e->inputA && -1 != e->inputB) { - input1 = (inputTriangle *)arrayGetItem(ctx->inputArray, - e->inputA); - input2 = (inputTriangle *)arrayGetItem(ctx->inputArray, - e->inputB); - if (!input1->merged && !input2->merged) { - //input1->merged = 1; - //input2->merged = 1; - //tri2QuadAddOutputQuadByEdgeAndInput(ctx, e, input1, input2); - } - } - } - - for (inputIndex = 0; inputIndex < arrayGetLength(ctx->inputArray); - ++inputIndex) { - inputTriangle *inputItem = (inputTriangle *)arrayGetItem(ctx->inputArray, - inputIndex); - if (!inputItem->merged) { - tri2QuadAddOutputTriangle(ctx, &inputItem->tri.pt[0], - &inputItem->tri.pt[1], &inputItem->tri.pt[2]); - } - } - - return 0; -} - -int tri2QuadGetTriangleNum(tri2QuadContext *ctx) { - return arrayGetLength(ctx->triangleArray); -} - -triangle *tri2QuadGetTriangle(tri2QuadContext *ctx, int index) { - return (triangle *)arrayGetItem(ctx->triangleArray, index); -} - -int tri2QuadGetQuadNum(tri2QuadContext *ctx) { - return arrayGetLength(ctx->quadArray); -} - -quad *tri2QuadGetQuad(tri2QuadContext *ctx, int index) { - return (quad *)arrayGetItem(ctx->quadArray, index); -} - -void tri2QuadContextDestroy(tri2QuadContext *ctx) { - arrayDestroy(ctx->inputArray); - arrayDestroy(ctx->triangleArray); - arrayDestroy(ctx->quadArray); - hashtableDestroy(ctx->edgeHashtable); - arrayDestroy(ctx->edgeArray); - free(ctx); -} diff --git a/src/tri2quad.h b/src/tri2quad.h deleted file mode 100644 index f7053b9c..00000000 --- a/src/tri2quad.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef TRI2QUAD_H -#define TRI2QUAD_H -#include "draw.h" - -typedef struct tri2QuadContext tri2QuadContext; - -tri2QuadContext *tri2QuadContextCreate(void); -int tri2QuadAddTriangle(tri2QuadContext *ctx, triangle *tri); -int tri2QuadConvert(tri2QuadContext *ctx); -int tri2QuadGetTriangleNum(tri2QuadContext *ctx); -triangle *tri2QuadGetTriangle(tri2QuadContext *ctx, int index); -int tri2QuadGetQuadNum(tri2QuadContext *ctx); -quad *tri2QuadGetQuad(tri2QuadContext *ctx, int index); -void tri2QuadContextDestroy(tri2QuadContext *ctx); - -#endif - From 1c305d5ef97eec07cc47ba077b217e687359bd32 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Fri, 30 Dec 2016 22:49:10 +0930 Subject: [PATCH 24/61] Remove intersect triangles. Add debug facility. --- src/bmesh.c | 28 +++++-- src/convexhull.c | 208 +++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 196 insertions(+), 40 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index c07179ba..4be07157 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -556,7 +556,7 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, } #include "osutil.h" -static int showFaceIndex = 0; +int showFaceIndex = 10000000; static long long lastShowFaceIndexIncTime = 0; static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { @@ -598,14 +598,26 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { convexHullUnifyNormals(hull, &ball->position); glPushMatrix(); - if (lastShowFaceIndexIncTime + 300 < osGetMilliseconds()) { - if (showFaceIndex > convexHullGetFace3Num(hull)) { - showFaceIndex = 0; + /* + if (lastShowFaceIndexIncTime + 0 < osGetMilliseconds()) { + if (17 == showFaceIndex) { + if (lastShowFaceIndexIncTime + 0 < osGetMilliseconds()) { + if (showFaceIndex > convexHullGetFace3Num(hull)) { + showFaceIndex = 0; + } else { + showFaceIndex++; + } + lastShowFaceIndexIncTime = osGetMilliseconds(); + } } else { - showFaceIndex++; + if (showFaceIndex > convexHullGetFace3Num(hull)) { + showFaceIndex = 0; + } else { + showFaceIndex++; + } + lastShowFaceIndexIncTime = osGetMilliseconds(); } - lastShowFaceIndexIncTime = osGetMilliseconds(); - } + }*/ glColor3f(1.0f, 1.0f, 1.0f); { @@ -617,7 +629,7 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { tri.pt[0] = *convexHullGetVertex(hull, face->indices[0]); tri.pt[1] = *convexHullGetVertex(hull, face->indices[1]); tri.pt[2] = *convexHullGetVertex(hull, face->indices[2]); - if (triIndex > showFaceIndex) { + if (triIndex >= showFaceIndex) { break; } drawTriangle(&tri); diff --git a/src/convexhull.c b/src/convexhull.c index 27c0b276..6f127c12 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -1,15 +1,18 @@ #include #include #include +#include #include "convexhull.h" #include "array.h" #include "hashtable.h" +#include "draw.h" // // Implement Gift wrapping method which describled in http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf // -#define TRIANGLE_INDEX_HASHTABLE_SIZE 100 +#define FACE3_HASHTABLE_SIZE 100 +#define EDGE_HASHTABLE_SIZE 100 typedef struct { vec3 pt; @@ -17,14 +20,25 @@ typedef struct { int orderOnPlane; } converHullVertex; +typedef struct { + int p1; + int p2; + int hill1; + int hill2; + vec3 hill1Normal; +} edge; + struct convexHull { array *vertexArray; array *todoArray; array *face3Array; int nextTodoIndex; - unsigned int *openEdgeExistMap; + unsigned int *openEdgeProcessedMap; hashtable *face3Hashtable; face3 findFace3; + array *edgeArray; + hashtable *edgeHashtable; + edge findEdge; }; typedef struct { @@ -37,29 +51,51 @@ static int cantorPair(int k1, int k2) { return (k1 + k2) * (k1 + k2 + 1) / 2 + k2; } -face3 *convexHullGetFaceByHashtableParam(convexHull *hull, - const void *param) { - int index = (char *)param - (char *)0; +face3 *convexHullGetFaceByHashtableParam(void *userData, const void *node) { + convexHull *hull = (convexHull *)userData; + int index = (char *)node - (char *)0; if (0 == index) { return &hull->findFace3; } return (face3 *)arrayGetItem(hull->face3Array, index - 1); } -static int faceHash(void *userData, const void *node) { - face3 *triIdx = convexHullGetFaceByHashtableParam( - (convexHull *)userData, node); - return cantorPair(cantorPair(triIdx->indices[0], triIdx->indices[1]), - triIdx->indices[2]); +static int face3Hash(void *userData, const void *node) { + face3 *face = convexHullGetFaceByHashtableParam(userData, node); + return cantorPair(cantorPair(face->indices[0], face->indices[1]), + face->indices[2]); } -static int faceCompare(void *userData, const void *node1, +edge *convexHullGetEdgeByHashtableParam(void *userData, const void *node) { + convexHull *hull = (convexHull *)userData; + int index = (char *)node - (char *)0; + if (0 == index) { + return &hull->findEdge; + } + return (edge *)arrayGetItem(hull->edgeArray, index - 1); +} + +static int edgeHash(void *userData, const void *node) { + edge *e = convexHullGetEdgeByHashtableParam(userData, node); + return e->p1 < e->p2 ? cantorPair(e->p1, e->p2) : cantorPair(e->p2, e->p1); +} + +static int face3Compare(void *userData, const void *node1, const void *node2) { - face3 *triIdx1 = convexHullGetFaceByHashtableParam( - (convexHull *)userData, node1); - face3 *triIdx2 = convexHullGetFaceByHashtableParam( - (convexHull *)userData, node2); - return memcmp(triIdx1, triIdx2, sizeof(face3)); + face3 *f1 = convexHullGetFaceByHashtableParam(userData, node1); + face3 *f2 = convexHullGetFaceByHashtableParam(userData, node2); + return memcmp(f1, f2, sizeof(face3)); +} + +static int edgeCompare(void *userData, const void *node1, + const void *node2) { + edge *e1 = convexHullGetEdgeByHashtableParam(userData, node1); + edge *e2 = convexHullGetEdgeByHashtableParam(userData, node2); + if ((e1->p1 == e2->p1 && e1->p2 == e2->p2) || + (e1->p2 == e2->p1 && e1->p1 == e2->p2)) { + return 0; + } + return -1; } convexHull *convexHullCreate(void) { @@ -86,31 +122,82 @@ convexHull *convexHullCreate(void) { convexHullDestroy(hull); return 0; } - hull->face3Hashtable = hashtableCreate(TRIANGLE_INDEX_HASHTABLE_SIZE, - faceHash, faceCompare, hull); + hull->face3Hashtable = hashtableCreate(FACE3_HASHTABLE_SIZE, + face3Hash, face3Compare, hull); if (!hull->face3Hashtable) { fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); convexHullDestroy(hull); return 0; } + hull->edgeArray = arrayCreate(sizeof(edge)); + if (!hull->edgeArray) { + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); + return 0; + } + hull->edgeHashtable = hashtableCreate(EDGE_HASHTABLE_SIZE, + edgeHash, edgeCompare, hull); + if (!hull->edgeHashtable) { + fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); + convexHullDestroy(hull); + return 0; + } return hull; } -void convexHullMarkEdgeAsExsits(convexHull *hull, int firstVertex, +edge *convexHullFindEdge(convexHull *hull, int p1, int p2) { + int index; + hull->findEdge.p1 = p1; + hull->findEdge.p2 = p2; + index = (char *)hashtableGet(hull->edgeHashtable, 0) - (char *)0; + if (0 == index) { + return 0; + } + return arrayGetItem(hull->edgeArray, index - 1); +} + +int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill) { + edge *e = convexHullFindEdge(hull, p1, p2); + if (!e) { + int newIndex = arrayGetLength(hull->edgeArray); + if (0 != arraySetLength(hull->edgeArray, newIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + e = (edge *)arrayGetItem(hull->edgeArray, newIndex); + e->p1 = p1; + e->p2 = p2; + e->hill1 = hill; + e->hill2 = -1; + vec3Normal((vec3 *)arrayGetItem(hull->vertexArray, e->p1), + (vec3 *)arrayGetItem(hull->vertexArray, e->p2), + (vec3 *)arrayGetItem(hull->vertexArray, e->hill1), &e->hill1Normal); + if (0 != hashtableInsert(hull->edgeHashtable, (char *)0 + newIndex + 1)) { + fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); + return -1; + } + return 0; + } + assert(-1 == e->hill2); + e->hill2 = hill; + return 0; +} + +void convexHullMarkEdgeAsProcessed(convexHull *hull, int firstVertex, int secondVertex) { int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; int unitIndex = mapIndex / (sizeof(unsigned int) * 8); int unitOffset = mapIndex % (sizeof(unsigned int) * 8); - hull->openEdgeExistMap[unitIndex] |= (0x00000001 << unitOffset); + hull->openEdgeProcessedMap[unitIndex] |= (0x00000001 << unitOffset); } -int convexHullEdgeExsits(convexHull *hull, int firstVertex, +int convexHullOpenEdgeProcessed(convexHull *hull, int firstVertex, int secondVertex) { - if (hull->openEdgeExistMap) { + if (hull->openEdgeProcessedMap) { int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; int unitIndex = mapIndex / (sizeof(unsigned int) * 8); int unitOffset = mapIndex % (sizeof(unsigned int) * 8); - return hull->openEdgeExistMap[unitIndex] & (0x00000001 << unitOffset); + return hull->openEdgeProcessedMap[unitIndex] & (0x00000001 << unitOffset); } return 0; } @@ -214,26 +301,28 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, } static void convexHullReleaseForGenerate(convexHull *hull) { - free(hull->openEdgeExistMap); - hull->openEdgeExistMap = 0; + free(hull->openEdgeProcessedMap); + hull->openEdgeProcessedMap = 0; } void convexHullDestroy(convexHull *hull) { arrayDestroy(hull->vertexArray); arrayDestroy(hull->todoArray); arrayDestroy(hull->face3Array); + arrayDestroy(hull->edgeArray); + hashtableDestroy(hull->edgeHashtable); hashtableDestroy(hull->face3Hashtable); convexHullReleaseForGenerate(hull); free(hull); } static int convexHullPrepareForGenerate(convexHull *hull) { - free(hull->openEdgeExistMap); - hull->openEdgeExistMap = (unsigned int *)calloc( + free(hull->openEdgeProcessedMap); + hull->openEdgeProcessedMap = (unsigned int *)calloc( arrayGetLength(hull->vertexArray) * arrayGetLength(hull->vertexArray) / (sizeof(unsigned int) * 8) + 1, sizeof(unsigned int)); - if (!hull->openEdgeExistMap) { + if (!hull->openEdgeProcessedMap) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return -1; } @@ -272,12 +361,57 @@ int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index, int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3) { - if (!convexHullEdgeExsits(hull, vertex1, vertex2)) { + if (!convexHullOpenEdgeProcessed(hull, vertex1, vertex2)) { return convexHullAddTodoNoCheck(hull, vertex1, vertex2, vertex3); } return 0; } +extern int showFaceIndex; + +static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, + int index3) { + int i; + int indices[] = {index1, index2, index3}; + + if (showFaceIndex == arrayGetLength(hull->face3Array)) { + drawDebugPrintf("showFaceIndex:%d can add (%d,%d,%d)", showFaceIndex, + index1, index2, index3); + } + + for (i = 0; i < 3; ++i) { + int p1 = indices[i]; + int p2 = indices[(i + 1) % 3]; + int hill = indices[(i + 2) % 3]; + float angle; + edge *e = convexHullFindEdge(hull, p1, p2); + if (e) { + vec3 normal; + if (-1 != e->hill2) { + return 0; + } + vec3Normal((vec3 *)arrayGetItem(hull->vertexArray, e->p1), + (vec3 *)arrayGetItem(hull->vertexArray, e->p2), + (vec3 *)arrayGetItem(hull->vertexArray, hill), &normal); + angle = vec3Angle(&e->hill1Normal, &normal); + + if (showFaceIndex == arrayGetLength(hull->face3Array)) { + drawDebugPrintf("showFaceIndex:%d angle:%f (%d,%d,%d)", + showFaceIndex, angle, e->p1, e->p2, e->hill1); + drawSphere((vec3 *)arrayGetItem(hull->vertexArray, 9), + 0.1, 36, 24); + drawSphere((vec3 *)arrayGetItem(hull->vertexArray, 6), + 0.1, 36, 24); + } + + if (angle < 1) { + return 0; + } + } + } + return 1; +} + int convexHullGenerate(convexHull *hull) { int index1, index2, index3; convexHullReleaseForGenerate(hull); @@ -289,15 +423,25 @@ int convexHullGenerate(convexHull *hull) { todo *t = (todo *)arrayGetItem(hull->todoArray, hull->nextTodoIndex++); index1 = t->firstVertex; index2 = t->secondVertex; - if (convexHullEdgeExsits(hull, index1, index2) || - convexHullEdgeExsits(hull, index2, index1)) { + if (convexHullOpenEdgeProcessed(hull, index1, index2) || + convexHullOpenEdgeProcessed(hull, index2, index1)) { continue; } - convexHullMarkEdgeAsExsits(hull, index1, index2); + convexHullMarkEdgeAsProcessed(hull, index1, index2); index3 = convexHullGetNextVertex(hull, index1, index2, t->thirdVertex); if (-1 == index3) { continue; } + if (!convexHullCanAddFace3(hull, index1, index2, index3)) { + continue; + } + if (showFaceIndex == arrayGetLength(hull->face3Array)) { + drawDebugPrintf("showFaceIndex:%d added face3 (%d,%d,%d)", + showFaceIndex, index1, index2, index3); + } + convexHullAddEdge(hull, index1, index2, index3); + convexHullAddEdge(hull, index2, index3, index1); + convexHullAddEdge(hull, index3, index1, index2); convexHullAddFace3(hull, index1, index2, index3); convexHullAddTodo(hull, index2, index3, index1); convexHullAddTodo(hull, index3, index1, index2); From 06e584ac1cd6c23852a7713ac2001a3bf4511729 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 00:29:54 +0930 Subject: [PATCH 25/61] Add merge triangles inside implementation of convex hull. --- src/bmesh.c | 90 ++++++++++++++++++------- src/convexhull.c | 171 +++++++++++++++++++++++++++++++++++++---------- src/convexhull.h | 13 +++- 3 files changed, 214 insertions(+), 60 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 4be07157..79f60b73 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -596,6 +596,7 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } convexHullGenerate(hull); convexHullUnifyNormals(hull, &ball->position); + convexHullMergeTriangles(hull); glPushMatrix(); /* @@ -619,41 +620,84 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { } }*/ - glColor3f(1.0f, 1.0f, 1.0f); { int triIndex; - for (triIndex = 0; triIndex < convexHullGetFace3Num(hull); + for (triIndex = 0; triIndex < convexHullGetFaceNum(hull); ++triIndex) { - triangle tri; - face3 *face = (face3 *)convexHullGetFace3(hull, triIndex); - tri.pt[0] = *convexHullGetVertex(hull, face->indices[0]); - tri.pt[1] = *convexHullGetVertex(hull, face->indices[1]); - tri.pt[2] = *convexHullGetVertex(hull, face->indices[2]); - if (triIndex >= showFaceIndex) { - break; + convexHullFace *face = (convexHullFace *)convexHullGetFace(hull, + triIndex); + if (3 == face->vertexNum) { + triangle tri; + int j; + tri.pt[0] = *convexHullGetVertex(hull, face->u.t.indices[0]); + tri.pt[1] = *convexHullGetVertex(hull, face->u.t.indices[1]); + tri.pt[2] = *convexHullGetVertex(hull, face->u.t.indices[2]); + + if (triIndex >= showFaceIndex) { + break; + } + + glColor3f(1.0f, 1.0f, 1.0f); + drawTriangle(&tri); + + glBegin(GL_LINE_STRIP); + for (j = 0; j < 3; ++j) { + glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); + } + glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); + glEnd(); + + } else if (4 == face->vertexNum) { + quad q; + vec3 normal; + int j; + q.pt[0] = *convexHullGetVertex(hull, face->u.q.indices[0]); + q.pt[1] = *convexHullGetVertex(hull, face->u.q.indices[1]); + q.pt[2] = *convexHullGetVertex(hull, face->u.q.indices[2]); + q.pt[3] = *convexHullGetVertex(hull, face->u.q.indices[3]); + + glColor3f(1.0f, 1.0f, 1.0f); + glBegin(GL_QUADS); + vec3Normal(&q.pt[0], &q.pt[1], &q.pt[2], &normal); + for (j = 0; j < 4; ++j) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + } + glEnd(); + + glBegin(GL_LINE_STRIP); + for (j = 0; j < 4; ++j) { + glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + } + glVertex3f(q.pt[0].x, q.pt[0].y, q.pt[0].z); + glEnd(); } - drawTriangle(&tri); } } + + /* glColor3f(0.0f, 0.0f, 0.0f); { int triIndex; int j; - for (triIndex = 0; triIndex < convexHullGetFace3Num(hull); + for (triIndex = 0; triIndex < convexHullGetFaceNum(hull); ++triIndex) { - triangle tri; - face3 *face = (face3 *)convexHullGetFace3(hull, triIndex); - tri.pt[0] = *convexHullGetVertex(hull, face->indices[0]); - tri.pt[1] = *convexHullGetVertex(hull, face->indices[1]); - tri.pt[2] = *convexHullGetVertex(hull, face->indices[2]); - glBegin(GL_LINE_STRIP); - for (j = 0; j < 3; ++j) { - glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); - } - glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); - glEnd(); + convexHullFace *face = (convexHullFace *)convexHullGetFace(hull, + triIndex); + if (3 == face->vertexNum) { + triangle tri; + tri.pt[0] = *convexHullGetVertex(hull, face->u.t.indices[0]); + tri.pt[1] = *convexHullGetVertex(hull, face->u.t.indices[1]); + tri.pt[2] = *convexHullGetVertex(hull, face->u.t.indices[2]); + glBegin(GL_LINE_STRIP); + for (j = 0; j < 3; ++j) { + glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); + } + glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); + glEnd(); + } else if () } - } + }*/ /* glColor3f(1.0f, 1.0f, 1.0f); diff --git a/src/convexhull.c b/src/convexhull.c index 6f127c12..f3c6089c 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -18,7 +18,7 @@ typedef struct { vec3 pt; int plane; int orderOnPlane; -} converHullVertex; +} convexHullVertex; typedef struct { int p1; @@ -26,12 +26,15 @@ typedef struct { int hill1; int hill2; vec3 hill1Normal; + int score; + int face1; + int face2; } edge; struct convexHull { array *vertexArray; array *todoArray; - array *face3Array; + array *faceArray; int nextTodoIndex; unsigned int *openEdgeProcessedMap; hashtable *face3Hashtable; @@ -57,7 +60,7 @@ face3 *convexHullGetFaceByHashtableParam(void *userData, const void *node) { if (0 == index) { return &hull->findFace3; } - return (face3 *)arrayGetItem(hull->face3Array, index - 1); + return (face3 *)arrayGetItem(hull->faceArray, index - 1); } static int face3Hash(void *userData, const void *node) { @@ -104,7 +107,7 @@ convexHull *convexHullCreate(void) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return 0; } - hull->vertexArray = arrayCreate(sizeof(converHullVertex)); + hull->vertexArray = arrayCreate(sizeof(convexHullVertex)); if (!hull->vertexArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); convexHullDestroy(hull); @@ -116,8 +119,8 @@ convexHull *convexHullCreate(void) { convexHullDestroy(hull); return 0; } - hull->face3Array = arrayCreate(sizeof(face3)); - if (!hull->face3Array) { + hull->faceArray = arrayCreate(sizeof(convexHullFace)); + if (!hull->faceArray) { fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); convexHullDestroy(hull); return 0; @@ -156,7 +159,8 @@ edge *convexHullFindEdge(convexHull *hull, int p1, int p2) { return arrayGetItem(hull->edgeArray, index - 1); } -int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill) { +int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill, + int face) { edge *e = convexHullFindEdge(hull, p1, p2); if (!e) { int newIndex = arrayGetLength(hull->edgeArray); @@ -165,10 +169,13 @@ int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill) { return -1; } e = (edge *)arrayGetItem(hull->edgeArray, newIndex); + memset(e, 0, sizeof(edge)); e->p1 = p1; e->p2 = p2; e->hill1 = hill; e->hill2 = -1; + e->face1 = face; + e->face2 = -1; vec3Normal((vec3 *)arrayGetItem(hull->vertexArray, e->p1), (vec3 *)arrayGetItem(hull->vertexArray, e->p2), (vec3 *)arrayGetItem(hull->vertexArray, e->hill1), &e->hill1Normal); @@ -179,7 +186,9 @@ int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill) { return 0; } assert(-1 == e->hill2); + assert(-1 == e->face2); e->hill2 = hill; + e->face2 = face; return 0; } @@ -204,13 +213,13 @@ int convexHullOpenEdgeProcessed(convexHull *hull, int firstVertex, int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane) { - converHullVertex *vtx; + convexHullVertex *vtx; int newVertex = arrayGetLength(hull->vertexArray); if (0 != arraySetLength(hull->vertexArray, newVertex + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - vtx = (converHullVertex *)arrayGetItem(hull->vertexArray, newVertex); + vtx = (convexHullVertex *)arrayGetItem(hull->vertexArray, newVertex); vtx->plane = plane; vtx->orderOnPlane = orderOnPlane; vtx->pt = *vertex; @@ -252,13 +261,13 @@ static int sortface(const void *first, const void *second) { int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { face3 *tri; - converHullVertex *vtx1; - converHullVertex *vtx2; - converHullVertex *vtx3; + convexHullVertex *vtx1; + convexHullVertex *vtx2; + convexHullVertex *vtx3; int newTri; - vtx1 = (converHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); - vtx2 = (converHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); - vtx3 = (converHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); + vtx1 = (convexHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); + vtx2 = (convexHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); + vtx3 = (convexHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); if (vtx1->plane == vtx2->plane && vtx1->plane == vtx3->plane) { return 0; } @@ -284,18 +293,22 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, qsort(hull->findFace3.indices, 3, sizeof(hull->findFace3.indices[0]), sortface); if (0 == hashtableGet(hull->face3Hashtable, 0)) { - newTri = arrayGetLength(hull->face3Array); - if (0 != arraySetLength(hull->face3Array, newTri + 1)) { + newTri = arrayGetLength(hull->faceArray); + if (0 != arraySetLength(hull->faceArray, newTri + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; } - tri = (face3 *)arrayGetItem(hull->face3Array, newTri); + tri = (face3 *)arrayGetItem(hull->faceArray, newTri); + ((convexHullFace *)tri)->vertexNum = 3; *tri = hull->findFace3; if (0 != hashtableInsert(hull->face3Hashtable, (char *)0 + newTri + 1)) { fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); return -1; } + convexHullAddEdge(hull, firstVertex, secondVertex, thirdVertex, newTri); + convexHullAddEdge(hull, secondVertex, thirdVertex, firstVertex, newTri); + convexHullAddEdge(hull, thirdVertex, firstVertex, secondVertex, newTri); } return 0; } @@ -308,7 +321,7 @@ static void convexHullReleaseForGenerate(convexHull *hull) { void convexHullDestroy(convexHull *hull) { arrayDestroy(hull->vertexArray); arrayDestroy(hull->todoArray); - arrayDestroy(hull->face3Array); + arrayDestroy(hull->faceArray); arrayDestroy(hull->edgeArray); hashtableDestroy(hull->edgeHashtable); hashtableDestroy(hull->face3Hashtable); @@ -374,7 +387,7 @@ static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, int i; int indices[] = {index1, index2, index3}; - if (showFaceIndex == arrayGetLength(hull->face3Array)) { + if (showFaceIndex == arrayGetLength(hull->faceArray)) { drawDebugPrintf("showFaceIndex:%d can add (%d,%d,%d)", showFaceIndex, index1, index2, index3); } @@ -395,7 +408,7 @@ static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, (vec3 *)arrayGetItem(hull->vertexArray, hill), &normal); angle = vec3Angle(&e->hill1Normal, &normal); - if (showFaceIndex == arrayGetLength(hull->face3Array)) { + if (showFaceIndex == arrayGetLength(hull->faceArray)) { drawDebugPrintf("showFaceIndex:%d angle:%f (%d,%d,%d)", showFaceIndex, angle, e->p1, e->p2, e->hill1); drawSphere((vec3 *)arrayGetItem(hull->vertexArray, 9), @@ -435,13 +448,10 @@ int convexHullGenerate(convexHull *hull) { if (!convexHullCanAddFace3(hull, index1, index2, index3)) { continue; } - if (showFaceIndex == arrayGetLength(hull->face3Array)) { + if (showFaceIndex == arrayGetLength(hull->faceArray)) { drawDebugPrintf("showFaceIndex:%d added face3 (%d,%d,%d)", showFaceIndex, index1, index2, index3); } - convexHullAddEdge(hull, index1, index2, index3); - convexHullAddEdge(hull, index2, index3, index1); - convexHullAddEdge(hull, index3, index1, index2); convexHullAddFace3(hull, index1, index2, index3); convexHullAddTodo(hull, index2, index3, index1); convexHullAddTodo(hull, index3, index1, index2); @@ -451,14 +461,14 @@ int convexHullGenerate(convexHull *hull) { int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { int i; - for (i = 0; i < arrayGetLength(hull->face3Array); ++i) { + for (i = 0; i < arrayGetLength(hull->faceArray); ++i) { face3 *triIdx = (face3 *)arrayGetItem( - hull->face3Array, i); - converHullVertex *p1 = (converHullVertex *)arrayGetItem( + hull->faceArray, i); + convexHullVertex *p1 = (convexHullVertex *)arrayGetItem( hull->vertexArray, triIdx->indices[0]); - converHullVertex *p2 = (converHullVertex *)arrayGetItem( + convexHullVertex *p2 = (convexHullVertex *)arrayGetItem( hull->vertexArray, triIdx->indices[1]); - converHullVertex *p3 = (converHullVertex *)arrayGetItem( + convexHullVertex *p3 = (convexHullVertex *)arrayGetItem( hull->vertexArray, triIdx->indices[2]); vec3 normal; vec3 o2v; @@ -473,16 +483,107 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { return 0; } -face3 *convexHullGetFace3(convexHull *hull, int faceIndex) { - return (face3 *)arrayGetItem(hull->face3Array, faceIndex); +static int sortEdgeByScore(const void *first, const void *second) { + edge *e1 = (edge *)first; + edge *e2 = (edge *)second; + return e2->score - e1->score; +} + +static int findFace3FirstEdgeVertex(face3 *face, edge *e) { + int i; + for (i = 0; i < 3; ++i) { + if (face->indices[i] == e->p1 || face->indices[i] == e->p2) { + return i; + } + } + return 0; +} + +int convexHullMergeTriangles(convexHull *hull) { + int edgeIndex; + + for (edgeIndex = 0; edgeIndex < arrayGetLength(hull->edgeArray); + ++edgeIndex) { + edge *e = (edge *)arrayGetItem(hull->edgeArray, edgeIndex); + if (-1 != e->face1 && -1 != e->face2) { + face3 *f1 = (face3 *)arrayGetItem(hull->faceArray, e->face1); + face3 *f2 = (face3 *)arrayGetItem(hull->faceArray, e->face2); + float sumArea; + vec3 f1normal; + vec3 f2normal; + convexHullVertex *f1p1 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f1->indices[0]); + convexHullVertex *f1p2 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f1->indices[1]); + convexHullVertex *f1p3 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f1->indices[2]); + convexHullVertex *f2p1 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f2->indices[0]); + convexHullVertex *f2p2 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f2->indices[1]); + convexHullVertex *f2p3 = (convexHullVertex *)arrayGetItem( + hull->vertexArray, f2->indices[2]); + sumArea = vec3TriangleArea(&f1p1->pt, &f1p2->pt, &f1p3->pt) + + vec3TriangleArea(&f2p1->pt, &f2p2->pt, &f2p3->pt); + vec3Normal(&f1p1->pt, &f1p2->pt, &f1p3->pt, &f1normal); + vec3Normal(&f2p1->pt, &f2p2->pt, &f2p3->pt, &f2normal); + e->score = sumArea * vec3DotProduct(&f1normal, &f2normal) * 100; + } + } + + qsort(arrayGetItem(hull->edgeArray, 0), arrayGetLength(hull->edgeArray), + sizeof(edge), sortEdgeByScore); + + // + // After sort by score, the edge hashmap can not be used anymore. + // + hashtableDestroy(hull->edgeHashtable); + hull->edgeHashtable = 0; + + for (edgeIndex = 0; edgeIndex < arrayGetLength(hull->edgeArray); + ++edgeIndex) { + edge *e = (edge *)arrayGetItem(hull->edgeArray, edgeIndex); + if (-1 != e->face1 && -1 != e->face2) { + convexHullFace *f1 = (convexHullFace *)arrayGetItem(hull->faceArray, + e->face1); + convexHullFace *f2 = (convexHullFace *)arrayGetItem(hull->faceArray, + e->face2); + if (3 == f1->vertexNum && 3 == f2->vertexNum) { + if (e->score > 0) { + int firstEdgeVertex = findFace3FirstEdgeVertex((face3 *)f1, e); + int insertPos = firstEdgeVertex + 1; + + drawDebugPrintf("score:%d", e->score); + + memmove(&f1->u.q.indices[insertPos + 1], + &f1->u.q.indices[insertPos], (3 - insertPos) * sizeof(int)); + f1->u.q.indices[insertPos] = e->hill2; + f1->vertexNum = 4; + f2->vertexNum = 0; + } + } + } + } + + // After merge, face3 hashtable can not be used anymore. + hashtableDestroy(hull->face3Hashtable); + hull->face3Hashtable = 0; + + return 0; +} + +convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex) { + convexHullFace *face = (convexHullFace *)arrayGetItem(hull->faceArray, + faceIndex); + return face; } vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex) { - converHullVertex *vertex = (converHullVertex *)arrayGetItem( + convexHullVertex *vertex = (convexHullVertex *)arrayGetItem( hull->vertexArray, vertexIndex); return &vertex->pt; } -int convexHullGetFace3Num(convexHull *hull) { - return arrayGetLength(hull->face3Array); +int convexHullGetFaceNum(convexHull *hull) { + return arrayGetLength(hull->faceArray); } diff --git a/src/convexhull.h b/src/convexhull.h index 4d62e0c9..d1defca8 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -3,14 +3,23 @@ #include "3dstruct.h" typedef struct convexHull convexHull; +typedef struct { + union { + face4 q; + face3 t; + } u; + int vertexNum; +} convexHullFace; + convexHull *convexHullCreate(void); int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane); void convexHullDestroy(convexHull *hull); int convexHullGenerate(convexHull *hull); int convexHullUnifyNormals(convexHull *hull, vec3 *origin); -int convexHullGetFace3Num(convexHull *hull); -face3 *convexHullGetFace3(convexHull *hull, int faceIndex); +int convexHullMergeTriangles(convexHull *hull); +int convexHullGetFaceNum(convexHull *hull); +convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex); vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex); int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); From 7b5d29fcef72fcaf2971f10f877d81f5559b520c Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 11:44:18 +0930 Subject: [PATCH 26/61] Fix triangles merge. Fix vec3Angle. --- src/convexhull.c | 58 ++++++++++++++++++++++++++++++------------------ src/draw.cpp | 22 ++++++++++++++++++ src/draw.h | 1 + src/vector3d.c | 11 +++++---- 4 files changed, 65 insertions(+), 27 deletions(-) diff --git a/src/convexhull.c b/src/convexhull.c index f3c6089c..913a1335 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -486,17 +486,17 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { static int sortEdgeByScore(const void *first, const void *second) { edge *e1 = (edge *)first; edge *e2 = (edge *)second; - return e2->score - e1->score; + return e1->score - e2->score; } -static int findFace3FirstEdgeVertex(face3 *face, edge *e) { +static void rollTriangleIndices(face3 *face) { int i; + int oldIndices[] = {face->indices[0], + face->indices[1], + face->indices[2]}; for (i = 0; i < 3; ++i) { - if (face->indices[i] == e->p1 || face->indices[i] == e->p2) { - return i; - } + face->indices[(i + 1) % 3] = oldIndices[i]; } - return 0; } int convexHullMergeTriangles(convexHull *hull) { @@ -506,11 +506,12 @@ int convexHullMergeTriangles(convexHull *hull) { ++edgeIndex) { edge *e = (edge *)arrayGetItem(hull->edgeArray, edgeIndex); if (-1 != e->face1 && -1 != e->face2) { - face3 *f1 = (face3 *)arrayGetItem(hull->faceArray, e->face1); - face3 *f2 = (face3 *)arrayGetItem(hull->faceArray, e->face2); - float sumArea; + //face3 *f1 = (face3 *)arrayGetItem(hull->faceArray, e->face1); + //face3 *f2 = (face3 *)arrayGetItem(hull->faceArray, e->face2); vec3 f1normal; vec3 f2normal; + float angle; + /* convexHullVertex *f1p1 = (convexHullVertex *)arrayGetItem( hull->vertexArray, f1->indices[0]); convexHullVertex *f1p2 = (convexHullVertex *)arrayGetItem( @@ -523,11 +524,23 @@ int convexHullMergeTriangles(convexHull *hull) { hull->vertexArray, f2->indices[1]); convexHullVertex *f2p3 = (convexHullVertex *)arrayGetItem( hull->vertexArray, f2->indices[2]); - sumArea = vec3TriangleArea(&f1p1->pt, &f1p2->pt, &f1p3->pt) + - vec3TriangleArea(&f2p1->pt, &f2p2->pt, &f2p3->pt); vec3Normal(&f1p1->pt, &f1p2->pt, &f1p3->pt, &f1normal); vec3Normal(&f2p1->pt, &f2p2->pt, &f2p3->pt, &f2normal); - e->score = sumArea * vec3DotProduct(&f1normal, &f2normal) * 100; + */ + vec3 *v1 = (vec3 *)arrayGetItem(hull->vertexArray, e->p1); + vec3 *v2 = (vec3 *)arrayGetItem(hull->vertexArray, e->p2); + vec3 *vHill1 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill1); + vec3 *vHill2 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill2); + vec3Normal(v1, vHill1, v2, &f1normal); + vec3Normal(v2, vHill2, v1, &f2normal); + angle = (int)vec3Angle(&f1normal, &f2normal); + e->score = (int)angle; + //if (edgeIndex >= 12 && edgeIndex <= 12) { + // angle = (int)vec3Angle(&f1normal, &f2normal); + drawDebugPrintf("edgeIndex:%d angle:%f normal1:<%f,%f,%f> normal2:<%f,%f,%f>", + edgeIndex, angle, f1normal.x, f1normal.y, f1normal.z, + f2normal.x, f2normal.y, f2normal.z); + //} } } @@ -549,17 +562,20 @@ int convexHullMergeTriangles(convexHull *hull) { convexHullFace *f2 = (convexHullFace *)arrayGetItem(hull->faceArray, e->face2); if (3 == f1->vertexNum && 3 == f2->vertexNum) { - if (e->score > 0) { - int firstEdgeVertex = findFace3FirstEdgeVertex((face3 *)f1, e); - int insertPos = firstEdgeVertex + 1; - - drawDebugPrintf("score:%d", e->score); - - memmove(&f1->u.q.indices[insertPos + 1], - &f1->u.q.indices[insertPos], (3 - insertPos) * sizeof(int)); - f1->u.q.indices[insertPos] = e->hill2; + if (e->score <= 0) { + while (e->p1 == f1->u.t.indices[0] || e->p2 == f1->u.t.indices[0]) { + rollTriangleIndices((face3 *)f1); + } + f1->u.q.indices[3] = f1->u.q.indices[2]; + f1->u.q.indices[2] = e->hill2; f1->vertexNum = 4; f2->vertexNum = 0; + //if (edgeIndex >= 12 && edgeIndex <= 12) { + drawDebugPoint((vec3 *)arrayGetItem( + hull->vertexArray, e->p1), edgeIndex); + drawDebugPoint((vec3 *)arrayGetItem( + hull->vertexArray, e->p2), edgeIndex); + //} } } } diff --git a/src/draw.cpp b/src/draw.cpp index 85dce4d4..54399fb2 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -98,3 +98,25 @@ int drawPrintf(int x, int y, const char *fmt, ...) { return drawText(x, y, text); } +static const float drawDebugColors[][4] { + {1.00, 0.00, 1.00, 1.0}, + {0.00, 1.00, 1.00, 1.0}, + {1.00, 1.00, 0.00, 1.0}, + {1.00, 1.00, 1.00, 1.0}, + {0.00, 0.00, 0.00, 1.0}, + {1.00, 0.00, 1.00, 0.5}, + {0.00, 1.00, 1.00, 0.5}, + {1.00, 1.00, 0.00, 0.5}, + {1.00, 1.00, 1.00, 0.5}, + {0.00, 0.00, 0.00, 0.5}, +}; + +void drawDebugPoint(vec3 *origin, int colorIndex) { + float currentColor[4]; + glGetFloatv(GL_CURRENT_COLOR, currentColor); + glColor4fv(drawDebugColors[colorIndex % + (sizeof(drawDebugColors) / sizeof(drawDebugColors[0]))]); + drawSphere(origin, 0.05, 9, 6); + glColor4fv(currentColor); +} + diff --git a/src/draw.h b/src/draw.h index 450885fd..2300bc25 100644 --- a/src/draw.h +++ b/src/draw.h @@ -20,6 +20,7 @@ int drawGrid(float size, float step); int drawText(int x, int y, char *text); int drawPrintf(int x, int y, const char *fmt, ...); int drawDebugPrintf(const char *fmt, ...); +void drawDebugPoint(vec3 *origin, int colorIndex); #ifdef __cplusplus } diff --git a/src/vector3d.c b/src/vector3d.c index f784725a..44c0e76b 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -103,15 +103,14 @@ void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result) { float vec3Angle(vec3 *a, vec3 *b) { float angle; - vec3 p; - float distance; + float da, db; float acosParam; - vec3Sub(a, b, &p); - distance = vec3Length(&p); - if (0 == distance) { + da = vec3Length(a); + db = vec3Length(b); + if (0 == da || 0 == db) { return 0; } - acosParam = vec3DotProduct(a, b) / distance; + acosParam = vec3DotProduct(a, b) / (da * db); if (acosParam < -1) { acosParam = -1; } From b8607542b041b5be9d20e2cac0d1a26acc5a8389 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 12:51:07 +0930 Subject: [PATCH 27/61] Adjust inputs of shape ball for convex hull. --- README.md | 2 +- screenshot/dust3d_bmesh_joint_1.png | Bin 0 -> 267502 bytes screenshot/dust3d_bmesh_joint_2.png | Bin 0 -> 351365 bytes src/bmesh.c | 50 ++++++++++++++++++++++------ src/convexhull.c | 8 +++-- src/render.cpp | 2 +- 6 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 screenshot/dust3d_bmesh_joint_1.png create mode 100644 screenshot/dust3d_bmesh_joint_2.png diff --git a/README.md b/README.md index 22ea6ffd..2d60ad85 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ After finish the rotation at the two connected bones, I need implement 3D Convex *Stitching* I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. - + - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/screenshot/dust3d_bmesh_joint_1.png b/screenshot/dust3d_bmesh_joint_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a987fc0b2fdf013f358a518f8048e7260289ef35 GIT binary patch literal 267502 zcmeFYWn2{h-Y^UZqNGSEsYrKsN=qy#(%p@8gMfgvfOIU~-HkK|yTsBd-MQ@2aIgP! zuIoOxo|n(dXFs#d?94Cb+ew&;vMe?R2?i1p61KdY)O#c()LA4XG}I@L5qEGz%F~gM zut=;VB~|1lC10sHIhb47njs;{g(Ya9t9_6s&eVASa0`~^eDLo*wN1vtMrgsmSSxEYzBI(AnJljGR-}&MdH0O!()DN?|sxL;1k{UUhTkT~Bfb@lcD9Vz9f@lyzr%C}yNty+j785(l$v=2@U?kUb!k=b2l zoL=Lvbfy-gfts-x)mA^<9VhOIxXhSoBNBK+%$ntb4+e$_O{=%=ft!~raTzou8IqK| z)-CMx@8Y=1bX>Q}RGx+`#uE9x^FZxod}i>=F%SOShfj}yK*)Gy6buXId4z?e^26vV z_$`)A7^hT9_41q9M4Io{Z@szGlZeT<0zZ7I&5>Ely}B(ssfy(vhBSBOdXVzXhZ76R(0`l3=gC=Pri?rvY<7TG}(-p8-8EXp-X(eqFzVCwy2HtiU3?6=MnY zjjtjNQE7xPXiB-<*!d6}UszM<8rBFJ#&BxBj^(_c6_U_5jf^CX4r2d>d5eVq)ldPs zR{ZfV*K|k|FYIxktK&0y!^XUz4IwR=G$BK8w9x3tZ$7quiw@-jKXY;wV3` zdip*;_v(F&;tA@StuFq>kEIj#%kw}Gk$bicF0{ z0LP7t-6xa5dE|?(rPuz0`stP4QUIWamRKy35SAj9h5czUK#ifn8ih?huX; zlF4Z1Mf$#6;V7ldz4X&~gL5G1U)P&x5?alB!0m=-(?x=eFBHaObU5qyltSleOg@v5 zO9MSaqvDHDK5G*_nRW@zZ^4n>Aq%T5sBHwei+m>X9wEx z1X$VFtv~s^@xXfH+h!#9u<&Gkf=>_3fTa5_i}Nro+6?JOH67B}iZA44TgZY9HqwC5 z9F}%} zz9IH35^vC-KZMx7yn6C9`?ZVIqjBlT zXPCW2jxxf}{Hd|R-ad~trN&-;LuD#jL%<;Y^BZVTIq&fmp+HEw3@er1AbB3?uB84O zpbA!gPDv53b)>RXhN=TML6k&cu9YQ@_GhB((lLxWjHMXftiti(9c;D84smpj&qF3y zinz7C=^O^kC<@*0IbJtBW9s@@%~*zG6S8tmLfd~`9m9`TxURVPykhi~Fp5xS<^Ws#?x7&v=4%!f!%;;^TX^-A7uP zWeN>6=-=W8eVkr5r?>BfaZ)=kGV)`OePHuFqJ{K5TfNMQk!{;QloDcAWSi_c1&5gKsgUh-!~< zPk)bLk9?1mB+6V7nnN>wW?5>oT8E3_g2ohVh!)*V75pyvad0UH8{sBF6hS+o z1w9dcA`^vrTh44Hb)jk5MrrSR?IN{e7scJgi7ZaNIT?Ys0y>`gXQG=CKS$N%82cIT z8Oai;67(1?)Vy|HEPXywuz(~@xI;$Ay+4MP(3W(Sye!EtL01z}L!VTeJeXRW+$#E5 zLau?&#U8@(CONiG6U5)!G<3{zSpluexdK%){-Qs(Js}le;0C1hg}fT zDO1p|9VHWmp4wEXE zR&K{>f9;EZr+N4G&g%~SF~K8?AhjUaqUIpa7SH@ELd?nT z@j#2}sT>;=qrhR*`!6L=8<~p}mlLlN>l2sMu}axX-o_DD2JQR0NKByYWo?4B_ zjn5sc23L;`jWNtwML<|AK5olxCxD4{pRkIuM(Aqmina*0Y&BCj-3@~#SRi)5g<5&q z_@;O_z@FobyG8S{3$Zu5NSuh9$5#=UuvX^B%$PQ;Hhz8YwoI=yPYaLZ3%^~H!#C#w zd(h>XDffV52C)&gvC7`c9)muyY5&@X9;Ca^b)V-y2Z)FM@C+ynd?Jx8VH0GJW`kZE zWD|(~HvKKpmvrp>5SdVW9A5%+3R*0i%t&RNls5abyHB~F{5(uhzdni9BtCsLLCr~b z*2vJy5c`3#P&lk6ER}MKNGT@sWjouoUL;^-FWI}gpgL!En!m5f%8|$Mc>Qi|c&+a# zK0Xn(uJWYf1`RJwY}{HLoElph25d31KIRU!>Vw!T^QDMdT=%_9<*G3!0~Yhg^FTjw zz7`PmG&r+RM=cHKNq(MQLu2;&aCmvpuj_QJZ2R1Cso89?u=uFhtax-{5i*?*%l9rw zD!hRDc&2$)at3lXShS5s4lbq%q!R)^0+qnZV9|b!Rg1Gx@I(rag?iGDw<^rfwwtzW z2VXu5!MNC#CE{LXg=-)qUY z-;V0>Q+~QvOmklt!aO3@W^K_Ib{o2Sziu`#jD3i6DC_Tjd1o1FBHKe)$fT6PngP;_ zZ&B8TwRv5quGB+kf+`I<@ceT3%@05ejRi~3SGE@Y-01efrL9-)p+_tofF^@8@m+~4 z$@0*T{>gW$Y;FXU$MAi7e}cOmecaaVzV*ccpm#*(Smt-JDPL{q2wY3SK-^#(T0H7) z@I)UAM*L8GyPcR+z!r163DdX{?-oC1S}k3jVOp_lo4c95x7#<|_|@Y+cO0^uJvEXHr{}PGL zdDZGKj~2W1GXKdf9dm20JX)qM+za_x>x<9q9x`)})9`xLW)-4WIP{U~Ye{Y1#HCqV zFhxiQH@@f&U0vmyNBWkEd`U${K`}2Vd~3!>?T!BVgFuZpQ0nVRWM_|VV1?p@CYIkf ze`NP-TmQ4fvU5bR@br_MmNOC(5zX%}viy7M6C@;Lpp}}Yi>8vIpoxPWtC6XLu^Fp} z-6zCoBqU)ELByqUP|WQ(-FT!s4QJvJ_)k1xx2fwx^uBQI9af92nYzUv2(I< za(T$+@;|0({pVDE?*E+nACLY$RhaEJ2>$`nzwq_XT?E2JF@)Lv7x|(X+GMTe2zroN zNdeRlXO!Q>L7V~+f9U^pMqHyv2SjhIG9w|0BgsoisCghCWS}RL^_{}^l?%!6;-39P zp?>{r4mIsS3QX(wg8i#u;9%F|prM!XTraAg@`4R*p^Z^WRmh~Ik9faQf0v6B7toun zv~jbkY^by-uyBLhUmRt~*6Qhf)YF5eX)W35jpE?(K0`wO|BwIgF;HZO;#!{}T7w=C zj`zbm*Vq#81*$mGe;ir;PdBWE{qt~9Qt-v`UOVSKNe)D+=ph(mNBxgc|C*5{ha}xe zh4F-30x38uI%`>AySIK)V3a8uSZW5#w@5&bhOVZT*Xf8+n*o*pK7Cn2CwWChaSwa>?rT8&3u~&Xom{ukP z`4tk%pN9$$s)|c#>W5fXJOc9x$Ne2ueg|^j$LwNHJ|q2ks6``T*e96i#17I=s-fC! zNjPS5%7%abb4kP|DqN^4pGwa@1a~XJGGC>q?TPRWV*QCw1kD7)k;3iBrA3YP2^^_@ zxqN=Qo%<-u$tWR}!v%rb{f5hS6jP8R{uU%C#)ix|<@=`|JG2bV-zPBpT ziREFW&H(k3o!E5p)BhKMEKXDvQ)CU@M`pT@=&|xbH82mXUk~J2WN}e^c>nn1Pi79N z5YOTw^08h`MvN+Hy;m)h^Ltm4p;f<4*K0!q7$Ro*3kY$$XGIAps`cAihgTn`roK{z zKI|5$t4}3s@N8}P7py-0i(SX&o~oIg7Lhow?PqC2OG<1Af}eFlRPEABUIVQMyN(aK zF#lg5{sI2>shXrjF^SVyZwU)!hR(-9`Zy_Ii1j)|^~z@|%QGW%IWyU2fl}mbXWzHu5}@`&;((Qp9BmgBV2|^4ACSxX4BPb^Q*_ zWmn(CwB!n?Io-eOpC-2U2IX#l!TJliNGO}nEi0*1X|{_^Z7Dm*MLGe|gfI!!FGX)& zs#zbs>)VW|j;pTin6+V;DT^UL{gcZO>^}MabwOOSI-^_u+O@6%xj-Ypj}W%|6YXoX zAp9LjC#)&q>#nzi`^I92KsWARl*+n$>SFr3@VT=F6)iB~U0;;YIysMnu0CPC`xKRo zEV=tM)chseu%;@poi_+S;gRj%;Aa5Ey$QW)(&>gZeL`xZx4owj6z;e(JDMSkASZVm z(E_J@EGt`^B{s`nn}@1Nb~2IM@SMot{IOC3-B<#~n*_n>vNdzU(8^S1lPmpTa*jd= z`;;5kdK3w7N{2+K86H!_3nx7DmkP$TcBQXF^8|V*|AOgNx;PJkS#8Wb}=c@ zsI@39nokA2giRRuLi03qyhoF`J8N!*yd|@e};{#nrxylTlj^=7919NLN>xV z{=g67=PIgT2~vDt+h*@hQMD88&lCgW%Z5XNBnRb`OV_P6DQ|KeB4}RJ`11Njj)G8S zB(4n;A)l@2j>LbO>VK}S)5P;JcsKi%ggV*>c58ud_T)XX_LZJKPD3MwwM5+W`%OPH z=ngNr*C!%ZFT_w(d2xke)Zc)Q;t+Pe<~JJrL1{OTCL3_UgcCrtNs&DB_ZXC zFsA{9^rnXPt+3%YT;3MUjCC^{30#2rYWV>g*fu5;=!LIDqLBW8(@;Y6aVoyxUn(I0 zPN%XJAV%}|lPLZvXq1@jq%@&=Xe#aNvoqcz$ z!P&5%qbLYu3aP9R***h3_4}I~c2Dap9P<~OMo!bG-CF^O1neJl$>M!ts`pKvlx?WV`ed^< zjT+aNCy%_)q<83$Lsl2ZY)(iLId@_}MfsN6glSbLEZM1xCXB@-kHw;_R}SJf*=FU` z_u@|^?qDIf=F@v{oBROn=>-f1Ter!3-vNgunNoO{0Xip6eVybEAulm-5`;tQs^g=f zu!~dZ=_+Rb3|n!fZlwI$aB>mvzK5!F*W5#4QpFoSdwXEWn~O71{cU+ASO^M ze>Y4{x1Kv+Cm`Kt%coOL%)*%BKR+wqe|3F*d3AXbyt%%;p363ocdr#SBMr~PvCC_iH<*2wWBeS1?e=Dt4ClZ zfQ9UQRvfjiuX=y}3}xd7YQlq4%p=JquYW55%fDryBt|^3FOj?2XW;U(z7Q8E54?)I zoYM$(@bOM}_>C9n3A}X5Segc^j4w3wf^vn~r{-%HaU6iG`B&WK&*VJk9Y?FpI?sX( z-1WaGS&CW$s!408}LF}2lAqXjl46V}fdXJ^L=6owrN z^$)Ot>A+xOg>*o(Tl1^+wXeWB`8%_8``WMB>k^OuayX0ZQM3rO(RUT52SuJA=B%p?Rm0LDy^5T);Kt`}pMJIuHRZ4;-{( za_-Oei&j+2klU*Ax_zzP&b_?Jhb1{yO!LXkX#N*fF^}Mm;P||1pS$(joCDkSj0meJ za|1Itp}B$nH?5?CF(RJAr!Td>K&xwU9UP$>?b-(M*NxGUiHwANUejNuwHaj8s7ARt zdlTVFJ3QWLtp6fr zzukL06xZ*=^&9Gyy3I~qvXuVkD}|X}d*jZdA{Sa*GgP&e+}`nXJ>hajUR=~JSPLFZ z7Pg{qU9e887m7UX3|9PTjIY6mn;MwXN$)n2X$wY^`GNG_B&0E`84)(VAl}=}B!dpO zjlo!hlFHI!$i#&4a$mDyjE|0|9^)sJzt|7qtjQ_<@UgBeEyaXiUwc^()iVQy+>cfo z=B-O>lUQ`%)nSbz2k%WWnW%$z1v2UynyPKLSs4A6a}RA&IqY)3TQlO-x`c3gsY+*X zcAE=w?~_4#p)c{b@y&2+gLhw6%{DbnAD=@2D`z8IqiqfTo%ivnsi{T9)eHuj!{=(R zUi`(e2$xV?8%5XBW@lL(8ymaMbT@8y#=!q>PVBM^_ugoYg-3{Z&Le`6I(V-8-0{@s zphNVau(2q;4p^D)D!k&^ew!z^zPX63thJp)n>m_H4=l42q!8=PikXv9@^`+@y}Q0h ztMi(&CYTod^|tT(-v;5;FNM#Tb|PNztbBz;WgxfbMD}nJ8_=Zx%)Rzh@)-gd^ufEH zx-_cdQ2g*7KflfkRHu5o)dNL~i|be{JvCCTcJEW?>+l3zvKLE;%=* zd8$lzy)eZ1(SKusqSq+qGz(`pN1ex}&|g7?it|3DmJ@UlA%y91d%@bX{06O;@}$Io zTc3rp^(!#xF0uM#7}+FFe;M@M^U(o5Fx^OIu)eVi-?kA*kuV;qjp2sg4`M>6I z0_LfHG)DN{4h=js?wY4jIB*&m!uz}NnnZV6T@Er6I@nz;g{x&j#lBKF!+-;M#GW)6 zol%_xHuEn8he8~+2ncQQ-Z@=THg?x7jHni70<;$RNb9)*jlCjae=BfNoEq$uWu3nh5DGCo66 zX;$zA^X&yG7?HZ1)2^Oibb=ZskBk#$1cO_v(w;+1}-N z&cm@o70#Zf094;58EE`^hSBiU*&O64`o+rH)gI1leFb7G-lSxMe7pB8c6Z?V=nhp3 zwqH8qNJ|50u<}lX6AoM5$C;^hZmO$wUihi;c`5D*#AA)Hq)4!EQDkoc^s`>uaI36{ zZsE)wVXMtVRVP2-rGnng_tR=O_z;2~+QM4O>sh8^#3J{uV*s2=)+_Ewpe*!l(RZWF z9swlNJJRjf=h=_r4H{88&3h_`HX5C-oUE^XXb#)98eBF8C9T>!4&x2>9`%U-n*j#D zisxR5r(qrJDEfCZp{XGWEN;~J91bD8O%(n08 z3`%O;FjzmZ@`W|A3k)q9ar~TU4d*jMQxxDI7LMx;hep+e&gptl>OH4~ZxY(#n~$d7 z>Au?n8#P}gWKPsSJ%5-c)qn3t4&I6SGxb5Z_NOc~eo}%EkI`eZ7k6)GVXj@`-~*t2&&7WQ3Bt z-n!+%E;}D_lG;? zC6CRFbE~v3HxpfS8Sh$;tDeGE#oRO(;+h`{J}9?_g+!7YYn?42ONNZ42F>JP7y1P7 zF8D~2%$C|=ZHwne3gP~o`nrWXm3xslTzDuWvbk+jELph2!T~F|_R(bo zyzdrn(j)P2p%!mORSN*s2ZHVmU(Rg1Ok55c&6-FbhnL!kx}C0wnnphBQ9WAoU004ahj}6mcU1f^uRh#!`79=N^xs(1yS6N2) z*Oaz2!LM($KU)1n4=AA3=5!Ec5j{~US=b%EdhxQoVdRb+JKb9do6J1i->HU{X{h9$l6Gx&uQ*`bK7#sa?YZvj1_{Slloz;??kazFjNlH+b>C8&b`;uFbor5y*D zNxWZ~X$w%OB^mDoVfjP?mRv|gPP%V-dCPZ1%r#mz_Z-H5giN5! zN5?h0iH!iI+SNSHXc<r^>~w_1!k}Fe1$?NMuE=}G~hyO zu$Ze(XW_HJsn_*-9mU)Cde2O~;*>VHH0%9$je1XPPR2YM>4pR*s|JSWQ~t-#OGtT2 zK;O8-7vpe?u7DO}v*YbW6@^;O{iL0)`~yvm&k75}ZJR%qT5TO9OdewLB_ErTT10L- z9J2xC2Ra=e!$?HFd2xyth^=SfX)Iwp_&+Xj>LyA(oAH1u8&$rSoaAhnR}inM1(X zVy~g+kf@Fi>iV3QIqnrXoqTOFkI*aee6Y>Z)>2s;hF)dh?+5yTBCaMIc4|j=Ba}!X zefVH}hq~Vm`M0m1Sr5()9-g)A$K5RuaA>C{Le7)!6^WNGv%*D!?XSkKxZ5-aDok}a z_bFY@Q)W;-GhFZ5>tM+NjI#IFqnqdJwSX)-^YSO>+q&L-b^_pA%CZJ&+WyJ6SkQ$0 zttM6m0aiUjq5bO{5Sg9E5K9VQ5Jl_NdoS&B)J0hD@CZv({G{S)&Zy@TN^Av-SI^v8 z+(S%yIsT=%Ol1uZE~{I95cvpdj2{BpH{k+xVw&A z-}~ehRh>lVoBnVpW^L=al`Fid$S*kx<`c2=1=rl?WX4I^&>pT>(t6^}ZM{@oFlbUD zWYouVb2gcR<|NS-T&9Z&@^qlxWNn@l)|%{PF&Sp@1nz8Fal5UJ`NT#-RnSU}9YF~| z`93XEt|0RcJ9Qdc*IKQ<2IZG?DfO+xD}^TdLJ1*CBz9XRe4+NwV|CRkq|1Wm0^44s z5Zr5yUZsZeZeVo+3P%fWcss(T_dn?S1@Dd_Aa&tDX{myEkKAuH^aM#d2u z5Ra9iZpSo0Pc>_Cj2|A<#~IBL}TQNL|_6aWBKK?l2sc{btN zc%O5%jg(iHCi=-hR=j{DkFj%F5{8Snf2?wQO^)$O&%FBPWu@JmZ0^UNCd!A)xo4kw zIX6~|TP|Xag?+T`N8e>VRM>L+Y#kpH6@1c6OKy1OmTU<9e!*@4lzd~ciV-g?Y9&?F7t!U}19NCSmwB?60-^j%~ zGqRfq5zk)6_gjRl@ZB89%0|<(iFqrZBVxUl$H=W!&ZDlOQbgoLiVs{FpSsA=_|qVI zG3k;)t?pb8{^dEc(KkeQ)<$n!DeKUeyl3#hZ`Hq#7CLlFX#oB8sy`QwieE^ijpb`( zsJ5}dKy(#_n3Qo2+Y_0do@sAbbGR;2jRje_R|wSA>$pEiuDq^;|MIg-uVt)q{FRt! zcHUFlsnp3RyxaJ zM7nk>hl9?$4~Ny#X*PS<&iAam+cBLNN0C9Hkj)vsh{NR-eZaT~4b<1IJIb7NvZ{nFJLe}sVjX3H!K=Eq$ zL;*AGAYyB|2&LDO#6|&fDYR41P1fhx$cY0)l_B zonG>fCf9JZhNe)mS>S}L!LTA%#qs|7nF+ZAoXpd1-zHs8*!QkitPI4ctm#vjDYooB znK-p5>bU09eIS3{;Gov2OB#c#UIp@S=r{N&5a2qaFP}@~Co?(vCH~#FIx_yFnn~IB z%(gE#C(O7l#teUE=xy00SL%zKTz3FmeL)6g0>t2`2Q;VGVi|1P%xMG_ih^z&OpUf^ zAZ>H?P&=;_k3wsJ|2~SB`>)W+LWh;((a~Kzl7Pmh#rt>)OWM z^Yu|S;c_SEmL3A^(BzzK+YYALUjHtk(Xpp1?IJs8B|n;SXoO^{W1EcZoY#F?wyGQ; zoftT>>Hb`Y^}F-Z7fBTDaTPbx%PpI)w;=-Pwj{G88YB4;(flm*ZP>sz9N*imn?4S^ z;0~7|^2YIv*SAd4e(UKEE*H`+Gn6a%3AN-khpH~?#jQ!YxDa4RC~MQURbeM>2WSd z28W)6do+hrYAkq+xpMQ{Zq~o@-aB7V`zwX~=$tiGnPx8`11S;Kd(Yl%BhW*Ez?BQOhcag`KKvb|va8$#IEsax^yc zRRXTO25kl=_F`d^xw4}ZC}~<&8gc6K1B$fGVVZ*q7`CMvl{pm7Iy==-dj1)J6y^{_ z0nz0p!hWvnU`?PQUoCS1`He*37kT8a@ccUH7Cy9*ne`?z^XinvWrcF(2{?@4tHwEOrjCbhzha0oVA~PH$(Z9?boPEt+&~41$~tQ&Z({^9-9P2l+PacejQL&ZBL7I6KhKnS?~OmW`yc3y3!E&cwYk#1*V z!B2l=zgx#&jEB>zjU3{?L1Z|O{)sqI>y?Ka zKu0zPEUmY*6lMPeJ+rT2Zfn)t=3lNho4Rg4iqWH_?5nU!TM2kb1r&MoN=$DBN60FH zxc7TvzS^@@ihuWpi$lL~IJe61fk!vG8oxRTzBjCeVwCL#JFohy2SlZ&S@qv26x)Xm zBse=c&S>D|-0$OL+rzLQ#|}jy9Bi#PZTW#qDZ<&v^5*=o#5O*lUuPd6o-P;L*ZQZ4gO6fb+VA%ev73aX86B^0B;7`v&}d z!^3p|5OTX{O;WweTDRS>PY6MH)-=#>LHmInWd%$maA?mnwn|)^qSmbkH=-qZC#qY?!j}- zyyYN!8^v=i(_$=tWik0k_+HbipbA3;Ly&Wj^$EGpG|!gX^h9#h@YV#OY=+F$8SS{h zmc(_PCc)UXuBroNcGMW zlm)n~t~dlf|78hN2lH;T;&{R?IKdVFLO6j{%t?sjad`*M`NiI@O`1l^lCgc`VX+?$ z)bkqlv2d*C;ad2sGa_sr1LKFFIx&nIxm@XqWrYP{0=U^m?)OF=@`f>2#@&A+0&AQt zp+{y4UM$1>|3oba?8kp*s5-Qb)~z%g_D2G*k8#?#h$%MQ9du9(@GjeCEV*ByJ|Z`f zW-Dh(oXvxs;;mHiM!YbpmV_0Yj~(d{IbZjG{U=Ol03UJ5=@cTgqi;P(cFRfigkbz) z+4J}%PNG|>&~8&W(X3PBQU-7RZPPYRiDf`k16$?i`h`xM3d?{)_q5i|hXUcE7uYDT z5Pd&8-OA%_**@tAqc#GdHdQD%l9}0({g=0A8?H&geyp_NBbbRDA zhbwr*Ja4wmV)gmT$+w*b@sDkEstcjCJF`?t(Rg+qLVb&So~ol1D(h4Jk<96FQm*8E??dS`E6(5~L$E^l!RwU)+2j-TI zvGP8>dY1EEM9+w%1V_ntNt;#M7kcgwQQXsIy3Tgxenw~w6HU)euDLG8(Hb8_clHRa zjb{J{w(a)XJIA>C5`4l}lDOE>SGrd32z(- zz3ScdJ(R!eU74C6SUnq3EQ}CHL5q6weaff9G3U11mbENewVyc7#N?$BW#gA?>U;RarH#|(W5Vx zsUA}@#**W#y%QUC6yE*lpX4O}Z?ZWA9M--Z9Y5V(B*&bh%T4dg#L z8PXYN6|$8iRm_y?3B}MkCS>|#VlrN_G)0}^ zIFsfx*3e`GIe6X;&C!jq1+onSY6IHo>|lFS+^3jA5uIMTu zv2+ISbLur>!c>XB92m!3ep+ZUrOj|V*XnYg9CBY^;hyAN+8<9FcWL*mfiU}FMR2PaZ)!Y;;%-@be*djn4LlB}M zjjv^gUAI@uw*&8HDe{7)Z#Az^PS72^`%DO3$#d|(>CR%e;&R`lUjLuoug^+`?P2@A zb2~ojRlD7)$s?;hw%QIi&DZiSMu@@=C{w7??q+X)#?7>twv<0#m0U!x*D;yvqnSVw zpo|_!&6`wN9YL}b8E|Z?CB5qe5b=U8dc?S?($b0s3&a_oz_gm0KE-a+cuUL4$mi}ECJ0P+R zmJY=TenrJV<><2<2kr_^bm|Byf4B}E(@Q!qIHMl(q4lf07CO6huuWQa9pMK z0VSfZ7Jxqm_+WthkPwj@x;+tF%lq<|J{rl*@bk?=GZC${H=G#v%J@)+zC!2@guLS| zi}z8vEOp|(#ohN1)++%Rsrfx3DRbgpMR*pgmTz#I$$zC!2(J7mti;5{*Sy|+n>zD= zWc|`v<#$k-8{_{jrtBIU+uUy}=C--py%$ZuG4QtXTcwEXH}h|A=u#S|9sLS?u2WXs zHAmZb(|U%7M>ButZv!eM#EA(Jd{y0fkHe@%zJX5%4%Mjfk^f&pD>f`QL)?%lTlL}v*)<|X@PQ1#rR=V2Gkilm0{FU{=W zO#c&a7f8GVu?Vi%F?!u7QEs>|o{I#%Z6D#yUd~vHfk;>dzaQP&F=jl9&V|Gq%e1KJ zgetJx(Cx?bC@Z>&yzUQjI+%u2I)-UYeZ*GfqDKkw$Vr=+R%73nc8f$hpZWNwZ&?wK zqQ3hMnAle|{>_JoeDqE#s$#$))7D_Ec2|K|*!3Wm-p$pyo@m)RC^}(g%OKa*>h}Ca z(t!}rrmV5zqnsd^6W`o<*G@041CAY^QaGD8)xzG~6nJ>J>yY%(ur!S; zt;N8LBTC!7Y^e7Oi+a!qtdLEDMW~iBZ}j6EC~BawhVIeRxMmId>obtiwZVHMH_~gdr+P1~!3|6On>}dP17L2eb zv%%yuJx^W4@1zf;@OKg^_1^Y)pZ4fzQ#w6^Zzvw(8+ce}Ck!W!g>tPF$oic;x(2Kc zpC3B5&^vC`Urg|>Ki+dGHrq75wp^xyx<`4D@Vl@;T@>BBzF<-sm4eU7-m5UDNV%SK z)Xc+{EPl4r?>WLbh%$t~cs|@c%DBAqW*IdCALB#%GOLcU*2S+IWEgsP(O(?!!!QIr zlb%kek1ts>SDmuth_&vRdfk@O(0V%CiP=^he$$E9lP&a2)G>6{8?F$@{#WsSrv;T( zIh7ub7f5J({h?rR0z+!)BGxk<4&80_(Hux4XQ~8s%FOkS4#@iC&X=u8fmE4~qy)`O zH=N!Q>FA~-YT2OtMpyakd5vM8+leIg{ch8Rq?;~`hFu4xhc~#47B)@W$|M}?zIz?! zMhTkLB&HQzO~dSiW#9C(H7A=4U;Fa=ky{JGzc@`WM%#Jp3zDclFv7?d#elfmy#ho| zm=pC-ZU!`I=IHKS`PajPrJ`JvN7}sk1+YMXT-`yAI8x|C+xYJ;UvVlFHzPXhO||vsP^qC@9Uy&kl&9Bv zN^l{cQ#zu;;+D-{EwFStD8QZP-596qg51qY#ly#Y<{vRx?tNj%^NnKAVA;R+>g=94 zkV?l!HOANF)MoF(AzP1^tRi%xZ5NP6m${6;gClTED`*&jN8`53jVN4gle<0!abkd# zoX4Dd31^pmwqCcK!09lI6gu4%x18$b!9g~{`{x|bl(Mbp?Bw`X68-s+iA5aRFG*=i z*UqmDA9N^0SF}{TdW191*SaC{n{chWcH8!W1MAFZ*X3*YZ(aSG`#;vD0?IrC-2kp4 zY9;|uP`}OXnX!*CcW?N=n6R~Gbchb!j)SYqwd)zjrZ09>+Y&UO%#A;`S`x{v#L@oA z_KgKURn+#M&;YFtlp8{Te(R=o7BwxDvq8>0F>Rfy?l>|vP+KN4IA9;l9 zfmxy+@a*30Ney!z<5U@rN92qy(nn%2U898=yVc1t4c)f(**McZQ?j(x5R ztXz&Up+N#M&A({pUGeosth19S?vV8^B8VTgBFeic)4d{q{Nb3z3Tg*L?wI1OVWyiv zRi=L%!X}}!O-$BS;%>0uHh%*P80Ly6CQY#20pId1Kj@KIiB!iq`@^$Kcc*{t#!5*x zWW3`8Uc-!6rMBItVHc2TlMzbCvU0~cAFsWE#_^bkOPTTK>ZS~W^j*ioMaYSR11EW& zDpL1h8B!lQ9l|9^u{ax{nNqmK6cn#<^S))byy|Un?er4X^I6m=D!fhSZ5g$=i%=GW z{`@tqb??2jd9kd7j}B)SYgJFVQf2@*&V(h6;Ryi}$0Qb-MhHw};sOr{TJ~cxEk9)s zs+XfR&^SNH%L3h8SNRubhFv~LwP&eFEsgr%E*ULs_{)w7_kexB0~YIbQHaU^T?qsj zPHY$lunb}F-n%gC(3nP-ueWSrK*JCfaMMg`Kd;C{y(=4U+8UqUQEE-aZ%*51FDd_R z6Vz4)3Vhd0la{6(#X18ILAwvcJxjy74~qs?gO&cuccH0NIwu6YTxFW3>(Ah@qW5tI z^J%G;Lv2^w{*=%q^M&Ibp32G(O9KGNnCHcW_&sZbeee{1dfdi~#7xEtRc9`iwPSr! z!33wC&Lg4vq!kC^Tgs)DOJovm7p0&|@6V-qgG5AqhTqq;|6PSurual~SiLpVEhCQm zTRf^!U5rAD&UX{q1TA2JfSq8m`^06o#T*9Y(Pp^)yi>YXRA~dEKoMA=cdw#ayAWFl zv0qTkD+s29;NvcfkD@j%Z-QEW6lh3RyAF$VN{1eHU}GOG#1r`m2T`;il6Y00oIGm1 z%y%%@pmawEx=`71xD{Q!Wd9k-2l#BSC38XU&n%)h;{Sr&A1+_F8M0nfc!gKJ14%iD zdRMRv9kw!#{;9=pUY~}k zA44)-Y0}eDC@ZW5Mh-AoHhNe6gnv810J5ub$Nx#s1o~zq=m{JP!>p9JU1>l`q*L=% z>v@F`=n?Lj|0_rzMM~~PGWm`W-J#MWuW3m7gNW?R(wzdw_(^5D9A8G2vtw}fR=09| zmf=5qoBEW5hJOEzHOcl6X*)FqK-2)z2cbvZcI`9K`?t6^h?NmyYd^h=xM4t@6{v| z%f56X!U}D$udw@1Lkk9)uZ>y|9ZOM%ZFA1s_4k#V(HE)mALZL_haDN+S%IfUqW>g| z|A+JP*TqiJ(Ha`>FQy@z=>#GT3l6}%*Zx;xdz~Q+#xQVYFUG<9-U%?Xf>9KgZgpIu zPsg{d<8vPCWfQ;xSG-^2Tnyx!v{)|kmil;$zBx@=n{-~i1)fs@s9aYm0#u$2MfVFz zm8G=wHlKJnrHg^QVe%tC*=IngEQxFoM-aiZhuuaAN@tJPv1DlF$CO(#hTn>LO#bO7 ziEP+3_%dh%WyFk_Ox9$2XRg0F-wN;U*I4m)gWTzU-JB|ip7hgOz;1fl|KaOPz@cv6 z{ohvYDwQNg8i^KMsMuCk>-Y^& zbhQ9Q*Y_BvEjua(a%yew-R39dk=TIzAgP9`gQeCt&nv2{N2UfV&XQ>;;8gf#8_EQ0rp&%WK2PCz{}i`B8|s5K_gdlF8X{+@5@boqk&chMuel#A zIaKTYv)>Y(^V#a{-QkxQq!!JJRn%Q}IHI^Rx%foov$3BI_bynZ-jTQ}I#C8ouxXx^ z`B?2i@1ylrs1_y|Rq7|3R-G|FS>Zk(sq?oHTM}9mD4mfJ8d~7^JmSc|a^(BRZ4ov* zPi|9LzqWmBS;ppdR-Zq{aJc;VR4xKOn8R3lAmJI@Q7bJtmTfef!FL~Y-WQ@jfqx@) zP*`8_-3TtUIg)+4YZzZ$=&1dU>s3-XN_D1JVS~b=g+C;lx0(u~u!)xLoZF2Jo2Iz; z^yR^GCX;d&79U)??2>96E|t%DzAzIjw4$Uen+g^|AAp$PVehNpS;bDN?>QdYQ<#jt zsQ9iFwtTPBYI3hqsHlX354&}nQI95Q{n_l(mCW_0u+%A;pl^edy?g7=JcTXv-1D7# z=GmR*=2TOnz}#{J$jk~$l4^J&!M}Supc~;5H}9W~U=2M{x$hk4@Z*Ey%E{o_$bim> zrh5?fvpNF&x@c;^q4uEJnD3_gc!`x5y;U$yVo{`YcBWW}kwqKl4cy8A&xiCbmXXO7 z*_)i266*48IEwtKA40v~PM%~dAs5|k7R5CAYv`GEnKY4mx*D!gqcfBC`_la)m(Xq9 z2GGN0z1>5AJadY}DX8h*2OE*Qe~Ik67{}|l?k3mHz@lw*%>)y$urB=GH*bN=k(o$m ztUmCbwfXYm3yp`go!4&yFK-X_aPwooX35(BmT;_R7W?4$|BmR-ANQPH}`Sp#f*^Afp>|N6em<^jI z0F$EHo!tLBSHJqgrrd^RtQ7UmX`ch;7MKo4AGVA2o0PB3_}ZD{OG!L8lRDDOC40g53Uqd~M));5e0Cx~amrLr31(Gi*W{g48F-GWG8}#^U^LbH zln(BTV?nO+cxyjmf%N=H?ak{#0XcX?+l#1;v_N^mCV4V^7eCsd49-5E#7e~daBg@1 z;5E7F4RKn7Jh5+@e^_~@IH>-evuNGTQ6W~g4MM-Tdy<_0$jzuBC;af z|7g`-2_;_?^J{0Z*ZT(>RfS>u&J+bxl`QZjUA+0MwCan?N&-Pr-`BL^*|$@I+CBpZ zWOxErW^Zqe5o03%mGKGh_GpKv+kE`Za7j+($lygt(&oj;nj~$mz0He zDhy`rW;$wmKCp*deuuN86xz(@g7sO`#zwef8_0+0_M&yQ-d&T_(t{ zb%UIhoRQA=y|rUoT?ZeExQc127kbjj)mh3PhQFA77>-qa9-sX7fI$>f>_WoZ0L0Tf zK7!WX%MW*dTM-}cNTlY3csA_`_G*<~ZZ1)sX?%>F>rUn(@M2$PNPMZq z>E3mIMo)Z7*5Ab%Y3Ea(x7*_YpFtP2qc%l3JpK;|zVeQE@Jd)dF)jGG+V3Pt8L6Tl z+TshY`>vZ7d7ZfV;woPLP7xw*`b%i}SUirD+?LEJpU>$ds(H*`DwEM__4!tm!cPY>}eMf0iBU zzw;WjQlI|-2(nf^!cYGCO+`0Mcvj}!E_g|JbX>gMZ7Xpq-K_^%0cV{70Tqm_xash} zPAGmoa>QsD;b>NXx4+KMv=y1X{q#iC07UUis8ui~M%b8Me%!GKsc`8Q&0Yj#MpQTd zysBY%@OR4RuY%LEghIW*70<$MlL))7UkzO9eoVQE6#cv8uXpRFJGR5^r!6`F)m-i1 zphu$C8^hs@Nj34|pg7!89WPf;bSjs?<_y@+AqRLBuyp((&x3oHd=*qHNNZ<7zxJTy z)tRTGO4^pRVcKE%)v)t+EW@y9ztWgB=#oyi9sXrL_Z9)3txuR_(4<*F8?PuKC zXDQ7OvEGg$msvq^$A1kgvwGI@AZXFA9O6^etTmhYPGsgy_k9oe1}6fhE)#AMkg$K#{Lhf|6#|Zi@K!6XEuwAhGp)*>p{Hx#qMEpd=rd* zf2y4v&r(=HcMldfkv&#;7412&g+SVIlM%0D#Jln0!_J`zXgyF)>3lWz#t~SJV@idB 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 z z_GocAm!|AcE(-{mPgJ}LNuzWY0XqcnlX7@+o*N^ zbPl2F^=>jF+a~;sK&7_(u3nUOto!_~Xgg0#A-?{;4b62ui~|L}a{eF}!QcOjJat6> zeKPj@lr+s5cyUK#_nXILT?_r&Wl>UPI~h??a%)54;_gd484g(n*hp9DPm8+L9Af$Z zjD_3}7DxFesyI%G7ByIaU-c)awMGiM@c1mr(SBnV&l<))=__f~!<;Xbz3GcWjmlU$ zDMoRuB0P{M_Kcf6?UuOe#4yD|_L{;O06^m;jWzB+0O&F3<{#3xBmduv9c`wck7O68 z!2A9y_4jVv&}*!8uKQSQyI>!@jfvd>mQ2#Ln+KS5O&3ZxM?Xl3B@Jl}g&@Zs6!D;a zYD#^x44Y5!&OBr2N!n_-yfd}9dwccs&Il&xi-mYhK5aG{KxcWjr_x8-pEaF$QjYhV zidi_8?(NK;=+c9Ba5>N-!@F$^-Ewq07!nnCAFgU{rrYb;DuE>dUrE@5h3nBE30A9~ zN$i$x%f6*W+OO!ave_>)b0&ZNd^S#$A%09iX^I~EkX6oQp|ONeHhN* zY4)0#Uwh8 zpn57C_U%kRc+;_v=@*f>#)2(mtGIaCq#{Kfad_8hYHw-WduO9%7*FRGUXYwAxVX;2 z{z{S0=z;sjz|OYAINyuMa)C=8(HZiPof4H7$h<3t9+Z1^E@w@P@}1fs5b4)(%`@PH zfqp_5Nb1@5=pI%<1ACFfj14Ab>Q=eECI(< zJ%kT^nEU~UOt5oM1!g=WjDJnQ_ytA3>rxYM4u{o+5$Rie#d3UYd4sys4px|&(^}mm z=8ORPgR=Z8uv7S9UWmeC#6iF@`-{BTr&_ZUQ#Z?`<~6FM1$PH2P&yW_2Q0GYXFV_| z_tb*b*nK2?wQNtZx!Iad@6_>pA3>j2bC9Y{|0>6^=>E*9*cS(VRWi2E6kA+{2PdzP z(Oh)Mx#Yv#y2~yCKl^pmS@1er-mZ-0M+F{zdIpfv+VNU<6vsUq65nBPu3F*O2f!p@ z4Jyvj=HsbZU+5 zkLzxT1)i*-q)`dYFVvfc%EVmQ*L~D;?z;)^WzG zKWI~RtQjFjbq6bYd6DXs17N@)aOV%pUWeU(s=(fH;|xO)umlRVkI1F^jQ?GythR(7TuTCx2~ zO9*A}6ID8)3>dkXGz-fZ87|Wwz$vAS?-lP@51I<>x9mjH$?iN(Qo1-p9k56b6;@Bh zhBZdSwUQet3>ggd&0MxkRl&8On9s~Zl)7wx&?T-Exb{#gH7&E5vIcqO$|JDP8Z~OR zIq!WjPYz$x$uCtI6u z#D*GUW~4l^vmQL(V6|tqd9sqJN?mqwpkSAb!ZG{Oy^AAs92Y`?mJm*ZdgtSqHUf)J zVuQ6Jl~yY@N)b!d0UT$tM1J}#zs~$cB`oi1v&O#-ZmCFYU68kmT7Q0uS-DqT+J~U< zYMPhO`Zau*<8Ip?#k3ku%T#WvFP{!~`oyosL(gA$4|slh*Kg0C?s%O(-taFpI^g>O zn8Hv`J%LAQ)V*iKEpVS02GER*fSAWx63)kmvtlBYWT%}=75X;tiMqqmxk0T@T@Q)g zYMR}MQZIAJ*lL1p+)1=SV5!am69o;#d9$-r`ty|5?%T&wkxOi?w>X@z%}dNbO10A# zo9qm-a2j~^vV>k@QDI>9BE6eQ(WeGI46`n$7yi_v~ z1oChi6A1wbZHt&l8GB(gzFwN2=7Y(Fv+!+Ony{A%>I2v#>KV4JA-Dv=$Y%{uSC zDP^01G;+4CW6j_DG4D{fXv1P#mg{jA1$BN%LBjJY3R9SyF_OF(jSW!|=WrcDXk*^$ zL&mt`-(6y2ewV<}h>-VJdcrU5BQcoWcUeGHn$cV$0oykEJ*PR?Hmm!m*_AdQS4GM` z=5V~D*LZa81u5C4P5^O~mTD>adWhW)W4Jw>rYmd_=Efz%P?_OTc=#`~bKz*8c zF}mAPF>rnV^_EaUEtuF3Z{4!0obH!=_;3n3CC<#V<6t#Ota*6Darn;E;`MUTLVDZ# za(8=KA|6Sp?8sz_y{p2E2+h@=a;p%+MrR-rm-{~sc3{5e2cYIwxDRXNv8zCBJn`(X zHlAWezoDr7@A@J~kF>b>%hXrDDp?+&QXYIL_eA%IY)Mm zd>8I1;hJ|wL-TqQ^KfCyUF`q|M6dhpU`?P*`u)xs-1B|Ysh8ScA`kxo8w5!l`SD0& zokcS3+X}{vgUpG$bi$3e=K@Zy^go@GAhi#tBEXWFY6}O+c9(;uxR$?$EPK1cLS~a) zRiP4~)~DhZb6$X8#XcoCzYWYUS+CuEl@T%MhHUg~VUJwmcG6Qlnem=!+qu5XJFS=sGMYDblOi@~hBNRlPJI%0mt zyz#k_V{=LPMD)k;@20YMUKS2N44qxcp#qaP2PRO$?9rUH^n1ss?<@i9L6^&7G;I5o z15Jd3GMAwebmbfGTF)bE31G{99EFW^P?ar&SFB33DEou$+qIKW-VA3Isc%Gz+)HAL zX1+<(I@5=`o%^pzE!>quj{Sd8I5<=FoMthP_V%xV*jyD*BuGd+;J=HO7T{eaBbctE z-OJ;eT9w8s-S62pwey7kIEZQW^u9(*?cud-eIwJPRrbpao;fPnQE>}t;riB`40x{# z2=*>eS48Iq;iP{Fg=KWdygfTv91ZHjV4*z}jzVSAES%cxMD%SxKg>7sqT{ z)(d`WtFe3oW%SLFW~w3^KI&&_Pk@(~w;A=y=|7$5=C;ckvZ)vzZaSx%_r=Sft=eZf zYwVLybG^y+KFb#NYk`l04s2*;#ooKJD@AP#i?4b1JC5`|63khVbso=)->M8XMt%z5 zGSADCEg0_^%MIgqJ6pj))9kkdK1`N0JXqlI9!DdIX)`a}>U_bdtakGvJ7uD;o%^m~AB=u8jObyGQVUFtm1uhM`&b1M( zn5l=)8048xJ59iAaj0f@u1sb1Q+sd`-sLZj==#C%jp%5B>PE?ws0 zn#_spaPOxXTsK~v<1Bw;`Tia&ROY4gg+hz=8}yr?Rh9T(rxAQRGE@g~2XSfPZ+`8W zL_9%MYb-3sTqeB33Drc%=e}whxMg|WQ%s|a0+SWEl@LGO^EmBLlKt0N zhppia>$?j^gyvdL^rZ}e3~Ug(bw9@)=epf%5=D35?>=*ycD~#lkLS#0UGK#BcCj1xF^Ugaig9@_l#&-v%)G&F2c+G|(+X zYglD1J{VGY%<#K^hOn8gDk>xeE!j99LZqMo03to<{tb};X#DRyC!0R6>5niz1#xEy z&(BbD^W=oSZ!(;6`b)eVz-9I9-aLgHI>E3+B3T9br>H*1p2ZJza&n0qWCW3o$|k5L zqttd<;&Oofid%2=g6NcjHXzbg`jqw7)tWFjSb+wI4bykcIR9Hv7 zpw`gJ-m3L|`@_0R8s?ul+A#m0tdD+G(R?N58k}NS3YV%2!3nIBQ`V*>-kZ*jNhVkX zR7KS9KPP+2#;%QF1g)OsAhS>c!J^@QvylW4O!l04LCp2-ym4tXe(qFpFO+ZNd~CF= zhsLP9B7az}sTE7)vGp8aUa&vA43SUT?1L<~Xk>6vbDR|_q%Ik}-P=fF2T zaQQQ$Tk9u#bTMM6QzqBJbxrI0cSZk6+-OKpzkRc=q4Nuy$M?@?ReR=QvTy`0F5`r) z%_(ZZe#;p5{oRwv{3fNLax9UHImvd1upwWHL`K~|I&7FQs;Itr@Um*8DArCoFCgu> zhCghSp`eFrbs6F`dInC`fzaG-X7U^f9#N<^3)(yrTLOEgs#7Scje@cc;rD#k(=9K_ z*IVdc~!AkGL2&Kvd5<~ufoO|PD}?nn{G0f74R(0rNHJ(Be96paIKV~Fmv%$ zgwyWDVe0BrNYi9R2W)qtc4Z8q9@fXQ*&Fzj9Se&=Kw48?;_(&eTuOeJO?G13yurWmm6&!jD1O$w4s^SmFH~)+L>K~8U$+l@f73K7d zz~Cv{%AXX%aWj8s)W3#@=)_o*E)Lb>m}v$-_j4NU->;j>b#a9SOb73UAnO);F<{NK#9hueaxCWS+pZ3W zMkjv<7`@`pl=y$nFItQOrg5{{uk9{Vu*!w4%g+Gqw)qG{vCv>q3==gA2#K6>NuR#* zj>k<&;9O$L-Y$2&trfL@Bv)-ncQIDySurMULj~gNwPo^wCV_GHnYJ<;q_HeE?lHkE zkbBe*KC;eRDsn^aiG;)$A)x>j^p$N`euxN_p*wW(W7kN?SoP>G-oR&9;TQF8TnJP) z{eZ4T1%(8?{^0|>6ai_Y)!BLBvYqL3k8x)$#^FGjo~PE-e;#D72uXvko!{3=2;kD; zNk{uEUlwnn?T2hIV;QR%s5)lD8XrjCC+zV-B^9N!M9lp+zAne;Bpo}I8-GGUpOvsk zHYK?nY;u?#Z8U-G_&Ve0nD`!}K;>=diat3`zmZa$0|Zx=b_z;Jf>XkNl|?IWzEyEC zj$rRY`LsT@8bPkjNnK3fpVLyh7mYj*T^Ov@shu*7Tf!O6lt2FI7&9(f-2v_7NPx_P zgw~nI?;A)WNUhXlMo^-MnES2QlCdcMdU6b{&D9ElhgHo&vB5%Dj@n0krU|9KXv9m7 z8=JnltS|9=VGT^j2MDtwzgiA|^p+7A9=CsTFJZ6B1iI7yV!gfLGt@TjOOo2f40o0C zWk$Tt69jlWzsd=BM!;_HDVzaFZj9^{Zrw}SpSksbx zQxk{ZCCEmHWaOM98aXN}-tNtr)$8Qsv27PA^>0N1o?Y9K{EA(*i$Bc<=24ED>63Ih zb_rX=zo?~Dp#QT*_vh~Sv3%NU^9IDP=k~GN(&*Yx1Z<4_Ofoe5hIM_!Hd5+>x7j$< z@O?2D1c?&63Vr17iJ?PIsXxh3URG4VI@#lk4doDrXcZPK)l{pbmIRqR}Mc&@rLV7^nh z&}GjJ$97KYH)6%b6X%o=yS}X}gRzqVWPP&h$?m=V#aklHin1#e6QiRe(mX5AbEN;s zAv;K{mHSb{%W z;0Lllm-uPFL9zO=@W&jnzs~J!|8y71?M!JLhwffE`JT-(&q{{fP5g;|6s2WjjY7$QTrt0xo}z;m{dB9i0A zSY#LB#X=)DoQM>?<)#9>S?PYF*`cuE%{iblQvNtnW#nMjCs3>cAEWG&E}dXFja>UN zLV3ca+2?!oEp~Dv0vdPn`5DC)%RjgLrWyA-KtOf9v?f= zQ;St(GmR1#;2Sv1e>x9(GJr}Sz3i{7|NJBQ(A^`E+UBJ{51 zs8q-)MxKRVdP)EXo2M}A*=#b0th99@D7yoA@r>J{*z0UbkY>=HJs{pqM|EfB)pk{& zMZbo)KdABLTv9@((B3LHspsA z;=}Otr2fZddj=4|F=mYS9@clTD5<{7AE~~}ohiS6HqJr+F_Bfk2PI}Z#G82)>R*33 zC{5+u_&3Md?#l$#M;#oZL`@2@cO7_?OxU(#nri^BtGJ`oWJv>uXtW%DNtA=Nrq>SY z@8Bt1tkTSp(l1ht#8sdnbm`DmXKQoCPXWB<5q&1z1wWB77qZHQ?wtYVJF95=-$oB4 zs|Jj&Z+1B9{9pLeBC4Kzjox#aS9fT6SVaYTjAfGIP-LkOj|JoufAbDb1gA zfe4T#MmRYrwN8S4;siuHc@9p`)O+?+#=_Cgm@ixb8|!z`bGG`J;{}b0iLjNzXqj@^ z@x>MVeg8~1p-;BsGJ(@#>2^ElZwIRKrqdTB+tg+XUd#S|It>*dal3EwM_2PdJ^gsk zNivHI8Xio(uiuEo_1cjg`4x(q-c1(YaLtI_g zyqOlnTIJl`-gXAJS{AbZGfE{bVB2VsN`2;$N`0A<$Kyep4ZEBH-a1S;9rO7BM@vRb zH=g_ju7l~C<k9iY53EQu4OdnJJ<#3|4k^rZ=5j*;2WOsPZ5-(HfNd)C@h>8KQ- z1RgqH-pURYS{Drr}=}@d?Ei= zLA3(WkgUfwa(T*mWh-QRQtJuv>Lw3V$?#SKF4DVJw|crJ-TSUzr7m+ zHOG637Aa1iFys?Wrk~5{EOKBa4uCjo?H>L&Q?4lq_z|_{k89J8u6R&;^wyJl+UB6i}~{ z*4Gk_MDA`qrm%=U!$zYKf;=r-K4vs?uw4&VzQ?f+^lrO(xVt|7?wxEQKV%k9urb66 zIZL=b&U$K6?Ancwc&8i{4$Z;2Gb4shiKewq-U!SZLxwF!eO+vMIms37zd0=L`iK@~ z?bqF~s!_(Q<>r$TZNd7WaXM+k}mJajgHHkYMz;B_`c4K z>V^!)022iN;YewJM!jT57iT)otKh_ZJr~zW)KJfko*7N=lMmYv>_QC-I}N%sOunzC zW-BFuHdi$8x7F{jl17$~k2a1OI#cdbG2n@wEjbk>mEyqY)9CDm(V$e^`dU6q(Ik`t7(w2`Z`)q3dM1|;V$IGS_6A`??~a1Hkv zOtD$@a>t!e1Zi{-MAY7Ij*72CjgOf>EdzO&%&j}^r&BTOHD3OLQO)zV3XG0wpqzqk z+MJ?Qa!r!V2v?mT5Au`Hzqa!Yo7Xf6g;yMahYuuZ!%&!y9Rd?S8rd7Z$xXgjPe*BR zd>i!5K+w5WWZ)DPGP?75ZR469Grbuvk*A*z^x?9%co5n2HG$?=sqnWij~H$~554~{ zV!g799?d;Iw1Cir^Qs5T!-6)od1ww?|M|3rfwOFUw44J@WNkijq>{rptsR@zJ?x;) zJ{%Ds>*MX*q^BwQ(u=AMTkBfWi|rgwI2lXOph*3=tTPjxc-}Vg^ybu_=2p0g@7*oYc_;DjW&O{4>JCMS3&5<-QuV z=ILJU5fdTDRz!A}hWlxi_rb2{hKPnt9KSqgmGupqE-j`!-VOQFe8zl8a`lBi2|Hl{ z)it58aiJKl=jz6lt>Cce#bH-=J*P_t!@I`sWy9PZ5VRQHZ;FdmYc;=+P3&pHN&r>y zwxlen`M1|3TnA9h2?^Tf{nY7wG~OPrV|Ogz#rJ2X|NU5mRQW55Xl)_w86RNCtC4Z< z8{?va=p9*51m6|`r!c6cf|6~jmto`voA06yT-bkZG(qmt@;4a;Y+#&{#U)*u&r(-g zHrReN-sbWyY{fnr(F4JVY>QRS&-zE7{NTbybeDE1D)6U;$g^5xrC4UjlUAPoqgWIH zTDdcJpvXPVjy)K9cA{|XBy;kkgtmVhmNxGujXM3l1<(V|GZLE|>)@bDOW+=>j$rs6 zf6tvweFE)4#Vq35Q&WMq%so}jNA<%XphPd7Nw3x-U3Nk!Mi#SlJxH`d)cGYlbeiUi zz+O_EE`H?~SFMx3hpAa(&kh1l>V*tQOPY}?09dgwKTUH`W z2Go@1F6+S7Yi_2047kX+_m0B|PENMG^+j-%%+WWj`jk*@t0zWyD10Iq3N^ckb7hC7 zByG=!1!%fIPKU|Vb|WbsHVbvYqQls^YZ31?B_j)citxnTgg+i|n}lO)6OPoh{X=Kw z1slJQ`UVU(6|0I+G!-oBWqG6R{C78dr6o ziZq4+#8FgWSPk=j)w9MHbmvPaz0#E?HA9D&P*(IL^D3UWYx;w`0T5*Fg>i5kl4&R5 zfIUAD+U8m#7xYqe#Jjl_%OAXC@&4B#e{F5S%N!vF(1AyV*w>a*^yRles(hPyw&OcL zxETksW6h;#%n1IgE`~u7mjpDHU_!jf*LUpBWQTnkcTPvd`M8YFa_syLEa&ytw51PPK^6aU7nVaFNBK)8e5 zZK^XE#*xH|pn$$SYjG!&?oZVF^Uj9aqAg$Is@xX+!}#yoG;zf%bcgp{^=W|b^-@lW zZ%!)k7rDr^V8TwxjbygyS$r3Oazl%|VAqykSR&KLSnO8nz}8t`Rb*CMm;8|4iPUcGdzMk+_7HAvA7>V;US)Y&Z zSH&{y+|d*68(2O};x(vy%$JS#`DB{szKuv=b3>g=p1V&kUE1~salum1*e#d4!wev8 zs_wB+wo5IDfT)0Y??J<8)amzHqo1=!2nl+-qv6l5zN|YO7Z_duND;!HZIAzXT#y%i z?~NdBs-;NqIgP4Og}(LSkbX(1b|H-4UX*?ElSyKzh!xE9mNq2wF{@|xui-pAkeQ6x zCv(J!vgz}pEeKT9TneKLuPrfO^J{?)>+kk2kc>nZ)W-cq#K(+_yG@5jS|7}rL@jQs zAN(xXsiX$P-g^Dp+-!;a5)5Lox4Js`Ci-o|I=3CR|C6;r&Q7XSLt)K5twhs>jk96I@5RS@E=4+>&o><~z_L#oV~X|;o@ zvU>-p_2I6Am>Kcxdxt>y^3Ak@-8`OlnsQy0!J+1urEUkLU|wp`R|9*Fp+%3 z=4h1CKLQ7SEaj~I5E$gHRedYG^W~Gu+9w_wVJdGX-*v7Fk1V3eSZY};Us)6t zxEb$+alTp_Qge`VPR+m*2AQ@&s+eD58J9(rNANbAPWJmZzXm(?{a+L(t{~=_i=R= z>C=+0ZG=kE-s5fdmd{Xrz@{(Y8mrR$P`{pWTtAb%7^;g|O1n8D)rMx1jm8u@huf~4 zeR(V_fp`uEp$g(A^B(^yGXL2;5RJ9MgA;CDge}3>sZngji0G={QJ3)7&;Zt4Nyq%j z^ zh}DE2TO_kRc5<2cC4bVPxJDzP1>Cl=Ten({U!K@vi>vq7_7g=myH)0X0V(sWa^PiP? zw(&5BAE&+1jhnUhe~zCqm5OCv6r#?_6%X&)EHUdD62-FGSB+5bj)1lJrc}Nutt}=5 zehFjdGZVQwSmz(RC=C%dw2yB5?V?;7q{5K-7lk2>?-9rg6HT-Q=BokNyf58{&#eQVn|1py(yC~7z?R2t zGo*xBpJc>Smp#=9FG2WK1=W~7E!;=)cb7PX+z{IRghHF9EKb&y>0lQK4_-Vy#J`QZ zRj;w2Cn(K7J8~v)bF1W<;AM1m)LttgoT&@~ySNB^z0WE;i*_8ifQh`^Jp}6$5qPju z`x@`Oiwo+JoCI>u|6RX)0^sj6-;SPOb%YyVaNN9>CSui8nt6R)7rw&ABd)Cp*@SYc zFW>JQ(%MZow@$D@ZqCz4k98%;5PBXRKuabcU0f_Z-V2!&xX!e`j(F-fnZA;G5sn&q z2@3m~7?6jxPW}-ZOC?n4d5gWfmvOhf&F;WTCg~8$MgV(}(2%wxPW%8#m6Fj2Ar9RA z&y(|1GFN1HJTEFcVSrs01`O8$HiV(0ghD0z<*F8;z91L)T8QlCN~55jwvENS8Xn0Ml|--^R`65?lT62e5J z4lyk+5N1AVM-Q`>&)=^CVV0!w>AU#$bXEv{|5td2T{foE(4v5MRxae2A_{Y}pE|BW z*6El{Zkgx?Y??=)b~`P+Bb!d()Cqn^``H+?kFUSGG_S3 z?^?DNc@j?s5o=yQz(!b`J#S&&PEU%Tn%QPCd}3qS3JqM?v;S5co6xGf{@gVT*m#x{ zVw2?E?wRk)LmYg3%RE}Xxrh~$IV;DaRkd0ASjDOgclcP(AQCLNbM*iINvQEWU`<_L zmC|%+$4?KbGvFv{J>9;r@^2}OU_o@K&Y6G__P)tt`chpaVom${%ytorO0DB|;t z(~aR?JCdUd8`a}Tx$%nxMFrmmUBdv5pI)<*>mG;6>MTjZUH)ea_kTFO_#X+k6(a>q z)V-W@Bhu9UTMa$q+5MGy_*fojL#9j+wP%-}%V-no|0dy0KfFerH@q|kI-;Y5_?5mh zB@F8~m>k9vwW-UPCD+_A^Lo>68DvO$#dwIG+_O?Mz7ajAOj$Z7O9YNDrWV58e z#52W%MOXK4VEPo>il&<4196O;54RSPULaqoA#=h21hatRU_BvhJFZq`hO#Jvm^LNB z*D(iZVF+S`IxVgk@bh7o`47Ux0;F!($eJ{JogdVSMtY%uJ*D+dglOgD=h30jUmcSq}woR9N``fvvMvs)8z`I9?YK~$Tz@4xR~ z0w3>f`X%mp;apm`t__Q@N;)B4T55U2cY&j*B z-Na*#SK*bnsqf6uqns{T*;B0|Vsl+m*`*4mDi=;Hsgk9yLq>#Pm9o9vNyc;C8cQ4^ z!dvPx*y1K=EQfEF1Rv6FPJ(aCc+OxEIW&qkw)~S8{z9MxEbFyD-2z|B1_AxzMXQ;J z7NO6x(QzL>hET+wJuhj?$?6&awK}l->bJVNP~{oN_f2444;{orU0}(SWH4tdG!+8h zIM4y7jrtF7;;GW>XGHed5!0cPrqw5~5acgt86-Lh?+tz#XgoJ*0afkVcrbn_kGbVX zO1-W}O}%Gmx;#a_LR^&1wQj+a7=HRcOr#W+@r;u9e%Ku`pp1N}&xiC?jt$3kT#^+m z+s!^@RG+1@_w#38;j-2jvG0UDh(+u1iO%UP7npa%u*PL}_5ir}oK zl5-b#zT>s6*if$k7KQ4cYtHR_q%y{ER8ixs*^gtmUCI+OPlSJ(Z(6fj?}{R)e@&G> zj%prp{N(3d?DcJ3oTmD;qPf9jR;rv2j-@v17>dI%_I(-JB2ODf8SveHGEz+nRW=bi zZme3J{SC){a4utgQj<4q4_%lZn&peb9?Z&WJsSP}Qu-jks?3r{ZNu*>tkW@H0jXY_ zNcRyf=a1=Qa`vu>;$-E~h7wR3U-^d6Vz-|%^1WF`?QlBejWXxF(_0eWeIdgxAJ8s` z)<_&3QjJbgTa(x0Q~Ei+EVzunMk*4M^6PF*GzqRnVAyN-??Y|G-Yxk3%aYs z(;NMRzsqf6xzbiCba{hmcrk^|hJGN=$?$-G{$OWCqeR^c9G_t>KOLck*u^?!NDGpE zX4#GokV{XrPQ6x!M^3(_v$be<1gTpMmFnC>^gAj|>wfu-ZhSgO8V0W;X&3->Bfxrt zgX;J!ppk#waOM=8lKSqhP(86!)4=BR z&rf}^5@Ow%Q-b;ZIwm8Romy;hgfa+2!+exdXA?nhVw`*Xm1gsb-H4PlKUDk$UWrlzEdH*{1E zA=}3guS{AY(pY>j7TueH^c01E5Pq+ye6~ZPLR6E@nvz74EC~k1Bj(mjFrib+d0T#J z+K5}9)}MU0h<&gp`(fqRExX@XoW_KN#mkSDc6|X6SLznknbR&a$21d9^yc>{blKz( zvA20n{%X2s^X5B0nUQq3)>5-;fv-T!@+bW>Sh84%b%xnZ2dJmDo>4bFqMBSt$0c># zc|8BAuOddrzZ3zpRG)yB+uX&RZyiaQ)>^^?@`||GsN};tPJgFQJk|pwh2te~AHLED zQ5DIoyyrrGIvG%1bb~T2vchYuQl!qSOxc>s&su%S9-(G^Z?f<`OIi;y?qbD)*py@U zO1j>w`#z7nD8q*j_HObin`lWMc{A^%;`Q!@SeNF+(98Sa58EaBT0?*0ONJC*502D? z$(=8s0N9PGP!W@gYI5<;;Dcxp!JqF~vlq3ZBs4@W2=d_GU8hA&D!1t7YgFU1!TPK= zPwhv@jAL3@TAK`2CM+mR^KUHcYQ{(qG@o->Q*!GTHF#wa$HVmo*W{9lX&^NWorCN& z^ST4}w98n}&c);1d#acJY`|HPprhB3priXqk3f{y*T=ws@wCfClco(9ny=DWbW?zb z%J7>yMu{tC-#&T1Rxn*+TV&h5B|$H9tz;f?@PwU=npN3dX(e;4i@{uZ zx6dAjiGv_+rRFIj&|WE*9P|KnCcBMpsiK`$cc;Ct{JiZU(6zBAz1IIouPuXl0Q0&x zy7|u;`|t8|vd-=L6g~g&3e4}xd_K_o6V~Abk09jAj_I`3tud@^^}U+Pc;Q&9=?wa8 z8a8KJOWG%%mv&(VLyYHTG#RZaozo$OsEMxhrpWnEoUD&fyXwUOW)u8r6l-RdrA4bvlO!fpX*y_23aS4 zUwJz_4V%^YBwL^_^xBiXvXMs%Yz~lDq)|6}1Rx!)&xUBLjA%}L|c4PL^ z8wx@LJ8ulEX*|fl9*fD0&Wey1U7Z3at5ZuNmK|>Dr06T>oq!|^I(d`Px?AM-u?M}* zkZu5O-bXlS=LAYUlFD?3_B0$?@*`l$_UWTp(&|62L#5mTUKjBcYT$d2n^97p()l&Kl(Zm(t%RKk!sUcGo^(q==^*$ux;End!wn+o9w4rBSpp?am(~a z3PreF>XrJ$iBK1#06MY`364J98R>N=hmy$7Ianu+9JPE|4ArcZ$YL_0Al5~yhe}@( zlQfsbwwVyWm1c;V=NzJ*{Vf%nEy5e(J6>Av9^5{B>dmA4*DwY|(_`-Dk|U(s=Q!_pXPuLdz&Q#td85*BsK zMRjG;so}@IDFrD=AK<687VkrL3el^J#>(aP!%GqwjN=Bqy7-Ev&6A3CskVS%1*ib7Wd2^H#Iyhfvt zL7D?t<$NN4DAK-_FhSo}f!m(RP16#jv1Ie$b}B44i+?c8mp8CYF^hyq_-yH|1O zm)<1595|X^0{1FOQIqjgn)>Q_yX+tHPlLA`1hFZO)8qnkiP2Ln&l0KlS}7sNIMcQC znt9Xu3&UJK>D|_m$UChCEVqe|gH_dy8emn+cCEvaYc0?46zL39_+sGfxctG>oC|Wm zf^$I6>*;5;Z!e(^`Imelpe_|cj#QTbIU+ILv8>41#&%>;lXpr3{i?oT%l21pX#Mjv zS-r2i?=CPpzUu;UHmOy3aJ$M)O60R`Ukk>|5aUlYimp($>5*|3i#7*LKfu>n1FdCf`0slRa3U z0IqGv(@~aBV2Lv2_t?^}n0%cI`A`UL%@@eZT*hQVw1*AZ7&=&Zl4$e8(8p`-1*M{I zULB4MV|H(lE>%u1sX%nFe62s+REV|aMe z!tYjKq>Lm^g&nCC08ViN-@jyGay&l2o2hwoSrKH*8K!Y^oL$)6N;faImGT|+s5VP? zaHO;LwPh{c7}3#4^{Sk8wHZx2OZb>)*-{^M{#9f(EXDpd|E#3w{IFJc0>X@%z1s?+ zl&{qXtZ!R!33dipI(WgWK7#;Afs*@_kN*2LG2ppT zLvK&GsEnICE3i_3+71eJdGomKb(#*BsrnDEgAK=Rv1fgNkVqXo&Mfjeoqrb9W`bi6 z$C+}_R(>lfUC*kRl%DRHFgG`+{y`m-1s{cQY<~IdZt!8?-|_@3`TzNXSCGfY zpSMn@{r6AEG?Q6G-`u%_?}@r01nqyy)?fU{A{r z0WkMIbCfUAfxqpw#U9e)0pbIacx~fZ5DjwzvC!#GZo3IdQLeM_Ksj$hx>>D{VkQvU zIxj95+@X;%z;5HV)|U`a({a}_=DCq}`9&hG`%tZShXX+VW8hmmIf*;n=H1Qq_4NOn z`jp19&iX-Z%nQGZj^)FzM1eEPg3V07ez7*Ti&ET-=9H)tOJ|#_LAhn*57Gun>f*q< zI;bZF)fH&zA=`ke;%`LnTQlzyh%OWN;sj>VcrUq7Rdp$OOCxQvvT!%jMUsEM=S9Er zSGIi&e8@ymQRfQt&eIF8R<4R}&@}W_WnVI}fE~-uZ@U{6RW!gqyKda#Q~DMvc<{_b zd!0DE@i=!@216C(EE@|x`@S+utDM2R@%X=jAUrnDX41_%BKIU)}15B@E ztl$rg5#ZdLnKJzY904_vS=$KRC`njGTF{3>K3bXmCKeeDRJjko!MB;#(Sn)B3(D{Z%V(~%1>$m+au(i!LCn&SDXgy2Gy;HN=uTR z-vZ74f8@CYe*m%2ygXX1;w$$dj*F+f(G`2fDDdPd24L5lLWiXAGltfm%=;OfARN=AJTw-qs`p~7C~}_4y^TVtFV4HeqUc(cjHRV4#kyemXJ4O z#{xEl>5UKrk{YI`hdn;-jLvaxl3OALEu#&v_9IKjC1nhiBo@-hfA*L=xsgi^CQT9| zx}bzPu$lncgIFphpsO^--f?v|woK`+X)oO3d+T9SdMgHSgPyh{F@Pk9YHH#}xG`mU zTr>aVZCoT%;*TW3yDOB^uT~=5F~;yEd{8mio32efQ~%fpn>8;>!{p;@{rg0BvA_+R zG|S3GGXhjwtMZ)X8z{Va_2=`0c_BTkC=VIh11y$ZTVb#JaJz%P4tO8)>!TG=U?Yep zcE9HP8(ot+ii3tzm5hv&77U6fUYv=S`D`Inii3qXSTG>SUyPyG+XJkdi{RTca!FQn zmX!o4OX}q2Sc?QV!6>m7iSP7eRm|JKRj$X|bf;^(Co?4IHHX6BhTo9z(-<}?m2Olo zNK}7!@*3i&@E@9ojYRVtO`5w%p|7C58l`a?C1T{M=S49{(JlfxQf0;u*j_FUzX!jq*U)gs{Sw1fN(3_cjQCy1 zEPdZ`CQI4gqCwF%fu+9fH(~RLR^+D3+C)gEPG_fyt1r=Y851ULQZx)MSJ z>^qK~=4w$Oo?k45-43uF9yG9ILXH=t%hFjGZ?H%o-b)+#`B#-n2dGrmvVK|Xl7qV_ z;dnX2q9q+z71CgK&qIiKug@kG&UezOlPp^zKa8Qk*|J^W<}2lbs6fm4Ya64^T)9uC z-(6y7z4sGMQ=3l=|C&K4K}L&;V#h!UK8Si*>5{>hoMGUzjr{*~)BnLIq;A^ah(@K( zjNjXOb7g>9qFrjVSyq(%5dsz!$%W0oVyL~=%{U7=7lmF;m53)YXRz(9Z6#^l5~&6L zYGeubhfY*W_v0oYR9?+Efq0SIz0knbyZ-0K6a z`N9GLiT~v`sv`~Xcas}c1zKdFWLS38U_O4*)+>rcYF9G7IeRRf<1IFcTFZpiD;SEV z92!J`2%u%81;S^HqSrILQlCE}aN~s~HuyUWJJdfMV^$?Z3B5H6!QaO?uVYh0M*}IB z7o_yDME$Hq-bVXImvR<@F|5m74B(&TBS_!L;2|v$`yO$Ln5xHh#iffuqF39_)5)H= zeeH=I@mO|z38B#SvRryem#p7qkHRF3lz?I5*aY+YyDk0IGwQIzak$k14_ zjx}3_5lXTzDP)bYk2U);h?%jCeH~*PGh_D~_vf4YzxVq$_xrm1F_*v2b)K*DIFEDA z<2;`vh4~53WLNEL{8Fe&RpqO|BKR0MyX1fMFKbac{^RIYgrhr$4ZVrZP*UQd$hDW& zm&pS%p5nC^0Yg`=l{BTw&7FF5P22V^=96!_jSJdA!?m1+^c+xV%RDJ|a-M|DUye&| ze#Y?U2dk6UxNfe9N{>B0b2fD7y6b5jnERxo6^ShpbYgb{we!!V?7K(GCC58daVTYa z3X8573@lCqz@Nzth0(~;kDu(T`g+>|;V98_rs`Fr0#i`gi9;04tF&ud+h+#us47;y zubc{WadvP#t2~^p_*Z}9^k1Aa{Ljy&gq^_jo{GAePUM3-4^-Yv zw154<1GSFImK9k$lLjL{&!s12Ne7C9EcNJmKW+SCpLO8#Rk;f@gT0FCSnuR?+&x&I zbjDh$5tbsh>h?A|A1sBZKaS$}g1h2!fc5g24`dq%-(z*#Di=163pxJr_dUKY-aERg z@^8-X z*jjnhvU844(cLrYQzSaZb{cbwjdH8NWkemeQp~lx!ZGiuk+N$JgP8L*@sSbDocXWF z@<9q191-Zh)9Jqi16GD2=Sxzv{)rKIsJqmPi?ezD=%5u>$Ewb2V8nZ4 zMxllE;$i|SqfQrJy7F@?Qf7SkRlCH_hESJJZ%Wd6n?;Tbz=I=kdogvQON!;`CN7ss zxhSFv+mo3OwBrmRUtOZhK9!Adgxc#@hJTA;p5&grX#bXs>Wo$7{6)E)j%Zmn@Ohh6 zLM)D7>sbe`Gu5_hFK{}rJZg424yy6<57!@AbCwQI^X8M%1dx-9Lv%)1MCjFj?h(+Z zd;nChlI>lh6acN4Ion&@%^XBdaGAZ~s@CmpYriiZ%l)v%_fkP9*m=?zALKjiQ7I^Xt*Py<1>h7DW-^_9&a8 z=JS|dJ>Fbo%9YGzJjPkT(VWkd>N#I8NOE!PFNu(TOYxuudwx{zuW z2dA{v0yocHgBF6(IO5dxf7+9OQQDJj&UPf*2js%Rf<#=5kolLtB31u$SL&dbhL2O( z^ILx$XK7xEc1L7phgQkJl$~|)*X1M?#~j~;YYv(kZ`gNc4AO#U?aaF)hS}_d2Sv4?`*Adc2dJSD5+dH1-d1itHHPY2QjY7;vWvhyQFOPyL ziaeh%x&Wrld2IZi5@~;zs-fSHI2LuPw(Z-L!YVUq0_9S2pU8*e@HPwnR&z7T$1eIN z@!9h{Fyzx?vt7>4Y5H<&=VpUlT4;E5Ir_5|;}pKQY}c_fE~4_ebBm-JZLv`;DRYp& z+ITL4e>g0P->ozkP8si1c>`{T0zVXvQ=W=9hW~p=z#k&9Bc(h2KF?HHOJ|wK&V+>0 zMr&4u5>MFY{yI1(Xfna~npDx^f6~#cK78v>Z^}Pur1KiXZ=O5XCiUaplTLdeE~R>7 zWz<7+2G&;ort9N-+d2*FnRol05yqna^J;#pnfuSK^ILf+Iw~VHml|84Iy#ney zv!j%ZJDd6i*lwbsz14+|$ePK(#g4j^oOd zC9jrvm33#tN*G??zgre%XnKwS0z(!f%C!=im44g<&Djdyxsl4Zjfg5^EL#ono)!Fa zcc}NZV)%fxmo18Mp4T>mVGTS-Sjc>@)(+e=Uk~-^Ciay`nEK~2@4co!ymi(!H79z# zM@^{XVi6gX&M30w)Uob1>^POgT0AXVm37o}Cr(JyQsGjufN9R&N z$H-;C9wuWC*|uXV0~uSYR&Ts=S|oW0WbdWhwVQ{?lEMl)UfXQDwjG}uE!^(&a)t~V z7R20lwzL2?(p`T^p#@*d`MZS2@>YC3--Q-7y99UC)aLUJy+cChcq=snSf3x%X7H|Q zDK&xYO)F3JjyO!CLQFEpB=4FU=?LvWV&;+c*=8*H$@1WHXbzKm_FDN?KUv6lQHS4d zgyoRj+gpFU+2AR;k!U+2rofch+?Q^>n?0*8xmrSs>+uXPt?U)5p0V=Nh!G}KMvw2> zg_}!-yh~)O{XwiA-|z7()OWUMEs(uX(2SV1(^OWQ#2lQcc@FI0XAQIqY{7+tMy9*b zJVL50<~{cyK!;`|ckB+3H8699**!R$eYwiUKyL-DxwD+B(NoA^9>J2@#3O4YB$e8# zk5OL4OPh=Qul_W4#=@N%gSa76SqwL1^*+lA7Lm(8yEjPTGVmH(-{fv8Bje3XpQhm= z2mbsDL0`m=q80kx(n5PESNpX|rzoLMdDDfw8NIq49@BRqQc!Ste&FQln6|;E?;2%b zdTtA7f0Z%)$UDXo>raD{ctyIj6t6rl}*`PqZAk>__a>B?mP|p>>gg+VP|+j z^863-r<~S^DU9hW@js`xOUuztUwCvNe;WcSzt%`NqS3tnGd?qp ztGNa_Y@{$P-an@rwHy<*&2uNFYhHsA?c%TVb&{TnCAh_24N!ht{n6U$AUm9J$2`?0 zJ_!O`m`JxRl@<7U!X+lqvex;*>gA4JPTx0glC2w+L%o_68ZwH@TO7>#N7yU8YezJ< zhE&0wrZXsffKb`Dv%|Tu9$n>(W#`##+OK`jqcb-N)ZTTZsB2dvt)F9sKmyfnY4#VkaYo_@`<{_y9QHIk`P3}jf zF8;m?U|H=VlpmvT8b|LIWHM60IC`fn`(Z&LvpLN1D>7^8OWnf&{sJ6iD$%4t_2BZnxpRC+6rM zY&p4{^Xk}rxSHt1p(3--wknKfOj!!nO1i$z(<;MJsiCJM>KVlQ2z@T&hj{ANU~hiO z9AY^VH~3k3+KBKMC4Pec#-lz89$ku}F4RY^=o!B%mRM))kPqi(x}$idC}DotYz zV28gg^OjTW$!6RXo#~}oD z&aSz)Gboo`Ih6Ww@VVQleCK7f#2-O-Z2wzQvZmmDB;WncM6H@zN-vz_f^qN{2?X*3 zr2-a=;oG=x*OyX^nVy~%_i5v5cZaB($j>8eJ9eY&v$z`Es(I#ol%{Gz3>)C;UzT}G zWc{RHMb-~{H%ZU7LkcZq)Qj@pNZfOO#;@a5Jre{l`f$ke?67Mt-^jOIi#w#@i`0mw z`1N;QsqpewEk<9uLj;B{0|-(v!k>|mdss~)dZQn5+wWs9b;f^Je|dJ4;fqC2G25jR z%+(*Ayl74rDx6fD-^wF9__XQfZ>D)@Csqqo>0ZTngYg2TDb54cb2SVIp@Mr#t-gkd zvOZWR7zX}iKacX#q}S^FW)6HKRGzD$Ot4XG=((HEO-i`0Tb-MgvUx6pEPM9qtVVd| z?e_lyn<$;^3O4i`j%yBmmpR3Rjd;(b4=}Ntn_%R>Y5!~w=1AbaF~_mUMc|1+HcSb>)kUeR(W98@T3Jo;UR-(bD_u(bd(Td zHNr}FH%nIbRgEp9c~x!{u%L z$)^jc6=MyO-GBld*&W)aN?*A5b)OWQf*8MlW{myf%3iDfLqZ!a>F>5yVk)RdPDy_g zi(pLom6AG{kKB>hyiVSU3k$kIJFl_qdoU`LJg#Vea+mLIEa$7Yzm^XrOJ|dOuSt47 z&Ywsso=k$nFG;u}Y9{g0U0;7gJ>6fBPd;l_;Ty_AxYVH+(PQ;^`0Ou&}VXc|R3xS|;5SMCb(xBeuBHjiiPOLks(&mBM8 zU^B2iSCOJsus(WG7md-s&iT>I&ugcq5GeyuLYQt2_WFoBJkNOIq&zjAD&V!h5m%0u zu>Fli|2DUaKTFbTqU<}dIaE0N?CM3D|whTFAkvn%6IPd0u z5)bYPM{X76dk>khO7%dI&&GWnaXf_2j+;X{nan;#%8?%iYtZuu$~8ZT8b|E02WMCC zF;Rd>Dyh45y5(df3-jp%_fw>iYXfrgvW~`AHf!LVlV7~w>hK`L7<#J@t%P-MAI$!77RF^2y5zM6hn#H?11rzS>A<<@ai0fsh?N3ax79pGQ(RPS>$um$rx$ja z(DAaq>TB;3viYsPczaF5O@HH%ZX<#-^sf*VuoDIWH~Ww3j5^B0BXQe80dj_?PIzz0)-z@v~L< z2aq2#AofbJ0cMG$==ecfkZh}_?U--mvBEAHAAP0&adTw;RnI*O!7ML)jg!PIbjlo~#IK zpim)YIVxTERfi0!pPGsU6P zvOuIUE}C>Lbd0S31=c|K5`6#`-H)Vp>=)Qe5Ou7k{+9|b+CEE#K%p#Bm;cui2PE>Q z4z8ZO;@gI5WVzB)!Y@xo*yblJs=xGCG>>wWc^wk|IGS!>daVqZY(J-&&lnCc_;3@; zmr9aJoU6S#y}SRDQ)zz(SNPqZv8;}~ujJ%Y1zBm`$QF=0@xm zamzmxI*|XSv@I0HIQ2DSH{5#jy<37tOfz2MxZka62DnC5D&W4R@XwA2kV-0&K8Bqf zV?4b43b~E&YN%k4E%n9Cvq%RG`xEx>q$ZYWBelrwWzmO8`IUz}u~I-GRK(mt#Ai@} zwvm)(Y{~L&B!&2ds{K#IXBSS-=dTz(4BWw=2i4ROEmQVt#^Y?}{k|}CmxDIVOc;$F z`0wPJ`JMp^^qeI6Y)VJ$D?iv62GZvEah2sA%321vwuZW*QK9wAm_@@OnQ=|)s8{)Y zPj5%X_YrpGGHqi4gp7O`tERx!_Hj(kKAn6jebOb z<{hUi|I+~GgouLx@fiH5AWbbMMNP~3)((B+TG!CLt(lx}#$Fk?dj#+Uw&k#HD8(n= ziLCWo^in%tN<6V#=eNI;-`58bd9Im(^yAEN-hfr1ic)3$Nk?ccbwnJSSC7#812t$( z`pzh0YFB7@Vd*Q@`Mg{)Q~UWYP^e0`d7b@!_j=Eh?-$BvL}{To z4MJhz8$Z36%N2JO{^)4|F-wr1TXqFT?7-J^A2wzul(PTlvfJ-uLrWNVV0@6(K=7Un zh{zQzd04WK5FhMz4rw?!{Hy&N4{opG*)?+THiL||H@MiR4A1TdD)3u#1iUa~Rx&3} zmJQm+RrMiWfkg@<%}it|(G4d+QGMP^p^n%+3TeCzDavQO_OA)}?m9gm=Tl692&$HU zbD9C*oqFJeB=A4LDjh=CdV?ASHbEnnfkYV>bvHuhONm2_(?0r%=EPgK%b-1ojPHvv8r7)jcz>d4xGXt~b~`)%^0xFMb-r5Y{mK;X^aWw>m?l zbt#XzDPQP0@^d?jZS3K>s&7j=vRlieMCKeNE3zYzXYEarEgg9Ia~PJOQM~euP}gFm zhU=>8+l!K$ZjE^B+KJ6DODitJQkb~J+25%~W%gfiF?=h#gHMr0cjV^#fN-T2kr;6= zX-u?6o@T-!_SdcMfGY!h@4e_Ni@X(W>Q5MzZgpkKn~AKRfLwk`?%`He&Q5#=p3jHZ zd90Aj04F^nZsYP1C0-`GQj{eL`vo_G2Rhne%=|RTPr3uXaLr-a`Iz^-r<7nqHPqxB zye7Ltra%AMTeF76t)x`cOb#nbaA@Ol6T?-pQk9|_Um*d=B@*$O{MRYl+PI~LrFh;2 z{K+k=y707FX%$GpX3vB#-m`9ax0Bt3ZY8lv5w=_?U+TuPmBjKp6*3r5NCYS_l0azy zE}>h#QyPHw{TdSg8G6|1`MC5v#1~|iyw9I%{~C69UO0@~I9}yyLI)on65y zi%GBz*W&HXVXsav0e!B|ex4@DA!*H?#gm{kyea)k0`vZ}5a_(`YM&SXstIyj-vf#? z!jpyShqsAnGwuBmzgF@P*x3r}WI2BB*I!Xg?@gPv?cpFc%AEe3|ah zdC|y=+2uoaTnc5%ai7XzyC!)J)fqDX_>N2xV97jgHy}B&&kgl(m2OpkKFry&Ne&(v zSU(8QgfK-&u4+bPl)F=Sw@`0tIV*~#$9xlt(!X+)5^axC;@2ihO8j=M!?vr#A;qy| zK{$d_Gc4vmhK`bWLreHV1ZxDhqQEIzud8X(B|djJrnbI@*+<{O^?O^fqF zeVPa8&WA3oYvhy?2${sY=2?o-_U@d%Gv9wB%wu+{HUx>)vi`b~<)MFj#2M*>(Pt^` zZgv>@Jgm#oCG)*C>XX~lA&GaNCx*18J2sw4!5!zLUY}J4g>XAR%A}^(_lwQJCr!g- zQgAz1*}NdEiS(Tw@&O|9DS%g*RY+-}3~6J=oTPYAvSh?{&o?{YNNLhS4UHrwnLc0V z1vbvFGP(H-)%-l zxL9L6`4 zzJXpoElou6IsJOjxC5~XmsN0bcWyr$l?`xss{CctZ8X#Av2rToakY)m;NgaX zL+))XZ;>r_=jX#-wZb%bY$2PHHJ~+A)$fCn?fSRTGY z-_Fsp8JNdc-acJMj6wj+L~TTOq34%2ZUo%-S*g#j?9iw3By)`9Q3>L1ny{Sl{z^`W0Hf4Z7jBksqQe8{JQxaJLzkve=s` zwuBXJ{#f9yW{Blq!A z70!Yfiu>|JeCmC1Mn>8-#mV|tv-|=lmxcM18MF;2KFopD4z(zMRy@uH8W(=?pq)40 z;!jV#R69Km`r7ZKJb6GORVpp*t)m_-vJR&@vnbe)F3lUz!#ttlynV6uTE8P$_ta6< ze1n=aOzDd8hj`m?yl1W`s$0a1r${+9(|tIo?XUgg_C8yuuae1lLU=-XOcz>60I|&;ag`sF#Tq!8=r zg~6n*O)tll+)E%WWKEh9ljP}rg?-8W=!|kHeelsvk(H$9!@V* zvq4veQi!Ak&C}99ajcd@!-W0O=l^8A)}yRInIL8A6xwZU7HUjhN?-U$L(H;H$QC| zXP(~}BmN9wKs?0C!W=Kx^Ot zTje}6X-%mM^KaA_dFJ0bn{2xe@XW8pfhyC0IKwZ7o|>1R7pUikcnqk{iDh~RvQ{(3 zoPLdLe`}vkUM^bM+9Be~=XQqeuD>J06@PG&l1>(?XZe>Ee_ItAdH0*%TqIN2*Wz1h z*jKnY?#jT`#0lC1`m?XC(>a@;K0!uVMgF+h@J5H3JF52Vj+LKHZ_mzY<$c_mR2TlE z)y(ZXYADdGpU34CZ6(wb@ry7P@E?vy%{21&bZKi(@&2mP(05FNKm_O|keD99$NHMNAzo~DfSlhDNM~@A=7Om|*39+@ z)(m6ek+5vVqF<8!7oBYR*H7>g*GlWIZqZG8*gVg8v!hc66=xP}Z}#l%MwgoM`RvM4lm-8fN%vC*RjoJPQGJ$* z3GefUcOqB#t-@h%8Jrvh9}B)(A>uD<8fsp@k#)XUo-#r3v8j&hmgFPA&Z33(l)gM$ zaU=*TwYEW5wJQWH(APKT;^&vIAh+!8@R;08UIlWCH~In@wsVkq3@IWToM+mA7%ud3!BSeMLmCTx1jUv-FH1vG*Ouc-vsj5>|p1o(uO(1*af+#c?Mf z5h`fkX|XT!3tZ9xEN;Ek{C%3M#e*vb^eajCF7Q)P(*fh#yCq^P>Nh3wm~`{42ew) zFQgmJ&h}<0-NSf+xwC$+A+kmpl%@8yQ=&J&l|CkRo9O=;zy8vD)lg9eM9bw1xeK2j=r zvKgL0*88InP`5j_dPeERX840(e0q^-|Ipx(;N%?caj+vxmaCOFG#_C0y9!~br{rEa z9;$P%f+`1_kPt9n!NM-s9wQqnbVmkw(|>zI9dc$lG3HOBPjd%tI|*mGS-eANR(asE zJVcf1*UNpU3i&R(_^q~ok0S|s`a-*S%KF~u4)zn_0YWfCR&rXOpWd-$MMst~{R_)t zOSrO(=HEUq)l;R&T9wS?#Cr6pIuIjpd4Ki^H${o-g3xzTC%Ap>m|tVWJ*? zbrastbb#_MNWT;lQ~PouWR82^9JD_7?0S1>n6SfB^c45Pi*o`e2Ivl?z6huQZ>++- z#_bRqMf~3;9ZyhQ`?Eg!VWWe=lTjjr2)MIp(Gu za};hG%STOd#Myw-%@&fb+?czqstw7H)H~4{nH6Sj#ivwsL6)_IYz+W9U3;noM8Za5 zTcZ-{;Ta!|g+$7}>S?Pzf9W+l+$`iaU%YQ%eW+sI;?)OVY~4#vU&O=rvyT&3z>(wb zQ17_D1mpGd%-00H$DMdtq#{K%0)n5}r08(J1?bN3X_Qdz+9HnaEbVKjVxb zoQsAVKc5w*a?Ak*jdA%dx~NzIYgf<682zfkQ6oDAz0!bL)LyLQe8L@a4XLVs1dNaWX!zzg zCz&8nI7v3uoWyNL1j=>QnC*=kk5^nFA0NQdOO3riO*IDIch@Q6;C=q*u`rsIOWBd% z3(h|UKmZD>jtCD&m-8;hbZ^g9o?8FL@n;PPjukDu<=>Ur<&w|Mfk@Rno-fh#P;%=n z7}c4-FL4uCzhS{M?>-pRw;*TlQ|ANKIoO!(yk2*(^LUgyrC#KAZfW6xA;8aV8sMw3$^*dB3U{Cj&93`iolTKK=}IxCU2}?T;1k%&_gM|~ zD@q4A5`^ljDiVx^T=p(UW6xa@v}&uyS+f4Yt>}*EE@Nn}5O-=OmEr2_|0-bc9yjCy z9!h;VW_8|2tnMq-tS&j72_R$7s@T=Az3gj{a)KjLGKz*%KAY7@Ir{o|=8e>V`aWr= zSCmI^JzHG4UkGUOc1E~*&BQyiHY65k9uTsGT0h~Lr9<$J);gT2DU?UAvwnKhzT9%J zPchRYnk%~`%A%W}5d?o16#?T%RoP!uQz+XPkD$FOr>p&>6gwSEr5?r1$++qjQA%lpSgjH9OyP~05uW0Z%QE59)S#mIh6F{_ zQdrx!+U*;iHMT8pk)S0j&e#0Y&3c$TzR~Ep9@>YPfY>redaT~l+(^7P zCic?tVPcLBQ;7P*eDOL=&%vN~0_4*^63OSTR z`R(!02-VV6m#u4({FqNz!uBvK9kGyIu++B5lBEF3x>8t~4;&jlwj@oo`Ua2t|ROBLLvR%oHoX_>*UYFBO zU`}EtEeOa9lB6P-Slc}i>k5B>a=&|u1Tf3^U`ydbYco}k981x+!OX{eB=3lioTQ$Q zxNwZ-m0|Dqt9s7x03i<2Q^Yr!_UW(a-;s%ue{H8!ejN)NR)lrQbBA~;(Gp7v!!#qD z<3Jh+_tB8ll@R6kT%5{9nC~aQ zIkRgM!`;V zcX4K2S-C7K4)qB=fXRbr?NodPIh{MUNRMLCzYxjCiS_jLJGnMamCfeE7cQ(7Rh36& zn{BVCPh{_4TsZ|*De?Gngnh{h$&*_~N-G~DInE@gtFiiVMjF`q0{6RHww8AhkX&&@ z@_?DBlDMuBW_2sX9_gtMP|7C4*(pH#w-z-3N1>D))Kf|inTAGA*}lx${^pPk2T1X# zJVPdcZ-%an9V^Dhe!~<#u@i{gXCxLg@Fy|I0CnsX&zuV&m9ug%7|FJsHB zqaNLzS6XL*0_wE_Zl;1mFjW_S<%&>Xps~rdjnSX_zAH{EfTu=ZKB{4Kcu*ImPR#^KJt5bF%r8mAaIHSKC3 z%5Q(3_i|Bte&JW^8)6o?P11FwKm3@xJ)#&DtV}iJ7CJQY&7A+){uoeSm{h0;3-M}l z=cE`VpHmA{{gDqiyP1g?!nku1m#-Ga5~I6#&R0H3l^sOSqiq6Xu=jJ(ceT$EiNR)P zCxAsc8s51RNisF=k*ZVg0+ei1z=-2I_2N+vvx4e+f%s0u=SoX)f$&3>*Ap6hUkb&H zCCxl81WDiEaL%Y3b9KymFURxT*>`TJZqYdEXLNOr>m7uLI$L0^@LF zFFzs5yNf%GTg7jU`O*{o1ezF$S-jg`rUh%q1KK5p904$i>aR`dI}@jV#kNH?LAKd=VoW}?M8Z$C zE-7`0bK++TtApUso3?cq67NuW+lbbCftpSE+ZPECx*P9VM zR?VU7_I!X7rga5-q#*m5+N$H?^#1!J%4S0~_NMgF%L0}&#j;;X0j($=yF*LrQ17c{ z|73)ltc~c#GJ>k>$$0w80*l$Z{quzp4`g2NG=e&m6ctzEfb4_fcKoTGV0n9o0p*c& z-10iXPe1CZX%i(%^-FdL&d2Pn{z#G1Ms;HKw&sWtS#T{?|G);|$cK(!a4m1KDkKid&1@KE6tV)O&>ln=_sB&< z7j&1Oz|-RvW?cEbT5a=biW1=ew~ULkp-lIKZ78xf2hXp_rL8UKMzVC#gbpyxS>B{2 zF^cI~X{K!rwLS)Hk_9(sklI&ec52{)ah?8#k&`|}lPQ^wr|C8FB*$D^vLl5w8j!%9 z9f|;j)z|6~q>x|o_P+0N2+$n$lG>?UmZJ)m0z2RZhgR$((Gjf=Qcj5GgE=$K1=lA9Q9^=w#q8rZ?d6q|80^)_dz=FW?ff|{ z5}Xc#7KNX8zr$Q!Mdmy#NT}TS=Rj$Wm=cES1Fibj-X~kAWYu2Q91ox9$#Axvy(EBdrzX4W|9)*s-70KJBe3M zLrRJtQbaPDw(dy>Fz+XQBVaP}cq;O5bRI{8VR$(cCl<3}c#a6;!`t}TVO+5ur3mP{ zPpkZNJP;D?P{}hvYw+dHnd>$PykSe2#URtw2_JbJ{4{G5L^usu_+~n)9(Tx3AeMm_ z)=OkHqbfWo@^<2gIkZ;h9dC0e@1Q$?_BWuwm^O}%nJT5x-?J_hWqe&}b!k8WWeDQb zmkU$$vohpEKeo)~5YtLI_}Dw_)4gMEsQ69Fvhf8V7viNdgV3BAuJvAg5sAD)dbY9) z*}lKoHQVOsdA-8kG4yZY0)j3O3;v8X<;w&ehixoH_7=rKeVW4M%+B=(DF@Hw zUTU;1GZDh}mx*+Re^S(L@or9}Y{RAd=no~fLgRJEsaA)QYU!y@wNei%*yN!Nu{@p8 z@)a+pM%DZ-g#9JyOUnd3_t#G~w=xYq$mhIu3|I-?<9WzlSyrwJd!g)-Y~g@$I_#5? zrOhiTL7lBS>@oppMy9wu*=-KQnkxQ*-`_tD;D6f;&KIG`KgAWEinj^r?fB%KXTPI7 z-Kw5cv^~q0!veHt9!_QdAR0u2Th0sX@8X7au~)haC$thn6q;ZPd?8(ycpNWu6gWQi z>zP}qUvcE4YLDqX(lmPMKK#ZLw`1!>x{sKUPpB-&pRJPjJwizA+Lbx2RoFcod$KiR)6x+ zf%}#C!0Ki!V?k3=BOBNk=pWut$Gl1kzW$%G|9-+zHglpnn`u0N8F#7eM=dlx&|`JM zOA%TOUuZ6BGEaoyBkSbngCaq;%1e`Ckp?3SAtf+3jk*hU_Oqv7Md4$~0gC?40lVZp zxZkn^uv~V4hlC*HnPr2@HDC%-roVc}`Al!f{ZW2(=ZL)jy?$^%ys;WI}*!t~Uv+e1TL@k+X2F^Xuag{5Re;pzjyS60S!NqOx)OlAu zR?s+x90O3AC%52Uus+m&L0L=4F!Z{6KFMDo`~0#8bV$<}1%* zmBKkmlGVbeJPt(sPMsdV|5HF(Ia}HRa&c(0QX$uVXXo=VL@A#$z6JlKnF305B(6#RJ?ZwG8C*RaW1M`|a;z}+V0Q!8)1 zw@gTFvJKT!iQKAJ$^_EKuegMf5YIq~Y(1vDNyh&-7E1y56ufr+w$tmttJb zuVS`NG0ay`JFJ0@%fUNsk*2VhKJ}J^w(u*W%H#OW#L*gT)YkSaU1S?P@g1eu&7g?j zi4q+Lc)GQQZ)qzcw*ufg-=$~Fp;Nx@F)tGAf}3=8RvcLD(1(T`eW-UBI&WH=H@%YroA*&8Fou< z%JVbm6{0)srrDW!xQ5SW()r!?VdV8oN_UGh7_?lWFM z`1NB~Zc^IpRykC*>@NTDQTCMhL!7yV?x{TNLzP_9B{vtn%|9W~bqfvjr_8^mxBN7A z?teFhrH=P`t062Dm$(?UE1$q*w6(ce3mxOObPzxbn?l8~IGny71Rc4Vtoe^dCyWxZ zoR6ps*({wq+?QtYUvy7?)n}B|o*+G`@jNidgKd;`+P@aC={mSr-~6==zRn!`GtQR{ z;XQC6Xld4drcha+kOhik**CwfJRGdTbfUn74V_57{9%U7xTc^Fh2{^~tirp=R~0o> zj#+66#Xwqq>W=ow6+P_D&5Ms|vZqp#H?xxrCDm>`Vg4nk_U)uizAUJ>=3@jX|Kh`y ztsd{)*266TE;TC&SSRGBtqLdKI)~I29Hn%8g+x=_BNwlyf3Vw1(H5J zONiRY;HEaKe_${D2==J#@+4l>JA2s)*MJWEWp0@snmEUYothH7W$kb~@IsQe=whGi zU)emy;8&50w^k2iJO)PiTWbI>B54>mfj^gcGlyTO2cWr2oAwvQ!4*%EJ{-QKLDz~y z3e_>i0Cq=q1zQ$QuRSK{*|AuG8?%-T?^yE-DrMk9V5+S>aAWU=yVwT|4=Rsvfow9UH|Er3jz z7ecn6yHaZVxKj8w#osGkX>mLb-U&)2#Bfsb%I~`XgnFqY(EyI%@G69E&1C*}7}D02 z11pib6?X=#5gs`ALk`~1rWR~JH;_}8MYvkvEQH<^PpjKX%a&c1?x#b4zHU~#@crlY zf>_jJ+itaBu|nr;`TR(uXy2EhLUrBlWqB~ksJaEeco_MQ!C6N-(C1X?K>d^&zJ`0X zio(;G)|x{TXCKR4(}2@(yJ~0(3+qW)p*q+z8>P<>pe=L@Z{R-kHcM6jTKI0Ry$zrY z;(*YXG8C;V{%dL8xcbzf(OgDu<%Nfz#eSm-!-u0LBb1sDKH9Moc(cr+TK5^Z^;0C# zK^z-1b~-vVK^|w}{f5J*?V`qx)tWGRbC3{r?x_>654W5PEcMmc>5H*oQCi*ZA?fa( zmBGEsjHLsoUEl{^cP#WC#-dX)$4v=g){c#bN0JMcyR16>$NVL2k>ay9s*;G=ouc)* zG}-r*UOxYW6jh0Zz;de%i2aSb-HU-UUui2Qi}EUkR<2f|MkN9{1o{h}%lQnX%3OMX zD*&Cxneh{qWG^1HL2%Kb!xSX=502LUBTNi9O1K3OVNJkcv%KlpMmWCqe=rr4P)N_ z<24JbI7ThTCukA{kWy0l@zO?+9+EtIi?xTL_qzblHh2Bjw`KMwdtWx)F`(t}b!Dbq zvWU8;@tMO93^PjW+2!wbJQf~-!cyx~D|G`xC z^P)sB6>oY^R!sl$wB!J4!D`qZk0r@%%er;TE5%wjNfs?MJw@t{4+ql#faO}=(cs*V z0`zy?9&eB@+;&U}tLGtJYMl0Rn?f?WMmT;UMlSUr`;ip&{QoUk(8(S7N}eiTQFgnS z86AW;C3C&LKvf`IXlP+D zVG|bGkIR}StSyMt@VrC}IbUWJey+*;>*M@ksMX|7z_6kVtPenv8izrfMuFQG?nw)} z;M+_5u$Ad4MUMH-1|Ej2$+BEh#4h6cknr23mtS++BBi0-?L_y7aZA@)^p7p1KK=Wh zYX}X$%E@MMe@Qvm-G}!2%NrdmiC@C~2yV_NMqkO9ioz}q!Ip6%a<4GqY!gl5?PsFF zTqh2Tnl_DH^}wuGU-$f~tU6=x-7wbUA?9MYL=*-oViToc0{cWB&fH0c1AZfK>n4R7 zTm4BDp99<~dV6tktCXdGX6aLzg;873 zTxffGJ3!bG8Fa1isi2}gqq1!1c5CQ%olBE*arkn@S)x^x+f)3q5_1F}x~qH~e4JHh zj|5>^Jk%U*N{adPNxkqEnD*$!2h0Aqs$I15l9hxzKTZ!8A1!O_jXyXI2oLtIK6_%I zhk|6pdauh1tnw%<^fJX*b$8&Gi!tAd!{Q$ZSV~2bjq(R&(|P|2L`Mib@(<>i+#2`k zK33R&_)huo;@qjpSx`etK%6p`8$U>V3quY$Jt#2U%W)6A8aQ(5r@DWfwLX4SMn6if z=(3G26jQW@7NIX=D}tANtUj;&qcGpLC4GXdF&5Z|xAf!UY z%!ON*jiBhrN1D9sCkB|xgxU=Tv2Ub&_u_l9lM$KL_!lg7Tyq{sWxc z@6Sy01%)A5@n}#}fqfIiY?8EEzu9Mq*p7GgDcfs>SG|2Vm685K<}Us9c4_t!t_N*R zXE>t4Ky_3~!96v#enF=>Uv^(B|6fgCn@Nibt42b82yM8mA93>PqIQi;O+M+kVg+bX z@N935I*Tr0JZ}xqy=)Z)XNbTV`mn#)BuBzWtA{6fgIJjFRySO?LKKOmQL zs*T5Xg0yp7kd}eYcIKWKLWxWuLREfRW zr(-DKW8nO7D0Ox2d3^@C(bOhSv41c#{<(=mX~rUguDod zI5>9Pzo3qk9X4FHsPyM^Cx8YMq2-?jQ~(Ri;WB$tryW%<2GK0FyvznTs-~R}F8TV=lMY&Y1?W=_(uRWCBOD7vY@-^rz-5{5N71Zk6^P+(5h-OWig0WefcNM; z1E|)2jGw4N3FlpelEY>g@*nQ@u&q(Yg$=n_&Mr#Np$ zMsDL4dUl4w1yFt%qRfb?@a_m@t4BJjp9A+#B>r&}i89ng;@?|BxgzL`y(L;Rke6_| zY8zOJ`?+1Gc30>xh_hEu%s%6$ad}3jMS9c&B3C-Wc>D?h<~-qzA>1pN@9EjHmASjW ztp1J|hD)stEaK|++5I-4eGoByeMSrv+0z(qd*%t!UMgt~_%Bm}kRfVEEod z_PRFkZ2Pla@?j~)XX<{c$3x9%@P$i-F9hY^w3W=-q4^>hb~yxYq?*X5+O|S5`u^ps z4)^u_ZH4w+4dED}woy`NC%2I_fOcbaO3@U0?8VC2?rtK!DX^Fa)>-w0*|#D? z3j#GS@sjD1ici=&DznjC!`LED9Zy$9Mk&UHQ!fP?oH3-YsCXv;EZwSezn0=zYUsP} zle#m}NQfN`s~;jZob*$pS>>xVj0&JxwGyiH3g-R!HEfmrueo_ips$}NOVY=gEw7dq z0!7WelhkDxbbN~KM+-Ho|K=100`1lr0Rs1nCi=%0D*PU%IH{p@)UZ1Q#YDCB)>tJ5 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

8NO-anWu;|h+>S^}? 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

jc4p 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 Q2mBof4%=6|=lE~`3yyBAZ~y=R literal 0 HcmV?d00001 diff --git a/src/bmesh.c b/src/bmesh.c index 79f60b73..e35b4013 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -10,7 +10,8 @@ #include "convexhull.h" #include "draw.h" -#define BMESH_STEP_DISTANCE 0.4 +#define BMESH_STEP_DISTANCE 0.2 +#define BMESH_MAX_PARENT_BALL_DEPTH 1000 typedef struct bmeshBallIndex { int ballIndex; @@ -24,6 +25,7 @@ struct bmesh { array *quadArray; int rootBallIndex; int roundColor; + bmeshBall *parentBallStack[BMESH_MAX_PARENT_BALL_DEPTH]; }; bmesh *bmeshCreate(void) { @@ -503,12 +505,20 @@ int bmeshSweep(bmesh *bm) { return bmeshSweepFrom(bm, 0, bmeshGetRootBall(bm)); } -static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, +static int isDistanceEnoughForConvexHull(bmeshBall *root, + bmeshBall *ball) { + float distance = vec3Distance(&root->position, &ball->position); + if (distance >= root->radius + BMESH_STEP_DISTANCE) { + return 1; + } + return 0; +} + +static bmeshBall *bmeshFindChildBallForConvexHull(bmesh *bm, bmeshBall *root, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - float distance = vec3Distance(&root->position, &ball->position); - if (distance >= root->radius) { + if (isDistanceEnoughForConvexHull(root, ball)) { return ball; } child = bmeshGetBallFirstChild(bm, ball, &iterator); @@ -516,7 +526,19 @@ static bmeshBall *bmeshFindBallForConvexHull(bmesh *bm, bmeshBall *root, return ball; } ball->radius = 0; - return bmeshFindBallForConvexHull(bm, root, child); + return bmeshFindChildBallForConvexHull(bm, root, child); +} + +static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, + int depth, bmeshBall *ball) { + if (depth <= 0) { + return ball; + } + if (isDistanceEnoughForConvexHull(root, ball)) { + return ball; + } + return bmeshFindParentBallForConvexHull(bm, root, depth - 1, + bm->parentBallStack[depth - 1]); } static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, @@ -559,7 +581,7 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, int showFaceIndex = 10000000; static long long lastShowFaceIndexIncTime = 0; -static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { +static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { int result = 0; bmeshBallIterator iterator; bmeshBall *child; @@ -567,8 +589,11 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { if (bm->roundColor == ball->roundColor) { return 0; } + if (depth < BMESH_MAX_PARENT_BALL_DEPTH) { + bm->parentBallStack[depth] = ball; + } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type && 4 == ball->index) { + if (BMESH_BALL_TYPE_ROOT == ball->type/* && 4 == ball->index*/) { convexHull *hull; bmeshBall *outmostBall = 0; int outmostBallFirstVertexIndex = 0; @@ -583,12 +608,15 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - ballForConvexHull = bmeshFindBallForConvexHull(bm, ball, child); + ballForConvexHull = bmeshFindChildBallForConvexHull(bm, ball, child); addBallToHull(hull, ballForConvexHull, &outmostBall, &outmostBallFirstVertexIndex); } - if (parent) { - addBallToHull(hull, parent, &outmostBall, &outmostBallFirstVertexIndex); + if (depth > 0 && depth - 1 < BMESH_MAX_PARENT_BALL_DEPTH) { + ballForConvexHull = bmeshFindParentBallForConvexHull(bm, ball, depth - 1, + bm->parentBallStack[depth - 1]); + addBallToHull(hull, ballForConvexHull, + &outmostBall, &outmostBallFirstVertexIndex); } if (outmostBall) { convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, @@ -764,7 +792,7 @@ static int bmeshStichFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshStichFrom(bm, ball, child); + result = bmeshStichFrom(bm, depth + 1, child); if (0 != result) { fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); return result; diff --git a/src/convexhull.c b/src/convexhull.c index 913a1335..e028de4b 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -268,6 +268,7 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, vtx1 = (convexHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); vtx2 = (convexHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); vtx3 = (convexHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); + if (vtx1->plane == vtx2->plane && vtx1->plane == vtx3->plane) { return 0; } @@ -286,6 +287,7 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, return 0; } } + memset(&hull->findFace3, 0, sizeof(hull->findFace3)); hull->findFace3.indices[0] = firstVertex; hull->findFace3.indices[1] = secondVertex; @@ -537,9 +539,9 @@ int convexHullMergeTriangles(convexHull *hull) { e->score = (int)angle; //if (edgeIndex >= 12 && edgeIndex <= 12) { // angle = (int)vec3Angle(&f1normal, &f2normal); - drawDebugPrintf("edgeIndex:%d angle:%f normal1:<%f,%f,%f> normal2:<%f,%f,%f>", - edgeIndex, angle, f1normal.x, f1normal.y, f1normal.z, - f2normal.x, f2normal.y, f2normal.z); + // drawDebugPrintf("edgeIndex:%d angle:%f normal1:<%f,%f,%f> normal2:<%f,%f,%f>", + // edgeIndex, angle, f1normal.x, f1normal.y, f1normal.z, + // f2normal.x, f2normal.y, f2normal.z); //} } } diff --git a/src/render.cpp b/src/render.cpp index 3b17f992..34580b5e 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -280,7 +280,7 @@ void Render::paintGL() { for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); - //drawBmeshBone(bm, bone); + drawBmeshBone(bm, bone); } /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); From 36ebce180b426a5648d9f9f9eb034bd30dcdcb5d Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 12:52:33 +0930 Subject: [PATCH 28/61] Update progress. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d60ad85..faadac41 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 26, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 31, 2016) *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. From c4287c548435931fbab4956b7d91eb2b5de0fe17 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 16:25:51 +0930 Subject: [PATCH 29/61] Draw inbetween mesh. --- src/bmesh.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++- src/bmesh.h | 1 + src/draw.cpp | 12 ++++++++ src/draw.h | 1 + src/render.cpp | 7 +++-- 5 files changed, 101 insertions(+), 4 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index e35b4013..7c75cfa7 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -537,6 +537,7 @@ static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, if (isDistanceEnoughForConvexHull(root, ball)) { return ball; } + ball->radius = 0; return bmeshFindParentBallForConvexHull(bm, root, depth - 1, bm->parentBallStack[depth - 1]); } @@ -593,7 +594,7 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type/* && 4 == ball->index*/) { + if (BMESH_BALL_TYPE_ROOT == ball->type) { convexHull *hull; bmeshBall *outmostBall = 0; int outmostBallFirstVertexIndex = 0; @@ -805,3 +806,84 @@ int bmeshStitch(bmesh *bm) { bm->roundColor++; return bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); } + +void calculateBallQuad(bmeshBall *ball, quad *q) { + vec3 z, y; + vec3Scale(&ball->localYaxis, ball->radius, &y); + vec3Scale(&ball->localZaxis, ball->radius, &z); + vec3Sub(&ball->position, &y, &q->pt[0]); + vec3Add(&q->pt[0], &z, &q->pt[0]); + vec3Sub(&ball->position, &y, &q->pt[1]); + vec3Sub(&q->pt[1], &z, &q->pt[1]); + vec3Add(&ball->position, &y, &q->pt[2]); + vec3Sub(&q->pt[2], &z, &q->pt[2]); + vec3Add(&ball->position, &y, &q->pt[3]); + vec3Add(&q->pt[3], &z, &q->pt[3]); +} + +static void drawWallsBetweenQuads(quad *q1, quad *q2) { + int i; + for (i = 0; i < 4; ++i) { + quad wall = {{q1->pt[i], q2->pt[i], + q2->pt[(i + 1) % 4], q1->pt[(i + 1) % 4]}}; + drawQuad(&wall); + } +} + +static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, + bmeshBall *ball) { + int result = 0; + bmeshBallIterator iterator; + bmeshBall *child = 0; + if (bm->roundColor == ball->roundColor) { + return 0; + } + ball->roundColor = bm->roundColor; + if (ball->radius > 0) { + quad currentFace; + calculateBallQuad(ball, ¤tFace); + if (parent && parent->radius > 0) { + quad parentFace; + calculateBallQuad(parent, &parentFace); + drawWallsBetweenQuads(&parentFace, ¤tFace); + child = bmeshGetBallFirstChild(bm, ball, &iterator); + if (!child) { + bmeshBall fakeParentParent = *parent; + bmeshBall fakeParent = *ball; + bmeshBall fakeBall; + for (;;) { + quad childFace; + fakeBall = fakeParent; + vec3Lerp(&fakeParentParent.position, &fakeParent.position, 2, + &fakeBall.position); + calculateBallQuad(&fakeBall, &childFace); + drawWallsBetweenQuads(¤tFace, &childFace); + if (vec3Distance(&ball->position, &fakeBall.position) >= + ball->radius) { + drawQuad(&childFace); + break; + } + fakeParentParent = fakeParent; + fakeParent = fakeBall; + } + } + } + } + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + result = bmeshGenerateInbetweenMeshFrom(bm, ball, child); + if (0 != result) { + fprintf(stderr, "%s:bmeshGenerateInbetweenMeshFrom failed.\n", + __FUNCTION__); + return result; + } + } + return result; +} + +int bmeshGenerateInbetweenMesh(bmesh *bm) { + bm->roundColor++; + return bmeshGenerateInbetweenMeshFrom(bm, 0, bmeshGetRootBall(bm)); +} + diff --git a/src/bmesh.h b/src/bmesh.h index 329e804f..86ac25b2 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -55,6 +55,7 @@ quad *bmeshGetQuad(bmesh *bm, int index); int bmeshAddQuad(bmesh *bm, quad *q); int bmeshSweep(bmesh *bm); int bmeshStitch(bmesh *bm); +int bmeshGenerateInbetweenMesh(bmesh *bm); #ifdef __cplusplus } diff --git a/src/draw.cpp b/src/draw.cpp index 54399fb2..c0ac49ef 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -35,6 +35,18 @@ void drawTriangle(triangle *poly) { glEnd(); } +void drawQuad(quad *poly) { + vec3 normal; + int i; + glBegin(GL_QUADS); + vec3Normal(&poly->pt[0], &poly->pt[1], &poly->pt[2], &normal); + for (i = 0; i < 4; ++i) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(poly->pt[i].x, poly->pt[i].y, poly->pt[i].z); + } + glEnd(); +} + int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, int stacks) { vec3 zAxis = {0, 0, 1}; diff --git a/src/draw.h b/src/draw.h index 2300bc25..742f3c9e 100644 --- a/src/draw.h +++ b/src/draw.h @@ -14,6 +14,7 @@ extern "C" { int drawInit(void); int drawSphere(vec3 *origin, float radius, int slices, int stacks); void drawTriangle(triangle *poly); +void drawQuad(quad *poly); int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, int stacks); int drawGrid(float size, float step); diff --git a/src/render.cpp b/src/render.cpp index 34580b5e..381d763d 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -42,7 +42,7 @@ static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - drawBmeshBall(bm, ball); + //drawBmeshBall(bm, ball); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -50,7 +50,7 @@ static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { } } -static int drawBmeshBallQuad(bmeshBall *ball) { +static void drawBmeshBallQuad(bmeshBall *ball) { vec3 normal; int j; vec3 z, y; @@ -262,6 +262,7 @@ void Render::paintGL() { bmeshGenerateInbetweenBalls(bm); bmeshSweep(bm); bmeshStitch(bm); + bmeshGenerateInbetweenMesh(bm); } drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); @@ -280,7 +281,7 @@ void Render::paintGL() { for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); - drawBmeshBone(bm, bone); + //drawBmeshBone(bm, bone); } /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); From 167a97e66a67c510b042e05fa2d48a2a9b1f08b1 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 21:34:56 +0930 Subject: [PATCH 30/61] Fix inbetween mesh normal. --- src/bmesh.c | 17 ++++++++++++++--- src/convexhull.c | 8 ++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 7c75cfa7..94433113 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -821,11 +821,22 @@ void calculateBallQuad(bmeshBall *ball, quad *q) { vec3Add(&q->pt[3], &z, &q->pt[3]); } -static void drawWallsBetweenQuads(quad *q1, quad *q2) { +static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { int i; + vec3 normal; + vec3 o2v; for (i = 0; i < 4; ++i) { quad wall = {{q1->pt[i], q2->pt[i], q2->pt[(i + 1) % 4], q1->pt[(i + 1) % 4]}}; + vec3Normal(&wall.pt[0], &wall.pt[1], &wall.pt[2], &normal); + vec3Sub(&wall.pt[0], origin, &o2v); + if (vec3DotProduct(&o2v, &normal) < 0) { + int j; + quad oldWall = wall; + for (j = 0; j < 4; ++j) { + wall.pt[j] = oldWall.pt[3 - j]; + } + } drawQuad(&wall); } } @@ -845,7 +856,7 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, if (parent && parent->radius > 0) { quad parentFace; calculateBallQuad(parent, &parentFace); - drawWallsBetweenQuads(&parentFace, ¤tFace); + drawWallsBetweenQuads(&ball->position, &parentFace, ¤tFace); child = bmeshGetBallFirstChild(bm, ball, &iterator); if (!child) { bmeshBall fakeParentParent = *parent; @@ -857,7 +868,7 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, vec3Lerp(&fakeParentParent.position, &fakeParent.position, 2, &fakeBall.position); calculateBallQuad(&fakeBall, &childFace); - drawWallsBetweenQuads(¤tFace, &childFace); + drawWallsBetweenQuads(&fakeBall.position, ¤tFace, &childFace); if (vec3Distance(&ball->position, &fakeBall.position) >= ball->radius) { drawQuad(&childFace); diff --git a/src/convexhull.c b/src/convexhull.c index e028de4b..3a47b082 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -573,10 +573,10 @@ int convexHullMergeTriangles(convexHull *hull) { f1->vertexNum = 4; f2->vertexNum = 0; //if (edgeIndex >= 12 && edgeIndex <= 12) { - drawDebugPoint((vec3 *)arrayGetItem( - hull->vertexArray, e->p1), edgeIndex); - drawDebugPoint((vec3 *)arrayGetItem( - hull->vertexArray, e->p2), edgeIndex); + // drawDebugPoint((vec3 *)arrayGetItem( + // hull->vertexArray, e->p1), edgeIndex); + // drawDebugPoint((vec3 *)arrayGetItem( + // hull->vertexArray, e->p2), edgeIndex); //} } } From 21e46e5e160548154630bec6f9e878fa56a950e4 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 31 Dec 2016 22:03:24 +0930 Subject: [PATCH 31/61] Match inbetween faces. --- src/bmesh.c | 25 +++++++++++++++++++++++++ src/draw.cpp | 8 ++++++++ src/render.cpp | 4 ++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 94433113..e9ffb4f6 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -807,6 +807,30 @@ int bmeshStitch(bmesh *bm) { return bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); } +static void rollQuadVertexs(quad *q) { + int i; + quad oldQuad = *q; + for (i = 0; i < 4; ++i) { + q->pt[i] = oldQuad.pt[(i + 1) % 4]; + } +} + +static void matchTwoFaces(quad *q1, quad *q2) { + int i; + float minDistance = 9999; + int matchTo = 0; + for (i = 0; i < 4; ++i) { + float distance = vec3Distance(&q1->pt[0], &q2->pt[i]); + if (distance < minDistance) { + minDistance = distance; + matchTo = i; + } + } + for (i = 0; i < matchTo; ++i) { + rollQuadVertexs(q2); + } +} + void calculateBallQuad(bmeshBall *ball, quad *q) { vec3 z, y; vec3Scale(&ball->localYaxis, ball->radius, &y); @@ -825,6 +849,7 @@ static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { int i; vec3 normal; vec3 o2v; + matchTwoFaces(q1, q2); for (i = 0; i < 4; ++i) { quad wall = {{q1->pt[i], q2->pt[i], q2->pt[(i + 1) % 4], q1->pt[(i + 1) % 4]}}; diff --git a/src/draw.cpp b/src/draw.cpp index c0ac49ef..2472ee35 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -38,6 +38,7 @@ void drawTriangle(triangle *poly) { void drawQuad(quad *poly) { vec3 normal; int i; + glColor3f(1.0, 1.0, 1.0); glBegin(GL_QUADS); vec3Normal(&poly->pt[0], &poly->pt[1], &poly->pt[2], &normal); for (i = 0; i < 4; ++i) { @@ -45,6 +46,13 @@ void drawQuad(quad *poly) { glVertex3f(poly->pt[i].x, poly->pt[i].y, poly->pt[i].z); } glEnd(); + glColor3f(0.0, 0.0, 0.0); + glBegin(GL_LINE_STRIP); + for (i = 0; i < 4; ++i) { + glVertex3f(poly->pt[i].x, poly->pt[i].y, poly->pt[i].z); + } + glVertex3f(poly->pt[0].x, poly->pt[0].y, poly->pt[0].z); + glEnd(); } int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, diff --git a/src/render.cpp b/src/render.cpp index 381d763d..095c71d6 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -42,7 +42,7 @@ static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - //drawBmeshBall(bm, ball); + drawBmeshBall(bm, ball); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -281,7 +281,7 @@ void Render::paintGL() { for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); - //drawBmeshBone(bm, bone); + drawBmeshBone(bm, bone); } /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); From 32057f4e4d6b3d0dff06b373742d5db34310f4b3 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 2 Jan 2017 12:02:30 +0930 Subject: [PATCH 32/61] Add Catmull-Clark subdivision algorithm. --- screenshot/dust3d_subdivide_catmull_clark.png | Bin 0 -> 190448 bytes src/subdivide.c | 750 ++++++++++++++++++ src/subdivide.h | 25 + 3 files changed, 775 insertions(+) create mode 100644 screenshot/dust3d_subdivide_catmull_clark.png create mode 100644 src/subdivide.c create mode 100644 src/subdivide.h diff --git a/screenshot/dust3d_subdivide_catmull_clark.png b/screenshot/dust3d_subdivide_catmull_clark.png new file mode 100644 index 0000000000000000000000000000000000000000..d082836d90cd4040be4747d576d673a85b6e068d GIT binary patch literal 190448 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 y{O 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 CcAX9Y literal 0 HcmV?d00001 diff --git a/src/subdivide.c b/src/subdivide.c new file mode 100644 index 00000000..64577fa0 --- /dev/null +++ b/src/subdivide.c @@ -0,0 +1,750 @@ +#include +#include +#include +#include "subdivide.h" +#include "draw.h" + +// +// Catmull Clark Subdivision +// Modified from https://rosettacode.org/wiki/Catmull%E2%80%93Clark_subdivision_surface/C +// + +typedef struct subdivLink { + int index; + int nextLink; +} subdivLink; + +typedef struct subdivVertex { + vec3 v; + vec3 avgNorm; + int index; + int newVertexIndex; + int edgeLink; + int edgeNum; + int faceLink; + int faceNum; + int indexOnNewModel; +} subdivVertex; + +typedef struct subdivEdge { + int index; + int faceLink; + int faceNum; + int v[2]; + int edgePt; + vec3 avg; +} subdivEdge; + +typedef struct subdivFace { + int index; + int edgeLink; + int edgeNum; + int vertexLink; + int vertexNum; + vec3 norm; + int avg; +} subdivFace; + +struct subdivModel { + array *vertexArray; + array *faceArray; + array *edgeArray; + array *indexArray; + int faceLink; + int faceNum; + int edgeLink; + int edgeNum; + int vertexLink; + int vertexNum; +}; + +static void initVertex(subdivVertex *v) { + memset(v, 0, sizeof(subdivVertex)); + v->newVertexIndex = -1; + v->edgeLink = -1; + v->faceLink = -1; + v->indexOnNewModel = -1; +}; + +static void initEdge(subdivEdge *e) { + memset(e, 0, sizeof(subdivEdge)); + e->faceLink = -1; + e->v[0] = -1; + e->v[0] = -1; + e->edgePt = -1; +} + +static void initFace(subdivFace *f) { + memset(f, 0, sizeof(subdivFace)); + f->edgeLink = -1; + f->vertexLink = -1; + f->avg = -1; +} + +subdivModel *subdivCreateModel(void) { + subdivModel *model = (subdivModel *)calloc(1, sizeof(subdivModel)); + if (!model) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + model->faceLink = -1; + model->edgeLink = -1; + model->vertexLink = -1; + model->vertexArray = arrayCreate(sizeof(subdivVertex)); + if (!model->vertexArray) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + model->faceArray = arrayCreate(sizeof(subdivFace)); + if (!model->faceArray) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + model->edgeArray = arrayCreate(sizeof(subdivEdge)); + if (!model->edgeArray) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + model->indexArray = arrayCreate(sizeof(subdivLink)); + if (!model->indexArray) { + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); + return 0; + } + return model; +} + +void subdivDestroyModel(subdivModel *model) { + arrayDestroy(model->vertexArray); + arrayDestroy(model->faceArray); + arrayDestroy(model->edgeArray); + arrayDestroy(model->indexArray); + free(model); +} + +static int allocLink(subdivModel *model, int index) { + subdivLink *linkItem; + int newLink = arrayGetLength(model->indexArray); + if (0 != arraySetLength(model->indexArray, newLink + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return -1; + } + linkItem = (subdivLink *)arrayGetItem(model->indexArray, newLink); + linkItem->index = index; + linkItem->nextLink = -1; + return newLink; +} + +static int subdivLinkElement(subdivModel *model, int current, int order) { + int i, iterator; + int element = -1; + subdivLink *linkItem; + iterator = current; + for (i = 0; i <= order && -1 != iterator; ++i) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + element = linkItem->index; + iterator = linkItem->nextLink; + } + return element; +} + +static int pushLink(subdivModel *model, int *link, int *num, int index) { + int newLink = allocLink(model, index); + int i, iterator; + subdivLink *linkItem = 0; + if (-1 == newLink) { + fprintf(stderr, "%s:allocLink failed.\n", __FUNCTION__); + return -1; + } + if (-1 != *link) { + iterator = *link; + for (i = 0; i < *num; ++i) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + iterator = linkItem->nextLink; + } + linkItem->nextLink = newLink; + } else { + *link = newLink; + } + (*num)++; + return 0; +} + +static subdivVertex *allocVertex(subdivModel *model) { + subdivVertex *vertex; + int newVertexIndex = arrayGetLength(model->vertexArray); + if (0 != arraySetLength(model->vertexArray, newVertexIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return 0; + } + vertex = arrayGetItem(model->vertexArray, newVertexIndex); + initVertex(vertex); + vertex->index = newVertexIndex; + if (0 != pushLink(model, &model->vertexLink, &model->vertexNum, + vertex->index)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + return vertex; +} + +static subdivEdge *allocEdge(subdivModel *model) { + subdivEdge *edge; + int newEdgeIndex = arrayGetLength(model->edgeArray); + if (0 != arraySetLength(model->edgeArray, newEdgeIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return 0; + } + edge = arrayGetItem(model->edgeArray, newEdgeIndex); + initEdge(edge); + edge->index = newEdgeIndex; + return edge; +} + +static subdivFace *allocFace(subdivModel *model) { + subdivFace *face; + int newFaceIndex = arrayGetLength(model->faceArray); + if (0 != arraySetLength(model->faceArray, newFaceIndex + 1)) { + fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); + return 0; + } + face = arrayGetItem(model->faceArray, newFaceIndex); + initFace(face); + face->index = newFaceIndex; + return face; +} + +static subdivVertex *getVertex(subdivModel *model, int index) { + if (-1 == index) { + return 0; + } + return (subdivVertex *)arrayGetItem(model->vertexArray, index); +} + +static subdivEdge *getEdge(subdivModel *model, int index) { + if (-1 == index) { + return 0; + } + return (subdivEdge *)arrayGetItem(model->edgeArray, index); +} + +static subdivFace *getFace(subdivModel *model, int index) { + if (-1 == index) { + return 0; + } + return (subdivFace *)arrayGetItem(model->faceArray, index); +} + +static int isHoleEdge(subdivModel *model, int e) { + return 1 == getEdge(model, e)->faceNum; +} + +static int isHoleVertex(subdivModel *model, int p) { + return getVertex(model, p)->faceNum != getVertex(model, p)->edgeNum; +} + +static int facePoint(subdivModel *model, int f); + +static int edgePoint(subdivModel *model, int e) { + int nv = getEdge(model, e)->edgePt; + if (-1 == nv) { + subdivVertex *newVertex = allocVertex(model); + if (!newVertex) { + fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); + return 0; + } + nv = newVertex->index; + getEdge(model, e)->edgePt = nv; + getEdge(model, e)->avg = getVertex(model, getEdge(model, e)->v[0])->v; + vec3Add(&getEdge(model, e)->avg, + &getVertex(model, getEdge(model, e)->v[1])->v, &getEdge(model, e)->avg); + getVertex(model, nv)->v = getEdge(model, e)->avg; + if (!isHoleEdge(model, e)) { + int iterator; + iterator = getEdge(model, e)->faceLink; + while (-1 != iterator) { + int f; + int fp; + subdivLink *linkItem = (subdivLink *)arrayGetItem(model->indexArray, + iterator); + f = linkItem->index; + iterator = linkItem->nextLink; + fp = facePoint(model, f); + if (-1 == fp) { + fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); + return 0; + } + vec3Add(&getVertex(model, nv)->v, &getVertex(model, fp)->v, + &getVertex(model, nv)->v); + } + vec3Scale(&getVertex(model, nv)->v, 1.0 / 4, &getVertex(model, nv)->v); + } else { + vec3Scale(&getVertex(model, nv)->v, 1.0 / 2, &getVertex(model, nv)->v); + } + vec3Scale(&getEdge(model, e)->avg, 1.0 / 2, &getEdge(model, e)->avg); + } + return nv; +} + +static int facePoint(subdivModel *model, int f) { + int nv = getFace(model, f)->avg; + if (-1 == nv) { + int iterator; + subdivVertex *newVertex = allocVertex(model); + if (!newVertex) { + fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); + return 0; + } + nv = newVertex->index; + getFace(model, f)->avg = nv; + iterator = getFace(model, f)->vertexLink; + while (-1 != iterator) { + int p; + subdivLink *linkItem = (subdivLink *)arrayGetItem(model->indexArray, + iterator); + p = linkItem->index; + iterator = linkItem->nextLink; + if (getFace(model, f)->vertexLink == iterator) { + getVertex(model, nv)->v = getVertex(model, p)->v; + } else { + vec3Add(&getVertex(model, nv)->v, &getVertex(model, p)->v, + &getVertex(model, nv)->v); + } + } + vec3Scale(&getVertex(model, nv)->v, 1.0 / (getFace(model, f)->vertexNum), + &getVertex(model, nv)->v); + } + return nv; +} + +static void scaleAdd(vec3 *a, vec3 *b, float scale, vec3 *result) { + vec3 tmp; + vec3Scale(b, scale, &tmp); + vec3Add(a, &tmp, result); +} + +static int updatedPoint(subdivModel *model, int p) { + int n = 0; + int iterator; + subdivVertex *newVertex; + int facePt; + int e; + subdivFace *f; + subdivLink *link; + int nv; + int ep; + vec3 sum = {0, 0, 0}; + + nv = getVertex(model, p)->newVertexIndex; + if (-1 != nv) { + return nv; + } + + newVertex = allocVertex(model); + if (!newVertex) { + fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); + return 0; + } + nv = newVertex->index; + getVertex(model, p)->newVertexIndex = nv; + if (isHoleVertex(model, p)) { + getVertex(model, nv)->v = getVertex(model, p)->v; + iterator = getVertex(model, p)->edgeLink; + while (-1 != iterator) { + link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + e = link->index; + iterator = link->nextLink; + if (!isHoleEdge(model, e)) { + continue; + } + ep = edgePoint(model, e); + if (-1 == ep) { + fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); + return 0; + } + vec3Add(&getVertex(model, nv)->v, &getVertex(model, ep)->v, + &getVertex(model, nv)->v); + n++; + } + vec3Scale(&getVertex(model, nv)->v, 1.0 / (n + 1), + &getVertex(model, nv)->v); + } else { + n = getVertex(model, p)->faceNum; + iterator = getVertex(model, p)->faceLink; + while (-1 != iterator) { + link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + f = link->index; + iterator = link->nextLink; + facePt = facePoint(model, f); + if (-1 == facePt) { + fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); + return 0; + } + vec3Add(&sum, &getVertex(model, facePt)->v, &sum); + } + iterator = getVertex(model, p)->edgeLink; + while (-1 != iterator) { + link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + e = link->index; + iterator = link->nextLink; + ep = edgePoint(model, e); + if (-1 == ep) { + fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); + return 0; + } + scaleAdd(&sum, &getVertex(model, ep)->v, 2, &sum); + } + vec3Scale(&sum, 1.0 / n, &sum); + scaleAdd(&sum, &getVertex(model, p)->v, n - 3, &sum); + vec3Scale(&sum, 1.0 / n, &sum); + getVertex(model, nv)->v = sum; + } + + return nv; +} + +static int subdivCalculteNorms(subdivModel *model) { + int i, j, n; + int faceIterator; + int nextFaceIterator; + int vertexIterator; + int nextVertexIterator; + subdivFace *f; + subdivLink *linkItem; + subdivVertex *v; + subdivVertex *v0; + subdivVertex *v1; + vec3 d1, d2, norm; + + faceIterator = model->faceLink; + j = 0; + while (-1 != faceIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + f = getFace(model, linkItem->index); + nextFaceIterator = linkItem->nextLink; + vertexIterator = f->vertexLink; + n = f->vertexNum; + i = 0; + while (-1 != vertexIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + f = getFace(model, linkItem->index); + linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + v = getVertex(model, linkItem->index); + vertexIterator = linkItem->nextLink; + v0 = getVertex(model, + subdivLinkElement(model, f->vertexLink, i ? i - 1 : n - 1)); + v1 = getVertex(model, + subdivLinkElement(model, f->vertexLink, (i + 1) % n)); + vec3Sub(&v->v, &v0->v, &d1); + vec3Sub(&v1->v, &v->v, &d2); + vec3CrossProduct(&d1, &d2, &norm); + vec3Add(&f->norm, &norm, &f->norm); + ++i; + } + if (i > 1) { + vec3Normalize(&f->norm); + } + faceIterator = nextFaceIterator; + ++j; + } + + vertexIterator = model->vertexLink; + while (-1 != vertexIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + v = getVertex(model, linkItem->index); + nextVertexIterator = linkItem->nextLink; + faceIterator = v->faceLink; + j = 0; + while (-1 != faceIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + f = getFace(model, linkItem->index); + faceIterator = linkItem->nextLink; + vec3Add(&v->avgNorm, &f->norm, &v->avgNorm); + ++j; + } + if (j > 1) { + vec3Normalize(&v->avgNorm); + } + vertexIterator = nextVertexIterator; + } + + return 0; +} + +static void drawModel(subdivModel *model) { + subdivLink *linkItem; + subdivFace *f; + subdivVertex *v; + int faceIterator; + int vertexIterator; + faceIterator = model->faceLink; + glColor3f(1.0, 1.0, 1.0); + while (-1 != faceIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + f = getFace(model, linkItem->index); + faceIterator = linkItem->nextLink; + vertexIterator = f->vertexLink; + glBegin(GL_POLYGON); + while (-1 != vertexIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + v = getVertex(model, linkItem->index); + vertexIterator = linkItem->nextLink; + glNormal3fv(&(f->norm.x)); + glVertex3fv(&(v->v.x)); + } + glEnd(); + } +} + +subdivModel *subdivCatmullClark(subdivModel *model) { + int j, ai, bi, ci, di; + int a, b, c, d; + int faceIterator; + int nextFaceIterator; + int vertexIterator; + int f; + subdivLink *linkItem; + int p; + subdivModel *outputModel; + + outputModel = subdivCreateModel(); + if (!outputModel) { + fprintf(stderr, "%s:subdivCreateModel failed.\n", __FUNCTION__); + return 0; + } + + faceIterator = model->faceLink; + while (-1 != faceIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + f = linkItem->index; + j = 0; + nextFaceIterator = linkItem->nextLink; + vertexIterator = getFace(model, f)->vertexLink; + while (-1 != vertexIterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + p = linkItem->index; + vertexIterator = linkItem->nextLink; + ai = updatedPoint(model, p); + if (-1 == ai) { + fprintf(stderr, "%s:updatedPoint failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + bi = edgePoint(model, subdivLinkElement(model, + getFace(model, f)->edgeLink, (j + 1) % getFace(model, f)->edgeNum)); + if (-1 == bi) { + fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + ci = facePoint(model, f); + if (-1 == ci) { + fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + di = edgePoint(model, subdivLinkElement(model, + getFace(model, f)->edgeLink, j)); + if (-1 == di) { + fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + a = getVertex(model, ai)->indexOnNewModel; + if (-1 == a) { + a = subdivAddVertex(outputModel, &getVertex(model, ai)->v); + getVertex(model, ai)->indexOnNewModel = a; + } + b = getVertex(model, bi)->indexOnNewModel; + if (-1 == b) { + b = subdivAddVertex(outputModel, &getVertex(model, bi)->v); + getVertex(model, bi)->indexOnNewModel = b; + } + c = getVertex(model, ci)->indexOnNewModel; + if (-1 == c) { + c = subdivAddVertex(outputModel, &getVertex(model, ci)->v); + getVertex(model, ci)->indexOnNewModel = c; + } + d = getVertex(model, di)->indexOnNewModel; + if (-1 == d) { + d = subdivAddVertex(outputModel, &getVertex(model, di)->v); + getVertex(model, di)->indexOnNewModel = d; + } + if (-1 == a || -1 == b || -1 == c || -1 == d) { + fprintf(stderr, "%s:subdivAddVertex failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + if (-1 == subdivAddQuadFace(outputModel, a, b, c, d)) { + fprintf(stderr, "%s:subdivAddFace failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + ++j; + } + faceIterator = nextFaceIterator; + } + + if (0 != subdivCalculteNorms(outputModel)) { + fprintf(stderr, "%s:subdivCalculteNorms failed.\n", __FUNCTION__); + subdivDestroyModel(outputModel); + return 0; + } + + return outputModel; +} + +int subdivAddVertex(subdivModel *model, vec3 *v) { + subdivVertex *newVertex = allocVertex(model); + if (!newVertex) { + fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); + return -1; + } + newVertex->v = *v; + return newVertex->index; +} + +static int subdivAddEdge(subdivModel *model, int p1, int p2) { + subdivEdge *newEdge = allocEdge(model); + subdivVertex *v1; + subdivVertex *v2; + if (!newEdge) { + fprintf(stderr, "%s:allocEdge failed.\n", __FUNCTION__); + return -1; + } + newEdge->v[0] = p1; + newEdge->v[1] = p2; + v1 = getVertex(model, p1); + v2 = getVertex(model, p2); + if (-1 == pushLink(model, &v1->edgeLink, &v1->edgeNum, newEdge->index)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + if (-1 == pushLink(model, &v2->edgeLink, &v2->edgeNum, newEdge->index)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + if (-1 == pushLink(model, &model->edgeLink, &model->edgeNum, newEdge->index)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + return newEdge->index; +} + +static int subdivEdgeByVertexs(subdivModel *model, int p1, int p2) { + subdivLink *linkItem; + subdivEdge *e; + subdivVertex *v1 = getVertex(model, p1); + int newEdgeIndex; + int iterator = v1->edgeLink; + while (-1 != iterator) { + linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + e = getEdge(model, linkItem->index); + iterator = linkItem->nextLink; + if (e->v[0] == p2 || e->v[1] == p2) { + return e->index; + } + } + newEdgeIndex = subdivAddEdge(model, p1, p2); + return newEdgeIndex; +} + +static int subdivAddFace(subdivModel *model, int *vertexs, int vertexNum) { + int i; + subdivFace *f = allocFace(model); + int p0, p1; + int newFaceIndex; + int edgeIndex; + if (!f) { + fprintf(stderr, "%s:allocFace failed.\n", __FUNCTION__); + return -1; + } + newFaceIndex = f->index; + if (0 != pushLink(model, &model->faceLink, &model->faceNum, newFaceIndex)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + p0 = vertexs[0]; + for (i = 1; i <= vertexNum; ++i, p0 = p1) { + subdivVertex *v1; + subdivEdge *e; + p1 = vertexs[i % vertexNum]; + v1 = getVertex(model, p1); + if (0 != pushLink(model, &v1->faceLink, &v1->faceNum, newFaceIndex)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + edgeIndex = subdivEdgeByVertexs(model, p0, p1); + if (-1 == edgeIndex) { + fprintf(stderr, "%s:subdivEdgeByVertexs failed.\n", __FUNCTION__); + return -1; + } + e = getEdge(model, edgeIndex); + if (0 != pushLink(model, &e->faceLink, &e->faceNum, newFaceIndex)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + f = getFace(model, newFaceIndex); + if (0 != pushLink(model, &f->edgeLink, &f->edgeNum, edgeIndex)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + if (0 != pushLink(model, &f->vertexLink, &f->vertexNum, p1)) { + fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); + return -1; + } + } + return newFaceIndex; +} + +int subdivAddTriangleFace(subdivModel *model, int p1, int p2, int p3) { + int vertexs[3] = {p1, p2, p3}; + return subdivAddFace(model, vertexs, 3); +} + +int subdivAddQuadFace(subdivModel *model, int p1, int p2, int p3, int p4) { + int vertexs[4] = {p1, p2, p3, p4}; + return subdivAddFace(model, vertexs, 4); +} + +int subdivAddCube(subdivModel *model) { + int x, y, z; + for (x = -1; x <= 1; x += 2) { + for (y = -1; y <= 1; y += 2) { + for (z = -1; z <= 1; z += 2) { + vec3 v = {x, y, z}; + subdivAddVertex(model, &v); + } + } + } + subdivAddQuadFace(model, 0, 1, 3, 2); + subdivAddQuadFace(model, 6, 7, 5, 4); + subdivAddQuadFace(model, 4, 5, 1, 0); + subdivAddQuadFace(model, 2, 3, 7, 6); + subdivAddQuadFace(model, 0, 2, 6, 4); + subdivAddQuadFace(model, 5, 7, 3, 1); + subdivCalculteNorms(model); + return 0; +} + +subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops) { + int i; + subdivModel *outputModel; + outputModel = subdivCatmullClark(model); + if (!outputModel) { + fprintf(stderr, "%s:subdivCatmullClark failed.\n", __FUNCTION__); + return 0; + } + for (i = 1; i < loops; ++i) { + subdivModel *loopInput = outputModel; + outputModel = subdivCatmullClark(loopInput); + subdivDestroyModel(loopInput); + if (!outputModel) { + fprintf(stderr, "%s:subdivCatmullClark failed(loops:%d i:%d).\n", + __FUNCTION__, loops, i); + return 0; + } + } + drawDebugPrintf("faces: %d", outputModel->faceNum); + drawModel(outputModel); + return outputModel; +} diff --git a/src/subdivide.h b/src/subdivide.h new file mode 100644 index 00000000..8bbff092 --- /dev/null +++ b/src/subdivide.h @@ -0,0 +1,25 @@ +#ifndef SUBDIVIDE_H +#define SUBDIVIDE_H +#include "array.h" +#include "3dstruct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct subdivModel subdivModel; + +subdivModel *subdivCreateModel(void); +void subdivDestroyModel(subdivModel *model); +int subdivAddVertex(subdivModel *model, vec3 *v); +int subdivAddTriangleFace(subdivModel *model, int p1, int p2, int p3); +int subdivAddQuadFace(subdivModel *model, int p1, int p2, int p3, int p4); +subdivModel *subdivCatmullClark(subdivModel *model); +subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops); +int subdivAddCube(subdivModel *model); + +#ifdef __cplusplus +} +#endif + +#endif From 68cb7d499fa6dd9316aaccba6f1170e866f1d65b Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 2 Jan 2017 12:03:54 +0930 Subject: [PATCH 33/61] Update progress. --- README.md | 7 +++- build/dust3d.pro | 6 ++-- src/3dstruct.h | 1 + src/convexhull.c | 7 ++-- src/hashtable.c | 10 +++--- src/render.cpp | 93 +++++++++++++++++++++++++++--------------------- src/vector3d.c | 6 ++++ src/vector3d.h | 1 + 8 files changed, 79 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index faadac41..89b0826c 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,8 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Dec 31, 2016) +- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Jan 02, 2017) +There is a implementation of [B-Mesh algorithm in C++](https://github.com/evanw/cs224final) language, but I want the pure C version, so I start to implement my own version. I read both paper and this implementation, it gave me very helpful understanding of this algorithm. *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. Draw the cylinder which connects two shape balls is more difficult, I need do some math to rotate it. [Here](http://www.thjsmith.com/40/cylinder-between-two-points-opengl-c) described it. @@ -55,10 +56,14 @@ I created the test nodes's geometry information from Blender. Here is the render When I am implementing the B-Mesh algorithm, I am also think in the future, how to create a library of bunch of initial base models. There is a paper [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) described how to generate skeleton from mesh, this is the reverse progress of what I am doing, I think it can resolve the problem of insufficient initial base models, I can generate from tons of existed models. *Convex Hull* After finish the rotation at the two connected bones, I need implement 3D Convex Hull algorithm at the joint ball, there are so many methods to get the convex hull, I found the [Gift wrapping](http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf) is the most strait-forward one, though is not the most efficient one. +There is a good implementation of [Gift Wrapping algorithm written in lua](https://github.com/danielhst/3d-Hull-gift-wrap/blob/master/giftWrap.lua) language. When I was implementing, I first translated this version to C language, but maybe there are some bugs on my own translation, there are lots of repeated faces, so changed a little, the code now is not just the translation of the original lua version. *Stitching* I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. +*Catmull-Clark Subdivision* + +There is a implementation of Catmull-Clark Subdivision algorithm on [rosettacode](https://rosettacode.org/wiki/Catmull%E2%80%93Clark_subdivision_surface/C), the code is very simple and beautiful, just lack of some memory alloc fail check. I translated the algorithm to use my own array implementation. - [ ] Export Wavefront .obj - [ ] Render B-Mesh result - [ ] Design UI for monster parts configuration diff --git a/build/dust3d.pro b/build/dust3d.pro index 930d75a2..53e8137f 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -17,7 +17,8 @@ SOURCES += main.cpp \ matrix.c \ convexhull.c \ hashtable.c \ - osutil.cpp + osutil.cpp \ + subdivide.c HEADERS += mainwindow.h \ render.h \ @@ -29,4 +30,5 @@ HEADERS += mainwindow.h \ convexhull.h \ hashtable.h \ 3dstruct.h \ - osutil.h \ No newline at end of file + osutil.h \ + subdivide.h \ No newline at end of file diff --git a/src/3dstruct.h b/src/3dstruct.h index 1e0bcb79..8c8362fe 100644 --- a/src/3dstruct.h +++ b/src/3dstruct.h @@ -1,6 +1,7 @@ #ifndef _3DSTRUCT_H #define _3DSTRUCT_H #include "vector3d.h" +#include "array.h" typedef struct { vec3 pt[3]; diff --git a/src/convexhull.c b/src/convexhull.c index 3a47b082..4849901d 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -539,9 +539,8 @@ int convexHullMergeTriangles(convexHull *hull) { e->score = (int)angle; //if (edgeIndex >= 12 && edgeIndex <= 12) { // angle = (int)vec3Angle(&f1normal, &f2normal); - // drawDebugPrintf("edgeIndex:%d angle:%f normal1:<%f,%f,%f> normal2:<%f,%f,%f>", - // edgeIndex, angle, f1normal.x, f1normal.y, f1normal.z, - // f2normal.x, f2normal.y, f2normal.z); + drawDebugPrintf("edgeIndex:%d angle:%f", + edgeIndex, angle); //} } } @@ -564,7 +563,7 @@ int convexHullMergeTriangles(convexHull *hull) { convexHullFace *f2 = (convexHullFace *)arrayGetItem(hull->faceArray, e->face2); if (3 == f1->vertexNum && 3 == f2->vertexNum) { - if (e->score <= 0) { + if (e->score <= 40) { while (e->p1 == f1->u.t.indices[0] || e->p2 == f1->u.t.indices[0]) { rollTriangleIndices((face3 *)f1); } diff --git a/src/hashtable.c b/src/hashtable.c index d6ad7c45..08ee1274 100644 --- a/src/hashtable.c +++ b/src/hashtable.c @@ -31,18 +31,18 @@ hashtable *hashtableCreate(int bucketSize, void *userData) { hashtable *ht = (hashtable *)calloc(1, sizeof(hashtable)); if (!ht) { - fprintf(stderr, "%s:Insufficient memory.", __FUNCTION__); + fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return 0; } ht->keyArray = arrayCreate(sizeof(hashtableKey)); if (!ht->keyArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); hashtableDestroy(ht); return 0; } ht->entryArray = arrayCreate(sizeof(hashtableEntry)); if (!ht->entryArray) { - fprintf(stderr, "%s:arrayCreate failed.", __FUNCTION__); + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); hashtableDestroy(ht); return 0; } @@ -51,7 +51,7 @@ hashtable *hashtableCreate(int bucketSize, ht->compareCallback = compareCallback; ht->userData = userData; if (0 != arraySetLength(ht->keyArray, bucketSize)) { - fprintf(stderr, "%s:arraySetLength failed(bucketSize:%d).", __FUNCTION__, + fprintf(stderr, "%s:arraySetLength failed(bucketSize:%d).\n", __FUNCTION__, bucketSize); hashtableDestroy(ht); return 0; @@ -98,7 +98,7 @@ int hashtableInsert(hashtable *ht, const void *node) { } newEntryIndex = arrayGetLength(ht->entryArray); if (0 != arraySetLength(ht->entryArray, newEntryIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed(newEntryIndex:%d).", + fprintf(stderr, "%s:arraySetLength failed(newEntryIndex:%d).\n", __FUNCTION__, newEntryIndex); return -1; } diff --git a/src/render.cpp b/src/render.cpp index 095c71d6..8e0dddf7 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -7,6 +7,7 @@ #include "bmesh.h" #include "matrix.h" #include "vector3d.h" +#include "subdivide.h" static const float bmeshBallColors[][4] { {0.00, 0.78, 1.00, 0.5}, @@ -212,7 +213,7 @@ void Render::initializeGL() { drawInit(); } -#include "../data/bmesh_test_2.h" +#include "../data/bmesh_test_1.h" void Render::paintGL() { bmesh *bm = 0; @@ -235,8 +236,17 @@ void Render::paintGL() { drawGrid(10, 1); glEnable(GL_LIGHTING); + + { + subdivModel *input = subdivCreateModel(); + subdivModel *output; + subdivAddCube(input); + output = subdivCatmullClarkWithLoops(input, 2); + subdivDestroyModel(input); + subdivDestroyModel(output); + } - if (0 == bm) { + if (0 && 0 == bm) { bmeshBall ball; bmeshBone bone; int i; @@ -264,50 +274,53 @@ void Render::paintGL() { bmeshStitch(bm); bmeshGenerateInbetweenMesh(bm); } + + if (bm) { - drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); + drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); - //glBegin(GL_QUADS); - drawBmeshBallQuadRecursively(bm, bmeshGetRootBall(bm)); - //glEnd(); + //glBegin(GL_QUADS); + drawBmeshBallQuadRecursively(bm, bmeshGetRootBall(bm)); + //glEnd(); - { - int index; - /* - for (index = 0; index < bmeshGetBallNum(bm); ++index) { - bmeshBall *ball = bmeshGetBall(bm, index); - drawBmeshBall(bm, ball); - }*/ - - for (index = 0; index < bmeshGetBoneNum(bm); ++index) { - bmeshBone *bone = bmeshGetBone(bm, index); - drawBmeshBone(bm, bone); - } - /* - glColor4f(1.0f, 1.0f, 1.0f, 0.5); - glBegin(GL_QUADS); - for (index = 0; index < bmeshGetQuadNum(bm); ++index) { - quad *q = bmeshGetQuad(bm, index); - vec3 normal; - int j; - vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); - for (j = 0; j < 4; ++j) { - glNormal3f(normal.x, normal.y, normal.z); - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + { + int index; + /* + for (index = 0; index < bmeshGetBallNum(bm); ++index) { + bmeshBall *ball = bmeshGetBall(bm, index); + drawBmeshBall(bm, ball); + }*/ + + for (index = 0; index < bmeshGetBoneNum(bm); ++index) { + bmeshBone *bone = bmeshGetBone(bm, index); + drawBmeshBone(bm, bone); } - } - glEnd(); - glColor3f(0.0f, 0.0f, 0.0f); - for (index = 0; index < bmeshGetQuadNum(bm); ++index) { - quad *q = bmeshGetQuad(bm, index); - int j; - glBegin(GL_LINE_STRIP); - for (j = 0; j < 4; ++j) { - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + /* + glColor4f(1.0f, 1.0f, 1.0f, 0.5); + glBegin(GL_QUADS); + for (index = 0; index < bmeshGetQuadNum(bm); ++index) { + quad *q = bmeshGetQuad(bm, index); + vec3 normal; + int j; + vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); + for (j = 0; j < 4; ++j) { + glNormal3f(normal.x, normal.y, normal.z); + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } } - glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); glEnd(); - }*/ + glColor3f(0.0f, 0.0f, 0.0f); + for (index = 0; index < bmeshGetQuadNum(bm); ++index) { + quad *q = bmeshGetQuad(bm, index); + int j; + glBegin(GL_LINE_STRIP); + for (j = 0; j < 4; ++j) { + glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); + } + glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); + glEnd(); + }*/ + } } glPopMatrix(); diff --git a/src/vector3d.c b/src/vector3d.c index 44c0e76b..8fbe3c75 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -137,3 +137,9 @@ float vec3TriangleArea(vec3 *a, vec3 *b, vec3 *c) { vec3CrossProduct(&ab, &ac, &cross); return vec3Length(&cross) * 0.5; } + +void vec3Negative(vec3 *a, vec3 *result) { + result->x = -a->x; + result->y = -a->y; + result->z = -a->z; +} diff --git a/src/vector3d.h b/src/vector3d.h index 0b23356b..0b1c45a8 100644 --- a/src/vector3d.h +++ b/src/vector3d.h @@ -26,6 +26,7 @@ void vec3RotateAlong(vec3 *a, float angle, vec3 *axis, vec3 *result); float vec3Angle(vec3 *a, vec3 *b); void vec3ProjectOver(vec3 *a, vec3 *over, vec3 *result); float vec3TriangleArea(vec3 *a, vec3 *b, vec3 *c); +void vec3Negative(vec3 *a, vec3 *result); #ifdef __cplusplus } From 2f022b337c10bd291441fb84b306816cab5a371c Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 2 Jan 2017 18:20:05 +0930 Subject: [PATCH 34/61] Make sure all cross sections on the convex hull. --- src/array.c | 9 ++ src/array.h | 1 + src/bmesh.c | 254 ++++++++++++++++++++++++++++++++++++----------- src/bmesh.h | 2 + src/convexhull.c | 48 ++++----- src/convexhull.h | 10 +- src/render.cpp | 8 +- 7 files changed, 247 insertions(+), 85 deletions(-) diff --git a/src/array.c b/src/array.c index 2654d40b..813350c1 100644 --- a/src/array.c +++ b/src/array.c @@ -57,3 +57,12 @@ void arrayDestroy(array *arr) { free(arr); } } + +void *arrayNewItem(array *arr) { + int newIndex = arrayGetLength(arr); + if (0 != arraySetLength(arr, newIndex + 1)) { + fprintf(stderr, "%s:arraySetLength.\n", __FUNCTION__); + return 0; + } + return arrayGetItem(arr, newIndex); +} diff --git a/src/array.h b/src/array.h index 0fa4fabe..8ab8350d 100644 --- a/src/array.h +++ b/src/array.h @@ -11,6 +11,7 @@ array *arrayCreate(int nodeSize); void *arrayGetItem(array *arr, int index); int arrayGetLength(array *arr); int arraySetLength(array *arr, int length); +void *arrayNewItem(array *arr); void arrayDestroy(array *arr); #ifdef __cplusplus diff --git a/src/bmesh.c b/src/bmesh.c index e9ffb4f6..710db922 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -10,7 +10,6 @@ #include "convexhull.h" #include "draw.h" -#define BMESH_STEP_DISTANCE 0.2 #define BMESH_MAX_PARENT_BALL_DEPTH 1000 typedef struct bmeshBallIndex { @@ -92,6 +91,7 @@ int bmeshAddBall(bmesh *bm, bmeshBall *ball) { ball->index = index; ball->firstChildIndex = -1; ball->childrenIndices = 0; + ball->notFitHull = 0; if (0 != arraySetLength(bm->ballArray, index + 1)) { fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); return -1; @@ -235,12 +235,11 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, bmeshBall *firstBall = bmeshGetBall(bm, firstBallIndex); bmeshBall *secondBall = bmeshGetBall(bm, secondBallIndex); bmeshBall *newBall; + float intvalDist; if (secondBall->roundColor == bm->roundColor) { return 0; } - step = BMESH_STEP_DISTANCE; - vec3Sub(&firstBall->position, &secondBall->position, &boneDirection); normalizedBoneDirection = boneDirection; vec3Normalize(&normalizedBoneDirection); @@ -261,15 +260,17 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, boneDirection.z); */ + intvalDist = (firstBall->radius + secondBall->radius) / 3; + step = intvalDist; distance = vec3Length(&boneDirection); - if (distance > BMESH_STEP_DISTANCE) { + if (distance > intvalDist) { float offset; - int calculatedStepCount = (int)(distance / BMESH_STEP_DISTANCE); - float remaining = distance - BMESH_STEP_DISTANCE * calculatedStepCount; + int calculatedStepCount = (int)(distance / intvalDist); + float remaining = distance - intvalDist * calculatedStepCount; step += remaining / calculatedStepCount; offset = step; if (offset < distance) { - while (offset < distance && offset + BMESH_STEP_DISTANCE <= distance) { + while (offset < distance && offset + intvalDist <= distance) { float frac = offset / distance; parentBallIndex = bmeshAddInbetweenBallBetween(bm, firstBall, secondBall, frac, parentBallIndex); @@ -508,7 +509,7 @@ int bmeshSweep(bmesh *bm) { static int isDistanceEnoughForConvexHull(bmeshBall *root, bmeshBall *ball) { float distance = vec3Distance(&root->position, &ball->position); - if (distance >= root->radius + BMESH_STEP_DISTANCE) { + if (distance >= root->radius) { return 1; } return 0; @@ -518,14 +519,13 @@ static bmeshBall *bmeshFindChildBallForConvexHull(bmesh *bm, bmeshBall *root, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - if (isDistanceEnoughForConvexHull(root, ball)) { + if (!ball->notFitHull && isDistanceEnoughForConvexHull(root, ball)) { return ball; } child = bmeshGetBallFirstChild(bm, ball, &iterator); if (!child) { return ball; } - ball->radius = 0; return bmeshFindChildBallForConvexHull(bm, root, child); } @@ -534,15 +534,14 @@ static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, if (depth <= 0) { return ball; } - if (isDistanceEnoughForConvexHull(root, ball)) { + if (!ball->notFitHull && isDistanceEnoughForConvexHull(root, ball)) { return ball; } - ball->radius = 0; return bmeshFindParentBallForConvexHull(bm, root, depth - 1, bm->parentBallStack[depth - 1]); } -static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, +static int addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, bmeshBall **outmostBall, int *outmostBallFirstVertexIndex) { vec3 z, y; quad q; @@ -560,10 +559,19 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, vec3Add(&ballForConvexHull->position, &y, &q.pt[3]); vec3Add(&q.pt[3], &z, &q.pt[3]); - vertexIndex[0] = convexHullAddVertex(hull, &q.pt[0], ballForConvexHull->index, 0); - vertexIndex[1] = convexHullAddVertex(hull, &q.pt[1], ballForConvexHull->index, 1); - vertexIndex[2] = convexHullAddVertex(hull, &q.pt[2], ballForConvexHull->index, 2); - vertexIndex[3] = convexHullAddVertex(hull, &q.pt[3], ballForConvexHull->index, 3); + vertexIndex[0] = convexHullAddVertex(hull, &q.pt[0], + ballForConvexHull->index, 0); + vertexIndex[1] = convexHullAddVertex(hull, &q.pt[1], + ballForConvexHull->index, 1); + vertexIndex[2] = convexHullAddVertex(hull, &q.pt[2], + ballForConvexHull->index, 2); + vertexIndex[3] = convexHullAddVertex(hull, &q.pt[3], + ballForConvexHull->index, 3); + if (-1 == vertexIndex[0] || -1 == vertexIndex[1] || -1 == vertexIndex[2] || + -1 == vertexIndex[3]) { + fprintf(stderr, "%s:convexHullAddVertex failed.\n", __FUNCTION__); + return -1; + } if (*outmostBall) { if (ballForConvexHull->radius > (*outmostBall)->radius) { @@ -576,17 +584,162 @@ static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, *outmostBall = ballForConvexHull; *outmostBallFirstVertexIndex = vertexIndex[0]; } + + return 0; } #include "osutil.h" int showFaceIndex = 10000000; static long long lastShowFaceIndexIncTime = 0; -static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { - int result = 0; +static convexHull *createConvexHullForBall(bmesh *bm, int depth, + bmeshBall *ball, int *needRetry) { + convexHull *hull; bmeshBallIterator iterator; bmeshBall *child; bmeshBall *ballForConvexHull; + bmeshBall *outmostBall = 0; + int outmostBallFirstVertexIndex = 0; + array *ballPtrArray; + bmeshBall **ballPtr; + int i; + int hasVertexNotFitOnHull = 0; + + *needRetry = 0; + + ballPtrArray = arrayCreate(sizeof(bmeshBall *)); + if (!ballPtrArray) { + fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); + return 0; + } + hull = convexHullCreate(); + if (!hull) { + fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + return 0; + } + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); + child; + child = bmeshGetBallNextChild(bm, ball, &iterator)) { + ballForConvexHull = bmeshFindChildBallForConvexHull(bm, ball, child); + ballPtr = (bmeshBall **)arrayNewItem(ballPtrArray); + if (!ballPtr) { + fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + *ballPtr = ballForConvexHull; + if (-1 == addBallToHull(hull, ballForConvexHull, + &outmostBall, &outmostBallFirstVertexIndex)) { + fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } + if (depth > 0 && depth - 1 < BMESH_MAX_PARENT_BALL_DEPTH) { + ballForConvexHull = bmeshFindParentBallForConvexHull(bm, ball, depth - 1, + bm->parentBallStack[depth - 1]); + ballPtr = (bmeshBall **)arrayNewItem(ballPtrArray); + if (!ballPtr) { + fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + *ballPtr = ballForConvexHull; + if (-1 == addBallToHull(hull, ballForConvexHull, + &outmostBall, &outmostBallFirstVertexIndex)) { + fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } + if (outmostBall) { + if (-1 == convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, + outmostBallFirstVertexIndex + 1, outmostBallFirstVertexIndex + 2)) { + fprintf(stderr, "%s:convexHullAddTodo failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } + + for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { + bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); + ballItem->flagForHull = 0; + } + + if (-1 == convexHullGenerate(hull)) { + fprintf(stderr, "%s:convexHullGenerate failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + + convexHullUnifyNormals(hull, &ball->position); + convexHullMergeTriangles(hull); + + for (i = 0; i < convexHullGetFaceNum(hull); ++i) { + convexHullFace *f = (convexHullFace *)convexHullGetFace(hull, i); + if (-1 != f->plane) { + bmeshBall *ballItem = (bmeshBall *)arrayGetItem(bm->ballArray, f->plane); + ballItem->flagForHull = 1; + f->vertexNum = 0; + } + } + + for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { + bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); + if (!ballItem->flagForHull) { + hasVertexNotFitOnHull = 1; + if (!ballItem->notFitHull) { + *needRetry = 1; + ballItem->notFitHull = 1; + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } + } + + /* + if (!hasVertexNotFitOnHull) { + for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { + bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); + if (-1 == ballItem->countsForHull[0] || + ballItem->countsForHull[0] != ballItem->countsForHull[1] || + ballItem->countsForHull[1] != ballItem->countsForHull[2] || + ballItem->countsForHull[2] != ballItem->countsForHull[3]) { + hasVertexNotFitOnHull = 1; + if (!ballItem->notFitHull) { + *needRetry = 1; + ballItem->notFitHull = 1; + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } + } + }*/ + + if (hasVertexNotFitOnHull) { + fprintf(stderr, "%s:hasVertexNotFitOnHull.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + + arrayDestroy(ballPtrArray); + return hull; +} + +static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { + bmeshBallIterator iterator; + bmeshBall *child; + int result = 0; if (bm->roundColor == ball->roundColor) { return 0; } @@ -594,38 +747,20 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type) { - convexHull *hull; - bmeshBall *outmostBall = 0; - int outmostBallFirstVertexIndex = 0; - hull = convexHullCreate(); - if (!hull) { - fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); - return -1; + if (BMESH_BALL_TYPE_ROOT == ball->type/* && 2 == ball->index*/) { + convexHull *hull = 0; + + for (;;) { + int needRetry = 0; + hull = createConvexHullForBall(bm, depth, ball, &needRetry); + if (hull) { + break; + } + if (!needRetry) { + break; + } } - glColor3f(0.0, 0.0, 0.0); - drawDebugPrintf("root <%f,%f,%f>", ball->position.x, - ball->position.y, ball->position.z); - for (child = bmeshGetBallFirstChild(bm, ball, &iterator); - child; - child = bmeshGetBallNextChild(bm, ball, &iterator)) { - ballForConvexHull = bmeshFindChildBallForConvexHull(bm, ball, child); - addBallToHull(hull, ballForConvexHull, - &outmostBall, &outmostBallFirstVertexIndex); - } - if (depth > 0 && depth - 1 < BMESH_MAX_PARENT_BALL_DEPTH) { - ballForConvexHull = bmeshFindParentBallForConvexHull(bm, ball, depth - 1, - bm->parentBallStack[depth - 1]); - addBallToHull(hull, ballForConvexHull, - &outmostBall, &outmostBallFirstVertexIndex); - } - if (outmostBall) { - convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, - outmostBallFirstVertexIndex + 1, outmostBallFirstVertexIndex + 2); - } - convexHullGenerate(hull); - convexHullUnifyNormals(hull, &ball->position); - convexHullMergeTriangles(hull); + glPushMatrix(); /* @@ -649,6 +784,7 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { } }*/ + if (hull) { int triIndex; for (triIndex = 0; triIndex < convexHullGetFaceNum(hull); @@ -658,9 +794,9 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { if (3 == face->vertexNum) { triangle tri; int j; - tri.pt[0] = *convexHullGetVertex(hull, face->u.t.indices[0]); - tri.pt[1] = *convexHullGetVertex(hull, face->u.t.indices[1]); - tri.pt[2] = *convexHullGetVertex(hull, face->u.t.indices[2]); + tri.pt[0] = convexHullGetVertex(hull, face->u.t.indices[0])->pt; + tri.pt[1] = convexHullGetVertex(hull, face->u.t.indices[1])->pt; + tri.pt[2] = convexHullGetVertex(hull, face->u.t.indices[2])->pt; if (triIndex >= showFaceIndex) { break; @@ -680,10 +816,10 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { quad q; vec3 normal; int j; - q.pt[0] = *convexHullGetVertex(hull, face->u.q.indices[0]); - q.pt[1] = *convexHullGetVertex(hull, face->u.q.indices[1]); - q.pt[2] = *convexHullGetVertex(hull, face->u.q.indices[2]); - q.pt[3] = *convexHullGetVertex(hull, face->u.q.indices[3]); + q.pt[0] = convexHullGetVertex(hull, face->u.q.indices[0])->pt; + q.pt[1] = convexHullGetVertex(hull, face->u.q.indices[1])->pt; + q.pt[2] = convexHullGetVertex(hull, face->u.q.indices[2])->pt; + q.pt[3] = convexHullGetVertex(hull, face->u.q.indices[3])->pt; glColor3f(1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); @@ -788,7 +924,9 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { }*/ glPopMatrix(); - convexHullDestroy(hull); + if (hull) { + convexHullDestroy(hull); + } } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; diff --git a/src/bmesh.h b/src/bmesh.h index 86ac25b2..273d8693 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -26,6 +26,8 @@ typedef struct { vec3 localYaxis; vec3 localZaxis; int roundColor; + int notFitHull; + int flagForHull; } bmeshBall; typedef int bmeshBallIterator; diff --git a/src/convexhull.c b/src/convexhull.c index 4849901d..b1afb175 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -14,19 +14,14 @@ #define FACE3_HASHTABLE_SIZE 100 #define EDGE_HASHTABLE_SIZE 100 -typedef struct { - vec3 pt; - int plane; - int orderOnPlane; -} convexHullVertex; - typedef struct { int p1; int p2; int hill1; int hill2; vec3 hill1Normal; - int score; + int angleBetweenFaces; + int angleWithLevel; int face1; int face2; } edge; @@ -265,13 +260,17 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, convexHullVertex *vtx2; convexHullVertex *vtx3; int newTri; + int facePlane = -1; + vtx1 = (convexHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); vtx2 = (convexHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); vtx3 = (convexHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); if (vtx1->plane == vtx2->plane && vtx1->plane == vtx3->plane) { - return 0; + facePlane = vtx1->plane; } + + /* if (vtx1->plane == vtx2->plane) { if (!isInAdjacentOrder(vtx1->orderOnPlane, vtx2->orderOnPlane)) { return 0; @@ -286,7 +285,7 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, if (!isInAdjacentOrder(vtx2->orderOnPlane, vtx3->orderOnPlane)) { return 0; } - } + }*/ memset(&hull->findFace3, 0, sizeof(hull->findFace3)); hull->findFace3.indices[0] = firstVertex; @@ -302,6 +301,7 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, } tri = (face3 *)arrayGetItem(hull->faceArray, newTri); ((convexHullFace *)tri)->vertexNum = 3; + ((convexHullFace *)tri)->plane = facePlane; *tri = hull->findFace3; if (0 != hashtableInsert(hull->face3Hashtable, (char *)0 + newTri + 1)) { @@ -486,9 +486,13 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { } static int sortEdgeByScore(const void *first, const void *second) { - edge *e1 = (edge *)first; - edge *e2 = (edge *)second; - return e1->score - e2->score; + edge *e1 = (edge *)first; + edge *e2 = (edge *)second; + int result = e1->angleBetweenFaces - e2->angleBetweenFaces; + if (0 == result) { + result = e2->angleWithLevel - e1->angleWithLevel; + } + return result; } static void rollTriangleIndices(face3 *face) { @@ -512,7 +516,7 @@ int convexHullMergeTriangles(convexHull *hull) { //face3 *f2 = (face3 *)arrayGetItem(hull->faceArray, e->face2); vec3 f1normal; vec3 f2normal; - float angle; + const vec3 yAxis = {0, 1, 0}; /* convexHullVertex *f1p1 = (convexHullVertex *)arrayGetItem( hull->vertexArray, f1->indices[0]); @@ -533,15 +537,12 @@ int convexHullMergeTriangles(convexHull *hull) { vec3 *v2 = (vec3 *)arrayGetItem(hull->vertexArray, e->p2); vec3 *vHill1 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill1); vec3 *vHill2 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill2); + vec3 v12; + vec3Sub(v1, v2, &v12); vec3Normal(v1, vHill1, v2, &f1normal); vec3Normal(v2, vHill2, v1, &f2normal); - angle = (int)vec3Angle(&f1normal, &f2normal); - e->score = (int)angle; - //if (edgeIndex >= 12 && edgeIndex <= 12) { - // angle = (int)vec3Angle(&f1normal, &f2normal); - drawDebugPrintf("edgeIndex:%d angle:%f", - edgeIndex, angle); - //} + e->angleBetweenFaces = (int)vec3Angle(&f1normal, &f2normal); + e->angleWithLevel = (int)vec3Angle(&v12, (vec3 *)&yAxis); } } @@ -563,7 +564,8 @@ int convexHullMergeTriangles(convexHull *hull) { convexHullFace *f2 = (convexHullFace *)arrayGetItem(hull->faceArray, e->face2); if (3 == f1->vertexNum && 3 == f2->vertexNum) { - if (e->score <= 40) { + if (e->angleBetweenFaces <= 40 && + f1->plane == f2->plane) { while (e->p1 == f1->u.t.indices[0] || e->p2 == f1->u.t.indices[0]) { rollTriangleIndices((face3 *)f1); } @@ -595,10 +597,10 @@ convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex) { return face; } -vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex) { +convexHullVertex *convexHullGetVertex(convexHull *hull, int vertexIndex) { convexHullVertex *vertex = (convexHullVertex *)arrayGetItem( hull->vertexArray, vertexIndex); - return &vertex->pt; + return vertex; } int convexHullGetFaceNum(convexHull *hull) { diff --git a/src/convexhull.h b/src/convexhull.h index d1defca8..2c5db4e3 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -3,14 +3,22 @@ #include "3dstruct.h" typedef struct convexHull convexHull; + typedef struct { union { face4 q; face3 t; } u; int vertexNum; + int plane; } convexHullFace; +typedef struct { + vec3 pt; + int plane; + int orderOnPlane; +} convexHullVertex; + convexHull *convexHullCreate(void); int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane); @@ -20,7 +28,7 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin); int convexHullMergeTriangles(convexHull *hull); int convexHullGetFaceNum(convexHull *hull); convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex); -vec3 *convexHullGetVertex(convexHull *hull, int vertexIndex); +convexHullVertex *convexHullGetVertex(convexHull *hull, int vertexIndex); int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); #endif diff --git a/src/render.cpp b/src/render.cpp index 8e0dddf7..56ff86d4 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -213,7 +213,7 @@ void Render::initializeGL() { drawInit(); } -#include "../data/bmesh_test_1.h" +#include "../data/bmesh_test_2.h" void Render::paintGL() { bmesh *bm = 0; @@ -237,6 +237,7 @@ void Render::paintGL() { glEnable(GL_LIGHTING); + /* { subdivModel *input = subdivCreateModel(); subdivModel *output; @@ -245,8 +246,9 @@ void Render::paintGL() { subdivDestroyModel(input); subdivDestroyModel(output); } + */ - if (0 && 0 == bm) { + if (0 == bm) { bmeshBall ball; bmeshBone bone; int i; @@ -272,7 +274,7 @@ void Render::paintGL() { bmeshGenerateInbetweenBalls(bm); bmeshSweep(bm); bmeshStitch(bm); - bmeshGenerateInbetweenMesh(bm); + //bmeshGenerateInbetweenMesh(bm); } if (bm) { From 026ef777af10f10f2b8503cc2dba677d1e55c53b Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 2 Jan 2017 22:38:53 +0930 Subject: [PATCH 35/61] Fix rotate on elbow nodes. --- src/bmesh.c | 145 ++++++++----------------------------------------- src/bmesh.h | 1 + src/render.cpp | 2 +- 3 files changed, 25 insertions(+), 123 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 710db922..436c86f0 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -213,11 +213,11 @@ static void generateYZfromBoneDirection(vec3 *boneDirection, vec3 *localYaxis, vec3 *localZaxis) { vec3 worldYaxis = {0, 1, 0}; vec3 worldXaxis = {1, 0, 0}; - if (0 == vec3Angle(boneDirection, &worldYaxis)) { - vec3CrossProduct(&worldXaxis, boneDirection, localYaxis); - } else { + //if (0 == vec3Angle(boneDirection, &worldYaxis)) { + // vec3CrossProduct(&worldXaxis, boneDirection, localYaxis); + //} else { vec3CrossProduct(&worldYaxis, boneDirection, localYaxis); - } + //} vec3Normalize(localYaxis); vec3CrossProduct(localYaxis, boneDirection, localZaxis); vec3Normalize(localZaxis); @@ -246,20 +246,6 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, generateYZfromBoneDirection(&boneDirection, &localYaxis, &localZaxis); - /* - glColor3f(0.0, 0.0, 0.0); - drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> <%f,%f,%f>", - localYaxis.x, - localYaxis.y, - localYaxis.z, - localZaxis.x, - localZaxis.y, - localZaxis.z, - boneDirection.x, - boneDirection.y, - boneDirection.z); - */ - intvalDist = (firstBall->radius + secondBall->radius) / 3; step = intvalDist; distance = vec3Length(&boneDirection); @@ -420,73 +406,18 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { &rotateAxis); vec3Normalize(&rotateAxis); rotateAngle = vec3Angle(&parent->boneDirection, &child->boneDirection); - /* - if (1 || 11 == ball->index || 20 == ball->index) { - glColor3f(0.0, 0.0, 0.0); - drawDebugPrintf("<%f,%f,%f> <%f,%f,%f> <%f,%f,%f> rotateAngle:%f", - parent->boneDirection.x, - parent->boneDirection.y, - parent->boneDirection.z, - child->boneDirection.x, - child->boneDirection.y, - child->boneDirection.z, - rotateAxis.x, - rotateAxis.y, - rotateAxis.z, - rotateAngle); - }*/ - rotateAngle *= 0.5; - - /* - if (11 == ball->index) { - glPushMatrix(); - //glTranslatef(parent->position.x, parent->position.y, parent->position.z); - glColor3f(1.0, 0.0, 1.0); - glBegin(GL_LINES); - glVertex3f(0, 0, 0); - glVertex3f(parent->boneDirection.x, parent->boneDirection.y, - parent->boneDirection.z); - glEnd(); - glPopMatrix(); - - glPushMatrix(); - //glTranslatef(child->position.x, child->position.y, child->position.z); - glColor3f(0.0, 1.0, 1.0); - glBegin(GL_LINES); - glVertex3f(0, 0, 0); - glVertex3f(child->boneDirection.x, child->boneDirection.y, - child->boneDirection.z); - glEnd(); - glPopMatrix(); - - glPushMatrix(); - //glTranslatef(ball->position.x, ball->position.y, ball->position.z); - glColor3f(1.0, 0.0, 0.0); - glBegin(GL_LINES); - glVertex3f(0, 0, 0); - glVertex3f(rotateAxis.x, rotateAxis.y, rotateAxis.z); - glEnd(); - glPopMatrix(); - }*/ - ball->boneDirection = parent->boneDirection; + rotateAxis.y = 0; + rotateAngle *= 0.5; vec3RotateAlong(&ball->boneDirection, rotateAngle, &rotateAxis, &ball->boneDirection); generateYZfromBoneDirection(&ball->boneDirection, &ball->localYaxis, &ball->localZaxis); - } else { - // TODO: } } else { ball->boneDirection = parent->boneDirection; generateYZfromBoneDirection(&ball->boneDirection, &ball->localYaxis, &ball->localZaxis); - /* - vec3CrossProduct(&worldYaxis, &ball->boneDirection, &ball->localYaxis); - vec3Normalize(&ball->localYaxis); - vec3CrossProduct(&ball->localYaxis, &ball->boneDirection, - &ball->localZaxis); - vec3Normalize(&ball->localZaxis);*/ } } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); @@ -526,6 +457,7 @@ static bmeshBall *bmeshFindChildBallForConvexHull(bmesh *bm, bmeshBall *root, if (!child) { return ball; } + ball->radius = 0; return bmeshFindChildBallForConvexHull(bm, root, child); } @@ -537,6 +469,7 @@ static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, if (!ball->notFitHull && isDistanceEnoughForConvexHull(root, ball)) { return ball; } + ball->radius = 0; return bmeshFindParentBallForConvexHull(bm, root, depth - 1, bm->parentBallStack[depth - 1]); } @@ -705,26 +638,6 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, } } - /* - if (!hasVertexNotFitOnHull) { - for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { - bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); - if (-1 == ballItem->countsForHull[0] || - ballItem->countsForHull[0] != ballItem->countsForHull[1] || - ballItem->countsForHull[1] != ballItem->countsForHull[2] || - ballItem->countsForHull[2] != ballItem->countsForHull[3]) { - hasVertexNotFitOnHull = 1; - if (!ballItem->notFitHull) { - *needRetry = 1; - ballItem->notFitHull = 1; - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } - } - } - }*/ - if (hasVertexNotFitOnHull) { fprintf(stderr, "%s:hasVertexNotFitOnHull.\n", __FUNCTION__); arrayDestroy(ballPtrArray); @@ -747,7 +660,7 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type/* && 2 == ball->index*/) { + if (BMESH_BALL_TYPE_ROOT == ball->type) { convexHull *hull = 0; for (;;) { @@ -763,27 +676,6 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { glPushMatrix(); - /* - if (lastShowFaceIndexIncTime + 0 < osGetMilliseconds()) { - if (17 == showFaceIndex) { - if (lastShowFaceIndexIncTime + 0 < osGetMilliseconds()) { - if (showFaceIndex > convexHullGetFace3Num(hull)) { - showFaceIndex = 0; - } else { - showFaceIndex++; - } - lastShowFaceIndexIncTime = osGetMilliseconds(); - } - } else { - if (showFaceIndex > convexHullGetFace3Num(hull)) { - showFaceIndex = 0; - } else { - showFaceIndex++; - } - lastShowFaceIndexIncTime = osGetMilliseconds(); - } - }*/ - if (hull) { int triIndex; @@ -942,6 +834,7 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { int bmeshStitch(bmesh *bm) { bm->roundColor++; + memset(bm->parentBallStack, 0, sizeof(bm->parentBallStack)); return bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); } @@ -1004,23 +897,30 @@ static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { } } -static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, +static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, bmeshBall *ball) { int result = 0; bmeshBallIterator iterator; bmeshBall *child = 0; + bmeshBall *parent; if (bm->roundColor == ball->roundColor) { return 0; } + if (depth < BMESH_MAX_PARENT_BALL_DEPTH) { + bm->parentBallStack[depth] = ball; + } ball->roundColor = bm->roundColor; - if (ball->radius > 0) { + if (depth - 1 >= 0 && (ball->radius > 0 || ball->flagForHull) && + !ball->notFitHull) { quad currentFace; calculateBallQuad(ball, ¤tFace); - if (parent && parent->radius > 0) { + parent = bm->parentBallStack[depth - 1]; + child = bmeshGetBallFirstChild(bm, ball, &iterator); + if (parent) { quad parentFace; + ball->inbetweenMesh = 1; calculateBallQuad(parent, &parentFace); drawWallsBetweenQuads(&ball->position, &parentFace, ¤tFace); - child = bmeshGetBallFirstChild(bm, ball, &iterator); if (!child) { bmeshBall fakeParentParent = *parent; bmeshBall fakeParent = *ball; @@ -1046,7 +946,7 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshGenerateInbetweenMeshFrom(bm, ball, child); + result = bmeshGenerateInbetweenMeshFrom(bm, depth + 1, child); if (0 != result) { fprintf(stderr, "%s:bmeshGenerateInbetweenMeshFrom failed.\n", __FUNCTION__); @@ -1058,6 +958,7 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, bmeshBall *parent, int bmeshGenerateInbetweenMesh(bmesh *bm) { bm->roundColor++; + memset(bm->parentBallStack, 0, sizeof(bm->parentBallStack)); return bmeshGenerateInbetweenMeshFrom(bm, 0, bmeshGetRootBall(bm)); } diff --git a/src/bmesh.h b/src/bmesh.h index 273d8693..6b7e1810 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -28,6 +28,7 @@ typedef struct { int roundColor; int notFitHull; int flagForHull; + int inbetweenMesh; } bmeshBall; typedef int bmeshBallIterator; diff --git a/src/render.cpp b/src/render.cpp index 56ff86d4..9e1af242 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -274,7 +274,7 @@ void Render::paintGL() { bmeshGenerateInbetweenBalls(bm); bmeshSweep(bm); bmeshStitch(bm); - //bmeshGenerateInbetweenMesh(bm); + bmeshGenerateInbetweenMesh(bm); } if (bm) { From 76ef1bed33f6308480299992fc208fe891d992af Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 2 Jan 2017 23:05:19 +0930 Subject: [PATCH 36/61] Apply convex hull on key ball. --- src/bmesh.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 436c86f0..10c31152 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -11,6 +11,7 @@ #include "draw.h" #define BMESH_MAX_PARENT_BALL_DEPTH 1000 +#define BMESH_INTVAL_DIST_DIV 10 typedef struct bmeshBallIndex { int ballIndex; @@ -246,7 +247,7 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, generateYZfromBoneDirection(&boneDirection, &localYaxis, &localZaxis); - intvalDist = (firstBall->radius + secondBall->radius) / 3; + intvalDist = (firstBall->radius + secondBall->radius) / BMESH_INTVAL_DIST_DIV; step = intvalDist; distance = vec3Length(&boneDirection); if (distance > intvalDist) { @@ -551,6 +552,15 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, arrayDestroy(ballPtrArray); return 0; } + if (BMESH_BALL_TYPE_KEY == ball->type) { + if (-1 == addBallToHull(hull, ball, + &outmostBall, &outmostBallFirstVertexIndex)) { + fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); + arrayDestroy(ballPtrArray); + convexHullDestroy(hull); + return 0; + } + } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -660,7 +670,8 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type) { + if (BMESH_BALL_TYPE_ROOT == ball->type || + BMESH_BALL_TYPE_KEY == ball->type) { convexHull *hull = 0; for (;;) { From a8b4d162b78e95b8b6cd8fbcd811a3de2e867bd8 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 3 Jan 2017 21:53:45 +0930 Subject: [PATCH 37/61] Fix inbetween mesh. --- src/bmesh.c | 172 ++++++++++++++++--------------------------------- src/bmesh.h | 3 +- src/render.cpp | 4 +- 3 files changed, 60 insertions(+), 119 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 10c31152..3a7ea7f6 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -451,6 +451,9 @@ static bmeshBall *bmeshFindChildBallForConvexHull(bmesh *bm, bmeshBall *root, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; + if (ball->convexHullCount) { + return ball; + } if (!ball->notFitHull && isDistanceEnoughForConvexHull(root, ball)) { return ball; } @@ -464,7 +467,7 @@ static bmeshBall *bmeshFindChildBallForConvexHull(bmesh *bm, bmeshBall *root, static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, int depth, bmeshBall *ball) { - if (depth <= 0) { + if (depth <= 0 || ball->convexHullCount) { return ball; } if (!ball->notFitHull && isDistanceEnoughForConvexHull(root, ball)) { @@ -655,6 +658,15 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, return 0; } + for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { + bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); + ballItem->convexHullCount++; + drawDebugPrintf("convexHullCount:%d", ballItem->convexHullCount); + if (ballItem->convexHullCount == 1) { + drawDebugPoint(&ballItem->position, ballItem->index); + } + } + arrayDestroy(ballPtrArray); return hull; } @@ -670,8 +682,9 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (BMESH_BALL_TYPE_ROOT == ball->type || - BMESH_BALL_TYPE_KEY == ball->type) { + if ((BMESH_BALL_TYPE_ROOT == ball->type || + BMESH_BALL_TYPE_KEY == ball->type) && + bmeshGetBallFirstChild(bm, ball, &iterator)) { convexHull *hull = 0; for (;;) { @@ -743,89 +756,6 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { } } - /* - glColor3f(0.0f, 0.0f, 0.0f); - { - int triIndex; - int j; - for (triIndex = 0; triIndex < convexHullGetFaceNum(hull); - ++triIndex) { - convexHullFace *face = (convexHullFace *)convexHullGetFace(hull, - triIndex); - if (3 == face->vertexNum) { - triangle tri; - tri.pt[0] = *convexHullGetVertex(hull, face->u.t.indices[0]); - tri.pt[1] = *convexHullGetVertex(hull, face->u.t.indices[1]); - tri.pt[2] = *convexHullGetVertex(hull, face->u.t.indices[2]); - glBegin(GL_LINE_STRIP); - for (j = 0; j < 3; ++j) { - glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); - } - glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); - glEnd(); - } else if () - } - }*/ - - /* - glColor3f(1.0f, 1.0f, 1.0f); - { - int triIndex; - for (triIndex = 0; triIndex < tri2QuadGetTriangleNum(t2q); - ++triIndex) { - triangle *tri = (triangle *)tri2QuadGetTriangle(t2q, triIndex); - drawTriangle(tri); - } - } - glColor3f(0.0f, 0.0f, 0.0f); - { - int triIndex; - int j; - for (triIndex = 0; triIndex < tri2QuadGetTriangleNum(t2q); - ++triIndex) { - triangle *tri = (triangle *)tri2QuadGetTriangle(t2q, triIndex); - glBegin(GL_LINE_STRIP); - for (j = 0; j < 3; ++j) { - glVertex3f(tri->pt[j].x, tri->pt[j].y, tri->pt[j].z); - } - glVertex3f(tri->pt[0].x, tri->pt[0].y, tri->pt[0].z); - glEnd(); - } - } - - glColor3f(1.0f, 1.0f, 1.0f); - { - int quadIndex; - glBegin(GL_QUADS); - for (quadIndex = 0; quadIndex < tri2QuadGetQuadNum(t2q); - ++quadIndex) { - quad *q = (quad *)tri2QuadGetQuad(t2q, quadIndex); - vec3 normal; - int j; - vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); - for (j = 0; j < 4; ++j) { - glNormal3f(normal.x, normal.y, normal.z); - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); - } - } - glEnd(); - } - glColor3f(0.0f, 0.0f, 0.0f); - { - int quadIndex; - int j; - for (quadIndex = 0; quadIndex < tri2QuadGetQuadNum(t2q); - ++quadIndex) { - quad *q = (quad *)tri2QuadGetQuad(t2q, quadIndex); - glBegin(GL_LINE_STRIP); - for (j = 0; j < 4; ++j) { - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); - } - glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); - glEnd(); - } - }*/ - glPopMatrix(); if (hull) { convexHullDestroy(hull); @@ -908,12 +838,26 @@ static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { } } +static bmeshBall *bmeshFindChildBallForInbetweenMesh(bmesh *bm, bmeshBall *ball) { + bmeshBallIterator iterator; + bmeshBall *child; + if (ball->convexHullCount > 0) { + return ball; + } + child = bmeshGetBallFirstChild(bm, ball, &iterator); + if (!child) { + return ball; + } + return bmeshFindChildBallForInbetweenMesh(bm, child); +} + static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, bmeshBall *ball) { int result = 0; bmeshBallIterator iterator; bmeshBall *child = 0; bmeshBall *parent; + quad currentFace, childFace; if (bm->roundColor == ball->roundColor) { return 0; } @@ -921,37 +865,33 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, bm->parentBallStack[depth] = ball; } ball->roundColor = bm->roundColor; - if (depth - 1 >= 0 && (ball->radius > 0 || ball->flagForHull) && - !ball->notFitHull) { - quad currentFace; - calculateBallQuad(ball, ¤tFace); - parent = bm->parentBallStack[depth - 1]; + calculateBallQuad(ball, ¤tFace); + if (BMESH_BALL_TYPE_KEY == ball->type && + !bmeshGetBallFirstChild(bm, ball, &iterator)) { + if (depth - 1 >= 0) { + bmeshBall fakeBall; + parent = bm->parentBallStack[depth - 1]; + fakeBall = *ball; + vec3Lerp(&parent->position, &ball->position, BMESH_INTVAL_DIST_DIV, + &fakeBall.position); + calculateBallQuad(&fakeBall, &childFace); + drawWallsBetweenQuads(&ball->position, ¤tFace, &childFace); + drawQuad(&childFace); + } + } + else if (1 == ball->convexHullCount && !ball->meshGenerated) { child = bmeshGetBallFirstChild(bm, ball, &iterator); - if (parent) { - quad parentFace; - ball->inbetweenMesh = 1; - calculateBallQuad(parent, &parentFace); - drawWallsBetweenQuads(&ball->position, &parentFace, ¤tFace); - if (!child) { - bmeshBall fakeParentParent = *parent; - bmeshBall fakeParent = *ball; - bmeshBall fakeBall; - for (;;) { - quad childFace; - fakeBall = fakeParent; - vec3Lerp(&fakeParentParent.position, &fakeParent.position, 2, - &fakeBall.position); - calculateBallQuad(&fakeBall, &childFace); - drawWallsBetweenQuads(&fakeBall.position, ¤tFace, &childFace); - if (vec3Distance(&ball->position, &fakeBall.position) >= - ball->radius) { - drawQuad(&childFace); - break; - } - fakeParentParent = fakeParent; - fakeParent = fakeBall; - } - } + if (child && !child->meshGenerated) { + //if (vec3Distance(&ball->position, &child->position) <= + // (ball->radius + child->radius) / 10) { + // TODO: merge two face + //} else { + child = bmeshFindChildBallForInbetweenMesh(bm, child); + calculateBallQuad(child, &childFace); + drawWallsBetweenQuads(&ball->position, ¤tFace, &childFace); + //} + ball->meshGenerated = 1; + child->meshGenerated = 1; } } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); diff --git a/src/bmesh.h b/src/bmesh.h index 6b7e1810..c33fee2c 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -28,7 +28,8 @@ typedef struct { int roundColor; int notFitHull; int flagForHull; - int inbetweenMesh; + int convexHullCount; + int meshGenerated; } bmeshBall; typedef int bmeshBallIterator; diff --git a/src/render.cpp b/src/render.cpp index 9e1af242..dc5d374d 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -43,7 +43,7 @@ static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - drawBmeshBall(bm, ball); + //drawBmeshBall(bm, ball); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -295,7 +295,7 @@ void Render::paintGL() { for (index = 0; index < bmeshGetBoneNum(bm); ++index) { bmeshBone *bone = bmeshGetBone(bm, index); - drawBmeshBone(bm, bone); + //drawBmeshBone(bm, bone); } /* glColor4f(1.0f, 1.0f, 1.0f, 0.5); From fcb4868d28bbfe40a8c61ab7ad084b66016384a8 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 3 Jan 2017 22:01:42 +0930 Subject: [PATCH 38/61] Fix tiangle merge direction. --- src/convexhull.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/convexhull.c b/src/convexhull.c index b1afb175..97ee21f6 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -21,7 +21,7 @@ typedef struct { int hill2; vec3 hill1Normal; int angleBetweenFaces; - int angleWithLevel; + int angleWithY; int face1; int face2; } edge; @@ -490,7 +490,7 @@ static int sortEdgeByScore(const void *first, const void *second) { edge *e2 = (edge *)second; int result = e1->angleBetweenFaces - e2->angleBetweenFaces; if (0 == result) { - result = e2->angleWithLevel - e1->angleWithLevel; + result = e1->angleWithY - e2->angleWithY; } return result; } @@ -542,7 +542,7 @@ int convexHullMergeTriangles(convexHull *hull) { vec3Normal(v1, vHill1, v2, &f1normal); vec3Normal(v2, vHill2, v1, &f2normal); e->angleBetweenFaces = (int)vec3Angle(&f1normal, &f2normal); - e->angleWithLevel = (int)vec3Angle(&v12, (vec3 *)&yAxis); + e->angleWithY = (int)vec3Angle(&v12, (vec3 *)&yAxis); } } From c271354ab13a796b0ec45d0c157645b8210631bb Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 4 Jan 2017 08:13:01 +0930 Subject: [PATCH 39/61] Input model to subdivision. --- src/bmesh.c | 244 ++++++++++++++++++++++++++++++++++++----------- src/bmesh.h | 2 + src/convexhull.c | 6 +- src/render.cpp | 28 ++---- src/subdivide.c | 20 ++-- src/subdivide.h | 2 + 6 files changed, 214 insertions(+), 88 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index 3a7ea7f6..fb2c9d62 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -6,18 +6,26 @@ #include #include "bmesh.h" #include "array.h" +#include "hashtable.h" #include "matrix.h" #include "convexhull.h" +#include "subdivide.h" #include "draw.h" -#define BMESH_MAX_PARENT_BALL_DEPTH 1000 -#define BMESH_INTVAL_DIST_DIV 10 +#define BMESH_MAX_PARENT_BALL_DEPTH 1000 +#define BMESH_INTVAL_DIST_DIV 10 +#define BMESH_MODEL_VERTEX_HASHTABLE_SIZE 100 typedef struct bmeshBallIndex { int ballIndex; int nextChildIndex; } bmeshBallIndex; +typedef struct bmeshModelVertex { + vec3 vertex; + int indexOnModel; +} bmeshModelVertex; + struct bmesh { array *ballArray; array *boneArray; @@ -26,8 +34,103 @@ struct bmesh { int rootBallIndex; int roundColor; bmeshBall *parentBallStack[BMESH_MAX_PARENT_BALL_DEPTH]; + subdivModel *model; + subdivModel *subdivModel; + array *modelVertexArray; + hashtable *modelVertexHashtable; + bmeshModelVertex findModelVertex; }; +static int cantorPair(int k1, int k2) { + return (k1 + k2) * (k1 + k2 + 1) / 2 + k2; +} + +static bmeshModelVertex *bmeshFindModelVertex(bmesh *bm, vec3 *vertex) { + int index; + bm->findModelVertex.vertex = *vertex; + index = (char *)hashtableGet(bm->modelVertexHashtable, (char *)0) - (char *)0; + if (0 == index) { + return 0; + } + return (bmeshModelVertex *)arrayGetItem(bm->modelVertexArray, index - 1); +} + +static int bmeshAddModelVertex(bmesh *bm, vec3 *vertex) { + bmeshModelVertex *v = bmeshFindModelVertex(bm, vertex); + if (!v) { + v = (bmeshModelVertex *)arrayNewItem(bm->modelVertexArray); + if (!v) { + fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); + return -1; + } + memset(v, 0, sizeof(bmeshModelVertex)); + v->vertex = *vertex; + v->indexOnModel = subdivAddVertex(bm->model, &v->vertex); + } + return v->indexOnModel; +} + +static int bmeshAddQuadToModel(bmesh *bm, quad *q) { + int indices[4]; + indices[0] = bmeshAddModelVertex(bm, &q->pt[0]); + indices[1] = bmeshAddModelVertex(bm, &q->pt[1]); + indices[2] = bmeshAddModelVertex(bm, &q->pt[2]); + indices[3] = bmeshAddModelVertex(bm, &q->pt[3]); + if (-1 == indices[0] || -1 == indices[1] || -1 == indices[2] || + -1 == indices[3]) { + fprintf(stderr, "%s:bmeshAddModelVertex failed.\n", __FUNCTION__); + return -1; + } + if (-1 == subdivAddQuadFace(bm->model, indices[0], indices[1], indices[2], + indices[3])) { + fprintf(stderr, "%s:subdivAddQuadFace failed.\n", __FUNCTION__); + return -1; + } + return 0; +} + +static int bmeshAddTriangleToModel(bmesh *bm, triangle *t) { + int indices[3]; + indices[0] = bmeshAddModelVertex(bm, &t->pt[0]); + indices[1] = bmeshAddModelVertex(bm, &t->pt[1]); + indices[2] = bmeshAddModelVertex(bm, &t->pt[2]); + if (-1 == indices[0] || -1 == indices[1] || -1 == indices[2]) { + fprintf(stderr, "%s:bmeshAddModelVertex failed.\n", __FUNCTION__); + return -1; + } + if (-1 == subdivAddTriangleFace(bm->model, indices[0], indices[1], + indices[2])) { + fprintf(stderr, "%s:subdivAddTriangleFace failed.\n", __FUNCTION__); + return -1; + } + return 0; +} + +bmeshModelVertex *bmeshGetModelVertexByHashtableParam(void *userData, + const void *node) { + bmesh *bm = (bmesh *)userData; + int index = (char *)node - (char *)0; + if (0 == index) { + return &bm->findModelVertex; + } + return (bmeshModelVertex *)arrayGetItem(bm->modelVertexArray, index - 1); +} + +static int modelVertexHash(void *userData, const void *node) { + bmeshModelVertex *v = bmeshGetModelVertexByHashtableParam(userData, node); + return cantorPair(cantorPair(v->vertex.x, v->vertex.y), + v->vertex.z); +} + +static int modelVertexCompare(void *userData, const void *firstNode, + const void *secondNode) { + bmeshModelVertex *v1 = bmeshGetModelVertexByHashtableParam(userData, + firstNode); + bmeshModelVertex *v2 = bmeshGetModelVertexByHashtableParam(userData, + secondNode); + return 0 == memcmp(&v1->vertex, &v2->vertex, sizeof(v1->vertex)); +} + bmesh *bmeshCreate(void) { bmesh *bm = (bmesh *)calloc(1, sizeof(bmesh)); if (!bm) { @@ -58,6 +161,25 @@ bmesh *bmeshCreate(void) { bmeshDestroy(bm); return 0; } + bm->model = subdivCreateModel(); + if (!bm->model) { + fprintf(stderr, "%s:subdivCreateModel failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } + bm->modelVertexArray = arrayCreate(sizeof(bmeshModelVertex)); + if (!bm->modelVertexArray) { + fprintf(stderr, "%s:arrayCreate quad failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } + bm->modelVertexHashtable = hashtableCreate(BMESH_MODEL_VERTEX_HASHTABLE_SIZE, + modelVertexHash, modelVertexCompare, bm); + if (!bm->modelVertexHashtable) { + fprintf(stderr, "%s:hashtableCreate quad failed.\n", __FUNCTION__); + bmeshDestroy(bm); + return 0; + } bm->rootBallIndex = -1; bm->roundColor = 0; return bm; @@ -68,6 +190,10 @@ void bmeshDestroy(bmesh *bm) { arrayDestroy(bm->boneArray); arrayDestroy(bm->indexArray); arrayDestroy(bm->quadArray); + subdivDestroyModel(bm->model); + subdivDestroyModel(bm->subdivModel); + arrayDestroy(bm->modelVertexArray); + hashtableDestroy(bm->modelVertexHashtable); free(bm); } @@ -698,69 +824,35 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { } } - glPushMatrix(); - - if (hull) - { - int triIndex; - for (triIndex = 0; triIndex < convexHullGetFaceNum(hull); - ++triIndex) { - convexHullFace *face = (convexHullFace *)convexHullGetFace(hull, - triIndex); - if (3 == face->vertexNum) { - triangle tri; - int j; - tri.pt[0] = convexHullGetVertex(hull, face->u.t.indices[0])->pt; - tri.pt[1] = convexHullGetVertex(hull, face->u.t.indices[1])->pt; - tri.pt[2] = convexHullGetVertex(hull, face->u.t.indices[2])->pt; - - if (triIndex >= showFaceIndex) { - break; - } - - glColor3f(1.0f, 1.0f, 1.0f); - drawTriangle(&tri); - - glBegin(GL_LINE_STRIP); - for (j = 0; j < 3; ++j) { - glVertex3f(tri.pt[j].x, tri.pt[j].y, tri.pt[j].z); - } - glVertex3f(tri.pt[0].x, tri.pt[0].y, tri.pt[0].z); - glEnd(); - - } else if (4 == face->vertexNum) { + if (hull) { + int i; + for (i = 0; i < convexHullGetFaceNum(hull); ++i) { + convexHullFace *face = (convexHullFace *)convexHullGetFace(hull, i); + if (4 == face->vertexNum) { quad q; - vec3 normal; - int j; q.pt[0] = convexHullGetVertex(hull, face->u.q.indices[0])->pt; q.pt[1] = convexHullGetVertex(hull, face->u.q.indices[1])->pt; q.pt[2] = convexHullGetVertex(hull, face->u.q.indices[2])->pt; q.pt[3] = convexHullGetVertex(hull, face->u.q.indices[3])->pt; - - glColor3f(1.0f, 1.0f, 1.0f); - glBegin(GL_QUADS); - vec3Normal(&q.pt[0], &q.pt[1], &q.pt[2], &normal); - for (j = 0; j < 4; ++j) { - glNormal3f(normal.x, normal.y, normal.z); - glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + result = bmeshAddQuadToModel(bm, &q); + if (-1 == result) { + break; } - glEnd(); - - glBegin(GL_LINE_STRIP); - for (j = 0; j < 4; ++j) { - glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); + } else if (3 == face->vertexNum) { + triangle t; + t.pt[0] = convexHullGetVertex(hull, face->u.t.indices[0])->pt; + t.pt[1] = convexHullGetVertex(hull, face->u.t.indices[1])->pt; + t.pt[2] = convexHullGetVertex(hull, face->u.t.indices[2])->pt; + result = bmeshAddTriangleToModel(bm, &t); + if (-1 == result) { + break; } - glVertex3f(q.pt[0].x, q.pt[0].y, q.pt[0].z); - glEnd(); } } - } - - glPopMatrix(); - if (hull) { convexHullDestroy(hull); } } + for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -817,8 +909,10 @@ void calculateBallQuad(bmeshBall *ball, quad *q) { vec3Add(&q->pt[3], &z, &q->pt[3]); } -static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { +static int bmeshAddWallsBetweenQuadsToModel(bmesh *bm, vec3 *origin, quad *q1, + quad *q2) { int i; + int result = 0; vec3 normal; vec3 o2v; matchTwoFaces(q1, q2); @@ -834,8 +928,13 @@ static void drawWallsBetweenQuads(vec3 *origin, quad *q1, quad *q2) { wall.pt[j] = oldWall.pt[3 - j]; } } - drawQuad(&wall); + result = bmeshAddQuadToModel(bm, &wall); + if (-1 == result) { + break; + } + //drawQuad(&wall); } + return result; } static bmeshBall *bmeshFindChildBallForInbetweenMesh(bmesh *bm, bmeshBall *ball) { @@ -875,7 +974,12 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, vec3Lerp(&parent->position, &ball->position, BMESH_INTVAL_DIST_DIV, &fakeBall.position); calculateBallQuad(&fakeBall, &childFace); - drawWallsBetweenQuads(&ball->position, ¤tFace, &childFace); + bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, + &childFace); + result = bmeshAddQuadToModel(bm, &childFace); + if (-1 == result) { + return result; + } drawQuad(&childFace); } } @@ -888,7 +992,11 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, //} else { child = bmeshFindChildBallForInbetweenMesh(bm, child); calculateBallQuad(child, &childFace); - drawWallsBetweenQuads(&ball->position, ¤tFace, &childFace); + result = bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, + &childFace); + if (-1 == result) { + return result; + } //} ball->meshGenerated = 1; child->meshGenerated = 1; @@ -913,3 +1021,25 @@ int bmeshGenerateInbetweenMesh(bmesh *bm) { return bmeshGenerateInbetweenMeshFrom(bm, 0, bmeshGetRootBall(bm)); } +int bmeshGenerate(bmesh *bm) { + bmeshGenerateInbetweenBalls(bm); + bmeshSweep(bm); + bmeshStitch(bm); + bmeshGenerateInbetweenMesh(bm); + subdivCalculteNorms(bm->model); + bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 1); + return 0; +} + +int bmeshDraw(bmesh *bm) { + glPushMatrix(); + glTranslatef(-5, 0, 0); + subdivDrawModel(bm->model); + glPopMatrix(); + subdivDrawModel(bm->subdivModel); + //subdivModel *model = subdivCreateModel(); + //subdivAddCube(model); + //subdivDrawModel(subdivCatmullClarkWithLoops(model, 2)); + return 0; +} + diff --git a/src/bmesh.h b/src/bmesh.h index c33fee2c..5edb076f 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -60,6 +60,8 @@ int bmeshAddQuad(bmesh *bm, quad *q); int bmeshSweep(bmesh *bm); int bmeshStitch(bmesh *bm); int bmeshGenerateInbetweenMesh(bmesh *bm); +int bmeshGenerate(bmesh *bm); +int bmeshDraw(bmesh *bm); #ifdef __cplusplus } diff --git a/src/convexhull.c b/src/convexhull.c index 97ee21f6..a1108feb 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -189,7 +189,8 @@ int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill, void convexHullMarkEdgeAsProcessed(convexHull *hull, int firstVertex, int secondVertex) { - int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; + int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + + secondVertex; int unitIndex = mapIndex / (sizeof(unsigned int) * 8); int unitOffset = mapIndex % (sizeof(unsigned int) * 8); hull->openEdgeProcessedMap[unitIndex] |= (0x00000001 << unitOffset); @@ -198,7 +199,8 @@ void convexHullMarkEdgeAsProcessed(convexHull *hull, int firstVertex, int convexHullOpenEdgeProcessed(convexHull *hull, int firstVertex, int secondVertex) { if (hull->openEdgeProcessedMap) { - int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + secondVertex; + int mapIndex = firstVertex * arrayGetLength(hull->vertexArray) + + secondVertex; int unitIndex = mapIndex / (sizeof(unsigned int) * 8); int unitOffset = mapIndex % (sizeof(unsigned int) * 8); return hull->openEdgeProcessedMap[unitIndex] & (0x00000001 << unitOffset); diff --git a/src/render.cpp b/src/render.cpp index dc5d374d..fc0d8c15 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -216,7 +216,7 @@ void Render::initializeGL() { #include "../data/bmesh_test_2.h" void Render::paintGL() { - bmesh *bm = 0; + static bmesh *bm = 0; _this = this; debugOutputTop = 0; @@ -236,17 +236,6 @@ void Render::paintGL() { drawGrid(10, 1); glEnable(GL_LIGHTING); - - /* - { - subdivModel *input = subdivCreateModel(); - subdivModel *output; - subdivAddCube(input); - output = subdivCatmullClarkWithLoops(input, 2); - subdivDestroyModel(input); - subdivDestroyModel(output); - } - */ if (0 == bm) { bmeshBall ball; @@ -271,13 +260,12 @@ void Render::paintGL() { bmeshAddBone(bm, &bone); } - bmeshGenerateInbetweenBalls(bm); - bmeshSweep(bm); - bmeshStitch(bm); - bmeshGenerateInbetweenMesh(bm); + bmeshGenerate(bm); } if (bm) { + + bmeshDraw(bm); drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); @@ -327,10 +315,10 @@ void Render::paintGL() { glPopMatrix(); - if (bm) { - bmeshDestroy(bm); - bm = 0; - } + //if (bm) { + // bmeshDestroy(bm); + // bm = 0; + //} } void Render::resizeGL(int w, int h) { diff --git a/src/subdivide.c b/src/subdivide.c index 64577fa0..f0d755f3 100644 --- a/src/subdivide.c +++ b/src/subdivide.c @@ -114,11 +114,13 @@ subdivModel *subdivCreateModel(void) { } void subdivDestroyModel(subdivModel *model) { - arrayDestroy(model->vertexArray); - arrayDestroy(model->faceArray); - arrayDestroy(model->edgeArray); - arrayDestroy(model->indexArray); - free(model); + if (model) { + arrayDestroy(model->vertexArray); + arrayDestroy(model->faceArray); + arrayDestroy(model->edgeArray); + arrayDestroy(model->indexArray); + free(model); + } } static int allocLink(subdivModel *model, int index) { @@ -402,7 +404,7 @@ static int updatedPoint(subdivModel *model, int p) { return nv; } -static int subdivCalculteNorms(subdivModel *model) { +int subdivCalculteNorms(subdivModel *model) { int i, j, n; int faceIterator; int nextFaceIterator; @@ -470,14 +472,14 @@ static int subdivCalculteNorms(subdivModel *model) { return 0; } -static void drawModel(subdivModel *model) { +void subdivDrawModel(subdivModel *model) { subdivLink *linkItem; subdivFace *f; subdivVertex *v; int faceIterator; int vertexIterator; faceIterator = model->faceLink; - glColor3f(1.0, 1.0, 1.0); + glColor4f(1.0, 1.0, 1.0, 1.0); while (-1 != faceIterator) { linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); @@ -745,6 +747,6 @@ subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops) { } } drawDebugPrintf("faces: %d", outputModel->faceNum); - drawModel(outputModel); + subdivDrawModel(outputModel); return outputModel; } diff --git a/src/subdivide.h b/src/subdivide.h index 8bbff092..477634e8 100644 --- a/src/subdivide.h +++ b/src/subdivide.h @@ -17,6 +17,8 @@ int subdivAddQuadFace(subdivModel *model, int p1, int p2, int p3, int p4); subdivModel *subdivCatmullClark(subdivModel *model); subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops); int subdivAddCube(subdivModel *model); +int subdivCalculteNorms(subdivModel *model); +void subdivDrawModel(subdivModel *model); #ifdef __cplusplus } From 37e1cf2ca796e11f41fe603d1fdd94c622c1b7bc Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 4 Jan 2017 22:45:01 +0930 Subject: [PATCH 40/61] Fix bmesh vertex hash of subdivision. --- README.md | 8 ++++--- screenshot/dust3d_bmesh_subdivide_2.png | Bin 0 -> 273813 bytes src/bmesh.c | 27 +++++++++++++----------- src/subdivide.c | 8 +++++-- 4 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 screenshot/dust3d_bmesh_subdivide_2.png diff --git a/README.md b/README.md index 89b0826c..f322f5ba 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Two caps and many strips composites a cylinder. Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. -- [ ] Implement B-Mesh algorithm (Dec 18, 2016 ~ Jan 02, 2017) +- [x] Implement B-Mesh algorithm (Dec 18, 2016 ~ Jan 04, 2017) There is a implementation of [B-Mesh algorithm in C++](https://github.com/evanw/cs224final) language, but I want the pure C version, so I start to implement my own version. I read both paper and this implementation, it gave me very helpful understanding of this algorithm. *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. @@ -62,10 +62,12 @@ There is a good implementation of [Gift Wrapping algorithm written in lua](https I follow the B-Mesh paper, made another test module inside Blender, and created a correspond `data/bmesh_test_2.h` manually. *Catmull-Clark Subdivision* - + There is a implementation of Catmull-Clark Subdivision algorithm on [rosettacode](https://rosettacode.org/wiki/Catmull%E2%80%93Clark_subdivision_surface/C), the code is very simple and beautiful, just lack of some memory alloc fail check. I translated the algorithm to use my own array implementation. +Now, the render result looks not bad after 2 times of subdivisions. I would like to mark this todo as done, though there are more polish steps on the original paper, I just leave it as to be done in the future. - [ ] Export Wavefront .obj -- [ ] Render B-Mesh result +- [x] Render B-Mesh result +This todo already done in the B-Mesh algorithm implementation. - [ ] Design UI for monster parts configuration - [ ] Test B-Mesh realtime generation with UI - [ ] Render rigid animation diff --git a/screenshot/dust3d_bmesh_subdivide_2.png b/screenshot/dust3d_bmesh_subdivide_2.png new file mode 100644 index 0000000000000000000000000000000000000000..609403cb8e9bf11f8112627ffa6f6b143c7af3b3 GIT binary patch literal 273813 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⩔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�zhZj)^&Zek;V)GCCj-5j$8+*DhF@m1tY`A; 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.vertex = *vertex; @@ -66,6 +62,11 @@ static int bmeshAddModelVertex(bmesh *bm, vec3 *vertex) { memset(v, 0, sizeof(bmeshModelVertex)); v->vertex = *vertex; v->indexOnModel = subdivAddVertex(bm->model, &v->vertex); + if (-1 == hashtableInsert(bm->modelVertexHashtable, + (char *)0 + arrayGetLength(bm->modelVertexArray))) { + fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); + return -1; + } } return v->indexOnModel; } @@ -118,8 +119,7 @@ bmeshModelVertex *bmeshGetModelVertexByHashtableParam(void *userData, static int modelVertexHash(void *userData, const void *node) { bmeshModelVertex *v = bmeshGetModelVertexByHashtableParam(userData, node); - return cantorPair(cantorPair(v->vertex.x, v->vertex.y), - v->vertex.z); + return abs(*((int *)v)); } static int modelVertexCompare(void *userData, const void *firstNode, @@ -128,7 +128,12 @@ static int modelVertexCompare(void *userData, const void *firstNode, firstNode); bmeshModelVertex *v2 = bmeshGetModelVertexByHashtableParam(userData, secondNode); - return 0 == memcmp(&v1->vertex, &v2->vertex, sizeof(v1->vertex)); + if (0 == v1->vertex.x - v2->vertex.x && + 0 == v1->vertex.y - v2->vertex.y && + 0 == v1->vertex.z - v2->vertex.z) { + return 0; + } + return 1; } bmesh *bmeshCreate(void) { @@ -1027,19 +1032,17 @@ int bmeshGenerate(bmesh *bm) { bmeshStitch(bm); bmeshGenerateInbetweenMesh(bm); subdivCalculteNorms(bm->model); - bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 1); + //bm->subdivModel = subdivCatmullClark(bm->model); + bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 2); return 0; } int bmeshDraw(bmesh *bm) { glPushMatrix(); - glTranslatef(-5, 0, 0); + glTranslatef(-7, 0, 0); subdivDrawModel(bm->model); glPopMatrix(); subdivDrawModel(bm->subdivModel); - //subdivModel *model = subdivCreateModel(); - //subdivAddCube(model); - //subdivDrawModel(subdivCatmullClarkWithLoops(model, 2)); return 0; } diff --git a/src/subdivide.c b/src/subdivide.c index f0d755f3..f0fd6ea0 100644 --- a/src/subdivide.c +++ b/src/subdivide.c @@ -291,6 +291,7 @@ static int facePoint(subdivModel *model, int f) { int nv = getFace(model, f)->avg; if (-1 == nv) { int iterator; + int i; subdivVertex *newVertex = allocVertex(model); if (!newVertex) { fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); @@ -299,18 +300,20 @@ static int facePoint(subdivModel *model, int f) { nv = newVertex->index; getFace(model, f)->avg = nv; iterator = getFace(model, f)->vertexLink; + i = 0; while (-1 != iterator) { int p; subdivLink *linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); p = linkItem->index; iterator = linkItem->nextLink; - if (getFace(model, f)->vertexLink == iterator) { + if (!i) { getVertex(model, nv)->v = getVertex(model, p)->v; } else { vec3Add(&getVertex(model, nv)->v, &getVertex(model, p)->v, &getVertex(model, nv)->v); } + ++i; } vec3Scale(&getVertex(model, nv)->v, 1.0 / (getFace(model, f)->vertexNum), &getVertex(model, nv)->v); @@ -625,7 +628,8 @@ static int subdivAddEdge(subdivModel *model, int p1, int p2) { fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); return -1; } - if (-1 == pushLink(model, &model->edgeLink, &model->edgeNum, newEdge->index)) { + if (-1 == pushLink(model, &model->edgeLink, &model->edgeNum, + newEdge->index)) { fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); return -1; } From ef11025e9ee8142377017ff5ca9daacc7be524cd Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 8 Jan 2017 12:07:18 +0930 Subject: [PATCH 41/61] Reduce radius of key ball when add to convex hull. --- src/bmesh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index cf6afe67..fa19a293 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -687,7 +687,9 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, return 0; } if (BMESH_BALL_TYPE_KEY == ball->type) { - if (-1 == addBallToHull(hull, ball, + bmeshBall reduceBall = *ball; + reduceBall.radius *= 0.75; + if (-1 == addBallToHull(hull, &reduceBall, &outmostBall, &outmostBallFirstVertexIndex)) { fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); arrayDestroy(ballPtrArray); @@ -1033,7 +1035,7 @@ int bmeshGenerate(bmesh *bm) { bmeshGenerateInbetweenMesh(bm); subdivCalculteNorms(bm->model); //bm->subdivModel = subdivCatmullClark(bm->model); - bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 2); + bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 1); return 0; } From b8b724204bb9851a6ab30ba3cf25d9aa22e1f039 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 8 Jan 2017 19:38:01 +0930 Subject: [PATCH 42/61] Fix strange faces at key ball. --- src/bmesh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bmesh.c b/src/bmesh.c index fa19a293..94f65130 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -688,7 +688,7 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, } if (BMESH_BALL_TYPE_KEY == ball->type) { bmeshBall reduceBall = *ball; - reduceBall.radius *= 0.75; + reduceBall.radius *= 0.4; if (-1 == addBallToHull(hull, &reduceBall, &outmostBall, &outmostBallFirstVertexIndex)) { fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); From feac7aea6995d322a9dfbe759799acd86fc724e2 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 16 Jan 2017 22:19:47 +0930 Subject: [PATCH 43/61] Add mouse position to world coord translation. --- src/draw.h | 1 + src/render.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++--- src/render.h | 5 ++++- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/src/draw.h b/src/draw.h index 742f3c9e..05a3cde8 100644 --- a/src/draw.h +++ b/src/draw.h @@ -22,6 +22,7 @@ int drawText(int x, int y, char *text); int drawPrintf(int x, int y, const char *fmt, ...); int drawDebugPrintf(const char *fmt, ...); void drawDebugPoint(vec3 *origin, int colorIndex); +void drawTestUnproject(void); #ifdef __cplusplus } diff --git a/src/render.cpp b/src/render.cpp index fc0d8c15..134804db 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -17,7 +17,7 @@ static const float bmeshBallColors[][4] { static const float bmeshBoneColor[3] = {1, 1, 0}; -static QGLWidget *_this = 0; +static Render *_this = 0; static int debugOutputTop = 0; int drawDebugPrintf(const char *fmt, ...) { @@ -35,7 +35,14 @@ int drawDebugPrintf(const char *fmt, ...) { } static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { - glColor4fv(bmeshBallColors[ball->type]); + float color[4]; + memcpy(color, bmeshBallColors[ball->type], sizeof(color)); + vec3 mousePos[] = {{_this->mouseWorldX, _this->mouseWorldY, + _this->mouseWorldZ}}; + if (vec3Distance(&ball->position, mousePos) <= ball->radius * 5) { + color[3] = 1; + } + glColor4fv(color); drawSphere(&ball->position, ball->radius, 36, 24); return 0; } @@ -43,7 +50,7 @@ static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - //drawBmeshBall(bm, ball); + drawBmeshBall(bm, ball); for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { @@ -213,6 +220,31 @@ void Render::initializeGL() { drawInit(); } +void screenCoordsToWorld(float winX, float winY, + float *worldX, float *worldY, float *worldZ){ + GLint viewport[4]; + GLdouble modelview[16]; + GLdouble projection[16]; + GLfloat winZ = 0; + GLdouble x, y, z; + + glGetDoublev(GL_MODELVIEW_MATRIX, modelview); + glGetDoublev(GL_PROJECTION_MATRIX, projection); + glGetIntegerv(GL_VIEWPORT, viewport); + + winX = (float)winX; + winY = (float)viewport[3] - (float)winY; + winZ = 0; + + gluUnProject((GLdouble)winX, (GLdouble)winY, (GLdouble)winZ, + (const GLdouble *)modelview, (const GLdouble *)projection, viewport, + &x, &y, &z); + + *worldX = (float)x; + *worldY = (float)y; + *worldZ = (float)z; +} + #include "../data/bmesh_test_2.h" void Render::paintGL() { @@ -236,6 +268,12 @@ void Render::paintGL() { drawGrid(10, 1); glEnable(GL_LIGHTING); + + screenCoordsToWorld(_this->mouseX, _this->mouseY, + &_this->mouseWorldX, &_this->mouseWorldY, &_this->mouseWorldZ); + glColor3f(0.0f, 0.0f, 0.0f); + drawDebugPrintf("%d,%d -> %f,%f,%f", _this->mouseX, _this->mouseY, + _this->mouseWorldX, _this->mouseWorldY, _this->mouseWorldZ); if (0 == bm) { bmeshBall ball; @@ -312,6 +350,9 @@ void Render::paintGL() { }*/ } } + + //glColor3f(0.0f, 0.0f, 0.0f); + //drawTestUnproject(); glPopMatrix(); @@ -332,6 +373,17 @@ void Render::resizeGL(int w, int h) { glLoadIdentity(); } +/* +void drawTestUnproject(void) { + float worldX, worldY, worldZ; + if (_this) { + screenCoordsToWorld(_this->mouseX, _this->mouseY, &worldX, &worldY, &worldZ); + glColor3f(0.0f, 0.0f, 0.0f); + drawDebugPrintf("%d,%d -> %f,%f,%f", _this->mouseX, _this->mouseY, + worldX, worldY, worldZ); + } +}*/ + void Render::mousePressEvent(QMouseEvent *event) { mouseX = event->x(); mouseY = event->y(); diff --git a/src/render.h b/src/render.h index ff2f9665..6e7cae9a 100644 --- a/src/render.h +++ b/src/render.h @@ -18,9 +18,12 @@ protected: void mouseMoveEvent(QMouseEvent *event); void wheelEvent(QWheelEvent * event); -private: +public: int mouseX; int mouseY; + float mouseWorldX; + float mouseWorldY; + float mouseWorldZ; float cameraAngleX; float cameraAngleY; float cameraDistance; From e4fc03e8484858f3620d61531a9aef50e054b47c Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 18 Jan 2017 22:14:28 +0930 Subject: [PATCH 44/61] Fix ball selection. --- README.md | 10 +++-- src/render.cpp | 113 +++++++++++++++++++++++++++++++++++++++---------- src/render.h | 11 +++-- 3 files changed, 104 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index f322f5ba..211d9d64 100644 --- a/README.md +++ b/README.md @@ -65,13 +65,15 @@ I follow the B-Mesh paper, made another test module inside Blender, and created There is a implementation of Catmull-Clark Subdivision algorithm on [rosettacode](https://rosettacode.org/wiki/Catmull%E2%80%93Clark_subdivision_surface/C), the code is very simple and beautiful, just lack of some memory alloc fail check. I translated the algorithm to use my own array implementation. Now, the render result looks not bad after 2 times of subdivisions. I would like to mark this todo as done, though there are more polish steps on the original paper, I just leave it as to be done in the future. -- [ ] Export Wavefront .obj - [x] Render B-Mesh result This todo already done in the B-Mesh algorithm implementation. -- [ ] Design UI for monster parts configuration -- [ ] Test B-Mesh realtime generation with UI +- [ ] Design UI for monster parts configuration (Jan 17, 2017 ~ Jan 18, 2017) + *Skeleton Editor* + There is good tutorial introduced how to implement object selection by mouse in OpenGL, written by [Bartek](http://www.bfilipek.com/2012/06/select-mouse-opengl.html). + But there is a big pain in the progress of implement the object selection logic, because of resizeGL, the width and height which passed in as parameters of this function is not equal to the size of the window. - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game +- [ ] Export Wavefront .obj +- [ ] Materials merge of different parts - [ ] Version 0.01 release -- [ ] Materials merge of different parts - [ ] Implement [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) diff --git a/src/render.cpp b/src/render.cpp index 134804db..f2b81aad 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -28,19 +28,41 @@ int drawDebugPrintf(const char *fmt, ...) { va_start(args, fmt); vsnprintf(text, sizeof(text), fmt, args); debugOutputTop += 9; - if (debugOutputTop > 200) { + if (debugOutputTop > 400) { debugOutputTop = 0; } + glColor3f(0, 0, 0); return drawText(x, y, text); } static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { float color[4]; memcpy(color, bmeshBallColors[ball->type], sizeof(color)); - vec3 mousePos[] = {{_this->mouseWorldX, _this->mouseWorldY, - _this->mouseWorldZ}}; - if (vec3Distance(&ball->position, mousePos) <= ball->radius * 5) { - color[3] = 1; + if (BMESH_BALL_TYPE_ROOT == ball->type || BMESH_BALL_TYPE_KEY == ball->type) { + vec3 a = {_this->mouseWorldNearX, _this->mouseWorldNearY, + _this->mouseWorldNearZ}; + vec3 b = {_this->mouseWorldFarX, _this->mouseWorldFarY, + _this->mouseWorldFarZ}; + vec3 ab, ap, q; + float abDotAb; + float apDotAb; + float t; + vec3Sub(&b, &a, &ab); + vec3Sub(&ball->position, &a, &ap); + abDotAb = vec3DotProduct(&ab, &ab); + apDotAb = vec3DotProduct(&ap, &ab); + t = apDotAb / abDotAb; + if (t < 0.0f) { + t = 0.0f; + } else if (t > 1.0f) { + t = 1.0f; + } + vec3Scale(&ab, t, &q); + vec3Add(&a, &q, &q); + //drawDebugPrintf("q: %f,%f,%f t:%f", q.x, q.y, q.z, t); + if (vec3Distance(&ball->position, &q) <= ball->radius) { + color[3] = 1; + } } glColor4fv(color); drawSphere(&ball->position, ball->radius, 36, 24); @@ -176,6 +198,12 @@ Render::Render(QWidget *parent) cameraAngleX = 30; cameraAngleY = -312; cameraDistance = 14.4; + //cameraAngleX = 0; + //cameraAngleY = 0; + //cameraDistance = 0; + + mouseScaleX = 1; + mouseScaleY = 1; } Render::~Render(void) { @@ -221,7 +249,8 @@ void Render::initializeGL() { } void screenCoordsToWorld(float winX, float winY, - float *worldX, float *worldY, float *worldZ){ + float *worldNearX, float *worldNearY, float *worldNearZ, + float *worldFarX, float *worldFarY, float *worldFarZ){ GLint viewport[4]; GLdouble modelview[16]; GLdouble projection[16]; @@ -234,15 +263,46 @@ void screenCoordsToWorld(float winX, float winY, winX = (float)winX; winY = (float)viewport[3] - (float)winY; + winZ = 0; - gluUnProject((GLdouble)winX, (GLdouble)winY, (GLdouble)winZ, (const GLdouble *)modelview, (const GLdouble *)projection, viewport, &x, &y, &z); + *worldNearX = (float)x; + *worldNearY = (float)y; + *worldNearZ = (float)z; + { + vec3 origin = {(float)x, (float)y, (float)z}; + drawDebugPoint(&origin, 0); + } - *worldX = (float)x; - *worldY = (float)y; - *worldZ = (float)z; + winZ = 1; + gluUnProject((GLdouble)winX, (GLdouble)winY, (GLdouble)winZ, + (const GLdouble *)modelview, (const GLdouble *)projection, viewport, + &x, &y, &z); + *worldFarX = (float)x; + *worldFarY = (float)y; + *worldFarZ = (float)z; + { + vec3 origin = {(float)x, (float)y, (float)z}; + drawDebugPoint(&origin, 1); + } + + { + vec3 topOrigin = {*worldNearX, *worldNearY, *worldNearZ}; + vec3 bottomOrigin = {*worldFarX, *worldFarY, *worldFarZ}; + glDisable(GL_LIGHTING); + + // x z plane + glBegin(GL_LINES); + glColor3f(0.0, 0.0, 0.0); + glVertex3f(topOrigin.x, topOrigin.y, topOrigin.z); + glVertex3f(bottomOrigin.x, bottomOrigin.y, bottomOrigin.z); + glEnd(); + + glEnable(GL_LIGHTING); + //drawCylinder(&topOrigin, &bottomOrigin, 0.1, 36, 24); + } } #include "../data/bmesh_test_2.h" @@ -254,7 +314,7 @@ void Render::paintGL() { debugOutputTop = 0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - + glPushMatrix(); glTranslatef(0, 0, -cameraDistance); @@ -264,16 +324,18 @@ void Render::paintGL() { glColor3f(0, 0, 0); drawDebugPrintf("cameraAngleX:%f cameraAngleY:%f cameraDistance:%f", cameraAngleX, cameraAngleY, cameraDistance); + + screenCoordsToWorld(_this->mouseX, _this->mouseY, + &_this->mouseWorldNearX, &_this->mouseWorldNearY, &_this->mouseWorldNearZ, + &_this->mouseWorldFarX, &_this->mouseWorldFarY, &_this->mouseWorldFarZ); + glColor3f(0.0f, 0.0f, 0.0f); + drawDebugPrintf("%d,%d -> %f,%f,%f %f,%f,%f", _this->mouseX, _this->mouseY, + _this->mouseWorldNearX, _this->mouseWorldNearY, _this->mouseWorldNearZ, + _this->mouseWorldFarX, _this->mouseWorldFarY, _this->mouseWorldFarZ); drawGrid(10, 1); glEnable(GL_LIGHTING); - - screenCoordsToWorld(_this->mouseX, _this->mouseY, - &_this->mouseWorldX, &_this->mouseWorldY, &_this->mouseWorldZ); - glColor3f(0.0f, 0.0f, 0.0f); - drawDebugPrintf("%d,%d -> %f,%f,%f", _this->mouseX, _this->mouseY, - _this->mouseWorldX, _this->mouseWorldY, _this->mouseWorldZ); if (0 == bm) { bmeshBall ball; @@ -363,6 +425,9 @@ void Render::paintGL() { } void Render::resizeGL(int w, int h) { + mouseScaleX = w / width(); + mouseScaleY = h / height(); + glViewport(0, 0, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); @@ -385,16 +450,18 @@ void drawTestUnproject(void) { }*/ void Render::mousePressEvent(QMouseEvent *event) { - mouseX = event->x(); - mouseY = event->y(); + mouseX = event->x() * mouseScaleX; + mouseY = event->y() * mouseScaleY; } void Render::mouseMoveEvent(QMouseEvent *event) { - cameraAngleY += (event->x() - mouseX); - cameraAngleX += (event->y() - mouseY); + int x = event->x() * mouseScaleX; + int y = event->y() * mouseScaleY; + cameraAngleY += (x - mouseX); + cameraAngleX += (y - mouseY); update(); - mouseX = event->x(); - mouseY = event->y(); + mouseX = x; + mouseY = y; } void Render::wheelEvent(QWheelEvent * event) { diff --git a/src/render.h b/src/render.h index 6e7cae9a..03f59d08 100644 --- a/src/render.h +++ b/src/render.h @@ -21,9 +21,14 @@ protected: public: int mouseX; int mouseY; - float mouseWorldX; - float mouseWorldY; - float mouseWorldZ; + float mouseScaleX; + float mouseScaleY; + float mouseWorldNearX; + float mouseWorldNearY; + float mouseWorldNearZ; + float mouseWorldFarX; + float mouseWorldFarY; + float mouseWorldFarZ; float cameraAngleX; float cameraAngleY; float cameraDistance; From e8972149ef905f931152eec248c0d254ced8cbd7 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 22 Jan 2017 16:46:16 +0930 Subject: [PATCH 45/61] Fix windows build. --- README.md | 5 +++++ src/array.c | 3 ++- src/bmesh.c | 7 +++++-- src/draw.cpp | 2 +- src/draw.h | 3 ++- src/matrix.c | 4 ++++ src/render.cpp | 2 +- src/vector3d.c | 4 ++++ 8 files changed, 24 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 211d9d64..8fc305f4 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,11 @@ Build $ cd build $ qmake -spec macx-xcode ``` +*Generate VC Project* +``` +$ cd build +$ qmake -tp vc +``` *Generate Makefile* ``` $ cd build diff --git a/src/array.c b/src/array.c index 813350c1..b5abdee4 100644 --- a/src/array.c +++ b/src/array.c @@ -21,12 +21,13 @@ array *arrayCreate(int nodeSize) { } int arraySetLength(array *arr, int length) { + char *newNodes; if (length > arr->capacity) { int newCapacity = (arr->capacity + 1) * 2; if (newCapacity < length) { newCapacity = length; } - char *newNodes = (char *)realloc(arr->nodes, arr->nodeSize * newCapacity); + newNodes = (char *)realloc(arr->nodes, arr->nodeSize * newCapacity); if (!newNodes) { fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); return -1; diff --git a/src/bmesh.c b/src/bmesh.c index 94f65130..966cd221 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -924,8 +924,11 @@ static int bmeshAddWallsBetweenQuadsToModel(bmesh *bm, vec3 *origin, quad *q1, vec3 o2v; matchTwoFaces(q1, q2); for (i = 0; i < 4; ++i) { - quad wall = {{q1->pt[i], q2->pt[i], - q2->pt[(i + 1) % 4], q1->pt[(i + 1) % 4]}}; + quad wall; + wall.pt[0] = q1->pt[i]; + wall.pt[1] = q2->pt[i]; + wall.pt[2] = q2->pt[(i + 1) % 4]; + wall.pt[3] = q1->pt[(i + 1) % 4]; vec3Normal(&wall.pt[0], &wall.pt[1], &wall.pt[2], &normal); vec3Sub(&wall.pt[0], origin, &o2v); if (vec3DotProduct(&o2v, &normal) < 0) { diff --git a/src/draw.cpp b/src/draw.cpp index 2472ee35..8ceedfee 100644 --- a/src/draw.cpp +++ b/src/draw.cpp @@ -118,7 +118,7 @@ int drawPrintf(int x, int y, const char *fmt, ...) { return drawText(x, y, text); } -static const float drawDebugColors[][4] { +static const float drawDebugColors[][4] = { {1.00, 0.00, 1.00, 1.0}, {0.00, 1.00, 1.00, 1.0}, {1.00, 1.00, 0.00, 1.0}, diff --git a/src/draw.h b/src/draw.h index 05a3cde8..92fe6e72 100644 --- a/src/draw.h +++ b/src/draw.h @@ -3,7 +3,8 @@ #include "3dstruct.h" #ifdef __APPLE__ #include -#else +#elif defined(_WIN32) +#include #include #endif diff --git a/src/matrix.c b/src/matrix.c index c853a13b..3f2ac7e3 100644 --- a/src/matrix.c +++ b/src/matrix.c @@ -2,6 +2,10 @@ #include #include +#ifndef M_PI +#define M_PI 3.1415926 +#endif + #define DEG2RAD (M_PI / 180.0) matrix *matrixLoadIdentity(matrix *mat) { diff --git a/src/render.cpp b/src/render.cpp index f2b81aad..e04f14c0 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -9,7 +9,7 @@ #include "vector3d.h" #include "subdivide.h" -static const float bmeshBallColors[][4] { +static const float bmeshBallColors[][4] = { {0.00, 0.78, 1.00, 0.5}, {1.00, 0.00, 0.00, 0.5}, {1.00, 1.00, 1.00, 0.5} diff --git a/src/vector3d.c b/src/vector3d.c index 8fbe3c75..eed5f14a 100644 --- a/src/vector3d.c +++ b/src/vector3d.c @@ -2,6 +2,10 @@ #include "vector3d.h" #include "matrix.h" +#ifndef M_PI +#define M_PI 3.1415926 +#endif + float vec3Length(vec3 *p) { double mag; mag = p->x * p->x + p->y * p->y + p->z * p->z; From 542a1d70e7925625e7461d37a810c8859a3f5124 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 30 Jan 2017 00:12:50 +0930 Subject: [PATCH 46/61] Add skinned mesh define --- build/dust3d.pro | 6 ++++-- src/skinnedmesh.c | 2 ++ src/skinnedmesh.h | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/skinnedmesh.c create mode 100644 src/skinnedmesh.h diff --git a/build/dust3d.pro b/build/dust3d.pro index 53e8137f..843a5723 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -18,7 +18,8 @@ SOURCES += main.cpp \ convexhull.c \ hashtable.c \ osutil.cpp \ - subdivide.c + subdivide.c \ + skinnedmesh.c HEADERS += mainwindow.h \ render.h \ @@ -31,4 +32,5 @@ HEADERS += mainwindow.h \ hashtable.h \ 3dstruct.h \ osutil.h \ - subdivide.h \ No newline at end of file + subdivide.h \ + skinnedmesh.h \ No newline at end of file diff --git a/src/skinnedmesh.c b/src/skinnedmesh.c new file mode 100644 index 00000000..a961d97c --- /dev/null +++ b/src/skinnedmesh.c @@ -0,0 +1,2 @@ +#include "skinnedmesh.h" + diff --git a/src/skinnedmesh.h b/src/skinnedmesh.h new file mode 100644 index 00000000..da73baf0 --- /dev/null +++ b/src/skinnedmesh.h @@ -0,0 +1,21 @@ +#ifndef SKINNED_MESH_H +#define SKINNED_MESH_H +#include "3dstruct.h" +#include "matrix.h" + +#define SKINNED_MESH_MAX_BONE 4 + +typedef struct skinnedMeshVertex { + vec3 position; + vec3 normal; + int boneIndices[SKINNED_MESH_MAX_BONE]; + float boneWeights[SKINNED_MESH_MAX_BONE]; +} skinnedMeshVertex; + +typedef struct skinnedMeshBone { + vec3 translation; + vec3 rotation; + matrix toRoot; +} skinnedMeshBone; + +#endif From a4569fbe1ef2c94ab38c38a2134bcc5354aa4942 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 31 Jan 2017 08:26:24 +0930 Subject: [PATCH 47/61] Handle out of memory in one place --- build/dust3d.pro | 10 +- src/array.c | 35 ++- src/array.h | 4 +- src/bmesh.c | 429 +++++++----------------------------- src/convexhull.c | 334 +++++++--------------------- src/convexhull.h | 8 +- src/{hashtable.c => dict.c} | 129 ++++++++--- src/dict.h | 16 ++ src/dmemory.c | 36 +++ src/dmemory.h | 9 + src/hashtable.h | 15 -- src/render.cpp | 2 +- src/subdivide.c | 246 ++++----------------- src/subdivide.h | 4 +- 14 files changed, 390 insertions(+), 887 deletions(-) rename src/{hashtable.c => dict.c} (51%) create mode 100644 src/dict.h create mode 100644 src/dmemory.c create mode 100644 src/dmemory.h delete mode 100644 src/hashtable.h diff --git a/build/dust3d.pro b/build/dust3d.pro index 843a5723..c3509d64 100644 --- a/build/dust3d.pro +++ b/build/dust3d.pro @@ -16,10 +16,11 @@ SOURCES += main.cpp \ bmesh.c \ matrix.c \ convexhull.c \ - hashtable.c \ + dict.c \ osutil.cpp \ subdivide.c \ - skinnedmesh.c + skinnedmesh.c \ + dmemory.c HEADERS += mainwindow.h \ render.h \ @@ -29,8 +30,9 @@ HEADERS += mainwindow.h \ bmesh.h \ matrix.h \ convexhull.h \ - hashtable.h \ + dict.h \ 3dstruct.h \ osutil.h \ subdivide.h \ - skinnedmesh.h \ No newline at end of file + skinnedmesh.h \ + dmemory.h \ No newline at end of file diff --git a/src/array.c b/src/array.c index b5abdee4..fb050a81 100644 --- a/src/array.c +++ b/src/array.c @@ -1,6 +1,7 @@ #include #include #include +#include "dmemory.h" #include "array.h" struct array { @@ -11,34 +12,29 @@ struct array { }; array *arrayCreate(int nodeSize) { - array *arr = (array *)calloc(1, sizeof(array)); - if (!arr) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } + array *arr = dcalloc(1, sizeof(array)); arr->nodeSize = nodeSize; return arr; } -int arraySetLength(array *arr, int length) { +int arrayGetNodeSize(array *arr) { + return arr->nodeSize; +} + +void arraySetLength(array *arr, int length) { char *newNodes; if (length > arr->capacity) { int newCapacity = (arr->capacity + 1) * 2; if (newCapacity < length) { newCapacity = length; } - newNodes = (char *)realloc(arr->nodes, arr->nodeSize * newCapacity); - if (!newNodes) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return -1; - } + newNodes = drealloc(arr->nodes, arr->nodeSize * newCapacity); memset(newNodes + arr->nodeSize * arr->capacity, 0, arr->nodeSize * (newCapacity - arr->capacity)); arr->capacity = newCapacity; arr->nodes = newNodes; } arr->length = length; - return 0; } void *arrayGetItem(array *arr, int index) { @@ -54,16 +50,19 @@ int arrayGetLength(array *arr) { void arrayDestroy(array *arr) { if (arr) { - free(arr->nodes); - free(arr); + dfree(arr->nodes); + dfree(arr); } } void *arrayNewItem(array *arr) { int newIndex = arrayGetLength(arr); - if (0 != arraySetLength(arr, newIndex + 1)) { - fprintf(stderr, "%s:arraySetLength.\n", __FUNCTION__); - return 0; - } + arraySetLength(arr, newIndex + 1); return arrayGetItem(arr, newIndex); } + +void *arrayNewItemClear(array *arr) { + void *ptr = arrayNewItem(arr); + memset(ptr, 0, arr->nodeSize); + return ptr; +} diff --git a/src/array.h b/src/array.h index 8ab8350d..e4189cf1 100644 --- a/src/array.h +++ b/src/array.h @@ -8,10 +8,12 @@ extern "C" { typedef struct array array; array *arrayCreate(int nodeSize); +int arrayGetNodeSize(array *arr); void *arrayGetItem(array *arr, int index); int arrayGetLength(array *arr); -int arraySetLength(array *arr, int length); +void arraySetLength(array *arr, int length); void *arrayNewItem(array *arr); +void *arrayNewItemClear(array *arr); void arrayDestroy(array *arr); #ifdef __cplusplus diff --git a/src/bmesh.c b/src/bmesh.c index 966cd221..f40cacf3 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -4,9 +4,10 @@ #include #include #include +#include "dmemory.h" #include "bmesh.h" #include "array.h" -#include "hashtable.h" +#include "dict.h" #include "matrix.h" #include "convexhull.h" #include "subdivide.h" @@ -37,97 +38,50 @@ struct bmesh { subdivModel *model; subdivModel *subdivModel; array *modelVertexArray; - hashtable *modelVertexHashtable; + dict *modelVertexDict; bmeshModelVertex findModelVertex; }; static bmeshModelVertex *bmeshFindModelVertex(bmesh *bm, vec3 *vertex) { - int index; - bm->findModelVertex.vertex = *vertex; - index = (char *)hashtableGet(bm->modelVertexHashtable, (char *)0) - (char *)0; - if (0 == index) { - return 0; - } - return (bmeshModelVertex *)arrayGetItem(bm->modelVertexArray, index - 1); + return dictFind(bm->modelVertexDict, vertex); } static int bmeshAddModelVertex(bmesh *bm, vec3 *vertex) { bmeshModelVertex *v = bmeshFindModelVertex(bm, vertex); if (!v) { - v = (bmeshModelVertex *)arrayNewItem(bm->modelVertexArray); - if (!v) { - fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); - return -1; - } - memset(v, 0, sizeof(bmeshModelVertex)); + v = dictGetClear(bm->modelVertexDict, vertex); v->vertex = *vertex; v->indexOnModel = subdivAddVertex(bm->model, &v->vertex); - if (-1 == hashtableInsert(bm->modelVertexHashtable, - (char *)0 + arrayGetLength(bm->modelVertexArray))) { - fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); - return -1; - } } return v->indexOnModel; } -static int bmeshAddQuadToModel(bmesh *bm, quad *q) { +static void bmeshAddQuadToModel(bmesh *bm, quad *q) { int indices[4]; indices[0] = bmeshAddModelVertex(bm, &q->pt[0]); indices[1] = bmeshAddModelVertex(bm, &q->pt[1]); indices[2] = bmeshAddModelVertex(bm, &q->pt[2]); indices[3] = bmeshAddModelVertex(bm, &q->pt[3]); - if (-1 == indices[0] || -1 == indices[1] || -1 == indices[2] || - -1 == indices[3]) { - fprintf(stderr, "%s:bmeshAddModelVertex failed.\n", __FUNCTION__); - return -1; - } - if (-1 == subdivAddQuadFace(bm->model, indices[0], indices[1], indices[2], - indices[3])) { - fprintf(stderr, "%s:subdivAddQuadFace failed.\n", __FUNCTION__); - return -1; - } - return 0; + subdivAddQuadFace(bm->model, indices[0], indices[1], indices[2], indices[3]); } -static int bmeshAddTriangleToModel(bmesh *bm, triangle *t) { +static void bmeshAddTriangleToModel(bmesh *bm, triangle *t) { int indices[3]; indices[0] = bmeshAddModelVertex(bm, &t->pt[0]); indices[1] = bmeshAddModelVertex(bm, &t->pt[1]); indices[2] = bmeshAddModelVertex(bm, &t->pt[2]); - if (-1 == indices[0] || -1 == indices[1] || -1 == indices[2]) { - fprintf(stderr, "%s:bmeshAddModelVertex failed.\n", __FUNCTION__); - return -1; - } - if (-1 == subdivAddTriangleFace(bm->model, indices[0], indices[1], - indices[2])) { - fprintf(stderr, "%s:subdivAddTriangleFace failed.\n", __FUNCTION__); - return -1; - } - return 0; -} - -bmeshModelVertex *bmeshGetModelVertexByHashtableParam(void *userData, - const void *node) { - bmesh *bm = (bmesh *)userData; - int index = (char *)node - (char *)0; - if (0 == index) { - return &bm->findModelVertex; - } - return (bmeshModelVertex *)arrayGetItem(bm->modelVertexArray, index - 1); + subdivAddTriangleFace(bm->model, indices[0], indices[1], indices[2]); } static int modelVertexHash(void *userData, const void *node) { - bmeshModelVertex *v = bmeshGetModelVertexByHashtableParam(userData, node); + const bmeshModelVertex *v = node; return abs(*((int *)v)); } static int modelVertexCompare(void *userData, const void *firstNode, const void *secondNode) { - bmeshModelVertex *v1 = bmeshGetModelVertexByHashtableParam(userData, - firstNode); - bmeshModelVertex *v2 = bmeshGetModelVertexByHashtableParam(userData, - secondNode); + const bmeshModelVertex *v1 = firstNode; + const bmeshModelVertex *v2 = secondNode; if (0 == v1->vertex.x - v2->vertex.x && 0 == v1->vertex.y - v2->vertex.y && 0 == v1->vertex.z - v2->vertex.z) { @@ -137,54 +91,16 @@ static int modelVertexCompare(void *userData, const void *firstNode, } bmesh *bmeshCreate(void) { - bmesh *bm = (bmesh *)calloc(1, sizeof(bmesh)); - if (!bm) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } + bmesh *bm = dcalloc(1, sizeof(bmesh)); bm->ballArray = arrayCreate(sizeof(bmeshBall)); - if (!bm->ballArray) { - fprintf(stderr, "%s:arrayCreate bmeshBall failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->boneArray = arrayCreate(sizeof(bmeshBone)); - if (!bm->boneArray) { - fprintf(stderr, "%s:arrayCreate bmeshBone failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->indexArray = arrayCreate(sizeof(bmeshBallIndex)); - if (!bm->indexArray) { - fprintf(stderr, "%s:arrayCreate bmeshBallIndex failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->quadArray = arrayCreate(sizeof(quad)); - if (!bm->quadArray) { - fprintf(stderr, "%s:arrayCreate quad failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->model = subdivCreateModel(); - if (!bm->model) { - fprintf(stderr, "%s:subdivCreateModel failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->modelVertexArray = arrayCreate(sizeof(bmeshModelVertex)); - if (!bm->modelVertexArray) { - fprintf(stderr, "%s:arrayCreate quad failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } - bm->modelVertexHashtable = hashtableCreate(BMESH_MODEL_VERTEX_HASHTABLE_SIZE, + bm->modelVertexDict = dictCreate(bm->modelVertexArray, + BMESH_MODEL_VERTEX_HASHTABLE_SIZE, modelVertexHash, modelVertexCompare, bm); - if (!bm->modelVertexHashtable) { - fprintf(stderr, "%s:hashtableCreate quad failed.\n", __FUNCTION__); - bmeshDestroy(bm); - return 0; - } bm->rootBallIndex = -1; bm->roundColor = 0; return bm; @@ -198,8 +114,8 @@ void bmeshDestroy(bmesh *bm) { subdivDestroyModel(bm->model); subdivDestroyModel(bm->subdivModel); arrayDestroy(bm->modelVertexArray); - hashtableDestroy(bm->modelVertexHashtable); - free(bm); + dictDestroy(bm->modelVertexDict); + dfree(bm); } int bmeshGetBallNum(bmesh *bm) { @@ -211,11 +127,11 @@ int bmeshGetBoneNum(bmesh *bm) { } bmeshBall *bmeshGetBall(bmesh *bm, int index) { - return (bmeshBall *)arrayGetItem(bm->ballArray, index); + return arrayGetItem(bm->ballArray, index); } bmeshBone *bmeshGetBone(bmesh *bm, int index) { - return (bmeshBone *)arrayGetItem(bm->boneArray, index); + return arrayGetItem(bm->boneArray, index); } int bmeshAddBall(bmesh *bm, bmeshBall *ball) { @@ -224,10 +140,7 @@ int bmeshAddBall(bmesh *bm, bmeshBall *ball) { ball->firstChildIndex = -1; ball->childrenIndices = 0; ball->notFitHull = 0; - if (0 != arraySetLength(bm->ballArray, index + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } + arraySetLength(bm->ballArray, index + 1); memcpy(arrayGetItem(bm->ballArray, index), ball, sizeof(bmeshBall)); if (BMESH_BALL_TYPE_ROOT == ball->type) { bm->rootBallIndex = index; @@ -235,41 +148,26 @@ int bmeshAddBall(bmesh *bm, bmeshBall *ball) { return index; } -static int bmeshAddChildBallRelation(bmesh *bm, int parentBallIndex, +static void bmeshAddChildBallRelation(bmesh *bm, int parentBallIndex, int childBallIndex) { bmeshBall *parentBall = bmeshGetBall(bm, parentBallIndex); bmeshBallIndex *indexItem; int newChildIndex = arrayGetLength(bm->indexArray); - if (0 != arraySetLength(bm->indexArray, newChildIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - indexItem = (bmeshBallIndex *)arrayGetItem(bm->indexArray, newChildIndex); + arraySetLength(bm->indexArray, newChildIndex + 1); + indexItem = arrayGetItem(bm->indexArray, newChildIndex); indexItem->ballIndex = childBallIndex; indexItem->nextChildIndex = parentBall->firstChildIndex; parentBall->firstChildIndex = newChildIndex; parentBall->childrenIndices++; - return 0; } int bmeshAddBone(bmesh *bm, bmeshBone *bone) { int index = arrayGetLength(bm->boneArray); bone->index = index; - if (0 != arraySetLength(bm->boneArray, index + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } + arraySetLength(bm->boneArray, index + 1); memcpy(arrayGetItem(bm->boneArray, index), bone, sizeof(bmeshBone)); - if (0 != bmeshAddChildBallRelation(bm, bone->firstBallIndex, - bone->secondBallIndex)) { - fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); - return -1; - } - if (0 != bmeshAddChildBallRelation(bm, bone->secondBallIndex, - bone->firstBallIndex)) { - fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); - return -1; - } + bmeshAddChildBallRelation(bm, bone->firstBallIndex, bone->secondBallIndex); + bmeshAddChildBallRelation(bm, bone->secondBallIndex, bone->firstBallIndex); return index; } @@ -283,79 +181,21 @@ static int bmeshAddInbetweenBallBetween(bmesh *bm, secondBall->radius * frac; vec3Lerp(&firstBall->position, &secondBall->position, frac, &newBall.position); - if (-1 == bmeshAddBall(bm, &newBall)) { - fprintf(stderr, "%s:bmeshAddBall failed.\n", __FUNCTION__); - return -1; - } - if (-1 == bmeshAddChildBallRelation(bm, parentBallIndex, newBall.index)) { - fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); - return -1; - } + bmeshAddBall(bm, &newBall); + bmeshAddChildBallRelation(bm, parentBallIndex, newBall.index); return newBall.index; } -/* -static int bmeshGenerateBallCrossSection(bmesh *bm, bmeshBall *ball, - vec3 *boneDirection, vec3 *localYaxis, vec3 *localZaxis) { - //int i; - //quad q; - vec3 z, y; - //vec3Scale(localYaxis, ball->radius, &y); - //vec3Scale(localZaxis, ball->radius, &z); - vec3Sub(&ball->position, &y, &q.pt[0]); - vec3Add(&q.pt[0], &z, &q.pt[0]); - vec3Sub(&ball->position, &y, &q.pt[1]); - vec3Sub(&q.pt[1], &z, &q.pt[1]); - vec3Add(&ball->position, &y, &q.pt[2]); - vec3Sub(&q.pt[2], &z, &q.pt[2]); - vec3Add(&ball->position, &y, &q.pt[3]); - vec3Add(&q.pt[3], &z, &q.pt[3]); - ball->crossSection = q; - ball->boneDirection = *boneDirection; - if (-1 == bmeshAddQuad(bm, &q)) { - fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); - return -1; - } - if (connectWithQuad >= 0) { - for (i = 0; i < 4; ++i) { - quad face; - quad *lastQ = bmeshGetQuad(bm, connectWithQuad); - face.pt[0].x = lastQ->pt[(0 + i) % 4].x; - face.pt[0].y = lastQ->pt[(0 + i) % 4].y; - face.pt[0].z = lastQ->pt[(0 + i) % 4].z; - face.pt[1].x = q.pt[(0 + i) % 4].x; - face.pt[1].y = q.pt[(0 + i) % 4].y; - face.pt[1].z = q.pt[(0 + i) % 4].z; - face.pt[2].x = q.pt[(1 + i) % 4].x; - face.pt[2].y = q.pt[(1 + i) % 4].y; - face.pt[2].z = q.pt[(1 + i) % 4].z; - face.pt[3].x = lastQ->pt[(1 + i) % 4].x; - face.pt[3].y = lastQ->pt[(1 + i) % 4].y; - face.pt[3].z = lastQ->pt[(1 + i) % 4].z; - if (-1 == bmeshAddQuad(bm, &face)) { - fprintf(stderr, "%s:meshAddQuad failed.\n", __FUNCTION__); - return -1; - } - } - } - return 0; -}*/ - static void generateYZfromBoneDirection(vec3 *boneDirection, vec3 *localYaxis, vec3 *localZaxis) { vec3 worldYaxis = {0, 1, 0}; - vec3 worldXaxis = {1, 0, 0}; - //if (0 == vec3Angle(boneDirection, &worldYaxis)) { - // vec3CrossProduct(&worldXaxis, boneDirection, localYaxis); - //} else { - vec3CrossProduct(&worldYaxis, boneDirection, localYaxis); - //} + vec3CrossProduct(&worldYaxis, boneDirection, localYaxis); vec3Normalize(localYaxis); vec3CrossProduct(localYaxis, boneDirection, localZaxis); vec3Normalize(localZaxis); } -static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, +static void bmeshGenerateInbetweenBallsBetween(bmesh *bm, int firstBallIndex, int secondBallIndex) { float step; float distance; @@ -368,8 +208,9 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, bmeshBall *secondBall = bmeshGetBall(bm, secondBallIndex); bmeshBall *newBall; float intvalDist; + if (secondBall->roundColor == bm->roundColor) { - return 0; + return; } vec3Sub(&firstBall->position, &secondBall->position, &boneDirection); @@ -392,9 +233,6 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, float frac = offset / distance; parentBallIndex = bmeshAddInbetweenBallBetween(bm, firstBall, secondBall, frac, parentBallIndex); - if (-1 == parentBallIndex) { - return -1; - } newBall = bmeshGetBall(bm, parentBallIndex); newBall->localYaxis = localYaxis; newBall->localZaxis = localZaxis; @@ -404,20 +242,13 @@ static int bmeshGenerateInbetweenBallsBetween(bmesh *bm, } else if (distance > step) { parentBallIndex = bmeshAddInbetweenBallBetween(bm, firstBall, secondBall, 0.5, parentBallIndex); - if (-1 == parentBallIndex) { - return -1; - } newBall = bmeshGetBall(bm, parentBallIndex); newBall->localYaxis = localYaxis; newBall->localZaxis = localZaxis; newBall->boneDirection = normalizedBoneDirection; } } - if (-1 == bmeshAddChildBallRelation(bm, parentBallIndex, secondBallIndex)) { - fprintf(stderr, "%s:bmeshAddChildBallRelation failed.\n", __FUNCTION__); - return -1; - } - return 0; + bmeshAddChildBallRelation(bm, parentBallIndex, secondBallIndex); } bmeshBall *bmeshGetBallFirstChild(bmesh *bm, bmeshBall *ball, @@ -435,7 +266,7 @@ bmeshBall *bmeshGetBallNextChild(bmesh *bm, bmeshBall *ball, if (-1 == *iterator) { return 0; } - indexItem = (bmeshBallIndex *)arrayGetItem(bm->indexArray, *iterator); + indexItem = arrayGetItem(bm->indexArray, *iterator); *iterator = indexItem->nextChildIndex; return bmeshGetBall(bm, indexItem->ballIndex); } @@ -447,7 +278,7 @@ bmeshBall *bmeshGetRootBall(bmesh *bm) { return bmeshGetBall(bm, bm->rootBallIndex); } -static int bmeshGenerateInbetweenBallsFrom(bmesh *bm, int parentBallIndex) { +static void bmeshGenerateInbetweenBallsFrom(bmesh *bm, int parentBallIndex) { bmeshBallIterator iterator; int ballIndex; bmeshBall *parent; @@ -456,8 +287,9 @@ static int bmeshGenerateInbetweenBallsFrom(bmesh *bm, int parentBallIndex) { parent = bmeshGetBall(bm, parentBallIndex); if (parent->roundColor == bm->roundColor) { - return 0; + return; } + parent->roundColor = bm->roundColor; // @@ -471,26 +303,11 @@ static int bmeshGenerateInbetweenBallsFrom(bmesh *bm, int parentBallIndex) { oldChildrenIndices = parent->childrenIndices; parent->childrenIndices = 0; - for (; - ball; - ball = bmeshGetBallNextChild(bm, parent, &iterator)) { + for (; ball; ball = bmeshGetBallNextChild(bm, parent, &iterator)) { ballIndex = ball->index; - if (0 != bmeshGenerateInbetweenBallsBetween(bm, parentBallIndex, - ballIndex)) { - fprintf(stderr, - "%s:bmeshGenerateInbetweenBallsBetween failed(parentBallIndex:%d).\n", - __FUNCTION__, parentBallIndex); - return -1; - } - if (0 != bmeshGenerateInbetweenBallsFrom(bm, ballIndex)) { - fprintf(stderr, - "%s:bmeshGenerateInbetweenBallsFrom failed(ballIndex:%d).\n", - __FUNCTION__, ballIndex); - return -1; - } + bmeshGenerateInbetweenBallsBetween(bm, parentBallIndex, ballIndex); + bmeshGenerateInbetweenBallsFrom(bm, ballIndex); } - - return 0; } int bmeshGenerateInbetweenBalls(bmesh *bm) { @@ -499,7 +316,8 @@ int bmeshGenerateInbetweenBalls(bmesh *bm) { return -1; } bm->roundColor++; - return bmeshGenerateInbetweenBallsFrom(bm, bm->rootBallIndex); + bmeshGenerateInbetweenBallsFrom(bm, bm->rootBallIndex); + return 0; } int bmeshGetQuadNum(bmesh *bm) { @@ -507,25 +325,21 @@ int bmeshGetQuadNum(bmesh *bm) { } quad *bmeshGetQuad(bmesh *bm, int index) { - return (quad *)arrayGetItem(bm->quadArray, index); + return arrayGetItem(bm->quadArray, index); } int bmeshAddQuad(bmesh *bm, quad *q) { int index = arrayGetLength(bm->quadArray); - if (0 != arraySetLength(bm->quadArray, index + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } + arraySetLength(bm->quadArray, index + 1); memcpy(arrayGetItem(bm->quadArray, index), q, sizeof(quad)); return index; } -static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { - int result = 0; +static void bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child = 0; if (bm->roundColor == ball->roundColor) { - return 0; + return; } ball->roundColor = bm->roundColor; if (BMESH_BALL_TYPE_KEY == ball->type) { @@ -555,18 +369,14 @@ static int bmeshSweepFrom(bmesh *bm, bmeshBall *parent, bmeshBall *ball) { for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshSweepFrom(bm, ball, child); - if (0 != result) { - fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); - return result; - } + bmeshSweepFrom(bm, ball, child); } - return result; } int bmeshSweep(bmesh *bm) { bm->roundColor++; - return bmeshSweepFrom(bm, 0, bmeshGetRootBall(bm)); + bmeshSweepFrom(bm, 0, bmeshGetRootBall(bm)); + return 0; } static int isDistanceEnoughForConvexHull(bmeshBall *root, @@ -609,7 +419,7 @@ static bmeshBall *bmeshFindParentBallForConvexHull(bmesh *bm, bmeshBall *root, bm->parentBallStack[depth - 1]); } -static int addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, +static void addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, bmeshBall **outmostBall, int *outmostBallFirstVertexIndex) { vec3 z, y; quad q; @@ -635,11 +445,6 @@ static int addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, ballForConvexHull->index, 2); vertexIndex[3] = convexHullAddVertex(hull, &q.pt[3], ballForConvexHull->index, 3); - if (-1 == vertexIndex[0] || -1 == vertexIndex[1] || -1 == vertexIndex[2] || - -1 == vertexIndex[3]) { - fprintf(stderr, "%s:convexHullAddVertex failed.\n", __FUNCTION__); - return -1; - } if (*outmostBall) { if (ballForConvexHull->radius > (*outmostBall)->radius) { @@ -652,14 +457,8 @@ static int addBallToHull(convexHull *hull, bmeshBall *ballForConvexHull, *outmostBall = ballForConvexHull; *outmostBallFirstVertexIndex = vertexIndex[0]; } - - return 0; } -#include "osutil.h" -int showFaceIndex = 10000000; -static long long lastShowFaceIndexIncTime = 0; - static convexHull *createConvexHullForBall(bmesh *bm, int depth, bmeshBall *ball, int *needRetry) { convexHull *hull; @@ -676,74 +475,33 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, *needRetry = 0; ballPtrArray = arrayCreate(sizeof(bmeshBall *)); - if (!ballPtrArray) { - fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); - return 0; - } hull = convexHullCreate(); - if (!hull) { - fprintf(stderr, "%s:convexHullCreate failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - return 0; - } if (BMESH_BALL_TYPE_KEY == ball->type) { bmeshBall reduceBall = *ball; reduceBall.radius *= 0.4; - if (-1 == addBallToHull(hull, &reduceBall, - &outmostBall, &outmostBallFirstVertexIndex)) { - fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + addBallToHull(hull, &reduceBall, &outmostBall, + &outmostBallFirstVertexIndex); } for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { ballForConvexHull = bmeshFindChildBallForConvexHull(bm, ball, child); - ballPtr = (bmeshBall **)arrayNewItem(ballPtrArray); - if (!ballPtr) { - fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + ballPtr = arrayNewItem(ballPtrArray); *ballPtr = ballForConvexHull; - if (-1 == addBallToHull(hull, ballForConvexHull, - &outmostBall, &outmostBallFirstVertexIndex)) { - fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + addBallToHull(hull, ballForConvexHull, &outmostBall, + &outmostBallFirstVertexIndex); } if (depth > 0 && depth - 1 < BMESH_MAX_PARENT_BALL_DEPTH) { ballForConvexHull = bmeshFindParentBallForConvexHull(bm, ball, depth - 1, bm->parentBallStack[depth - 1]); ballPtr = (bmeshBall **)arrayNewItem(ballPtrArray); - if (!ballPtr) { - fprintf(stderr, "%s:arrayNewItem failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } *ballPtr = ballForConvexHull; - if (-1 == addBallToHull(hull, ballForConvexHull, - &outmostBall, &outmostBallFirstVertexIndex)) { - fprintf(stderr, "%s:addBallToHull failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + addBallToHull(hull, ballForConvexHull, &outmostBall, + &outmostBallFirstVertexIndex); } if (outmostBall) { - if (-1 == convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, - outmostBallFirstVertexIndex + 1, outmostBallFirstVertexIndex + 2)) { - fprintf(stderr, "%s:convexHullAddTodo failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + convexHullAddTodo(hull, outmostBallFirstVertexIndex + 0, + outmostBallFirstVertexIndex + 1, outmostBallFirstVertexIndex + 2); } for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { @@ -751,12 +509,7 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, ballItem->flagForHull = 0; } - if (-1 == convexHullGenerate(hull)) { - fprintf(stderr, "%s:convexHullGenerate failed.\n", __FUNCTION__); - arrayDestroy(ballPtrArray); - convexHullDestroy(hull); - return 0; - } + convexHullGenerate(hull); convexHullUnifyNormals(hull, &ball->position); convexHullMergeTriangles(hull); @@ -764,7 +517,7 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, for (i = 0; i < convexHullGetFaceNum(hull); ++i) { convexHullFace *f = (convexHullFace *)convexHullGetFace(hull, i); if (-1 != f->plane) { - bmeshBall *ballItem = (bmeshBall *)arrayGetItem(bm->ballArray, f->plane); + bmeshBall *ballItem = arrayGetItem(bm->ballArray, f->plane); ballItem->flagForHull = 1; f->vertexNum = 0; } @@ -804,13 +557,14 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, return hull; } -static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { +static void bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { bmeshBallIterator iterator; bmeshBall *child; - int result = 0; + if (bm->roundColor == ball->roundColor) { - return 0; + return; } + if (depth < BMESH_MAX_PARENT_BALL_DEPTH) { bm->parentBallStack[depth] = ball; } @@ -841,19 +595,13 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { q.pt[1] = convexHullGetVertex(hull, face->u.q.indices[1])->pt; q.pt[2] = convexHullGetVertex(hull, face->u.q.indices[2])->pt; q.pt[3] = convexHullGetVertex(hull, face->u.q.indices[3])->pt; - result = bmeshAddQuadToModel(bm, &q); - if (-1 == result) { - break; - } + bmeshAddQuadToModel(bm, &q); } else if (3 == face->vertexNum) { triangle t; t.pt[0] = convexHullGetVertex(hull, face->u.t.indices[0])->pt; t.pt[1] = convexHullGetVertex(hull, face->u.t.indices[1])->pt; t.pt[2] = convexHullGetVertex(hull, face->u.t.indices[2])->pt; - result = bmeshAddTriangleToModel(bm, &t); - if (-1 == result) { - break; - } + bmeshAddTriangleToModel(bm, &t); } } convexHullDestroy(hull); @@ -863,19 +611,15 @@ static int bmeshStichFrom(bmesh *bm, int depth, bmeshBall *ball) { for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshStichFrom(bm, depth + 1, child); - if (0 != result) { - fprintf(stderr, "%s:bmeshSweepFrom failed.\n", __FUNCTION__); - return result; - } + bmeshStichFrom(bm, depth + 1, child); } - return result; } int bmeshStitch(bmesh *bm) { bm->roundColor++; memset(bm->parentBallStack, 0, sizeof(bm->parentBallStack)); - return bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); + bmeshStichFrom(bm, 0, bmeshGetRootBall(bm)); + return 0; } static void rollQuadVertexs(quad *q) { @@ -938,11 +682,7 @@ static int bmeshAddWallsBetweenQuadsToModel(bmesh *bm, vec3 *origin, quad *q1, wall.pt[j] = oldWall.pt[3 - j]; } } - result = bmeshAddQuadToModel(bm, &wall); - if (-1 == result) { - break; - } - //drawQuad(&wall); + bmeshAddQuadToModel(bm, &wall); } return result; } @@ -960,15 +700,15 @@ static bmeshBall *bmeshFindChildBallForInbetweenMesh(bmesh *bm, bmeshBall *ball) return bmeshFindChildBallForInbetweenMesh(bm, child); } -static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, +static void bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, bmeshBall *ball) { - int result = 0; bmeshBallIterator iterator; bmeshBall *child = 0; bmeshBall *parent; quad currentFace, childFace; + if (bm->roundColor == ball->roundColor) { - return 0; + return; } if (depth < BMESH_MAX_PARENT_BALL_DEPTH) { bm->parentBallStack[depth] = ball; @@ -986,10 +726,7 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, calculateBallQuad(&fakeBall, &childFace); bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, &childFace); - result = bmeshAddQuadToModel(bm, &childFace); - if (-1 == result) { - return result; - } + bmeshAddQuadToModel(bm, &childFace); drawQuad(&childFace); } } @@ -1002,11 +739,8 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, //} else { child = bmeshFindChildBallForInbetweenMesh(bm, child); calculateBallQuad(child, &childFace); - result = bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, + bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, &childFace); - if (-1 == result) { - return result; - } //} ball->meshGenerated = 1; child->meshGenerated = 1; @@ -1015,20 +749,15 @@ static int bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, for (child = bmeshGetBallFirstChild(bm, ball, &iterator); child; child = bmeshGetBallNextChild(bm, ball, &iterator)) { - result = bmeshGenerateInbetweenMeshFrom(bm, depth + 1, child); - if (0 != result) { - fprintf(stderr, "%s:bmeshGenerateInbetweenMeshFrom failed.\n", - __FUNCTION__); - return result; - } + bmeshGenerateInbetweenMeshFrom(bm, depth + 1, child); } - return result; } int bmeshGenerateInbetweenMesh(bmesh *bm) { bm->roundColor++; memset(bm->parentBallStack, 0, sizeof(bm->parentBallStack)); - return bmeshGenerateInbetweenMeshFrom(bm, 0, bmeshGetRootBall(bm)); + bmeshGenerateInbetweenMeshFrom(bm, 0, bmeshGetRootBall(bm)); + return 0; } int bmeshGenerate(bmesh *bm) { diff --git a/src/convexhull.c b/src/convexhull.c index a1108feb..7b776a82 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -2,9 +2,10 @@ #include #include #include +#include "dmemory.h" #include "convexhull.h" #include "array.h" -#include "hashtable.h" +#include "dict.h" #include "draw.h" // @@ -32,11 +33,9 @@ struct convexHull { array *faceArray; int nextTodoIndex; unsigned int *openEdgeProcessedMap; - hashtable *face3Hashtable; - face3 findFace3; + dict *face3Dict; array *edgeArray; - hashtable *edgeHashtable; - edge findEdge; + dict *edgeDict; }; typedef struct { @@ -49,46 +48,26 @@ static int cantorPair(int k1, int k2) { return (k1 + k2) * (k1 + k2 + 1) / 2 + k2; } -face3 *convexHullGetFaceByHashtableParam(void *userData, const void *node) { - convexHull *hull = (convexHull *)userData; - int index = (char *)node - (char *)0; - if (0 == index) { - return &hull->findFace3; - } - return (face3 *)arrayGetItem(hull->faceArray, index - 1); -} - static int face3Hash(void *userData, const void *node) { - face3 *face = convexHullGetFaceByHashtableParam(userData, node); + const face3 *face = node; return cantorPair(cantorPair(face->indices[0], face->indices[1]), face->indices[2]); } -edge *convexHullGetEdgeByHashtableParam(void *userData, const void *node) { - convexHull *hull = (convexHull *)userData; - int index = (char *)node - (char *)0; - if (0 == index) { - return &hull->findEdge; - } - return (edge *)arrayGetItem(hull->edgeArray, index - 1); -} - static int edgeHash(void *userData, const void *node) { - edge *e = convexHullGetEdgeByHashtableParam(userData, node); + const edge *e = node; return e->p1 < e->p2 ? cantorPair(e->p1, e->p2) : cantorPair(e->p2, e->p1); } static int face3Compare(void *userData, const void *node1, const void *node2) { - face3 *f1 = convexHullGetFaceByHashtableParam(userData, node1); - face3 *f2 = convexHullGetFaceByHashtableParam(userData, node2); - return memcmp(f1, f2, sizeof(face3)); + return memcmp(node1, node2, sizeof(face3)); } static int edgeCompare(void *userData, const void *node1, const void *node2) { - edge *e1 = convexHullGetEdgeByHashtableParam(userData, node1); - edge *e2 = convexHullGetEdgeByHashtableParam(userData, node2); + const edge *e1 = node1; + const edge *e2 = node2; if ((e1->p1 == e2->p1 && e1->p2 == e2->p2) || (e1->p2 == e2->p1 && e1->p1 == e2->p2)) { return 0; @@ -97,74 +76,34 @@ static int edgeCompare(void *userData, const void *node1, } convexHull *convexHullCreate(void) { - convexHull *hull = (convexHull *)calloc(1, sizeof(convexHull)); - if (!hull) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } + convexHull *hull = dcalloc(1, sizeof(convexHull)); hull->vertexArray = arrayCreate(sizeof(convexHullVertex)); - if (!hull->vertexArray) { - fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } hull->todoArray = arrayCreate(sizeof(todo)); - if (!hull->todoArray) { - fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } hull->faceArray = arrayCreate(sizeof(convexHullFace)); - if (!hull->faceArray) { - fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } - hull->face3Hashtable = hashtableCreate(FACE3_HASHTABLE_SIZE, + hull->face3Dict = dictCreate(hull->faceArray, FACE3_HASHTABLE_SIZE, face3Hash, face3Compare, hull); - if (!hull->face3Hashtable) { - fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } hull->edgeArray = arrayCreate(sizeof(edge)); - if (!hull->edgeArray) { - fprintf(stderr, "%s:arrayCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } - hull->edgeHashtable = hashtableCreate(EDGE_HASHTABLE_SIZE, + hull->edgeDict = dictCreate(hull->edgeArray, EDGE_HASHTABLE_SIZE, edgeHash, edgeCompare, hull); - if (!hull->edgeHashtable) { - fprintf(stderr, "%s:hashtableCreate failed.\n", __FUNCTION__); - convexHullDestroy(hull); - return 0; - } return hull; } edge *convexHullFindEdge(convexHull *hull, int p1, int p2) { - int index; - hull->findEdge.p1 = p1; - hull->findEdge.p2 = p2; - index = (char *)hashtableGet(hull->edgeHashtable, 0) - (char *)0; - if (0 == index) { - return 0; - } - return arrayGetItem(hull->edgeArray, index - 1); + edge findEdge; + findEdge.p1 = p1; + findEdge.p2 = p2; + return dictFind(hull->edgeDict, &findEdge); } -int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill, +void convexHullAddEdge(convexHull *hull, int p1, int p2, int hill, int face) { - edge *e = convexHullFindEdge(hull, p1, p2); + edge findEdge; + edge *e; + findEdge.p1 = p1; + findEdge.p2 = p2; + e = dictFind(hull->edgeDict, &findEdge); if (!e) { - int newIndex = arrayGetLength(hull->edgeArray); - if (0 != arraySetLength(hull->edgeArray, newIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - e = (edge *)arrayGetItem(hull->edgeArray, newIndex); - memset(e, 0, sizeof(edge)); + e = dictGetClear(hull->edgeDict, &findEdge); e->p1 = p1; e->p2 = p2; e->hill1 = hill; @@ -174,17 +113,12 @@ int convexHullAddEdge(convexHull *hull, int p1, int p2, int hill, vec3Normal((vec3 *)arrayGetItem(hull->vertexArray, e->p1), (vec3 *)arrayGetItem(hull->vertexArray, e->p2), (vec3 *)arrayGetItem(hull->vertexArray, e->hill1), &e->hill1Normal); - if (0 != hashtableInsert(hull->edgeHashtable, (char *)0 + newIndex + 1)) { - fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); - return -1; - } - return 0; + return; } assert(-1 == e->hill2); assert(-1 == e->face2); e->hill2 = hill; e->face2 = face; - return 0; } void convexHullMarkEdgeAsProcessed(convexHull *hull, int firstVertex, @@ -212,41 +146,20 @@ int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane) { convexHullVertex *vtx; int newVertex = arrayGetLength(hull->vertexArray); - if (0 != arraySetLength(hull->vertexArray, newVertex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - vtx = (convexHullVertex *)arrayGetItem(hull->vertexArray, newVertex); + arraySetLength(hull->vertexArray, newVertex + 1); + vtx = arrayGetItem(hull->vertexArray, newVertex); vtx->plane = plane; vtx->orderOnPlane = orderOnPlane; vtx->pt = *vertex; return newVertex; } -int convexHullAddTodoNoCheck(convexHull *hull, int firstVertex, +void convexHullAddTodoNoCheck(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { - todo *t; - int newEdge = arrayGetLength(hull->todoArray); - if (firstVertex < 0 || secondVertex < 0) { - fprintf(stderr, "%s:Invalid params(firstVertex:%d secondVertex:%d).\n", - __FUNCTION__, firstVertex, secondVertex); - return -1; - } - if (0 != arraySetLength(hull->todoArray, newEdge + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - t = (todo *)arrayGetItem(hull->todoArray, newEdge); - memset(t, 0, sizeof(todo)); + todo *t = arrayNewItemClear(hull->todoArray); t->firstVertex = firstVertex; t->secondVertex = secondVertex; t->thirdVertex = thirdVertex; - return 0; -} - -static int isInAdjacentOrder(int order1, int order2) { - return ((order1 + 1) % 4 == order2 || - (order2 + 1) % 4 == order1); } static int sortface(const void *first, const void *second) { @@ -255,7 +168,7 @@ static int sortface(const void *first, const void *second) { return *firstIndex - *secondIndex; } -int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, +void convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, int thirdVertex) { face3 *tri; convexHullVertex *vtx1; @@ -263,62 +176,35 @@ int convexHullAddFace3(convexHull *hull, int firstVertex, int secondVertex, convexHullVertex *vtx3; int newTri; int facePlane = -1; + face3 findFace3; - vtx1 = (convexHullVertex *)arrayGetItem(hull->vertexArray, firstVertex); - vtx2 = (convexHullVertex *)arrayGetItem(hull->vertexArray, secondVertex); - vtx3 = (convexHullVertex *)arrayGetItem(hull->vertexArray, thirdVertex); + vtx1 = arrayGetItem(hull->vertexArray, firstVertex); + vtx2 = arrayGetItem(hull->vertexArray, secondVertex); + vtx3 = arrayGetItem(hull->vertexArray, thirdVertex); if (vtx1->plane == vtx2->plane && vtx1->plane == vtx3->plane) { facePlane = vtx1->plane; } - /* - if (vtx1->plane == vtx2->plane) { - if (!isInAdjacentOrder(vtx1->orderOnPlane, vtx2->orderOnPlane)) { - return 0; - } - } - if (vtx1->plane == vtx3->plane) { - if (!isInAdjacentOrder(vtx1->orderOnPlane, vtx3->orderOnPlane)) { - return 0; - } - } - if (vtx2->plane == vtx3->plane) { - if (!isInAdjacentOrder(vtx2->orderOnPlane, vtx3->orderOnPlane)) { - return 0; - } - }*/ - - memset(&hull->findFace3, 0, sizeof(hull->findFace3)); - hull->findFace3.indices[0] = firstVertex; - hull->findFace3.indices[1] = secondVertex; - hull->findFace3.indices[2] = thirdVertex; - qsort(hull->findFace3.indices, 3, - sizeof(hull->findFace3.indices[0]), sortface); - if (0 == hashtableGet(hull->face3Hashtable, 0)) { + memset(&findFace3, 0, sizeof(findFace3)); + findFace3.indices[0] = firstVertex; + findFace3.indices[1] = secondVertex; + findFace3.indices[2] = thirdVertex; + qsort(&findFace3.indices, 3, sizeof(findFace3.indices[0]), sortface); + if (!dictFind(hull->face3Dict, &findFace3)) { newTri = arrayGetLength(hull->faceArray); - if (0 != arraySetLength(hull->faceArray, newTri + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - tri = (face3 *)arrayGetItem(hull->faceArray, newTri); + tri = dictGetClear(hull->face3Dict, &findFace3); + *tri = findFace3; ((convexHullFace *)tri)->vertexNum = 3; ((convexHullFace *)tri)->plane = facePlane; - *tri = hull->findFace3; - if (0 != hashtableInsert(hull->face3Hashtable, - (char *)0 + newTri + 1)) { - fprintf(stderr, "%s:hashtableInsert failed.\n", __FUNCTION__); - return -1; - } convexHullAddEdge(hull, firstVertex, secondVertex, thirdVertex, newTri); convexHullAddEdge(hull, secondVertex, thirdVertex, firstVertex, newTri); convexHullAddEdge(hull, thirdVertex, firstVertex, secondVertex, newTri); } - return 0; } static void convexHullReleaseForGenerate(convexHull *hull) { - free(hull->openEdgeProcessedMap); + dfree(hull->openEdgeProcessedMap); hull->openEdgeProcessedMap = 0; } @@ -327,31 +213,26 @@ void convexHullDestroy(convexHull *hull) { arrayDestroy(hull->todoArray); arrayDestroy(hull->faceArray); arrayDestroy(hull->edgeArray); - hashtableDestroy(hull->edgeHashtable); - hashtableDestroy(hull->face3Hashtable); + dictDestroy(hull->edgeDict); + dictDestroy(hull->face3Dict); convexHullReleaseForGenerate(hull); - free(hull); + dfree(hull); } -static int convexHullPrepareForGenerate(convexHull *hull) { - free(hull->openEdgeProcessedMap); - hull->openEdgeProcessedMap = (unsigned int *)calloc( +static void convexHullPrepareForGenerate(convexHull *hull) { + dfree(hull->openEdgeProcessedMap); + hull->openEdgeProcessedMap = dcalloc( arrayGetLength(hull->vertexArray) * arrayGetLength(hull->vertexArray) / (sizeof(unsigned int) * 8) + 1, sizeof(unsigned int)); - if (!hull->openEdgeProcessedMap) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return -1; - } hull->nextTodoIndex = 0; - return 0; } int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index, int p3Index) { - vec3 *p1 = (vec3 *)arrayGetItem(hull->vertexArray, p1Index); - vec3 *p2 = (vec3 *)arrayGetItem(hull->vertexArray, p2Index); - vec3 *p3 = (vec3 *)arrayGetItem(hull->vertexArray, p3Index); + vec3 *p1 = arrayGetItem(hull->vertexArray, p1Index); + vec3 *p2 = arrayGetItem(hull->vertexArray, p2Index); + vec3 *p3 = arrayGetItem(hull->vertexArray, p3Index); vec3 beginNormal; vec3 endNormal; int i; @@ -363,8 +244,7 @@ int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index, for (i = 0; i < arrayGetLength(hull->vertexArray); ++i) { if (i != p1Index && i != p2Index && i != p3Index) { - vec3Normal(p1, p2, (vec3 *)arrayGetItem(hull->vertexArray, i), - &endNormal); + vec3Normal(p1, p2, arrayGetItem(hull->vertexArray, i), &endNormal); angle = vec3Angle(&beginNormal, &endNormal); if (angle > maxAngle) { candidateIndex = i; @@ -376,26 +256,18 @@ int convexHullGetNextVertex(convexHull *hull, int p1Index, int p2Index, return candidateIndex; } -int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, +void convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3) { if (!convexHullOpenEdgeProcessed(hull, vertex1, vertex2)) { - return convexHullAddTodoNoCheck(hull, vertex1, vertex2, vertex3); + convexHullAddTodoNoCheck(hull, vertex1, vertex2, vertex3); } - return 0; } -extern int showFaceIndex; - static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, int index3) { int i; int indices[] = {index1, index2, index3}; - if (showFaceIndex == arrayGetLength(hull->faceArray)) { - drawDebugPrintf("showFaceIndex:%d can add (%d,%d,%d)", showFaceIndex, - index1, index2, index3); - } - for (i = 0; i < 3; ++i) { int p1 = indices[i]; int p2 = indices[(i + 1) % 3]; @@ -412,15 +284,6 @@ static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, (vec3 *)arrayGetItem(hull->vertexArray, hill), &normal); angle = vec3Angle(&e->hill1Normal, &normal); - if (showFaceIndex == arrayGetLength(hull->faceArray)) { - drawDebugPrintf("showFaceIndex:%d angle:%f (%d,%d,%d)", - showFaceIndex, angle, e->p1, e->p2, e->hill1); - drawSphere((vec3 *)arrayGetItem(hull->vertexArray, 9), - 0.1, 36, 24); - drawSphere((vec3 *)arrayGetItem(hull->vertexArray, 6), - 0.1, 36, 24); - } - if (angle < 1) { return 0; } @@ -429,15 +292,12 @@ static int convexHullCanAddFace3(convexHull *hull, int index1, int index2, return 1; } -int convexHullGenerate(convexHull *hull) { +void convexHullGenerate(convexHull *hull) { int index1, index2, index3; convexHullReleaseForGenerate(hull); - if (0 != convexHullPrepareForGenerate(hull)) { - fprintf(stderr, "%s:convexHullPrepareForGenerate failed.\n", __FUNCTION__); - return -1; - } + convexHullPrepareForGenerate(hull); while (hull->nextTodoIndex < arrayGetLength(hull->todoArray)) { - todo *t = (todo *)arrayGetItem(hull->todoArray, hull->nextTodoIndex++); + todo *t = arrayGetItem(hull->todoArray, hull->nextTodoIndex++); index1 = t->firstVertex; index2 = t->secondVertex; if (convexHullOpenEdgeProcessed(hull, index1, index2) || @@ -452,28 +312,19 @@ int convexHullGenerate(convexHull *hull) { if (!convexHullCanAddFace3(hull, index1, index2, index3)) { continue; } - if (showFaceIndex == arrayGetLength(hull->faceArray)) { - drawDebugPrintf("showFaceIndex:%d added face3 (%d,%d,%d)", - showFaceIndex, index1, index2, index3); - } convexHullAddFace3(hull, index1, index2, index3); convexHullAddTodo(hull, index2, index3, index1); convexHullAddTodo(hull, index3, index1, index2); } - return 0; } -int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { +void convexHullUnifyNormals(convexHull *hull, vec3 *origin) { int i; for (i = 0; i < arrayGetLength(hull->faceArray); ++i) { - face3 *triIdx = (face3 *)arrayGetItem( - hull->faceArray, i); - convexHullVertex *p1 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, triIdx->indices[0]); - convexHullVertex *p2 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, triIdx->indices[1]); - convexHullVertex *p3 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, triIdx->indices[2]); + face3 *triIdx = arrayGetItem(hull->faceArray, i); + convexHullVertex *p1 = arrayGetItem(hull->vertexArray, triIdx->indices[0]); + convexHullVertex *p2 = arrayGetItem(hull->vertexArray, triIdx->indices[1]); + convexHullVertex *p3 = arrayGetItem(hull->vertexArray, triIdx->indices[2]); vec3 normal; vec3 o2v; vec3Normal(&p1->pt, &p2->pt, &p3->pt, &normal); @@ -484,7 +335,6 @@ int convexHullUnifyNormals(convexHull *hull, vec3 *origin) { triIdx->indices[2] = index; } } - return 0; } static int sortEdgeByScore(const void *first, const void *second) { @@ -507,38 +357,20 @@ static void rollTriangleIndices(face3 *face) { } } -int convexHullMergeTriangles(convexHull *hull) { +void convexHullMergeTriangles(convexHull *hull) { int edgeIndex; for (edgeIndex = 0; edgeIndex < arrayGetLength(hull->edgeArray); ++edgeIndex) { - edge *e = (edge *)arrayGetItem(hull->edgeArray, edgeIndex); + edge *e = arrayGetItem(hull->edgeArray, edgeIndex); if (-1 != e->face1 && -1 != e->face2) { - //face3 *f1 = (face3 *)arrayGetItem(hull->faceArray, e->face1); - //face3 *f2 = (face3 *)arrayGetItem(hull->faceArray, e->face2); vec3 f1normal; vec3 f2normal; const vec3 yAxis = {0, 1, 0}; - /* - convexHullVertex *f1p1 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f1->indices[0]); - convexHullVertex *f1p2 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f1->indices[1]); - convexHullVertex *f1p3 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f1->indices[2]); - convexHullVertex *f2p1 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f2->indices[0]); - convexHullVertex *f2p2 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f2->indices[1]); - convexHullVertex *f2p3 = (convexHullVertex *)arrayGetItem( - hull->vertexArray, f2->indices[2]); - vec3Normal(&f1p1->pt, &f1p2->pt, &f1p3->pt, &f1normal); - vec3Normal(&f2p1->pt, &f2p2->pt, &f2p3->pt, &f2normal); - */ - vec3 *v1 = (vec3 *)arrayGetItem(hull->vertexArray, e->p1); - vec3 *v2 = (vec3 *)arrayGetItem(hull->vertexArray, e->p2); - vec3 *vHill1 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill1); - vec3 *vHill2 = (vec3 *)arrayGetItem(hull->vertexArray, e->hill2); + vec3 *v1 = arrayGetItem(hull->vertexArray, e->p1); + vec3 *v2 = arrayGetItem(hull->vertexArray, e->p2); + vec3 *vHill1 = arrayGetItem(hull->vertexArray, e->hill1); + vec3 *vHill2 = arrayGetItem(hull->vertexArray, e->hill2); vec3 v12; vec3Sub(v1, v2, &v12); vec3Normal(v1, vHill1, v2, &f1normal); @@ -554,17 +386,15 @@ int convexHullMergeTriangles(convexHull *hull) { // // After sort by score, the edge hashmap can not be used anymore. // - hashtableDestroy(hull->edgeHashtable); - hull->edgeHashtable = 0; + dictDestroy(hull->edgeDict); + hull->edgeDict = 0; for (edgeIndex = 0; edgeIndex < arrayGetLength(hull->edgeArray); ++edgeIndex) { - edge *e = (edge *)arrayGetItem(hull->edgeArray, edgeIndex); + edge *e = arrayGetItem(hull->edgeArray, edgeIndex); if (-1 != e->face1 && -1 != e->face2) { - convexHullFace *f1 = (convexHullFace *)arrayGetItem(hull->faceArray, - e->face1); - convexHullFace *f2 = (convexHullFace *)arrayGetItem(hull->faceArray, - e->face2); + convexHullFace *f1 = arrayGetItem(hull->faceArray, e->face1); + convexHullFace *f2 = arrayGetItem(hull->faceArray, e->face2); if (3 == f1->vertexNum && 3 == f2->vertexNum) { if (e->angleBetweenFaces <= 40 && f1->plane == f2->plane) { @@ -575,33 +405,23 @@ int convexHullMergeTriangles(convexHull *hull) { f1->u.q.indices[2] = e->hill2; f1->vertexNum = 4; f2->vertexNum = 0; - //if (edgeIndex >= 12 && edgeIndex <= 12) { - // drawDebugPoint((vec3 *)arrayGetItem( - // hull->vertexArray, e->p1), edgeIndex); - // drawDebugPoint((vec3 *)arrayGetItem( - // hull->vertexArray, e->p2), edgeIndex); - //} } } } } // After merge, face3 hashtable can not be used anymore. - hashtableDestroy(hull->face3Hashtable); - hull->face3Hashtable = 0; - - return 0; + dictDestroy(hull->face3Dict); + hull->face3Dict = 0; } convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex) { - convexHullFace *face = (convexHullFace *)arrayGetItem(hull->faceArray, - faceIndex); + convexHullFace *face = arrayGetItem(hull->faceArray, faceIndex); return face; } convexHullVertex *convexHullGetVertex(convexHull *hull, int vertexIndex) { - convexHullVertex *vertex = (convexHullVertex *)arrayGetItem( - hull->vertexArray, vertexIndex); + convexHullVertex *vertex = arrayGetItem(hull->vertexArray, vertexIndex); return vertex; } diff --git a/src/convexhull.h b/src/convexhull.h index 2c5db4e3..2f517948 100644 --- a/src/convexhull.h +++ b/src/convexhull.h @@ -23,12 +23,12 @@ convexHull *convexHullCreate(void); int convexHullAddVertex(convexHull *hull, vec3 *vertex, int plane, int orderOnPlane); void convexHullDestroy(convexHull *hull); -int convexHullGenerate(convexHull *hull); -int convexHullUnifyNormals(convexHull *hull, vec3 *origin); -int convexHullMergeTriangles(convexHull *hull); +void convexHullGenerate(convexHull *hull); +void convexHullUnifyNormals(convexHull *hull, vec3 *origin); +void convexHullMergeTriangles(convexHull *hull); int convexHullGetFaceNum(convexHull *hull); convexHullFace *convexHullGetFace(convexHull *hull, int faceIndex); convexHullVertex *convexHullGetVertex(convexHull *hull, int vertexIndex); -int convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); +void convexHullAddTodo(convexHull *hull, int vertex1, int vertex2, int vertex3); #endif diff --git a/src/hashtable.c b/src/dict.c similarity index 51% rename from src/hashtable.c rename to src/dict.c index 08ee1274..9fb22ed8 100644 --- a/src/hashtable.c +++ b/src/dict.c @@ -2,8 +2,8 @@ #include #include #include -#include "hashtable.h" -#include "array.h" +#include "dmemory.h" +#include "dict.h" typedef struct hashtableEntry { const void *node; @@ -15,14 +15,22 @@ typedef struct hashtableKey { int firstEntryIndex; } hashtableKey; -struct hashtable { +typedef struct hashtable { array *keyArray; array *entryArray; int bucketSize; int (*hashCallback)(void *userData, const void *node); int (*compareCallback)(void *userData, const void *node1, const void *node2); void *userData; -}; +} hashtable; + +void hashtableDestroy(hashtable *ht) { + if (ht) { + arrayDestroy(ht->keyArray); + arrayDestroy(ht->entryArray); + dfree(ht); + } +} hashtable *hashtableCreate(int bucketSize, int (*hashCallback)(void *userData, const void *node), @@ -50,23 +58,10 @@ hashtable *hashtableCreate(int bucketSize, ht->hashCallback = hashCallback; ht->compareCallback = compareCallback; ht->userData = userData; - if (0 != arraySetLength(ht->keyArray, bucketSize)) { - fprintf(stderr, "%s:arraySetLength failed(bucketSize:%d).\n", __FUNCTION__, - bucketSize); - hashtableDestroy(ht); - return 0; - } + arraySetLength(ht->keyArray, bucketSize); return ht; } -void hashtableDestroy(hashtable *ht) { - if (ht) { - arrayDestroy(ht->keyArray); - arrayDestroy(ht->entryArray); - free(ht); - } -} - static int hashtableGetNodeHash(hashtable *ht, const void *node) { return (int)((unsigned int)ht->hashCallback(ht->userData, node) % ht->bucketSize); @@ -88,26 +83,19 @@ static hashtableEntry *findEntry(hashtable *ht, hashtableKey *key, return 0; } -int hashtableInsert(hashtable *ht, const void *node) { +static void hashtableInsert(hashtable *ht, const void *keyNode, + const void *node) { int newEntryIndex; - int hash = hashtableGetNodeHash(ht, node); - hashtableKey *key = (hashtableKey *)arrayGetItem(ht->keyArray, hash); - hashtableEntry *entry = findEntry(ht, key, node); - if (entry) { - return -1; - } + hashtableEntry *entry; + int hash = hashtableGetNodeHash(ht, keyNode); + hashtableKey *key = arrayGetItem(ht->keyArray, hash); newEntryIndex = arrayGetLength(ht->entryArray); - if (0 != arraySetLength(ht->entryArray, newEntryIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed(newEntryIndex:%d).\n", - __FUNCTION__, newEntryIndex); - return -1; - } - entry = (hashtableEntry *)arrayGetItem(ht->entryArray, newEntryIndex); + arraySetLength(ht->entryArray, newEntryIndex + 1); + entry = arrayGetItem(ht->entryArray, newEntryIndex); entry->node = node; entry->nextEntryIndex = 0 == key->entryNum ? -1 : key->firstEntryIndex; key->firstEntryIndex = newEntryIndex; key->entryNum++; - return 0; } void *hashtableGet(hashtable *ht, const void *node) { @@ -115,3 +103,80 @@ void *hashtableGet(hashtable *ht, const void *node) { hashtableKey *key = (hashtableKey *)arrayGetItem(ht->keyArray, hash); return findEntry(ht, key, node); } + +struct dict { + hashtable *ht; + array *arr; + int (*hashCallback)(void *userData, const void *key); + int (*compareCallback)(void *userData, const void *key1, const void *key2); + void *userData; + void *findKey; +}; + +static const void *dictKeyTranslate(dict *dct, const void *key) { + if (0 == key) { + key = dct->findKey; + } else { + key = arrayGetItem(dct->arr, ((char *)key - 0) - 1); + } + return key; +} + +static int dictHash(void *userData, const void *key) { + dict *dct = userData; + return dct->hashCallback(dct->userData, dictKeyTranslate(dct, key)); +} + +static int dictCompare(void *userData, const void *key1, const void *key2) { + dict *dct = userData; + return dct->compareCallback(dct->userData, dictKeyTranslate(dct, key1), + dictKeyTranslate(dct, key2)); +} + +dict *dictCreate(array *arr, int bucketSize, + int (*hashCallback)(void *userData, const void *key), + int (*compareCallback)(void *userData, const void *key1, const void *key2), + void *userData) { + dict *dct = dcalloc(1, sizeof(dict)); + dct->arr = arr; + dct->hashCallback = hashCallback; + dct->compareCallback = compareCallback; + dct->userData = userData; + dct->findKey = 0; + dct->ht = hashtableCreate(bucketSize, dictHash, dictCompare, dct); + return dct; +} + +void dictDestroy(dict *dct) { + if (dct && dct->ht) { + hashtableDestroy(dct->ht); + } + dfree(dct); +} + +void *dictFind(dict *dct, void *key) { + int index; + dct->findKey = key; + index = (char *)hashtableGet(dct->ht, 0) - 0; + if (0 == index) { + return 0; + } + return arrayGetItem(dct->arr, index - 1); +} + +void *dictGet(dict *dct, void *key) { + void *value = dictFind(dct, key); + if (!value) { + int newIndex = arrayGetLength(dct->arr); + value = arrayNewItem(dct->arr); + dct->findKey = key; + hashtableInsert(dct->ht, 0, (char *)0 + newIndex + 1); + } + return value; +} + +void *dictGetClear(dict *dct, void *key) { + void *ptr = dictGet(dct, key); + memset(ptr, 0, arrayGetNodeSize(dct->arr)); + return ptr; +} diff --git a/src/dict.h b/src/dict.h new file mode 100644 index 00000000..89b61c95 --- /dev/null +++ b/src/dict.h @@ -0,0 +1,16 @@ +#ifndef DICT_H +#define DICT_H +#include "array.h" + +typedef struct dict dict; +dict *dictCreate(array *arr, int bucketSize, + int (*hashCallback)(void *userData, const void *key), + int (*compareCallback)(void *userData, const void *key1, const void *key2), + void *userData); +void dictDestroy(dict *dct); +void *dictFind(dict *dct, void *key); +void *dictGet(dict *dct, void *key); +void *dictGetClear(dict *dct, void *key); + +#endif + diff --git a/src/dmemory.c b/src/dmemory.c new file mode 100644 index 00000000..492f54c9 --- /dev/null +++ b/src/dmemory.c @@ -0,0 +1,36 @@ +#include +#include +#include "dmemory.h" + +static void outOfMemory(void) { + fprintf(stderr, "Out of memory\n"); + abort(); +} + +void *dmalloc(int size) { + void *ptr = malloc(size); + if (!ptr) { + outOfMemory(); + } + return ptr; +} + +void *dcalloc(int nitems, int size) { + void *ptr = calloc(nitems, size); + if (!ptr) { + outOfMemory(); + } + return ptr; +} + +void *drealloc(void *ptr, int size) { + ptr = realloc(ptr, size); + if (!ptr) { + outOfMemory(); + } + return ptr; +} + +void dfree(void *ptr) { + free(ptr); +} diff --git a/src/dmemory.h b/src/dmemory.h new file mode 100644 index 00000000..4952b56f --- /dev/null +++ b/src/dmemory.h @@ -0,0 +1,9 @@ +#ifndef DMEMORY_H +#define DMEMORY_H + +void *dmalloc(int size); +void *dcalloc(int nitems, int size); +void *drealloc(void *ptr, int size); +void dfree(void *ptr); + +#endif diff --git a/src/hashtable.h b/src/hashtable.h deleted file mode 100644 index 8915162d..00000000 --- a/src/hashtable.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef HASHTABLE_H -#define HASHTABLE_H - -typedef struct hashtable hashtable; - -hashtable *hashtableCreate(int bucketSize, - int (*hashCallback)(void *userData, const void *node), - int (*compareCallback)(void *userData, const void *node1, const void *node2), - void *userData); -void hashtableDestroy(hashtable *ht); -int hashtableInsert(hashtable *ht, const void *node); -void *hashtableGet(hashtable *ht, const void *node); - -#endif - diff --git a/src/render.cpp b/src/render.cpp index e04f14c0..155ff144 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -340,7 +340,7 @@ void Render::paintGL() { if (0 == bm) { bmeshBall ball; bmeshBone bone; - int i; + unsigned int i; bm = bmeshCreate(); for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { diff --git a/src/subdivide.c b/src/subdivide.c index f0fd6ea0..fa2faac2 100644 --- a/src/subdivide.c +++ b/src/subdivide.c @@ -1,6 +1,7 @@ #include #include #include +#include "dmemory.h" #include "subdivide.h" #include "draw.h" @@ -82,34 +83,14 @@ static void initFace(subdivFace *f) { } subdivModel *subdivCreateModel(void) { - subdivModel *model = (subdivModel *)calloc(1, sizeof(subdivModel)); - if (!model) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } + subdivModel *model = (subdivModel *)dcalloc(1, sizeof(subdivModel)); model->faceLink = -1; model->edgeLink = -1; model->vertexLink = -1; model->vertexArray = arrayCreate(sizeof(subdivVertex)); - if (!model->vertexArray) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } model->faceArray = arrayCreate(sizeof(subdivFace)); - if (!model->faceArray) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } model->edgeArray = arrayCreate(sizeof(subdivEdge)); - if (!model->edgeArray) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } model->indexArray = arrayCreate(sizeof(subdivLink)); - if (!model->indexArray) { - fprintf(stderr, "%s:Insufficient memory.\n", __FUNCTION__); - return 0; - } return model; } @@ -119,18 +100,15 @@ void subdivDestroyModel(subdivModel *model) { arrayDestroy(model->faceArray); arrayDestroy(model->edgeArray); arrayDestroy(model->indexArray); - free(model); + dfree(model); } } static int allocLink(subdivModel *model, int index) { subdivLink *linkItem; int newLink = arrayGetLength(model->indexArray); - if (0 != arraySetLength(model->indexArray, newLink + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return -1; - } - linkItem = (subdivLink *)arrayGetItem(model->indexArray, newLink); + arraySetLength(model->indexArray, newLink + 1); + linkItem = arrayGetItem(model->indexArray, newLink); linkItem->index = index; linkItem->nextLink = -1; return newLink; @@ -142,25 +120,21 @@ static int subdivLinkElement(subdivModel *model, int current, int order) { subdivLink *linkItem; iterator = current; for (i = 0; i <= order && -1 != iterator; ++i) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + linkItem = arrayGetItem(model->indexArray, iterator); element = linkItem->index; iterator = linkItem->nextLink; } return element; } -static int pushLink(subdivModel *model, int *link, int *num, int index) { +static void pushLink(subdivModel *model, int *link, int *num, int index) { int newLink = allocLink(model, index); int i, iterator; subdivLink *linkItem = 0; - if (-1 == newLink) { - fprintf(stderr, "%s:allocLink failed.\n", __FUNCTION__); - return -1; - } if (-1 != *link) { iterator = *link; for (i = 0; i < *num; ++i) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + linkItem = arrayGetItem(model->indexArray, iterator); iterator = linkItem->nextLink; } linkItem->nextLink = newLink; @@ -168,34 +142,23 @@ static int pushLink(subdivModel *model, int *link, int *num, int index) { *link = newLink; } (*num)++; - return 0; } static subdivVertex *allocVertex(subdivModel *model) { subdivVertex *vertex; int newVertexIndex = arrayGetLength(model->vertexArray); - if (0 != arraySetLength(model->vertexArray, newVertexIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return 0; - } + arraySetLength(model->vertexArray, newVertexIndex + 1); vertex = arrayGetItem(model->vertexArray, newVertexIndex); initVertex(vertex); vertex->index = newVertexIndex; - if (0 != pushLink(model, &model->vertexLink, &model->vertexNum, - vertex->index)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &model->vertexLink, &model->vertexNum, vertex->index); return vertex; } static subdivEdge *allocEdge(subdivModel *model) { subdivEdge *edge; int newEdgeIndex = arrayGetLength(model->edgeArray); - if (0 != arraySetLength(model->edgeArray, newEdgeIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return 0; - } + arraySetLength(model->edgeArray, newEdgeIndex + 1); edge = arrayGetItem(model->edgeArray, newEdgeIndex); initEdge(edge); edge->index = newEdgeIndex; @@ -205,10 +168,7 @@ static subdivEdge *allocEdge(subdivModel *model) { static subdivFace *allocFace(subdivModel *model) { subdivFace *face; int newFaceIndex = arrayGetLength(model->faceArray); - if (0 != arraySetLength(model->faceArray, newFaceIndex + 1)) { - fprintf(stderr, "%s:arraySetLength failed.\n", __FUNCTION__); - return 0; - } + arraySetLength(model->faceArray, newFaceIndex + 1); face = arrayGetItem(model->faceArray, newFaceIndex); initFace(face); face->index = newFaceIndex; @@ -219,21 +179,21 @@ static subdivVertex *getVertex(subdivModel *model, int index) { if (-1 == index) { return 0; } - return (subdivVertex *)arrayGetItem(model->vertexArray, index); + return arrayGetItem(model->vertexArray, index); } static subdivEdge *getEdge(subdivModel *model, int index) { if (-1 == index) { return 0; } - return (subdivEdge *)arrayGetItem(model->edgeArray, index); + return arrayGetItem(model->edgeArray, index); } static subdivFace *getFace(subdivModel *model, int index) { if (-1 == index) { return 0; } - return (subdivFace *)arrayGetItem(model->faceArray, index); + return arrayGetItem(model->faceArray, index); } static int isHoleEdge(subdivModel *model, int e) { @@ -250,10 +210,6 @@ static int edgePoint(subdivModel *model, int e) { int nv = getEdge(model, e)->edgePt; if (-1 == nv) { subdivVertex *newVertex = allocVertex(model); - if (!newVertex) { - fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); - return 0; - } nv = newVertex->index; getEdge(model, e)->edgePt = nv; getEdge(model, e)->avg = getVertex(model, getEdge(model, e)->v[0])->v; @@ -266,15 +222,11 @@ static int edgePoint(subdivModel *model, int e) { while (-1 != iterator) { int f; int fp; - subdivLink *linkItem = (subdivLink *)arrayGetItem(model->indexArray, + subdivLink *linkItem = arrayGetItem(model->indexArray, iterator); f = linkItem->index; iterator = linkItem->nextLink; fp = facePoint(model, f); - if (-1 == fp) { - fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); - return 0; - } vec3Add(&getVertex(model, nv)->v, &getVertex(model, fp)->v, &getVertex(model, nv)->v); } @@ -293,18 +245,13 @@ static int facePoint(subdivModel *model, int f) { int iterator; int i; subdivVertex *newVertex = allocVertex(model); - if (!newVertex) { - fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); - return 0; - } nv = newVertex->index; getFace(model, f)->avg = nv; iterator = getFace(model, f)->vertexLink; i = 0; while (-1 != iterator) { int p; - subdivLink *linkItem = (subdivLink *)arrayGetItem(model->indexArray, - iterator); + subdivLink *linkItem = arrayGetItem(model->indexArray, iterator); p = linkItem->index; iterator = linkItem->nextLink; if (!i) { @@ -345,27 +292,19 @@ static int updatedPoint(subdivModel *model, int p) { } newVertex = allocVertex(model); - if (!newVertex) { - fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); - return 0; - } nv = newVertex->index; getVertex(model, p)->newVertexIndex = nv; if (isHoleVertex(model, p)) { getVertex(model, nv)->v = getVertex(model, p)->v; iterator = getVertex(model, p)->edgeLink; while (-1 != iterator) { - link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + link = arrayGetItem(model->indexArray, iterator); e = link->index; iterator = link->nextLink; if (!isHoleEdge(model, e)) { continue; } ep = edgePoint(model, e); - if (-1 == ep) { - fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); - return 0; - } vec3Add(&getVertex(model, nv)->v, &getVertex(model, ep)->v, &getVertex(model, nv)->v); n++; @@ -376,26 +315,18 @@ static int updatedPoint(subdivModel *model, int p) { n = getVertex(model, p)->faceNum; iterator = getVertex(model, p)->faceLink; while (-1 != iterator) { - link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + link = arrayGetItem(model->indexArray, iterator); f = link->index; iterator = link->nextLink; facePt = facePoint(model, f); - if (-1 == facePt) { - fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); - return 0; - } vec3Add(&sum, &getVertex(model, facePt)->v, &sum); } iterator = getVertex(model, p)->edgeLink; while (-1 != iterator) { - link = (subdivLink *)arrayGetItem(model->indexArray, iterator); + link = arrayGetItem(model->indexArray, iterator); e = link->index; iterator = link->nextLink; ep = edgePoint(model, e); - if (-1 == ep) { - fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); - return 0; - } scaleAdd(&sum, &getVertex(model, ep)->v, 2, &sum); } vec3Scale(&sum, 1.0 / n, &sum); @@ -407,7 +338,7 @@ static int updatedPoint(subdivModel *model, int p) { return nv; } -int subdivCalculteNorms(subdivModel *model) { +void subdivCalculteNorms(subdivModel *model) { int i, j, n; int faceIterator; int nextFaceIterator; @@ -423,16 +354,16 @@ int subdivCalculteNorms(subdivModel *model) { faceIterator = model->faceLink; j = 0; while (-1 != faceIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + linkItem = arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); nextFaceIterator = linkItem->nextLink; vertexIterator = f->vertexLink; n = f->vertexNum; i = 0; while (-1 != vertexIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + linkItem = arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); - linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + linkItem = arrayGetItem(model->indexArray, vertexIterator); v = getVertex(model, linkItem->index); vertexIterator = linkItem->nextLink; v0 = getVertex(model, @@ -454,13 +385,13 @@ int subdivCalculteNorms(subdivModel *model) { vertexIterator = model->vertexLink; while (-1 != vertexIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + linkItem = arrayGetItem(model->indexArray, vertexIterator); v = getVertex(model, linkItem->index); nextVertexIterator = linkItem->nextLink; faceIterator = v->faceLink; j = 0; while (-1 != faceIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + linkItem = arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); faceIterator = linkItem->nextLink; vec3Add(&v->avgNorm, &f->norm, &v->avgNorm); @@ -471,8 +402,6 @@ int subdivCalculteNorms(subdivModel *model) { } vertexIterator = nextVertexIterator; } - - return 0; } void subdivDrawModel(subdivModel *model) { @@ -484,13 +413,13 @@ void subdivDrawModel(subdivModel *model) { faceIterator = model->faceLink; glColor4f(1.0, 1.0, 1.0, 1.0); while (-1 != faceIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + linkItem = arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); faceIterator = linkItem->nextLink; vertexIterator = f->vertexLink; glBegin(GL_POLYGON); while (-1 != vertexIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + linkItem = arrayGetItem(model->indexArray, vertexIterator); v = getVertex(model, linkItem->index); vertexIterator = linkItem->nextLink; glNormal3fv(&(f->norm.x)); @@ -512,48 +441,24 @@ subdivModel *subdivCatmullClark(subdivModel *model) { subdivModel *outputModel; outputModel = subdivCreateModel(); - if (!outputModel) { - fprintf(stderr, "%s:subdivCreateModel failed.\n", __FUNCTION__); - return 0; - } faceIterator = model->faceLink; while (-1 != faceIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, faceIterator); + linkItem = arrayGetItem(model->indexArray, faceIterator); f = linkItem->index; j = 0; nextFaceIterator = linkItem->nextLink; vertexIterator = getFace(model, f)->vertexLink; while (-1 != vertexIterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, vertexIterator); + linkItem = arrayGetItem(model->indexArray, vertexIterator); p = linkItem->index; vertexIterator = linkItem->nextLink; ai = updatedPoint(model, p); - if (-1 == ai) { - fprintf(stderr, "%s:updatedPoint failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } bi = edgePoint(model, subdivLinkElement(model, getFace(model, f)->edgeLink, (j + 1) % getFace(model, f)->edgeNum)); - if (-1 == bi) { - fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } ci = facePoint(model, f); - if (-1 == ci) { - fprintf(stderr, "%s:facePoint failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } di = edgePoint(model, subdivLinkElement(model, getFace(model, f)->edgeLink, j)); - if (-1 == di) { - fprintf(stderr, "%s:edgePoint failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } a = getVertex(model, ai)->indexOnNewModel; if (-1 == a) { a = subdivAddVertex(outputModel, &getVertex(model, ai)->v); @@ -574,36 +479,19 @@ subdivModel *subdivCatmullClark(subdivModel *model) { d = subdivAddVertex(outputModel, &getVertex(model, di)->v); getVertex(model, di)->indexOnNewModel = d; } - if (-1 == a || -1 == b || -1 == c || -1 == d) { - fprintf(stderr, "%s:subdivAddVertex failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } - if (-1 == subdivAddQuadFace(outputModel, a, b, c, d)) { - fprintf(stderr, "%s:subdivAddFace failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } + subdivAddQuadFace(outputModel, a, b, c, d); ++j; } faceIterator = nextFaceIterator; } - if (0 != subdivCalculteNorms(outputModel)) { - fprintf(stderr, "%s:subdivCalculteNorms failed.\n", __FUNCTION__); - subdivDestroyModel(outputModel); - return 0; - } - + subdivCalculteNorms(outputModel); + return outputModel; } int subdivAddVertex(subdivModel *model, vec3 *v) { subdivVertex *newVertex = allocVertex(model); - if (!newVertex) { - fprintf(stderr, "%s:allocVertex failed.\n", __FUNCTION__); - return -1; - } newVertex->v = *v; return newVertex->index; } @@ -612,27 +500,13 @@ static int subdivAddEdge(subdivModel *model, int p1, int p2) { subdivEdge *newEdge = allocEdge(model); subdivVertex *v1; subdivVertex *v2; - if (!newEdge) { - fprintf(stderr, "%s:allocEdge failed.\n", __FUNCTION__); - return -1; - } newEdge->v[0] = p1; newEdge->v[1] = p2; v1 = getVertex(model, p1); v2 = getVertex(model, p2); - if (-1 == pushLink(model, &v1->edgeLink, &v1->edgeNum, newEdge->index)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } - if (-1 == pushLink(model, &v2->edgeLink, &v2->edgeNum, newEdge->index)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } - if (-1 == pushLink(model, &model->edgeLink, &model->edgeNum, - newEdge->index)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &v1->edgeLink, &v1->edgeNum, newEdge->index); + pushLink(model, &v2->edgeLink, &v2->edgeNum, newEdge->index); + pushLink(model, &model->edgeLink, &model->edgeNum, newEdge->index); return newEdge->index; } @@ -643,7 +517,7 @@ static int subdivEdgeByVertexs(subdivModel *model, int p1, int p2) { int newEdgeIndex; int iterator = v1->edgeLink; while (-1 != iterator) { - linkItem = (subdivLink *)arrayGetItem(model->indexArray, iterator); + linkItem = arrayGetItem(model->indexArray, iterator); e = getEdge(model, linkItem->index); iterator = linkItem->nextLink; if (e->v[0] == p2 || e->v[1] == p2) { @@ -660,44 +534,21 @@ static int subdivAddFace(subdivModel *model, int *vertexs, int vertexNum) { int p0, p1; int newFaceIndex; int edgeIndex; - if (!f) { - fprintf(stderr, "%s:allocFace failed.\n", __FUNCTION__); - return -1; - } newFaceIndex = f->index; - if (0 != pushLink(model, &model->faceLink, &model->faceNum, newFaceIndex)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &model->faceLink, &model->faceNum, newFaceIndex); p0 = vertexs[0]; for (i = 1; i <= vertexNum; ++i, p0 = p1) { subdivVertex *v1; subdivEdge *e; p1 = vertexs[i % vertexNum]; v1 = getVertex(model, p1); - if (0 != pushLink(model, &v1->faceLink, &v1->faceNum, newFaceIndex)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &v1->faceLink, &v1->faceNum, newFaceIndex); edgeIndex = subdivEdgeByVertexs(model, p0, p1); - if (-1 == edgeIndex) { - fprintf(stderr, "%s:subdivEdgeByVertexs failed.\n", __FUNCTION__); - return -1; - } e = getEdge(model, edgeIndex); - if (0 != pushLink(model, &e->faceLink, &e->faceNum, newFaceIndex)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &e->faceLink, &e->faceNum, newFaceIndex); f = getFace(model, newFaceIndex); - if (0 != pushLink(model, &f->edgeLink, &f->edgeNum, edgeIndex)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } - if (0 != pushLink(model, &f->vertexLink, &f->vertexNum, p1)) { - fprintf(stderr, "%s:pushLink failed.\n", __FUNCTION__); - return -1; - } + pushLink(model, &f->edgeLink, &f->edgeNum, edgeIndex); + pushLink(model, &f->vertexLink, &f->vertexNum, p1); } return newFaceIndex; } @@ -712,7 +563,7 @@ int subdivAddQuadFace(subdivModel *model, int p1, int p2, int p3, int p4) { return subdivAddFace(model, vertexs, 4); } -int subdivAddCube(subdivModel *model) { +void subdivAddCube(subdivModel *model) { int x, y, z; for (x = -1; x <= 1; x += 2) { for (y = -1; y <= 1; y += 2) { @@ -729,28 +580,17 @@ int subdivAddCube(subdivModel *model) { subdivAddQuadFace(model, 0, 2, 6, 4); subdivAddQuadFace(model, 5, 7, 3, 1); subdivCalculteNorms(model); - return 0; } subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops) { int i; subdivModel *outputModel; outputModel = subdivCatmullClark(model); - if (!outputModel) { - fprintf(stderr, "%s:subdivCatmullClark failed.\n", __FUNCTION__); - return 0; - } for (i = 1; i < loops; ++i) { subdivModel *loopInput = outputModel; outputModel = subdivCatmullClark(loopInput); subdivDestroyModel(loopInput); - if (!outputModel) { - fprintf(stderr, "%s:subdivCatmullClark failed(loops:%d i:%d).\n", - __FUNCTION__, loops, i); - return 0; - } } - drawDebugPrintf("faces: %d", outputModel->faceNum); subdivDrawModel(outputModel); return outputModel; } diff --git a/src/subdivide.h b/src/subdivide.h index 477634e8..b755c494 100644 --- a/src/subdivide.h +++ b/src/subdivide.h @@ -16,8 +16,8 @@ int subdivAddTriangleFace(subdivModel *model, int p1, int p2, int p3); int subdivAddQuadFace(subdivModel *model, int p1, int p2, int p3, int p4); subdivModel *subdivCatmullClark(subdivModel *model); subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops); -int subdivAddCube(subdivModel *model); -int subdivCalculteNorms(subdivModel *model); +void subdivAddCube(subdivModel *model); +void subdivCalculteNorms(subdivModel *model); void subdivDrawModel(subdivModel *model); #ifdef __cplusplus From 0d7e873045ca728fd3914fac2cc872d581c63039 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 1 Feb 2017 21:48:16 +0930 Subject: [PATCH 48/61] Add skeleton struct --- src/skeleton.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/skeleton.h | 22 ++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 src/skeleton.c create mode 100644 src/skeleton.h diff --git a/src/skeleton.c b/src/skeleton.c new file mode 100644 index 00000000..3b6de423 --- /dev/null +++ b/src/skeleton.c @@ -0,0 +1,68 @@ +#include "skeleton.h" +#include "dmemory.h" +#include "osutil.h" + +struct skeleton { + skeletonNode *root; +}; + +skeleton *skeletonCreate(void) { + return dcalloc(1, sizeof(skeleton)); +} + +void skeletonDestroy(skeleton *skl) { + dfree(skl); +} + +skeletonNode *skeletonNewNode(skeleton *skl) { + unsued(skl); + return dcalloc(1, sizeof(skeletonNode)); +} + +void skeletonRemoveNode(skeleton *skl, skeletonNode *node) { + skeletonNode *parent = node->parent; + skeletonNode *pre = 0; + skeletonNode *loop; + skeletonNode *next; + if (parent) { + for (loop = parent->firstChild; loop; pre = loop, loop = loop->nextSib) { + if (loop == node) { + break; + } + } + if (pre) { + pre->nextSib = node->nextSib; + } else { + parent->firstChild = 0; + } + } + for (loop = node->firstChild; loop; loop = next) { + next = loop->nextSib; + skeletonRemoveNode(skl, loop); + } + if (skl->root == node) { + skl->root = 0; + } + dfree(node); +} + +void skeletonConnectNodes(skeleton *skl, skeletonNode *first, + skeletonNode *second) { + if (first->firstChild) { + skeletonNode *loop; + for (loop = first->firstChild; loop->nextSib; loop = loop->nextSib) { + // void + } + loop->nextSib = second; + } else { + first->firstChild = second; + } + second->parent = first; + if (!skl->root) { + skl->root = first; + } +} + +skeletonNode *skeletonGetRoot(skeleton *skl) { + return skl->root; +} diff --git a/src/skeleton.h b/src/skeleton.h new file mode 100644 index 00000000..565af405 --- /dev/null +++ b/src/skeleton.h @@ -0,0 +1,22 @@ +#ifndef SKELETON_H +#define SKELETON_H +#include "3dstruct.h" + +typedef struct skeleton skeleton; +typedef struct skeletonNode { + vec3 position; + float radius; + struct skeletonNode *parent; + struct skeletonNode *firstChild; + struct skeletonNode *nextSib; +} skeletonNode; + +skeleton *skeletonCreate(void); +void skeletonDestroy(skeleton *skl); +skeletonNode *skeletonNewNode(skeleton *skl); +void skeletonRemoveNode(skeleton *skl, skeletonNode *node); +void skeletonConnectNodes(skeleton *skl, skeletonNode *first, + skeletonNode *second); +skeletonNode *skeletonGetRoot(skeleton *skl); + +#endif From 44bc0b4f5ddb4534b4132c0a853eb03574b7c8be Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Wed, 8 Feb 2017 00:52:30 +0930 Subject: [PATCH 49/61] Update progress --- README.md | 15 ++++++++++++--- screenshot/dust3d_imgui.png | Bin 0 -> 63307 bytes 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 screenshot/dust3d_imgui.png diff --git a/README.md b/README.md index 8fc305f4..21180566 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,19 @@ There is a implementation of Catmull-Clark Subdivision algorithm on [rosettacode Now, the render result looks not bad after 2 times of subdivisions. I would like to mark this todo as done, though there are more polish steps on the original paper, I just leave it as to be done in the future. - [x] Render B-Mesh result This todo already done in the B-Mesh algorithm implementation. -- [ ] Design UI for monster parts configuration (Jan 17, 2017 ~ Jan 18, 2017) +- [ ] Design UI for monster parts configuration + **Jan 17, 2017 ~ Jan 18, 2017:** *Skeleton Editor* - There is good tutorial introduced how to implement object selection by mouse in OpenGL, written by [Bartek](http://www.bfilipek.com/2012/06/select-mouse-opengl.html). - But there is a big pain in the progress of implement the object selection logic, because of resizeGL, the width and height which passed in as parameters of this function is not equal to the size of the window. + There is a good tutorial introduced how to implement object selection by mouse in OpenGL, written by [Bartek](http://www.bfilipek.com/2012/06/select-mouse-opengl.html). + But there is a big pain in the progress of implement the object selection logic, because of resizeGL, the width and height which passed in as parameters of this function is not equal to the size of the window. + **Feb 3, 2017:** + Recently, I submitted a patch(https://developer.blender.org/D2489) to blender to fix a crash bug, because is just a quick fix and I am not familiar with the blender's code, so the patch is not fixing the real problem, though the bug is there, and Gaia Clary fixed it. What I am trying to say is when I was compiling the blender code, there was a real pain to fix some third part dependency and different C++ version problem. + So I reconsidered the GUI of Dust3d, I want remove all the C++ code inevitably including the Qt library. Maybe I need try just use OpenGL to draw the interface in the next step. + **Feb 8, 2017:** + There are lots of changes to the UI part of Dust3D, though not commit yet because of many things have not been finalize. + I removed the Qt, the counterpart of the build system is CMake, and instead of using Qt based OpenGL windows, I am using my own implemented OpenGL support library. I considered using the most popular [Dear ImGui](https://github.com/ocornut/imgui) library, but I really want remove the C++ from the codebase. It's a good start of the skeleton editor UI! + + - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game - [ ] Export Wavefront .obj diff --git a/screenshot/dust3d_imgui.png b/screenshot/dust3d_imgui.png new file mode 100644 index 0000000000000000000000000000000000000000..232f1825db14bb98fae7fc5859993977c1c6a817 GIT binary patch literal 63307 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 BhY$b& literal 0 HcmV?d00001 From f5e0ca5b055c219528aa62cb14db34d94fa8c48f Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 11 Feb 2017 10:46:26 +0930 Subject: [PATCH 50/61] Qt removed. --- CMakeLists.txt | 43 +++ README.md | 24 +- build/dust3d.pro | 38 -- src/Info.plist | 30 ++ src/bmesh.c | 7 +- src/convexhull.c | 1 - src/{draw.cpp => draw.c} | 10 +- src/draw.h | 4 + src/editor.c | 229 ++++++++++++ src/glw.c | 690 +++++++++++++++++++++++++++++++++++++ src/glw.h | 70 ++++ src/glw_internal.h | 54 +++ src/glw_osx.m | 345 +++++++++++++++++++ src/glw_style.h | 37 ++ src/skinnedmesh.h | 7 +- src/{osutil.cpp => util.c} | 3 +- src/{osutil.h => util.h} | 8 + 17 files changed, 1526 insertions(+), 74 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 build/dust3d.pro create mode 100644 src/Info.plist rename src/{draw.cpp => draw.c} (96%) create mode 100644 src/editor.c create mode 100644 src/glw.c create mode 100644 src/glw.h create mode 100644 src/glw_internal.h create mode 100644 src/glw_osx.m create mode 100644 src/glw_style.h rename src/{osutil.cpp => util.c} (86%) rename src/{osutil.h => util.h} (57%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..f30379bd --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 2.8) + +project(dust3d) + +file(GLOB_RECURSE sources + src/glw_osx.m + src/glw_internal.h + src/glw_style.h + src/glw.c + src/glw.h + src/dmemory.h + src/dmemory.c + src/3dstruct.h + src/array.h + src/array.c + src/dict.h + src/dict.c + src/bmesh.h + src/bmesh.c + src/matrix.h + src/matrix.c + src/subdivide.h + src/subdivide.c + src/vector3d.h + src/vector3d.c + src/convexhull.h + src/convexhull.c + src/draw.h + src/draw.c + src/editor.c +) + +IF(APPLE) + add_executable(dust3d MACOSX_BUNDLE ${sources}) + find_package(OpenGL REQUIRED) + include_directories(${OPENGL_INCLUDE_DIRS}) + target_link_libraries(dust3d ${OPENGL_LIBRARIES}) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit -framework Quartz") + set_target_properties(dust3d PROPERTIES + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/src/Info.plist) + install(TARGETS dust3d + DESTINATION ".") +ENDIF (APPLE) diff --git a/README.md b/README.md index 21180566..1820b190 100644 --- a/README.md +++ b/README.md @@ -10,25 +10,6 @@ I was inspired by Jimmy Gunawan's blogs of monster generation, here is the first of 3D Articulated Shapes](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf)(Authors: Zhongping Ji, Ligang Liu, Yigang Wang). I started to think of monster model generation for game development from years ago, thanks for this paper, Dust3D is achievable now. From my initial thought, Dust3D should be a tool like [Makehuman](http://www.makehuman.org), with more versatile features, not only can make human, but also be able to **generate monsters automatically**. -Build -============ -*Generate Xcode Project* -``` -$ cd build -$ qmake -spec macx-xcode -``` -*Generate VC Project* -``` -$ cd build -$ qmake -tp vc -``` -*Generate Makefile* -``` -$ cd build -$ qmake -$ make -``` - TODO & Progress ============== - [x] Drawing Primitives (Dec 15, 2016 ~ Dec 17, 2016) @@ -83,7 +64,10 @@ This todo already done in the B-Mesh algorithm implementation. **Feb 8, 2017:** There are lots of changes to the UI part of Dust3D, though not commit yet because of many things have not been finalize. I removed the Qt, the counterpart of the build system is CMake, and instead of using Qt based OpenGL windows, I am using my own implemented OpenGL support library. I considered using the most popular [Dear ImGui](https://github.com/ocornut/imgui) library, but I really want remove the C++ from the codebase. It's a good start of the skeleton editor UI! - + + **Feb 11, 2017:** + Qt removed, so C++ removed, but Objective-C imported for just support the OpenGL environment on OSX. + - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game diff --git a/build/dust3d.pro b/build/dust3d.pro deleted file mode 100644 index c3509d64..00000000 --- a/build/dust3d.pro +++ /dev/null @@ -1,38 +0,0 @@ -TARGET = dust3d -TEMPLATE = app - -QT += widgets opengl -CONFIG += debug - -VPATH += ../src -INCLUDEPATH += ../src - -SOURCES += main.cpp \ - mainwindow.cpp \ - render.cpp \ - vector3d.c \ - draw.cpp \ - array.c \ - bmesh.c \ - matrix.c \ - convexhull.c \ - dict.c \ - osutil.cpp \ - subdivide.c \ - skinnedmesh.c \ - dmemory.c - -HEADERS += mainwindow.h \ - render.h \ - vector3d.h \ - draw.h \ - array.h \ - bmesh.h \ - matrix.h \ - convexhull.h \ - dict.h \ - 3dstruct.h \ - osutil.h \ - subdivide.h \ - skinnedmesh.h \ - dmemory.h \ No newline at end of file diff --git a/src/Info.plist b/src/Info.plist new file mode 100644 index 00000000..4e619f32 --- /dev/null +++ b/src/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 dust3d. All rights reserved. + NSPrincipalClass + NSApplication + + diff --git a/src/bmesh.c b/src/bmesh.c index f40cacf3..f055104b 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -11,7 +11,6 @@ #include "matrix.h" #include "convexhull.h" #include "subdivide.h" -#include "draw.h" #define BMESH_MAX_PARENT_BALL_DEPTH 1000 #define BMESH_INTVAL_DIST_DIV 10 @@ -547,10 +546,6 @@ static convexHull *createConvexHullForBall(bmesh *bm, int depth, for (i = 0; i < arrayGetLength(ballPtrArray); ++i) { bmeshBall *ballItem = *((bmeshBall **)arrayGetItem(ballPtrArray, i)); ballItem->convexHullCount++; - drawDebugPrintf("convexHullCount:%d", ballItem->convexHullCount); - if (ballItem->convexHullCount == 1) { - drawDebugPoint(&ballItem->position, ballItem->index); - } } arrayDestroy(ballPtrArray); @@ -727,7 +722,7 @@ static void bmeshGenerateInbetweenMeshFrom(bmesh *bm, int depth, bmeshAddWallsBetweenQuadsToModel(bm, &ball->position, ¤tFace, &childFace); bmeshAddQuadToModel(bm, &childFace); - drawQuad(&childFace); + //drawQuad(&childFace); } } else if (1 == ball->convexHullCount && !ball->meshGenerated) { diff --git a/src/convexhull.c b/src/convexhull.c index 7b776a82..5466b103 100644 --- a/src/convexhull.c +++ b/src/convexhull.c @@ -6,7 +6,6 @@ #include "convexhull.h" #include "array.h" #include "dict.h" -#include "draw.h" // // Implement Gift wrapping method which describled in http://dccg.upc.edu/people/vera/wp-content/uploads/2014/11/GA2014-ConvexHulls3D-Roger-Hernando.pdf diff --git a/src/draw.cpp b/src/draw.c similarity index 96% rename from src/draw.cpp rename to src/draw.c index 8ceedfee..5a3932a9 100644 --- a/src/draw.cpp +++ b/src/draw.c @@ -1,9 +1,8 @@ -#include -#include #include #include #include #include +#include #include "draw.h" static GLUquadricObj *quadricId = 0; @@ -88,8 +87,6 @@ int drawCylinder(vec3 *topOrigin, vec3 *bottomOrigin, float radius, int slices, } int drawGrid(float size, float step) { - glDisable(GL_LIGHTING); - // x z plane glBegin(GL_LINES); for (GLfloat i = -size; i <= size; i += step) { @@ -105,8 +102,6 @@ int drawGrid(float size, float step) { } } glEnd(); - - glEnable(GL_LIGHTING); return 0; } @@ -115,7 +110,8 @@ int drawPrintf(int x, int y, const char *fmt, ...) { char text[1024]; va_start(args, fmt); vsnprintf(text, sizeof(text), fmt, args); - return drawText(x, y, text); + //return drawText(x, y, text); + return 0; } static const float drawDebugColors[][4] = { diff --git a/src/draw.h b/src/draw.h index 92fe6e72..9b842091 100644 --- a/src/draw.h +++ b/src/draw.h @@ -12,6 +12,10 @@ extern "C" { #endif +#ifndef M_PI +#define M_PI 3.14159265 +#endif + int drawInit(void); int drawSphere(vec3 *origin, float radius, int slices, int stacks); void drawTriangle(triangle *poly); diff --git a/src/editor.c b/src/editor.c new file mode 100644 index 00000000..3becdc32 --- /dev/null +++ b/src/editor.c @@ -0,0 +1,229 @@ +#ifdef __APPLE__ +#include +#elif defined(_WIN32) +#include +#include +#endif +#include +#include +#include +#include "glw.h" +#include "glw_style.h" +#include "draw.h" +#include "bmesh.h" + +#define GEN_ID __LINE__ + +#define ED_MODE_EDIT 0 +#define ED_MODE_ANIMATION 1 + +#define ED_BACKGROUND_COLOR 0xe4e2e4 + +#define ED_SIDEBAR_WIDTH 400 +#define ED_SPACING 10 + +#define ED_TOPBAR_HEIGHT 100 +#define ED_TOOLBAR_HEIGHT 50 + +#define ED_GL_BACKGROUND_COLOR GLW_BACKGROUND_COLOR + +typedef struct editor { + glwWin *win; + float cameraAngleX; + float cameraAngleY; + float cameraDistance; + int newImId; + int showBoneChecked; + int width; + int height; + int mode; + int glLeft; + int glTop; + int glWidth; + int glHeight; + int mouseX; + int mouseY; + bmesh *bm; +} editor; + +#include "../data/bmesh_test_2.h" + +static void display(glwWin *win) { + editor *ed = glwGetUserData(win); + + glClear(GL_COLOR_BUFFER_BIT); + glLoadIdentity(); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(0.0, ed->width, ed->height, 0, -1.0, 1.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + { + char *list[] = {"Open..", "New..", "Save As..", 0}; + glwImButtonGroup(win, GEN_ID, 100, 30, 300, list, -1); + } + + { + char *titles[] = {"Library", "Property", 0}; + glwImTabBox(win, GEN_ID, ED_SPACING / 2, ED_TOPBAR_HEIGHT, ED_SIDEBAR_WIDTH, + ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2, + titles, 0); + } + + { + int x = ED_SPACING / 2 + ED_SIDEBAR_WIDTH + ED_SPACING; + int y = ED_TOPBAR_HEIGHT; + int width = ed->width - ED_SIDEBAR_WIDTH - ED_SPACING / 2 - ED_SPACING - ED_SPACING / 2; + int height = ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2; + char *titles[] = {"Edit View", "Animation View", 0}; + ed->mode = glwImTabBox(win, GEN_ID, + x, y, width, height, + titles, ed->mode); + if (ED_MODE_EDIT == ed->mode) { + int glWinY = glwImNextY(win); + int bottomY = y + height - ED_TOOLBAR_HEIGHT; + glwImBottomBar(win, GEN_ID, x, bottomY, width, ED_TOOLBAR_HEIGHT); + ed->showBoneChecked = glwImCheck(win, GEN_ID, x + ED_SPACING + ED_SPACING, + bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + "Show Bone", + ed->showBoneChecked); + + ed->glLeft = x + 1; + ed->glTop = glWinY; + ed->glWidth = width - 3; + ed->glHeight = bottomY - glWinY; + + if (0 == ed->bm) { + bmeshBall ball; + bmeshBone bone; + unsigned int i; + ed->bm = bmeshCreate(); + + for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { + memset(&ball, 0, sizeof(ball)); + ball.position.x = bmeshTestBalls[i][1]; + ball.position.y = bmeshTestBalls[i][2]; + ball.position.z = bmeshTestBalls[i][3]; + ball.radius = bmeshTestBalls[i][4]; + ball.type = bmeshTestBalls[i][5]; + bmeshAddBall(ed->bm, &ball); + } + + for (i = 0; i < sizeof(bmeshTestBones) / sizeof(bmeshTestBones[0]); ++i) { + memset(&bone, 0, sizeof(bone)); + bone.firstBallIndex = bmeshTestBones[i][0]; + bone.secondBallIndex = bmeshTestBones[i][1]; + bmeshAddBone(ed->bm, &bone); + } + + bmeshGenerate(ed->bm); + } + + glEnable(GL_SCISSOR_TEST); + glScissor(ed->glLeft, ED_SPACING / 2 + ED_TOOLBAR_HEIGHT + 1, + ed->glWidth, ed->glHeight); + glPushMatrix(); + glTranslatef(x + 1, glWinY, 0); + + glColor3f(glwR(ED_GL_BACKGROUND_COLOR), + glwG(ED_GL_BACKGROUND_COLOR), + glwB(ED_GL_BACKGROUND_COLOR)); + glRecti(0, 0, ed->glWidth, ed->glHeight); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(60.0f, (float)ed->glWidth / ed->glHeight, 1, 1000); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glPushMatrix(); + glTranslatef(0, 0, -ed->cameraDistance); + glRotatef(ed->cameraAngleX, 1, 0, 0); + glRotatef(ed->cameraAngleY, 0, 1, 0); + + drawGrid(10, 1); + + glEnable(GL_LIGHTING); + glEnable(GL_CULL_FACE); + bmeshDraw(ed->bm); + glDisable(GL_CULL_FACE); + glDisable(GL_LIGHTING); + + glPopMatrix(); + + glPopMatrix(); + glDisable(GL_SCISSOR_TEST); + } + } +} + +static void reshape(glwWin *win, int width, int height) { + editor *ed = glwGetUserData(win); + + glShadeModel(GL_SMOOTH); + glEnable(GL_LIGHT0); + + glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + + ed->width = width; + ed->height = height; + + glEnable(GL_LINE_SMOOTH); + glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); + + glEnable(GL_TEXTURE_2D); + glEnable(GL_ALPHA_TEST); + //glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glClearColor(glwR(ED_BACKGROUND_COLOR), + glwG(ED_BACKGROUND_COLOR), + glwB(ED_BACKGROUND_COLOR), 1); + + glViewport(0, 0, (GLsizei)width, (GLsizei)height); +} + +static void mouse(glwWin *win, int button, int state, + int x, int y){ + editor *ed = glwGetUserData(win); + if (!glwPointTest(x, y, ed->glLeft, ed->glTop, + ed->glWidth, ed->glHeight, 0)) { + return; + } + if (GLW_DOWN == state) { + ed->mouseX = x; + ed->mouseY = y; + } +} + +static void motion(glwWin *win, int x, int y) { + editor *ed = glwGetUserData(win); + if (!glwPointTest(x, y, ed->glLeft, ed->glTop, + ed->glWidth, ed->glHeight, 0)) { + return; + } + ed->cameraAngleY += (x - ed->mouseX); + ed->cameraAngleX += (y - ed->mouseY); + ed->mouseX = x; + ed->mouseY = y; +} + +int main(int argc, char *argv[]) { + editor ed; + glwInit(); + memset(&ed, 0, sizeof(ed)); + ed.cameraAngleX = 30; + ed.cameraAngleY = -312; + ed.cameraDistance = 14.4; + ed.win = glwCreateWindow(0, 0, 0, 0); + glwSetUserData(ed.win, &ed); + glwReshapeFunc(ed.win, reshape); + glwDisplayFunc(ed.win, display); + glwMouseFunc(ed.win, mouse); + glwMotionFunc(ed.win, motion); + glwMainLoop(); + return 0; +} diff --git a/src/glw.c b/src/glw.c new file mode 100644 index 00000000..9b1ed943 --- /dev/null +++ b/src/glw.c @@ -0,0 +1,690 @@ +#include +#include +#include +#include +#include "glw_internal.h" +#include "glw_style.h" + +#ifndef M_PI +#define M_PI 3.14159265 +#endif + +void glwDrawSystemText(glwWin *win, int x, int y, char *text) { + int vleft, vwidth; + float tleft, twidth; + glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); + + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, systemFontTexture->texId); + for (vleft = 0; *text; vleft += vwidth, text++) { + int idx = (*text) - GLW_SYSTEM_FONT_BEGIN_CHAR; + if (idx < 0 || idx > GLW_SYSTEM_FONT_CHAR_NUM) { + continue; + } + tleft = (float)systemFontTexture->lefts[idx] / + systemFontTexture->size.width; + vwidth = systemFontTexture->widths[idx]; + twidth = (float)vwidth / systemFontTexture->originSize.width; + + glBegin(GL_QUADS); + glTexCoord2f(tleft, 0); + glVertex2i(x + vleft, y); + + glTexCoord2f(tleft + twidth, 0); + glVertex2i(x + vleft + vwidth, y); + + glTexCoord2f(tleft + twidth, 1); + glVertex2i(x + vleft + vwidth, y + systemFontTexture->originSize.height); + + glTexCoord2f(tleft, 1); + glVertex2i(x + vleft, y + systemFontTexture->originSize.height); + glEnd(); + } + glDisable(GL_TEXTURE_2D); +} + +void glwMouseEvent(glwWin *win, int button, int state, int x, int y) { + glwImGui *imGUI = glwGetImGUI(win); + imGUI->mouseButton = button; + imGUI->mouseState = state; + imGUI->mouseX = x; + imGUI->mouseY = y; +} + +int glwPointTest(int x, int y, int left, int top, int width, int height, + int allowOffset) { + int right = left + width - 1 + allowOffset; + int bottom = top + height - 1 + allowOffset; + left -= allowOffset; + top -= allowOffset; + return x >= left && x <= right && y >= top && y <= bottom; +} + +void glwInitSystemFontTexture(glwWin *win) { + char asciiTable[GLW_SYSTEM_FONT_CHAR_NUM + 1]; + int i; + GLuint texture = 0; + glwFont *font; + int pixelsWide = 0; + int pixelsHigh = 0; + float scaleX, scaleY; + glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); + + for (i = 0; i <= GLW_SYSTEM_FONT_CHAR_NUM; ++i) { + asciiTable[i] = GLW_SYSTEM_FONT_BEGIN_CHAR + i; + } + asciiTable[GLW_SYSTEM_FONT_CHAR_NUM] = '\0'; + + font = glwCreateFont(GLW_SYSTEM_FONT_NAME, GLW_SYSTEM_FONT_WEIGHT, + GLW_SYSTEM_FONT_SIZE, 0); + systemFontTexture->lefts[0] = 0; + systemFontTexture->size.width = 0; + systemFontTexture->size.height = 0; + for (i = 0; i < GLW_SYSTEM_FONT_CHAR_NUM; ++i) { + char ch[2] = {asciiTable[i], '\0'}; + glwSize chSize = glwMeasureText(ch, font); + if (chSize.height > systemFontTexture->size.height) { + systemFontTexture->size.height = chSize.height; + } + systemFontTexture->size.width += chSize.width; + systemFontTexture->widths[i] = chSize.width; + if (i > 0) { + systemFontTexture->lefts[i] = (float)(systemFontTexture->lefts[i - 1] + + systemFontTexture->widths[i - 1]); + } + } + systemFontTexture->originSize = systemFontTexture->size; + for (i = 0; i < GLW_SYSTEM_FONT_CHAR_NUM; ++i) { + char ch[2] = {asciiTable[i], '\0'}; + glwSize chSize = {systemFontTexture->widths[i], + systemFontTexture->originSize.height}; + unsigned char *rgba = glwRenderTextToRGBA(ch, font, chSize, + &pixelsWide, &pixelsHigh); + if (0 == i) { + scaleX = (float)pixelsWide / chSize.width; + scaleY = (float)pixelsHigh / chSize.height; + systemFontTexture->size.width *= scaleX; + systemFontTexture->size.height *= scaleY; + glEnable(GL_TEXTURE_2D); + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexImage2D(GL_TEXTURE_2D, 0, 4, + (GLsizei)(systemFontTexture->size.width), + (GLsizei)(systemFontTexture->size.height), 0, + GL_RGBA, GL_UNSIGNED_BYTE, 0); + } + systemFontTexture->lefts[i] *= scaleX; + glTexSubImage2D(GL_TEXTURE_2D, 0, + systemFontTexture->lefts[i], 0, + (GLsizei)pixelsWide, + (GLsizei)pixelsHigh, + GL_RGBA, GL_UNSIGNED_BYTE, rgba); + free(rgba); + } + systemFontTexture->texId = (int)texture; + glwDestroyFont(font); +} + +static glwVec2 glwRoundedCorners[GLW_SMALL_ROUNDED_CORNER_SLICES] = {{0}}; + +static void createRoundedCorners(glwVec2 *arr, int num) { + float slice = M_PI / 2 / num; + int i; + float a = 0; + for (i = 0; i < num; a += slice, ++i) { + arr[i].x = cosf(a); + arr[i].y = sinf(a); + } +} + +void glwInitPrimitives(void) { + createRoundedCorners(glwRoundedCorners, GLW_SMALL_ROUNDED_CORNER_SLICES); +} + +static void glwDrawRightTopVertexs(float left, float top, float right, + float bottom, float radius) { + int i; + for (i = GLW_SMALL_ROUNDED_CORNER_SLICES - 1; i >= 0; --i) { + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } +} + +static void glwDrawRightBottomVertexs(float left, float top, float right, + float bottom, float radius) { + int i; + for (i = 0; i < GLW_SMALL_ROUNDED_CORNER_SLICES; ++i) { + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + } +} + +static void glwDrawLeftBottomVertexs(float left, float top, float right, + float bottom, float radius) { + int i; + for (i = GLW_SMALL_ROUNDED_CORNER_SLICES - 1; i >= 0; --i) { + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + } +} + +static void glwDrawLeftTopVertexs(float left, float top, float right, + float bottom, float radius) { + int i; + for (i = 0; i < GLW_SMALL_ROUNDED_CORNER_SLICES; ++i) { + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } +} + +void glwDrawCheckSymbol(int x, int y, int width, int height, + unsigned int color) { + glColor3f(glwR(color), glwG(color), glwB(color)); + glLineWidth(2); + glBegin(GL_LINE_STRIP); + glVertex2f(x + width * 0.15, y + height * 0.3); + glVertex2f(x + width * 0.45, y + height * 0.65); + glVertex2f(x + width * 1.05, y - height * 0.05); + glEnd(); + glLineWidth(1); +} + +void glwDrawDropdownArrow(int x, int y, int width, int height, + unsigned int color) { + glColor3f(glwR(color), glwG(color), glwB(color)); + glBegin(GL_TRIANGLES); + glVertex2f(x, y); + glVertex2f(x + width, y); + glVertex2f(x + width * 0.5, y + height); + glEnd(); +} + +void glwDrawVLine(int x, int y, int width, int height, + unsigned int color) { + glColor3f(glwR(color), glwG(color), glwB(color)); + glLineWidth(width); + glBegin(GL_LINES); + glVertex2f(x, y); + glVertex2f(x, y + height - 1); + glEnd(); + glLineWidth(1); +} + +void glwDrawHLine(int x, int y, int width, int height, + unsigned int color) { + glColor3f(glwR(color), glwG(color), glwB(color)); + glLineWidth(height); + glBegin(GL_LINES); + glVertex2f(x, y); + glVertex2f(x + width - 1, y); + glEnd(); + glLineWidth(1); +} + +void glwDrawRoundedRectBorder(float x, float y, float width, float height, + float radius, unsigned int color) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + glDisable(GL_TEXTURE_2D); + glColor3f(glwR(color), glwG(color), glwB(color)); + glBegin(GL_LINE_LOOP); + glVertex2f(left, top + radius); + glwDrawLeftTopVertexs(left, top, right, bottom, radius); + glVertex2f(left + radius, top); + + glVertex2f(right - radius, top); + glwDrawRightTopVertexs(left, top, right, bottom, radius); + glVertex2f(right, top + radius); + + glVertex2f(right, bottom - radius); + glwDrawRightBottomVertexs(left, top, right, bottom, radius); + glVertex2f(right - radius, bottom); + + glVertex2f(left + radius, bottom); + glwDrawLeftBottomVertexs(left, top, right, bottom, radius); + glVertex2f(left, bottom - radius); + glEnd(); +} + +void glwDrawTopRoundedRectBorder(float x, float y, float width, float height, + float radius, unsigned int color) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + glDisable(GL_TEXTURE_2D); + glColor3f(glwR(color), glwG(color), glwB(color)); + glBegin(GL_LINE_LOOP); + glVertex2f(left, top + radius); + glwDrawLeftTopVertexs(left, top, right, bottom, radius); + glVertex2f(left + radius, top); + + glVertex2f(right - radius, top); + glwDrawRightTopVertexs(left, top, right, bottom, radius); + glVertex2f(right, top + radius); + + glVertex2f(right, bottom); + glVertex2f(left, bottom); + glEnd(); +} + +void glwDrawLeftRoundedRectGradientFill(float x, float y, + float width, float height, + float radius, unsigned int topColor, unsigned int bottomColor) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + int i; + glDisable(GL_TEXTURE_2D); + glBegin(GL_QUAD_STRIP); + for (i = 0; i < GLW_SMALL_ROUNDED_CORNER_SLICES; ++i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(right, bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(right, top); + glEnd(); +} + +void glwDrawTopRoundedRectGradientFill(float x, float y, + float width, float height, + float radius, unsigned int topColor, unsigned int bottomColor) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + int i; + glDisable(GL_TEXTURE_2D); + glBegin(GL_QUAD_STRIP); + for (i = 0; i < GLW_SMALL_ROUNDED_CORNER_SLICES; ++i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + for (i = GLW_SMALL_ROUNDED_CORNER_SLICES - 1; i >= 0; --i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + glEnd(); +} + +void glwDrawRectGradientFill(float x, float y, + float width, float height, + unsigned int topColor, unsigned int bottomColor) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + glDisable(GL_TEXTURE_2D); + glBegin(GL_QUAD_STRIP); + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(left, bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(left, top); + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(right, bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(right, top); + glEnd(); +} + +void glwDrawRightRoundedRectGradientFill(float x, float y, + float width, float height, + float radius, unsigned int topColor, unsigned int bottomColor) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + int i; + glDisable(GL_TEXTURE_2D); + glBegin(GL_QUAD_STRIP); + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(left, bottom); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(left, top); + for (i = GLW_SMALL_ROUNDED_CORNER_SLICES - 1; i >= 0; --i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + glEnd(); +} + +void glwDrawRoundedRectGradientFill(float x, float y, float width, float height, + float radius, unsigned int topColor, unsigned int bottomColor) { + float left = x; + float top = y; + float bottom = y + height - 1; + float right = x + width - 1; + int i; + glDisable(GL_TEXTURE_2D); + glBegin(GL_QUAD_STRIP); + for (i = 0; i < GLW_SMALL_ROUNDED_CORNER_SLICES; ++i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(left + radius - radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + for (i = GLW_SMALL_ROUNDED_CORNER_SLICES - 1; i >= 0; --i) { + glColor3f(glwR(bottomColor), glwG(bottomColor), glwB(bottomColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + bottom - radius + radius * glwRoundedCorners[i].y); + glColor3f(glwR(topColor), glwG(topColor), glwB(topColor)); + glVertex2f(right - radius + radius * glwRoundedCorners[i].x, + top + radius - radius * glwRoundedCorners[i].y); + } + glEnd(); +} + +void glwDrawButtonBackground(float x, float y, float width, float height, + glwCtrlState state) { + switch (state) + { + case GLW_CTRL_STATE_PRESS: + glwDrawRoundedRectGradientFill(x, y, width, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + break; + case GLW_CTRL_STATE_NORMAL: + default: + glwDrawRoundedRectGradientFill(x, y, width, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1, GLW_FILL_GRADIENT_COLOR_2); + break; + } + glwDrawRoundedRectBorder(x, y, width, height, + GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_2); +} + +glwSize glwMeasureSystemText(glwWin *win, char *text) { + glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); + glwSize size = {0, systemFontTexture->originSize.height}; + for (; *text; text++) { + int idx = (*text) - GLW_SYSTEM_FONT_BEGIN_CHAR; + if (idx < 0 || idx > GLW_SYSTEM_FONT_CHAR_NUM) { + continue; + } + size.width += systemFontTexture->widths[idx]; + } + return size; +} + +static void glwImGUIActiveIdCheck(glwImGui *imGUI, int id, int x, int y, + int width, int height) { + if (GLW_DOWN == imGUI->mouseState) { + if (!imGUI->activeId) { + int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, x, y, + width, height, 0); + if (hit) { + imGUI->activeId = id; + } + } + } else if (GLW_UP == imGUI->mouseState) { + if (imGUI->activeId == id) { + imGUI->activeId = 0; + } + } +} + +int glwImButton(glwWin *win, int id, int x, int y, char *text) { + glwImGui *imGUI = glwGetImGUI(win); + glwSize textSize = glwMeasureSystemText(win, text); + int width = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2); + int height = textSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); + glwImGUIActiveIdCheck(imGUI, id, x, y, width, height); + glwDrawButtonBackground(x, y, width, height, + imGUI->activeId == id ? GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); + glwDrawSystemText(win, x + textSize.width * GLW_HOR_AUTO_MARGIN, + y + textSize.height * GLW_VER_AUTO_MARGIN, + text); + imGUI->nextX = x + width; + imGUI->nextY = y; + return imGUI->activeId == id; +} + +int glwImDropdownBox(glwWin *win, int id, int x, int y, char *text) { + glwImGui *imGUI = glwGetImGUI(win); + glwSize textSize = glwMeasureSystemText(win, text); + int arrowHeight = textSize.height * 0.3; + int arrowWidth = arrowHeight * 2; + int width = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2) + arrowWidth * 3; + int height = textSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); + glwImGUIActiveIdCheck(imGUI, id, x, y, width, height); + glwDrawButtonBackground(x, y, width, height, + imGUI->activeId == id ? GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); + glwDrawSystemText(win, x + textSize.width * (GLW_HOR_AUTO_MARGIN), + y + textSize.height * (GLW_VER_AUTO_MARGIN), + text); + glwDrawDropdownArrow(x + width - textSize.width * GLW_HOR_AUTO_MARGIN - + arrowWidth, + y + (height - arrowHeight) / 2, arrowWidth, arrowHeight, 0); + imGUI->nextX = x + width; + imGUI->nextY = y; + return imGUI->activeId == id; +} + +int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked) { + glwImGui *imGUI = glwGetImGUI(win); + glwSize textSize = glwMeasureSystemText(win, text); + int height = textSize.height; + int boxWidth = height; + int width = boxWidth + textSize.height * (1 + GLW_HOR_AUTO_MARGIN * 2) + + textSize.width; + int oldActiveId = imGUI->activeId; + glwImGUIActiveIdCheck(imGUI, id, x, y, width, height); + glwDrawButtonBackground(x, y, boxWidth, height, + (imGUI->activeId == id || checked) ? + GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); + glwDrawSystemText(win, x + textSize.height * GLW_HOR_AUTO_MARGIN + boxWidth, + y, text); + if (checked) { + glwDrawCheckSymbol(x, y, boxWidth, height, GLW_CHECK_COLOR); + } + imGUI->nextX = x + width; + imGUI->nextY = y; + return (imGUI->activeId == id && oldActiveId != id) ? !checked : checked; +} + +static int glwCalcListMaxWidth(glwWin *win, char **list, int *height, + int *len) { + int i; + int itemWidth = 0; + int maxItemWidth = 0; + + for (i = 0; list[i]; ++i) { + glwSize textSize = glwMeasureSystemText(win, list[i]); + itemWidth = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2); + if (itemWidth > maxItemWidth) { + maxItemWidth = itemWidth; + } + if (height && !(*height)) { + *height = textSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); + } + if (len) { + ++(*len); + } + } + + return maxItemWidth; +} + +int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, + char **list, int sel) { + glwImGui *imGUI = glwGetImGUI(win); + int width = 0; + int height = 0; + int left = 0; + int i; + int listLen = 0; + int offset; + int maxItemWidth = 0; + maxItemWidth = glwCalcListMaxWidth(win, list, &height, &listLen); + width = maxItemWidth * listLen; + left = listLen > 1 ? x + (parentWidth - width) / 2 : + x + maxItemWidth * GLW_HOR_AUTO_MARGIN; + glwImGUIActiveIdCheck(imGUI, id, left, y, width, height); + glwDrawRoundedRectGradientFill(left, y, width, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1, GLW_FILL_GRADIENT_COLOR_2); + for (i = 0, offset = left; list[i]; ++i) { + glwSize textSize = glwMeasureSystemText(win, list[i]); + if (imGUI->activeId == id) { + int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, + maxItemWidth, height, 0); + if (hit) { + sel = i; + } + } + if (sel == i) { + if (1 == listLen) { + glwDrawRoundedRectGradientFill(left, y, width, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + } else { + if (0 == i) { + glwDrawLeftRoundedRectGradientFill(offset, y, + maxItemWidth, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + } else if (listLen - 1 == i) { + glwDrawRightRoundedRectGradientFill(offset, y, + maxItemWidth, height, + GLW_BUTTON_CORNER_RADIUS, + GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + } else { + glwDrawRectGradientFill(offset, y, + maxItemWidth, height, + GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + } + } + } + if (0 != i) { + glwDrawVLine(offset, y, 1, height, GLW_BORDER_COLOR_2); + } + glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, + y + height * 0.1, list[i]); + offset += maxItemWidth; + } + imGUI->nextX = offset; + imGUI->nextY = y; + glwDrawRoundedRectBorder(left, y, width, height, + GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_2); + return sel; +} + +int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, + char **list, int sel) { + glwImGui *imGUI = glwGetImGUI(win); + int tabWidth = 0; + int tabHeight = 0; + int left = 0; + int i; + int listLen = 0; + int offset; + int maxItemWidth = 0; + maxItemWidth = glwCalcListMaxWidth(win, list, &tabHeight, &listLen); + tabWidth = maxItemWidth * listLen; + left = x + maxItemWidth * GLW_HOR_AUTO_MARGIN / 2; + imGUI->nextX = x; + imGUI->nextY = y + tabHeight; + glwImGUIActiveIdCheck(imGUI, id, left, y, tabWidth, tabHeight); + for (i = 0, offset = left; list[i]; ++i) { + glwSize textSize = glwMeasureSystemText(win, list[i]); + if (imGUI->activeId == id) { + int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, + maxItemWidth, tabHeight, 0); + if (hit) { + sel = i; + } + } + if (sel == i) { + glwDrawTopRoundedRectGradientFill(offset, y, + maxItemWidth, tabHeight, + GLW_BUTTON_CORNER_RADIUS, + GLW_TAB_FILL_GRADIENT_COLOR_1, GLW_TAB_FILL_GRADIENT_COLOR_2); + glwDrawTopRoundedRectBorder(offset, y, + maxItemWidth, tabHeight, + GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_1); + } + glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, + y + tabHeight * GLW_VER_AUTO_MARGIN, list[i]); + offset += maxItemWidth; + } + glwDrawRectGradientFill(x + 1, y + tabHeight, + width - 2, height - tabHeight - 2, + GLW_BACKGROUND_COLOR, GLW_BACKGROUND_COLOR); + glwDrawHLine(x, y + tabHeight - 1, width, 1, GLW_BORDER_COLOR_1); + glwDrawHLine(x, y + height - 1, width, 1, GLW_BORDER_COLOR_1); + glwDrawVLine(x, y + tabHeight, 1, height - tabHeight, + GLW_BORDER_COLOR_1); + glwDrawVLine(x + width - 1, y + tabHeight, 1, height - tabHeight, + GLW_BORDER_COLOR_1); + return sel; +} + +int glwImPanel(glwWin *win, int id, int x, int y, int width, int height) { + glwDrawRectGradientFill(x, y, width, height, + GLW_PANEL_FILL_COLOR, GLW_PANEL_FILL_COLOR); + glwDrawRoundedRectBorder(x, y, width, height, + GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_1); + return 0; +} + +int glwImToolBar(glwWin *win, int id, int x, int y, int width, int height) { + glwImGui *imGUI = glwGetImGUI(win); + glwDrawRectGradientFill(x + 1, y + 1, width - 2, height - 2, + GLW_TOOLBAR_BACKGROUND_COLOR, GLW_TOOLBAR_BACKGROUND_COLOR); + glwDrawHLine(x, y + height - 1, width, 1, GLW_BORDER_COLOR_1); + imGUI->nextX = x; + imGUI->nextY = y + height; + return 0; +} + +int glwImBottomBar(glwWin *win, int id, int x, int y, int width, int height) { + glwImGui *imGUI = glwGetImGUI(win); + glwDrawRectGradientFill(x + 1, y + 1, width - 2, height - 2, + GLW_TOOLBAR_BACKGROUND_COLOR, GLW_TOOLBAR_BACKGROUND_COLOR); + glwDrawHLine(x, y, width, 1, GLW_BORDER_COLOR_1); + imGUI->nextX = x; + imGUI->nextY = y - height; + return 0; +} + +int glwImNextX(glwWin *win) { + glwImGui *imGUI = glwGetImGUI(win); + return imGUI->nextX; +} + +int glwImNextY(glwWin *win) { + glwImGui *imGUI = glwGetImGUI(win); + return imGUI->nextY; +} + +int glwImLineHeight(glwWin *win) { + glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); + return systemFontTexture->originSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); +} diff --git a/src/glw.h b/src/glw.h new file mode 100644 index 00000000..e4106261 --- /dev/null +++ b/src/glw.h @@ -0,0 +1,70 @@ +#ifndef GLW_H +#define GLW_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct glwSize { + int width; + int height; +} glwSize; + +typedef struct glwVec2 { + float x; + float y; +} glwVec2; + +typedef struct glwWin glwWin; +typedef struct glwFont glwFont; + +#define GLW_LEFT_BUTTON 1 +#define GLW_MIDDLE_BUTTON 2 +#define GLW_RIGHT_BUTTON 3 + +#define GLW_DOWN 1 +#define GLW_UP 2 + +void glwInit(void); +void glwMainLoop(void); +glwWin *glwCreateWindow(int x, int y, int width, int height); +glwWin *glwCreateSubWindow(glwWin *parent, int x, int y, int width, int height); +void glwSetUserData(glwWin *win, void *userData); +void *glwGetUserData(glwWin *win); +void glwDestroyWindow(glwWin *win); +void glwSetWindowTitle(glwWin *win, char *name); +void glwPositionWindow(glwWin *win, int x, int y); +void glwReshapeWindow(glwWin *win, int width, int height); +void glwDisplayFunc(glwWin *win, void (*func)(glwWin *win)); +void glwReshapeFunc(glwWin *win, void (*func)(glwWin *win, int width, + int height)); +void glwKeyboardFunc(glwWin *win, void (*func)(glwWin *win, unsigned char key, + int x, int y)); +void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, + int x, int y)); +void glwMotionFunc(glwWin *win, void (*func)(glwWin *win, int x, int y)); +void glwPassiveMotionFunc(glwWin *win, void (*func)(glwWin *win, int x, int y)); +#define glwR(rgb) ((float)(((rgb) >> 16) & 0xff) / 255) +#define glwG(rgb) ((float)(((rgb) >> 8) & 0xff) / 255) +#define glwB(rgb) ((float)(((rgb)) & 0xff) / 255) +int glwImButton(glwWin *win, int id, int x, int y, char *text); +int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked); +int glwImDropdownBox(glwWin *win, int id, int x, int y, char *text); +int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, + char **list, int sel); +int glwImPanel(glwWin *win, int id, int x, int y, int width, int height); +int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, + char **list, int sel); +int glwImToolBar(glwWin *win, int id, int x, int y, int width, int height); +int glwImBottomBar(glwWin *win, int id, int x, int y, int width, int height); +int glwImNextX(glwWin *win); +int glwImNextY(glwWin *win); +int glwImLineHeight(glwWin *win); +int glwPointTest(int x, int y, int left, int top, int width, int height, + int allowOffset); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/glw_internal.h b/src/glw_internal.h new file mode 100644 index 00000000..746467f9 --- /dev/null +++ b/src/glw_internal.h @@ -0,0 +1,54 @@ +#ifndef GLW_INTERNAL_H +#define GLW_INTERNAL_H +#include "glw.h" +#include "glw_style.h" + +#define GLW_SYSTEM_FONT_BEGIN_CHAR ' ' +#define GLW_SYSTEM_FONT_END_CHAR '~' +#define GLW_SYSTEM_FONT_CHAR_NUM (GLW_SYSTEM_FONT_END_CHAR - GLW_SYSTEM_FONT_BEGIN_CHAR + 1) + +#define GLW_TEXT_ALIGN_LEFT 0 +#define GLW_TEXT_ALIGN_CENTER 1 +#define GLW_TEXT_ALIGN_RIGHT 2 + +typedef enum glwCtrlState { + GLW_CTRL_STATE_NORMAL, + GLW_CTRL_STATE_PRESS, +} glwCtrlState; + +typedef struct glwSystemFontTexture { + int texId; + glwSize size; + glwSize originSize; + float lefts[GLW_SYSTEM_FONT_CHAR_NUM]; + int widths[GLW_SYSTEM_FONT_CHAR_NUM]; +} glwSystemFontTexture; + +typedef struct glwImGui { + int mouseButton; + int mouseState; + int mouseX; + int mouseY; + int activeId; + int nextX; + int nextY; +} glwImGui; + +glwSize glwMeasureText(char *text, glwFont *font); +unsigned char *glwRenderTextToRGBA(char *text, glwFont *font, glwSize size, + int *pixelsWide, int *pixelsHigh); +void glwDrawText(int x, int y, char *text, glwFont *font); +void glwDrawSystemText(glwWin *win, int x, int y, char *text); +glwSize glwMeasureSystemText(glwWin *win, char *text); +void glwInitSystemFontTexture(glwWin *win); +void glwInitPrimitives(void); +glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win); +void glwDestroyFont(glwFont *font); +glwFont *glwCreateFont(char *name, int weight, int size, int bold); +void glwDestroyFont(glwFont *font); +void glwDrawButtonBackground(float x, float y, float width, float height, + glwCtrlState state); +void glwMouseEvent(glwWin *win, int button, int state, int x, int y); +glwImGui *glwGetImGUI(glwWin *win); + +#endif diff --git a/src/glw_osx.m b/src/glw_osx.m new file mode 100644 index 00000000..2c8107bf --- /dev/null +++ b/src/glw_osx.m @@ -0,0 +1,345 @@ +#import +#import +#import +#include "glw_internal.h" + +@interface GLView : NSOpenGLView { + CVDisplayLinkRef displayLink; +@public + void (*onReshape)(glwWin *win, int width, int height); + void (*onDisplay)(glwWin *win); + void (*onMouse)(glwWin *win, int button, int state, int x, int y); + void (*onMotion)(glwWin *win, int x, int y); + void (*onPassiveMotion)(glwWin *win, int x, int y); + void *userData; + int pendingReshape; + int viewWidth; + int viewHeight; + float scaleX; + float scaleY; + glwSystemFontTexture systemFontTexture; + glwImGui imGUI; +} + +- (CVReturn)getFrameForTime:(const CVTimeStamp *)outputTime; +- (void)drawFrame; +@end + +static CVReturn onDisplayLinkCallback(CVDisplayLinkRef displayLink, + const CVTimeStamp *now, const CVTimeStamp *outputTime, + CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) +{ + CVReturn result = [(GLView *)displayLinkContext getFrameForTime:outputTime]; + return result; +} + +glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { + GLView *view = ((NSWindow *)win).contentView; + return &view->systemFontTexture; +} + +@implementation GLView +- (id)initWithFrame:(NSRect)frameRect { + NSOpenGLPixelFormatAttribute attribs[] = {NSOpenGLPFAMultisample, + NSOpenGLPFASampleBuffers, 1, + NSOpenGLPFASamples, 0, + NSOpenGLPFAAccelerated, + NSOpenGLPFADoubleBuffer, + NSOpenGLPFAColorSize, 32, + NSOpenGLPFADepthSize, 24, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersionLegacy, + 0}; + NSOpenGLPixelFormat *windowedPixelFormat = [[NSOpenGLPixelFormat alloc] + initWithAttributes:attribs]; + self = [super initWithFrame:frameRect pixelFormat:windowedPixelFormat]; + [windowedPixelFormat release]; + + [self setWantsBestResolutionOpenGLSurface:YES]; + + return self; +} + +- (void) prepareOpenGL { + [super prepareOpenGL]; + + GLint vblSynch = 1; + [[self openGLContext] setValues:&vblSynch + forParameter:NSOpenGLCPSwapInterval]; + + CVDisplayLinkCreateWithActiveCGDisplays(&displayLink); + CVDisplayLinkSetOutputCallback(displayLink, onDisplayLinkCallback, self); + CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(displayLink, + [[self openGLContext] CGLContextObj], + [[self pixelFormat] CGLPixelFormatObj]); + + CVDisplayLinkStart(displayLink); +} + +- (void)drawFrame { + @autoreleasepool { + NSOpenGLContext *currentContext = [self openGLContext]; + [currentContext makeCurrentContext]; + CGLLockContext([currentContext CGLContextObj]); + if (self->pendingReshape) { + if (self->onReshape) { + self->pendingReshape = 0; + if (!self->systemFontTexture.texId) { + glwInitSystemFontTexture((glwWin *)self.window); + } + self->onReshape((glwWin *)self.window, self->viewWidth, + self->viewHeight); + } + } + if (self->onDisplay) { + self->onDisplay((glwWin *)self.window); + } + CGLFlushDrawable([[self openGLContext] CGLContextObj]); + CGLUnlockContext([currentContext CGLContextObj]); + } +} + +- (CVReturn)getFrameForTime:(const CVTimeStamp *)outputTime { + [self drawFrame]; + return kCVReturnSuccess; +} + +- (void)dealloc { + CVDisplayLinkRelease(displayLink); + [super dealloc]; +} + +- (BOOL)acceptsFirstResponder { + return YES; +} + +- (void)reshape { + NSRect bounds = [self bounds]; + NSRect backingBounds = [self convertRectToBacking:[self bounds]]; + viewWidth = (int)backingBounds.size.width; + viewHeight = (int)backingBounds.size.height; + self->scaleX = (float)viewWidth / bounds.size.width; + self->scaleY = (float)viewHeight / bounds.size.height; + self->pendingReshape = 1; + [self drawFrame]; +} + +- (void)resumeDisplayRenderer { + NSOpenGLContext *currentContext = [self openGLContext]; + [currentContext makeCurrentContext]; + CGLLockContext([currentContext CGLContextObj]); + CVDisplayLinkStart(displayLink); + CGLUnlockContext([currentContext CGLContextObj]); +} + +- (void)haltDisplayRenderer { + NSOpenGLContext *currentContext = [self openGLContext]; + [currentContext makeCurrentContext]; + CGLLockContext([currentContext CGLContextObj]); + CVDisplayLinkStop(displayLink); + CGLUnlockContext([currentContext CGLContextObj]); +} + +- (void)mouseMoved:(NSEvent*)event { + NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; + int x = loc.x * self->scaleX; + int y = loc.y * self->scaleY; + if (GLW_DOWN == self->imGUI.mouseState) { + if (self->onMotion) { + self->onMotion((glwWin *)self.window, x, y); + } + } else { + if (self->onPassiveMotion) { + self->onPassiveMotion((glwWin *)self.window, x, y); + } + } +} + +- (void)mouseDown:(NSEvent*)event { + NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; + int x = loc.x * self->scaleX; + int y = loc.y * self->scaleY; + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + if (self->onMouse) { + self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + } +} + +- (void)mouseDragged:(NSEvent *)event { + NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; + int x = loc.x * self->scaleX; + int y = loc.y * self->scaleY; + if (GLW_DOWN == self->imGUI.mouseState) { + if (GLW_DOWN == self->imGUI.mouseState) { + if (self->onMotion) { + self->onMotion((glwWin *)self.window, x, y); + } + } else { + if (self->onPassiveMotion) { + self->onPassiveMotion((glwWin *)self.window, x, y); + } + } + } else { + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + if (self->onMouse) { + self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + } + } +} + +- (BOOL)isFlipped { + return YES; +} + +- (void)mouseUp:(NSEvent*)event { + NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; + int x = loc.x * self->scaleX; + int y = loc.y * self->scaleY; + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, x, y); + if (self->onMouse) { + self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, x, y); + } +} +@end + +glwImGui *glwGetImGUI(glwWin *win) { + GLView *view = ((NSWindow *)win).contentView; + return &view->imGUI; +} + +glwFont *glwCreateFont(char *name, int weight, int size, int bold) { + NSString *fontFamily = [NSString stringWithCString:name + encoding:NSMacOSRomanStringEncoding]; + NSFont *font = [[[NSFontManager sharedFontManager] fontWithFamily:fontFamily + traits:(bold ? NSBoldFontMask : NSUnboldFontMask) weight:weight size:size] retain]; + return (glwFont *)font; +} + +glwSize glwMeasureText(char *text, glwFont *font) { + NSString *aString = [NSString stringWithCString:text + encoding:NSMacOSRomanStringEncoding]; + NSSize frameSize = [aString sizeWithAttributes: + [NSDictionary dictionaryWithObject:(NSFont *)font forKey:NSFontAttributeName]]; + glwSize size = {frameSize.width, frameSize.height}; + return size; +} + +void glwInit(void) { + [NSApplication sharedApplication]; + glwInitPrimitives(); +} + +void glwMainLoop(void) { + @autoreleasepool { + [NSApp run]; + } +} + +void glwSetUserData(glwWin *win, void *userData) { + GLView *view = ((NSWindow *)win).contentView; + view->userData = userData; +} + +void *glwGetUserData(glwWin *win) { + GLView *view = ((NSWindow *)win).contentView; + return view->userData; +} + +glwWin *glwCreateWindow(int x, int y, int width, int height) { + NSUInteger windowStyle = NSTitledWindowMask | NSClosableWindowMask | + NSResizableWindowMask | NSMiniaturizableWindowMask; + NSRect fullRect = [[NSScreen mainScreen] visibleFrame]; + + if (0 == width || 0 == height) { + width = fullRect.size.width; + height = fullRect.size.height; + } + + NSRect viewRect = NSMakeRect(0, 0, width, height); + NSRect windowRect = NSMakeRect(x, y, width, height); + + NSWindow *window = [[NSWindow alloc] initWithContentRect:windowRect + styleMask:windowStyle + backing:NSBackingStoreBuffered + defer:NO]; + + GLView *view = [[GLView alloc] initWithFrame:viewRect]; + view->onReshape = 0; + view->onDisplay = 0; + view->onMouse = 0; + view->userData = 0; + view->pendingReshape = 0; + view->viewWidth = width; + view->viewHeight = height; + view->systemFontTexture.texId = 0; + memset(&view->imGUI, 0, sizeof(view->imGUI)); + view->scaleX = 1; + view->scaleY = 1; + view->onPassiveMotion = 0; + view->onMotion = 0; + + [window setAcceptsMouseMovedEvents:YES]; + [window setContentView:view]; + [window setDelegate:view]; + + [window orderFrontRegardless]; + + return (glwWin *)window; +} + +void glwDisplayFunc(glwWin *win, void (*func)(glwWin *win)) { + GLView *view = ((NSWindow *)win).contentView; + view->onDisplay = func; +} + +void glwReshapeFunc(glwWin *win, void (*func)(glwWin *win, int width, + int height)) { + GLView *view = ((NSWindow *)win).contentView; + view->onReshape = func; +} + +void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, + int x, int y)) { + GLView *view = ((NSWindow *)win).contentView; + view->onMouse = func; +} + +void glwMotionFunc(glwWin *win, + void (*func)(glwWin *win, int x, int y)) { + GLView *view = ((NSWindow *)win).contentView; + view->onMotion = func; +} + +void glwPassiveMotionFunc(glwWin *win, + void (*func)(glwWin *win, int x, int y)) { + GLView *view = ((NSWindow *)win).contentView; + view->onPassiveMotion = func; +} + +unsigned char *glwRenderTextToRGBA(char *text, glwFont *font, glwSize size, + int *pixelsWide, int *pixelsHigh) { + NSString *aString = [NSString stringWithCString:text encoding:NSMacOSRomanStringEncoding]; + NSSize frameSize = NSMakeSize(size.width, size.height); + NSImage *image = [[NSImage alloc] initWithSize:frameSize]; + unsigned char *rgba = 0; + int rgbaBytes = 0; + [image lockFocus]; + [aString drawAtPoint:NSMakePoint(0, 0) withAttributes: + [NSDictionary dictionaryWithObject:(NSFont *)font forKey:NSFontAttributeName]]; + [image unlockFocus]; + NSBitmapImageRep *bitmap = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]]; + *pixelsWide = [bitmap pixelsWide]; + *pixelsHigh = [bitmap pixelsHigh]; + rgbaBytes = 4 * (*pixelsWide) * (*pixelsHigh); + rgba = malloc(rgbaBytes); + memcpy(rgba, [bitmap bitmapData], rgbaBytes); + [image release]; + return rgba; +} + +void glwDestroyFont(glwFont *font) { + NSFont *nsFont = (NSFont *)font; + [nsFont release]; +} + + diff --git a/src/glw_style.h b/src/glw_style.h new file mode 100644 index 00000000..cd71d4fc --- /dev/null +++ b/src/glw_style.h @@ -0,0 +1,37 @@ +#ifndef GLW_STYLE_H +#define GLW_STYLE_H + +#define GLW_SYSTEM_FONT_NAME "Helvetica" +#define GLW_SYSTEM_FONT_WEIGHT 5 +#define GLW_SYSTEM_FONT_SIZE 20 + +#define GLW_SMALL_ROUNDED_CORNER_SLICES 5 + +#define GLW_BORDER_COLOR_1 0xa2a2a2 +#define GLW_BORDER_COLOR_2 0x616161 + +#define GLW_FILL_GRADIENT_COLOR_1 0xffffff +#define GLW_FILL_GRADIENT_COLOR_2 0xc6c4c5 + +#define GLW_FILL_GRADIENT_COLOR_1_H 0x3795fa +#define GLW_FILL_GRADIENT_COLOR_2_H 0x333333 + +#define GLW_BUTTON_CORNER_RADIUS 5 + +#define GLW_CHECK_COLOR 0x000000 + +#define GLW_TAB_FILL_GRADIENT_COLOR_1 0xffffff +#define GLW_TAB_FILL_GRADIENT_COLOR_2 0xc6c4c5 + +#define GLW_TAB_FILL_GRADIENT_COLOR_1_H 0x3795fa +#define GLW_TAB_FILL_GRADIENT_COLOR_2_H 0x333333 + +#define GLW_PANEL_FILL_COLOR 0xe2e2e2 + +#define GLW_HOR_AUTO_MARGIN 0.4 +#define GLW_VER_AUTO_MARGIN 0.15 + +#define GLW_BACKGROUND_COLOR 0xfcfcfc +#define GLW_TOOLBAR_BACKGROUND_COLOR 0xf5f5f5 + +#endif diff --git a/src/skinnedmesh.h b/src/skinnedmesh.h index da73baf0..e3ab88ea 100644 --- a/src/skinnedmesh.h +++ b/src/skinnedmesh.h @@ -13,9 +13,14 @@ typedef struct skinnedMeshVertex { } skinnedMeshVertex; typedef struct skinnedMeshBone { - vec3 translation; + vec3 position; vec3 rotation; matrix toRoot; } skinnedMeshBone; +typedef struct skinnedMesh skinnedMesh; + +skinnedMesh *skinnedMeshCreate(void); +void skinnedMeshAddBone(); + #endif diff --git a/src/osutil.cpp b/src/util.c similarity index 86% rename from src/osutil.cpp rename to src/util.c index 744200d4..760aa7a8 100644 --- a/src/osutil.cpp +++ b/src/util.c @@ -1,5 +1,6 @@ -#include "osutil.h" #include +#include +#include "osutil.h" long long osGetMilliseconds(void) { return (long long)QDateTime::currentMSecsSinceEpoch(); diff --git a/src/osutil.h b/src/util.h similarity index 57% rename from src/osutil.h rename to src/util.h index 5450cec9..cabe0e9d 100644 --- a/src/osutil.h +++ b/src/util.h @@ -5,8 +5,16 @@ extern "C" { #endif +#include + long long osGetMilliseconds(void); +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +#define unsued(param) (void)param + #ifdef __cplusplus } #endif From 5766a4dfbf106915ec5ac0a859654fbe6f38a73d Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 11 Feb 2017 10:48:08 +0930 Subject: [PATCH 51/61] Add missing screenshot --- screenshot/dust3d_glw_preview.png | Bin 0 -> 443598 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot/dust3d_glw_preview.png diff --git a/screenshot/dust3d_glw_preview.png b/screenshot/dust3d_glw_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..10007cf246ba999aced806486dd15711b2ca01f5 GIT binary patch literal 443598 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%0D&~WU&FanBBc_CGK_{OIy(#~qsAF6cZpG)PSrtFd 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%0AK^Ac2PvgPohM)Xa;NDc}9H`ou;dHo5E9C=Hss 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 V9H;llHNfBLug{&Ne|7nX{{nd@y?g)w literal 0 HcmV?d00001 From 058d9f3c5b610202d9c6ecef078733ed66b1c661 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 11 Feb 2017 10:51:06 +0930 Subject: [PATCH 52/61] Remove unused files --- src/main.cpp | 19 -- src/mainwindow.cpp | 23 --- src/mainwindow.h | 21 -- src/render.cpp | 469 --------------------------------------------- src/render.h | 37 ---- 5 files changed, 569 deletions(-) delete mode 100644 src/main.cpp delete mode 100644 src/mainwindow.cpp delete mode 100644 src/mainwindow.h delete mode 100644 src/render.cpp delete mode 100644 src/render.h diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 68e39bbb..00000000 --- a/src/main.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include "mainwindow.h" - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - - assert(0 != freopen((a.applicationDirPath() + - "/dust3d.log").toUtf8(), "w", stdout)); - assert(0 != freopen((a.applicationDirPath() + - "/dust3d_error.log").toUtf8(), "w", stderr)); - - w.show(); - - return a.exec(); -} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp deleted file mode 100644 index ce4872ae..00000000 --- a/src/mainwindow.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -#include -#include "mainwindow.h" -#include "render.h" - -MainWindow::MainWindow(void) { - render = new Render; - int size = QDesktopWidget().availableGeometry(this).size().height() * 0.7; - resize(QSize(size, size)); - QHBoxLayout *mainLayout = new QHBoxLayout; - mainLayout->addWidget(render); - setLayout(mainLayout); - setWindowTitle(tr("Dust3D Experiment")); -} - -void MainWindow::keyPressEvent(QKeyEvent *e) { - if (e->key() == Qt::Key_Escape) { - close(); - } else { - QWidget::keyPressEvent(e); - } -} diff --git a/src/mainwindow.h b/src/mainwindow.h deleted file mode 100644 index 448f7bdb..00000000 --- a/src/mainwindow.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include - -class Render; - -class MainWindow : public QWidget { - Q_OBJECT - -public: - MainWindow(void); - -protected: - void keyPressEvent(QKeyEvent *event); - -private: - Render *render; -}; - -#endif diff --git a/src/render.cpp b/src/render.cpp deleted file mode 100644 index 155ff144..00000000 --- a/src/render.cpp +++ /dev/null @@ -1,469 +0,0 @@ -#include -#include -#include -#include -#include "render.h" -#include "draw.h" -#include "bmesh.h" -#include "matrix.h" -#include "vector3d.h" -#include "subdivide.h" - -static const float bmeshBallColors[][4] = { - {0.00, 0.78, 1.00, 0.5}, - {1.00, 0.00, 0.00, 0.5}, - {1.00, 1.00, 1.00, 0.5} -}; - -static const float bmeshBoneColor[3] = {1, 1, 0}; - -static Render *_this = 0; -static int debugOutputTop = 0; - -int drawDebugPrintf(const char *fmt, ...) { - int x = 0; - int y = debugOutputTop + 10; - va_list args; - char text[1024]; - va_start(args, fmt); - vsnprintf(text, sizeof(text), fmt, args); - debugOutputTop += 9; - if (debugOutputTop > 400) { - debugOutputTop = 0; - } - glColor3f(0, 0, 0); - return drawText(x, y, text); -} - -static int drawBmeshBall(bmesh *bm, bmeshBall *ball) { - float color[4]; - memcpy(color, bmeshBallColors[ball->type], sizeof(color)); - if (BMESH_BALL_TYPE_ROOT == ball->type || BMESH_BALL_TYPE_KEY == ball->type) { - vec3 a = {_this->mouseWorldNearX, _this->mouseWorldNearY, - _this->mouseWorldNearZ}; - vec3 b = {_this->mouseWorldFarX, _this->mouseWorldFarY, - _this->mouseWorldFarZ}; - vec3 ab, ap, q; - float abDotAb; - float apDotAb; - float t; - vec3Sub(&b, &a, &ab); - vec3Sub(&ball->position, &a, &ap); - abDotAb = vec3DotProduct(&ab, &ab); - apDotAb = vec3DotProduct(&ap, &ab); - t = apDotAb / abDotAb; - if (t < 0.0f) { - t = 0.0f; - } else if (t > 1.0f) { - t = 1.0f; - } - vec3Scale(&ab, t, &q); - vec3Add(&a, &q, &q); - //drawDebugPrintf("q: %f,%f,%f t:%f", q.x, q.y, q.z, t); - if (vec3Distance(&ball->position, &q) <= ball->radius) { - color[3] = 1; - } - } - glColor4fv(color); - drawSphere(&ball->position, ball->radius, 36, 24); - return 0; -} - -static void drawBmeshBallRecursively(bmesh *bm, bmeshBall *ball) { - bmeshBallIterator iterator; - bmeshBall *child; - drawBmeshBall(bm, ball); - for (child = bmeshGetBallFirstChild(bm, ball, &iterator); - child; - child = bmeshGetBallNextChild(bm, ball, &iterator)) { - drawBmeshBallRecursively(bm, child); - } -} - -static void drawBmeshBallQuad(bmeshBall *ball) { - vec3 normal; - int j; - vec3 z, y; - quad q; - - vec3Scale(&ball->localYaxis, ball->radius, &y); - vec3Scale(&ball->localZaxis, ball->radius, &z); - vec3Sub(&ball->position, &y, &q.pt[0]); - vec3Add(&q.pt[0], &z, &q.pt[0]); - vec3Sub(&ball->position, &y, &q.pt[1]); - vec3Sub(&q.pt[1], &z, &q.pt[1]); - vec3Add(&ball->position, &y, &q.pt[2]); - vec3Sub(&q.pt[2], &z, &q.pt[2]); - vec3Add(&ball->position, &y, &q.pt[3]); - vec3Add(&q.pt[3], &z, &q.pt[3]); - - glColor4f(1.0f, 1.0f, 1.0f, 0.5); - glBegin(GL_QUADS); - vec3Normal(&q.pt[0], &q.pt[1], &q.pt[2], &normal); - for (j = 0; j < 4; ++j) { - glNormal3f(normal.x, normal.y, normal.z); - glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); - } - glEnd(); - - glColor3f(0.0f, 0.0f, 0.0f); - glBegin(GL_LINE_STRIP); - for (j = 0; j < 4; ++j) { - glVertex3f(q.pt[j].x, q.pt[j].y, q.pt[j].z); - } - glVertex3f(q.pt[0].x, q.pt[0].y, q.pt[0].z); - glEnd(); -} - -static void drawBmeshBallQuadRecursively(bmesh *bm, bmeshBall *ball) { - bmeshBallIterator iterator; - bmeshBall *child; - - /* - matrix matTmp; - matrix matCalc; - float quad[4][3] = { - {-ball->radius, +ball->radius, 0}, - {-ball->radius, -ball->radius, 0}, - {+ball->radius, -ball->radius, 0}, - {+ball->radius, +ball->radius, 0}, - }; - matrixLoadIdentity(&matCalc); - matrixAppend(&matCalc, - matrixTranslate(&matTmp, ball->position.x, ball->position.y, - ball->position.z)); - matrixAppend(&matCalc, - matrixRotate(&matTmp, - ball->rotateAngle, ball->rotateAround.x, ball->rotateAround.y, - ball->rotateAround.z)); - matrixTransformVector(&matCalc, quad[0]); - matrixTransformVector(&matCalc, quad[1]); - matrixTransformVector(&matCalc, quad[2]); - matrixTransformVector(&matCalc, quad[3]); - - glVertex3fv(quad[0]); - glVertex3fv(quad[1]); - glVertex3fv(quad[2]); - glVertex3fv(quad[3]); - */ - - /* - glPushMatrix(); - glTranslatef(ball->position.x, ball->position.y, - ball->position.z); - glRotatef(ball->rotateAngle, ball->rotateAround.x, ball->rotateAround.y, - ball->rotateAround.z); - glBegin(GL_QUADS); - glVertex3f(-ball->radius, +ball->radius, 0); - glVertex3f(-ball->radius, -ball->radius, 0); - glVertex3f(+ball->radius, -ball->radius, 0); - glVertex3f(+ball->radius, +ball->radius, 0); - glEnd(); - glPopMatrix(); - */ - - //drawBmeshBallQuad(ball); - - for (child = bmeshGetBallFirstChild(bm, ball, &iterator); - child; - child = bmeshGetBallNextChild(bm, ball, &iterator)) { - drawBmeshBallQuadRecursively(bm, child); - } -} - -static int drawBmeshBone(bmesh *bm, bmeshBone *bone) { - glColor3fv(bmeshBoneColor); - bmeshBall *firstBall = bmeshGetBall(bm, bone->firstBallIndex); - bmeshBall *secondBall = bmeshGetBall(bm, bone->secondBallIndex); - drawCylinder(&firstBall->position, &secondBall->position, 0.1, 36, 24); - return 0; -} - -int drawText(int x, int y, char *text) { - QFont font = QFont("Arial"); - font.setPointSize(9); - font.setBold(false); - _this->renderText(x, y, QString(text), font); - return 0; -} - -Render::Render(QWidget *parent) - : QGLWidget(QGLFormat(QGL::SampleBuffers), parent) { - QTimer *timer = new QTimer(this); - connect(timer, SIGNAL(timeout()), this, SLOT(update())); - timer->start(100); - - mouseX = 0; - mouseY = 0; - cameraAngleX = 30; - cameraAngleY = -312; - cameraDistance = 14.4; - //cameraAngleX = 0; - //cameraAngleY = 0; - //cameraDistance = 0; - - mouseScaleX = 1; - mouseScaleY = 1; -} - -Render::~Render(void) { -} - -void Render::initializeGL() { - glShadeModel(GL_SMOOTH); - glEnable(GL_CULL_FACE); - glEnable(GL_BLEND); - glDepthFunc(GL_LEQUAL); - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_CULL_FACE); - - qglClearColor(QWidget::palette().color(QWidget::backgroundRole())); - glClearStencil(0); - glClearDepth(1.0f); - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - GLfloat ambientLight[] = {0.0f, 0.0f, 0.0f, 1.0f}; - GLfloat diffuseLight[] = {0.9f, 0.9f, 0.9f, 1.0f}; - GLfloat specularLight[] = {1, 1, 1, 1}; - glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight); - glLightfv(GL_LIGHT0, GL_SPECULAR, specularLight); - - float lightDirection[4] = {0, 0, 1, 0}; - glLightfv(GL_LIGHT0, GL_POSITION, lightDirection); - - glEnable(GL_LIGHT0); - - float shininess = 64.0f; - float specularColor[] = {1.0, 1.0f, 1.0f, 1.0f}; - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specularColor); - - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); - - drawInit(); -} - -void screenCoordsToWorld(float winX, float winY, - float *worldNearX, float *worldNearY, float *worldNearZ, - float *worldFarX, float *worldFarY, float *worldFarZ){ - GLint viewport[4]; - GLdouble modelview[16]; - GLdouble projection[16]; - GLfloat winZ = 0; - GLdouble x, y, z; - - glGetDoublev(GL_MODELVIEW_MATRIX, modelview); - glGetDoublev(GL_PROJECTION_MATRIX, projection); - glGetIntegerv(GL_VIEWPORT, viewport); - - winX = (float)winX; - winY = (float)viewport[3] - (float)winY; - - winZ = 0; - gluUnProject((GLdouble)winX, (GLdouble)winY, (GLdouble)winZ, - (const GLdouble *)modelview, (const GLdouble *)projection, viewport, - &x, &y, &z); - *worldNearX = (float)x; - *worldNearY = (float)y; - *worldNearZ = (float)z; - { - vec3 origin = {(float)x, (float)y, (float)z}; - drawDebugPoint(&origin, 0); - } - - winZ = 1; - gluUnProject((GLdouble)winX, (GLdouble)winY, (GLdouble)winZ, - (const GLdouble *)modelview, (const GLdouble *)projection, viewport, - &x, &y, &z); - *worldFarX = (float)x; - *worldFarY = (float)y; - *worldFarZ = (float)z; - { - vec3 origin = {(float)x, (float)y, (float)z}; - drawDebugPoint(&origin, 1); - } - - { - vec3 topOrigin = {*worldNearX, *worldNearY, *worldNearZ}; - vec3 bottomOrigin = {*worldFarX, *worldFarY, *worldFarZ}; - glDisable(GL_LIGHTING); - - // x z plane - glBegin(GL_LINES); - glColor3f(0.0, 0.0, 0.0); - glVertex3f(topOrigin.x, topOrigin.y, topOrigin.z); - glVertex3f(bottomOrigin.x, bottomOrigin.y, bottomOrigin.z); - glEnd(); - - glEnable(GL_LIGHTING); - //drawCylinder(&topOrigin, &bottomOrigin, 0.1, 36, 24); - } -} - -#include "../data/bmesh_test_2.h" - -void Render::paintGL() { - static bmesh *bm = 0; - - _this = this; - debugOutputTop = 0; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - - glTranslatef(0, 0, -cameraDistance); - glRotatef(cameraAngleX, 1, 0, 0); - glRotatef(cameraAngleY, 0, 1, 0); - - glColor3f(0, 0, 0); - drawDebugPrintf("cameraAngleX:%f cameraAngleY:%f cameraDistance:%f", - cameraAngleX, cameraAngleY, cameraDistance); - - screenCoordsToWorld(_this->mouseX, _this->mouseY, - &_this->mouseWorldNearX, &_this->mouseWorldNearY, &_this->mouseWorldNearZ, - &_this->mouseWorldFarX, &_this->mouseWorldFarY, &_this->mouseWorldFarZ); - glColor3f(0.0f, 0.0f, 0.0f); - drawDebugPrintf("%d,%d -> %f,%f,%f %f,%f,%f", _this->mouseX, _this->mouseY, - _this->mouseWorldNearX, _this->mouseWorldNearY, _this->mouseWorldNearZ, - _this->mouseWorldFarX, _this->mouseWorldFarY, _this->mouseWorldFarZ); - - drawGrid(10, 1); - - glEnable(GL_LIGHTING); - - if (0 == bm) { - bmeshBall ball; - bmeshBone bone; - unsigned int i; - bm = bmeshCreate(); - - for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { - memset(&ball, 0, sizeof(ball)); - ball.position.x = bmeshTestBalls[i][1]; - ball.position.y = bmeshTestBalls[i][2]; - ball.position.z = bmeshTestBalls[i][3]; - ball.radius = bmeshTestBalls[i][4]; - ball.type = bmeshTestBalls[i][5]; - bmeshAddBall(bm, &ball); - } - - for (i = 0; i < sizeof(bmeshTestBones) / sizeof(bmeshTestBones[0]); ++i) { - memset(&bone, 0, sizeof(bone)); - bone.firstBallIndex = bmeshTestBones[i][0]; - bone.secondBallIndex = bmeshTestBones[i][1]; - bmeshAddBone(bm, &bone); - } - - bmeshGenerate(bm); - } - - if (bm) { - - bmeshDraw(bm); - - drawBmeshBallRecursively(bm, bmeshGetRootBall(bm)); - - //glBegin(GL_QUADS); - drawBmeshBallQuadRecursively(bm, bmeshGetRootBall(bm)); - //glEnd(); - - { - int index; - /* - for (index = 0; index < bmeshGetBallNum(bm); ++index) { - bmeshBall *ball = bmeshGetBall(bm, index); - drawBmeshBall(bm, ball); - }*/ - - for (index = 0; index < bmeshGetBoneNum(bm); ++index) { - bmeshBone *bone = bmeshGetBone(bm, index); - //drawBmeshBone(bm, bone); - } - /* - glColor4f(1.0f, 1.0f, 1.0f, 0.5); - glBegin(GL_QUADS); - for (index = 0; index < bmeshGetQuadNum(bm); ++index) { - quad *q = bmeshGetQuad(bm, index); - vec3 normal; - int j; - vec3Normal(&q->pt[0], &q->pt[1], &q->pt[2], &normal); - for (j = 0; j < 4; ++j) { - glNormal3f(normal.x, normal.y, normal.z); - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); - } - } - glEnd(); - glColor3f(0.0f, 0.0f, 0.0f); - for (index = 0; index < bmeshGetQuadNum(bm); ++index) { - quad *q = bmeshGetQuad(bm, index); - int j; - glBegin(GL_LINE_STRIP); - for (j = 0; j < 4; ++j) { - glVertex3f(q->pt[j].x, q->pt[j].y, q->pt[j].z); - } - glVertex3f(q->pt[0].x, q->pt[0].y, q->pt[0].z); - glEnd(); - }*/ - } - } - - //glColor3f(0.0f, 0.0f, 0.0f); - //drawTestUnproject(); - - glPopMatrix(); - - //if (bm) { - // bmeshDestroy(bm); - // bm = 0; - //} -} - -void Render::resizeGL(int w, int h) { - mouseScaleX = w / width(); - mouseScaleY = h / height(); - - glViewport(0, 0, (GLsizei)w, (GLsizei)h); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(60.0f, w/h, 1, 1000); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - -/* -void drawTestUnproject(void) { - float worldX, worldY, worldZ; - if (_this) { - screenCoordsToWorld(_this->mouseX, _this->mouseY, &worldX, &worldY, &worldZ); - glColor3f(0.0f, 0.0f, 0.0f); - drawDebugPrintf("%d,%d -> %f,%f,%f", _this->mouseX, _this->mouseY, - worldX, worldY, worldZ); - } -}*/ - -void Render::mousePressEvent(QMouseEvent *event) { - mouseX = event->x() * mouseScaleX; - mouseY = event->y() * mouseScaleY; -} - -void Render::mouseMoveEvent(QMouseEvent *event) { - int x = event->x() * mouseScaleX; - int y = event->y() * mouseScaleY; - cameraAngleY += (x - mouseX); - cameraAngleX += (y - mouseY); - update(); - mouseX = x; - mouseY = y; -} - -void Render::wheelEvent(QWheelEvent * event) { - cameraDistance -= event->delta() * 0.01f; -} diff --git a/src/render.h b/src/render.h deleted file mode 100644 index 03f59d08..00000000 --- a/src/render.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef RENDER_H -#define RENDER_H - -#include - -class Render : public QGLWidget { - Q_OBJECT - -public: - Render(QWidget *parent = 0); - ~Render(void); - -protected: - void initializeGL(void); - void paintGL(void); - void resizeGL(int width, int height); - void mousePressEvent(QMouseEvent *event); - void mouseMoveEvent(QMouseEvent *event); - void wheelEvent(QWheelEvent * event); - -public: - int mouseX; - int mouseY; - float mouseScaleX; - float mouseScaleY; - float mouseWorldNearX; - float mouseWorldNearY; - float mouseWorldNearZ; - float mouseWorldFarX; - float mouseWorldFarY; - float mouseWorldFarZ; - float cameraAngleX; - float cameraAngleY; - float cameraDistance; -}; - -#endif From 0ef318fab73412d2fe655b921681e798148d994d Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 11 Feb 2017 12:56:25 +0930 Subject: [PATCH 53/61] Add wheel event. --- src/editor.c | 110 +++++++++++++++++++++-------- src/glw.c | 54 +++++++++++++++ src/glw.h | 3 + src/glw_internal.h | 17 +++++ src/glw_osx.m | 168 +++++++++++++++++++-------------------------- src/glw_style.h | 2 +- 6 files changed, 227 insertions(+), 127 deletions(-) diff --git a/src/editor.c b/src/editor.c index 3becdc32..24c80e2d 100644 --- a/src/editor.c +++ b/src/editor.c @@ -27,6 +27,8 @@ #define ED_GL_BACKGROUND_COLOR GLW_BACKGROUND_COLOR +#define ED_BONE_COLOR 0xffff00 + typedef struct editor { glwWin *win; float cameraAngleX; @@ -34,20 +36,37 @@ typedef struct editor { float cameraDistance; int newImId; int showBoneChecked; + int showBallChecked; + int showMeshChecked; int width; int height; int mode; - int glLeft; - int glTop; - int glWidth; - int glHeight; - int mouseX; - int mouseY; + int renderLeft; + int renderTop; + int renderWidth; + int renderHeight; + int moveMouseX; + int moveMouseY; bmesh *bm; } editor; #include "../data/bmesh_test_2.h" +static int mouseInRenderRect(glwWin *win) { + editor *ed = glwGetUserData(win); + return glwPointTest(glwMouseX(win), glwMouseY(win), + ed->renderLeft, ed->renderTop, + ed->renderWidth, ed->renderHeight, 0); +} + +static int drawBmeshBone(bmesh *bm, bmeshBone *bone) { + glColor3f(glwR(ED_BONE_COLOR), glwG(ED_BONE_COLOR), glwB(ED_BONE_COLOR)); + bmeshBall *firstBall = bmeshGetBall(bm, bone->firstBallIndex); + bmeshBall *secondBall = bmeshGetBall(bm, bone->secondBallIndex); + drawCylinder(&firstBall->position, &secondBall->position, 0.1, 36, 24); + return 0; +} + static void display(glwWin *win) { editor *ed = glwGetUserData(win); @@ -85,15 +104,25 @@ static void display(glwWin *win) { int glWinY = glwImNextY(win); int bottomY = y + height - ED_TOOLBAR_HEIGHT; glwImBottomBar(win, GEN_ID, x, bottomY, width, ED_TOOLBAR_HEIGHT); - ed->showBoneChecked = glwImCheck(win, GEN_ID, x + ED_SPACING + ED_SPACING, + ed->showBallChecked = glwImCheck(win, GEN_ID, x + ED_SPACING + ED_SPACING, bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, - "Show Bone", + "Ball", + ed->showBallChecked); + ed->showBoneChecked = glwImCheck(win, GEN_ID, + glwImNextX(win) + ED_SPACING, + bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + "Bone", ed->showBoneChecked); + ed->showMeshChecked = glwImCheck(win, GEN_ID, + glwImNextX(win) + ED_SPACING, + bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + "Mesh", + ed->showMeshChecked); - ed->glLeft = x + 1; - ed->glTop = glWinY; - ed->glWidth = width - 3; - ed->glHeight = bottomY - glWinY; + ed->renderLeft = x + 1; + ed->renderTop = glWinY; + ed->renderWidth = width - 3; + ed->renderHeight = bottomY - glWinY; if (0 == ed->bm) { bmeshBall ball; @@ -122,19 +151,19 @@ static void display(glwWin *win) { } glEnable(GL_SCISSOR_TEST); - glScissor(ed->glLeft, ED_SPACING / 2 + ED_TOOLBAR_HEIGHT + 1, - ed->glWidth, ed->glHeight); + glScissor(ed->renderLeft, ED_SPACING / 2 + ED_TOOLBAR_HEIGHT + 1, + ed->renderWidth, ed->renderHeight); glPushMatrix(); glTranslatef(x + 1, glWinY, 0); glColor3f(glwR(ED_GL_BACKGROUND_COLOR), glwG(ED_GL_BACKGROUND_COLOR), glwB(ED_GL_BACKGROUND_COLOR)); - glRecti(0, 0, ed->glWidth, ed->glHeight); + glRecti(0, 0, ed->renderWidth, ed->renderHeight); glMatrixMode(GL_PROJECTION); glLoadIdentity(); - gluPerspective(60.0f, (float)ed->glWidth / ed->glHeight, 1, 1000); + gluPerspective(60.0f, (float)ed->renderWidth / ed->renderHeight, 1, 1000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); @@ -146,7 +175,23 @@ static void display(glwWin *win) { glEnable(GL_LIGHTING); glEnable(GL_CULL_FACE); - bmeshDraw(ed->bm); + + if (ed->showBallChecked) { + + } + + if (ed->showBoneChecked) { + int index; + for (index = 0; index < bmeshGetBoneNum(ed->bm); ++index) { + bmeshBone *bone = bmeshGetBone(ed->bm, index); + drawBmeshBone(ed->bm, bone); + } + } + + if (ed->showMeshChecked) { + bmeshDraw(ed->bm); + } + glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); @@ -189,41 +234,52 @@ static void reshape(glwWin *win, int width, int height) { static void mouse(glwWin *win, int button, int state, int x, int y){ editor *ed = glwGetUserData(win); - if (!glwPointTest(x, y, ed->glLeft, ed->glTop, - ed->glWidth, ed->glHeight, 0)) { + if (!mouseInRenderRect(win)) { return; } if (GLW_DOWN == state) { - ed->mouseX = x; - ed->mouseY = y; + ed->moveMouseX = x; + ed->moveMouseY = y; } } static void motion(glwWin *win, int x, int y) { editor *ed = glwGetUserData(win); - if (!glwPointTest(x, y, ed->glLeft, ed->glTop, - ed->glWidth, ed->glHeight, 0)) { + if (!mouseInRenderRect(win)) { return; } - ed->cameraAngleY += (x - ed->mouseX); - ed->cameraAngleX += (y - ed->mouseY); - ed->mouseX = x; - ed->mouseY = y; + ed->cameraAngleY += (x - ed->moveMouseX); + ed->cameraAngleX += (y - ed->moveMouseY); + ed->moveMouseX = x; + ed->moveMouseY = y; +} + +static void wheel(glwWin *win, float delta) { + editor *ed = glwGetUserData(win); + if (!mouseInRenderRect(win)) { + return; + } + ed->cameraDistance -= delta * 0.01f; } int main(int argc, char *argv[]) { editor ed; glwInit(); + drawInit(); + memset(&ed, 0, sizeof(ed)); ed.cameraAngleX = 30; ed.cameraAngleY = -312; ed.cameraDistance = 14.4; + ed.showMeshChecked = 1; + ed.win = glwCreateWindow(0, 0, 0, 0); glwSetUserData(ed.win, &ed); glwReshapeFunc(ed.win, reshape); glwDisplayFunc(ed.win, display); glwMouseFunc(ed.win, mouse); glwMotionFunc(ed.win, motion); + glwWheelFunc(ed.win, wheel); glwMainLoop(); return 0; } diff --git a/src/glw.c b/src/glw.c index 9b1ed943..24b25255 100644 --- a/src/glw.c +++ b/src/glw.c @@ -688,3 +688,57 @@ int glwImLineHeight(glwWin *win) { glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); return systemFontTexture->originSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); } + +void glwSetUserData(glwWin *win, void *userData) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->userData = userData; +} + +void *glwGetUserData(glwWin *win) { + glwWinContext *ctx = glwGetWinContext(win); + return ctx->userData; +} + +void glwDisplayFunc(glwWin *win, void (*func)(glwWin *win)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onDisplay = func; +} + +void glwReshapeFunc(glwWin *win, void (*func)(glwWin *win, int width, + int height)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onReshape = func; +} + +void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, + int x, int y)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onMouse = func; +} + +void glwMotionFunc(glwWin *win, + void (*func)(glwWin *win, int x, int y)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onMotion = func; +} + +void glwPassiveMotionFunc(glwWin *win, + void (*func)(glwWin *win, int x, int y)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onPassiveMotion = func; +} + +void glwWheelFunc(glwWin *win, void(*func)(glwWin *win, float delta)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onWheel = func; +} + +int glwMouseX(glwWin *win) { + glwWinContext *ctx = glwGetWinContext(win); + return ctx->x; +} + +int glwMouseY(glwWin *win) { + glwWinContext *ctx = glwGetWinContext(win); + return ctx->y; +} diff --git a/src/glw.h b/src/glw.h index e4106261..6120e39b 100644 --- a/src/glw.h +++ b/src/glw.h @@ -44,6 +44,7 @@ void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, int x, int y)); void glwMotionFunc(glwWin *win, void (*func)(glwWin *win, int x, int y)); void glwPassiveMotionFunc(glwWin *win, void (*func)(glwWin *win, int x, int y)); +void glwWheelFunc(glwWin *win, void(*func)(glwWin *win, float delta)); #define glwR(rgb) ((float)(((rgb) >> 16) & 0xff) / 255) #define glwG(rgb) ((float)(((rgb) >> 8) & 0xff) / 255) #define glwB(rgb) ((float)(((rgb)) & 0xff) / 255) @@ -62,6 +63,8 @@ int glwImNextY(glwWin *win); int glwImLineHeight(glwWin *win); int glwPointTest(int x, int y, int left, int top, int width, int height, int allowOffset); +int glwMouseX(glwWin *win); +int glwMouseY(glwWin *win); #ifdef __cplusplus } diff --git a/src/glw_internal.h b/src/glw_internal.h index 746467f9..4fe6ab8f 100644 --- a/src/glw_internal.h +++ b/src/glw_internal.h @@ -16,6 +16,22 @@ typedef enum glwCtrlState { GLW_CTRL_STATE_PRESS, } glwCtrlState; +typedef struct glwWinContext { + void (*onReshape)(glwWin *win, int width, int height); + void (*onDisplay)(glwWin *win); + void (*onMouse)(glwWin *win, int button, int state, int x, int y); + void (*onMotion)(glwWin *win, int x, int y); + void (*onPassiveMotion)(glwWin *win, int x, int y); + void(*onWheel)(glwWin *win, float delta); + int viewWidth; + int viewHeight; + float scaleX; + float scaleY; + void *userData; + int x; + int y; +} glwWinContext; + typedef struct glwSystemFontTexture { int texId; glwSize size; @@ -50,5 +66,6 @@ void glwDrawButtonBackground(float x, float y, float width, float height, glwCtrlState state); void glwMouseEvent(glwWin *win, int button, int state, int x, int y); glwImGui *glwGetImGUI(glwWin *win); +glwWinContext *glwGetWinContext(glwWin *win); #endif diff --git a/src/glw_osx.m b/src/glw_osx.m index 2c8107bf..546e5fc1 100644 --- a/src/glw_osx.m +++ b/src/glw_osx.m @@ -6,17 +6,8 @@ @interface GLView : NSOpenGLView { CVDisplayLinkRef displayLink; @public - void (*onReshape)(glwWin *win, int width, int height); - void (*onDisplay)(glwWin *win); - void (*onMouse)(glwWin *win, int button, int state, int x, int y); - void (*onMotion)(glwWin *win, int x, int y); - void (*onPassiveMotion)(glwWin *win, int x, int y); - void *userData; int pendingReshape; - int viewWidth; - int viewHeight; - float scaleX; - float scaleY; + glwWinContext context; glwSystemFontTexture systemFontTexture; glwImGui imGUI; } @@ -38,6 +29,11 @@ glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { return &view->systemFontTexture; } +glwWinContext *glwGetWinContext(glwWin *win) { + GLView *view = ((NSWindow *)win).contentView; + return &view->context; +} + @implementation GLView - (id)initWithFrame:(NSRect)frameRect { NSOpenGLPixelFormatAttribute attribs[] = {NSOpenGLPFAMultisample, @@ -82,17 +78,17 @@ glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { [currentContext makeCurrentContext]; CGLLockContext([currentContext CGLContextObj]); if (self->pendingReshape) { - if (self->onReshape) { + if (self->context.onReshape) { self->pendingReshape = 0; if (!self->systemFontTexture.texId) { glwInitSystemFontTexture((glwWin *)self.window); } - self->onReshape((glwWin *)self.window, self->viewWidth, - self->viewHeight); + self->context.onReshape((glwWin *)self.window, self->context.viewWidth, + self->context.viewHeight); } } - if (self->onDisplay) { - self->onDisplay((glwWin *)self.window); + if (self->context.onDisplay) { + self->context.onDisplay((glwWin *)self.window); } CGLFlushDrawable([[self openGLContext] CGLContextObj]); CGLUnlockContext([currentContext CGLContextObj]); @@ -116,10 +112,10 @@ glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { - (void)reshape { NSRect bounds = [self bounds]; NSRect backingBounds = [self convertRectToBacking:[self bounds]]; - viewWidth = (int)backingBounds.size.width; - viewHeight = (int)backingBounds.size.height; - self->scaleX = (float)viewWidth / bounds.size.width; - self->scaleY = (float)viewHeight / bounds.size.height; + self->context.viewWidth = (int)backingBounds.size.width; + self->context.viewHeight = (int)backingBounds.size.height; + self->context.scaleX = (float)self->context.viewWidth / bounds.size.width; + self->context.scaleY = (float)self->context.viewHeight / bounds.size.height; self->pendingReshape = 1; [self drawFrame]; } @@ -140,49 +136,66 @@ glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { CGLUnlockContext([currentContext CGLContextObj]); } -- (void)mouseMoved:(NSEvent*)event { +- (void)saveMousePosFromEvent:(NSEvent*)event { NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; - int x = loc.x * self->scaleX; - int y = loc.y * self->scaleY; + self->context.x = loc.x * self->context.scaleX; + self->context.y = loc.y * self->context.scaleY; +} + +- (void)mouseMoved:(NSEvent*)event { + [self saveMousePosFromEvent:event]; if (GLW_DOWN == self->imGUI.mouseState) { - if (self->onMotion) { - self->onMotion((glwWin *)self.window, x, y); + if (self->context.onMotion) { + self->context.onMotion((glwWin *)self.window, + self->context.x, self->context.y); } } else { - if (self->onPassiveMotion) { - self->onPassiveMotion((glwWin *)self.window, x, y); + if (self->context.onPassiveMotion) { + self->context.onPassiveMotion((glwWin *)self.window, + self->context.x, self->context.y); } } } - (void)mouseDown:(NSEvent*)event { - NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; - int x = loc.x * self->scaleX; - int y = loc.y * self->scaleY; - glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); - if (self->onMouse) { - self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + [self saveMousePosFromEvent:event]; + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, + self->context.x, self->context.y); + if (self->context.onMouse) { + self->context.onMouse((glwWin *)self.window, + GLW_LEFT_BUTTON, GLW_DOWN, + self->context.x, self->context.y); + } +} + +- (void)scrollWheel:(NSEvent *)event { + [self saveMousePosFromEvent:event]; + if (self->context.onWheel) { + self->context.onWheel((glwWin *)self.window, [event deltaY] * 10); } } - (void)mouseDragged:(NSEvent *)event { - NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; - int x = loc.x * self->scaleX; - int y = loc.y * self->scaleY; + [self saveMousePosFromEvent:event]; if (GLW_DOWN == self->imGUI.mouseState) { if (GLW_DOWN == self->imGUI.mouseState) { - if (self->onMotion) { - self->onMotion((glwWin *)self.window, x, y); + if (self->context.onMotion) { + self->context.onMotion((glwWin *)self.window, + self->context.x, self->context.y); } } else { - if (self->onPassiveMotion) { - self->onPassiveMotion((glwWin *)self.window, x, y); + if (self->context.onPassiveMotion) { + self->context.onPassiveMotion((glwWin *)self.window, + self->context.x, self->context.y); } } } else { - glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); - if (self->onMouse) { - self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, x, y); + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_DOWN, + self->context.x, self->context.y); + if (self->context.onMouse) { + self->context.onMouse((glwWin *)self.window, + GLW_LEFT_BUTTON, GLW_DOWN, + self->context.x, self->context.y); } } } @@ -192,12 +205,12 @@ glwSystemFontTexture *glwGetSystemFontTexture(glwWin *win) { } - (void)mouseUp:(NSEvent*)event { - NSPoint loc = [self convertPoint:[event locationInWindow] fromView:nil]; - int x = loc.x * self->scaleX; - int y = loc.y * self->scaleY; - glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, x, y); - if (self->onMouse) { - self->onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, x, y); + [self saveMousePosFromEvent:event]; + glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, + self->context.x, self->context.y); + if (self->context.onMouse) { + self->context.onMouse((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, + self->context.x, self->context.y); } } @end @@ -235,16 +248,6 @@ void glwMainLoop(void) { } } -void glwSetUserData(glwWin *win, void *userData) { - GLView *view = ((NSWindow *)win).contentView; - view->userData = userData; -} - -void *glwGetUserData(glwWin *win) { - GLView *view = ((NSWindow *)win).contentView; - return view->userData; -} - glwWin *glwCreateWindow(int x, int y, int width, int height) { NSUInteger windowStyle = NSTitledWindowMask | NSClosableWindowMask | NSResizableWindowMask | NSMiniaturizableWindowMask; @@ -264,19 +267,15 @@ glwWin *glwCreateWindow(int x, int y, int width, int height) { defer:NO]; GLView *view = [[GLView alloc] initWithFrame:viewRect]; - view->onReshape = 0; - view->onDisplay = 0; - view->onMouse = 0; - view->userData = 0; - view->pendingReshape = 0; - view->viewWidth = width; - view->viewHeight = height; - view->systemFontTexture.texId = 0; + memset(&view->context, 0, sizeof(view->context)); + memset(&view->systemFontTexture, 0, sizeof(view->systemFontTexture)); memset(&view->imGUI, 0, sizeof(view->imGUI)); - view->scaleX = 1; - view->scaleY = 1; - view->onPassiveMotion = 0; - view->onMotion = 0; + view->pendingReshape = 0; + view->context.viewWidth = width; + view->context.viewHeight = height; + view->systemFontTexture.texId = 0; + view->context.scaleX = 1; + view->context.scaleY = 1; [window setAcceptsMouseMovedEvents:YES]; [window setContentView:view]; @@ -287,35 +286,6 @@ glwWin *glwCreateWindow(int x, int y, int width, int height) { return (glwWin *)window; } -void glwDisplayFunc(glwWin *win, void (*func)(glwWin *win)) { - GLView *view = ((NSWindow *)win).contentView; - view->onDisplay = func; -} - -void glwReshapeFunc(glwWin *win, void (*func)(glwWin *win, int width, - int height)) { - GLView *view = ((NSWindow *)win).contentView; - view->onReshape = func; -} - -void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, - int x, int y)) { - GLView *view = ((NSWindow *)win).contentView; - view->onMouse = func; -} - -void glwMotionFunc(glwWin *win, - void (*func)(glwWin *win, int x, int y)) { - GLView *view = ((NSWindow *)win).contentView; - view->onMotion = func; -} - -void glwPassiveMotionFunc(glwWin *win, - void (*func)(glwWin *win, int x, int y)) { - GLView *view = ((NSWindow *)win).contentView; - view->onPassiveMotion = func; -} - unsigned char *glwRenderTextToRGBA(char *text, glwFont *font, glwSize size, int *pixelsWide, int *pixelsHigh) { NSString *aString = [NSString stringWithCString:text encoding:NSMacOSRomanStringEncoding]; diff --git a/src/glw_style.h b/src/glw_style.h index cd71d4fc..d80cc598 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -3,7 +3,7 @@ #define GLW_SYSTEM_FONT_NAME "Helvetica" #define GLW_SYSTEM_FONT_WEIGHT 5 -#define GLW_SYSTEM_FONT_SIZE 20 +#define GLW_SYSTEM_FONT_SIZE 21 #define GLW_SMALL_ROUNDED_CORNER_SLICES 5 From 603eb6efebb469a2e377eac22fdf2a13787ba089 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 11 Feb 2017 18:46:58 +0930 Subject: [PATCH 54/61] Add font color. --- CMakeLists.txt | 2 ++ src/editor.c | 10 ++++++++-- src/glw.c | 17 ++++++++++------- src/glw_internal.h | 3 ++- src/glw_osx.m | 12 ++++++++---- src/glw_style.h | 19 ++++++++++--------- src/skeleton.c | 2 -- 7 files changed, 40 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f30379bd..595d7193 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,8 @@ file(GLOB_RECURSE sources src/convexhull.c src/draw.h src/draw.c + src/skeleton.h + src/skeleton.c src/editor.c ) diff --git a/src/editor.c b/src/editor.c index 24c80e2d..589c5cfe 100644 --- a/src/editor.c +++ b/src/editor.c @@ -10,6 +10,7 @@ #include "glw.h" #include "glw_style.h" #include "draw.h" +#include "skeleton.h" #include "bmesh.h" #define GEN_ID __LINE__ @@ -17,7 +18,7 @@ #define ED_MODE_EDIT 0 #define ED_MODE_ANIMATION 1 -#define ED_BACKGROUND_COLOR 0xe4e2e4 +#define ED_BACKGROUND_COLOR 0x2b2b2b #define ED_SIDEBAR_WIDTH 400 #define ED_SPACING 10 @@ -48,6 +49,7 @@ typedef struct editor { int moveMouseX; int moveMouseY; bmesh *bm; + skeleton *skl; } editor; #include "../data/bmesh_test_2.h" @@ -123,6 +125,10 @@ static void display(glwWin *win) { ed->renderTop = glWinY; ed->renderWidth = width - 3; ed->renderHeight = bottomY - glWinY; + + if (0 == ed->skl) { + ed->skl = skeletonCreate(); + } if (0 == ed->bm) { bmeshBall ball; @@ -171,7 +177,7 @@ static void display(glwWin *win) { glRotatef(ed->cameraAngleX, 1, 0, 0); glRotatef(ed->cameraAngleY, 0, 1, 0); - drawGrid(10, 1); + //drawGrid(10, 1); glEnable(GL_LIGHTING); glEnable(GL_CULL_FACE); diff --git a/src/glw.c b/src/glw.c index 24b25255..2bcf14d4 100644 --- a/src/glw.c +++ b/src/glw.c @@ -9,13 +9,15 @@ #define M_PI 3.14159265 #endif -void glwDrawSystemText(glwWin *win, int x, int y, char *text) { +void glwDrawSystemText(glwWin *win, int x, int y, char *text, + unsigned int color) { int vleft, vwidth; float tleft, twidth; glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, systemFontTexture->texId); + glColor3f(glwR(color), glwG(color), glwB(color)); for (vleft = 0; *text; vleft += vwidth, text++) { int idx = (*text) - GLW_SYSTEM_FONT_BEGIN_CHAR; if (idx < 0 || idx > GLW_SYSTEM_FONT_CHAR_NUM) { @@ -110,7 +112,8 @@ void glwInitSystemFontTexture(glwWin *win) { glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + //glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD); glTexImage2D(GL_TEXTURE_2D, 0, 4, (GLsizei)(systemFontTexture->size.width), (GLsizei)(systemFontTexture->size.height), 0, @@ -460,7 +463,7 @@ int glwImButton(glwWin *win, int id, int x, int y, char *text) { imGUI->activeId == id ? GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); glwDrawSystemText(win, x + textSize.width * GLW_HOR_AUTO_MARGIN, y + textSize.height * GLW_VER_AUTO_MARGIN, - text); + text, GLW_SYSTEM_FONT_COLOR); imGUI->nextX = x + width; imGUI->nextY = y; return imGUI->activeId == id; @@ -478,7 +481,7 @@ int glwImDropdownBox(glwWin *win, int id, int x, int y, char *text) { imGUI->activeId == id ? GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); glwDrawSystemText(win, x + textSize.width * (GLW_HOR_AUTO_MARGIN), y + textSize.height * (GLW_VER_AUTO_MARGIN), - text); + text, GLW_SYSTEM_FONT_COLOR); glwDrawDropdownArrow(x + width - textSize.width * GLW_HOR_AUTO_MARGIN - arrowWidth, y + (height - arrowHeight) / 2, arrowWidth, arrowHeight, 0); @@ -500,7 +503,7 @@ int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked) { (imGUI->activeId == id || checked) ? GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); glwDrawSystemText(win, x + textSize.height * GLW_HOR_AUTO_MARGIN + boxWidth, - y, text); + y, text, GLW_SYSTEM_FONT_COLOR); if (checked) { glwDrawCheckSymbol(x, y, boxWidth, height, GLW_CHECK_COLOR); } @@ -586,7 +589,7 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, glwDrawVLine(offset, y, 1, height, GLW_BORDER_COLOR_2); } glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, - y + height * 0.1, list[i]); + y + height * 0.1, list[i], GLW_SYSTEM_FONT_COLOR); offset += maxItemWidth; } imGUI->nextX = offset; @@ -631,7 +634,7 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_1); } glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, - y + tabHeight * GLW_VER_AUTO_MARGIN, list[i]); + y + tabHeight * GLW_VER_AUTO_MARGIN, list[i], GLW_SYSTEM_FONT_COLOR); offset += maxItemWidth; } glwDrawRectGradientFill(x + 1, y + tabHeight, diff --git a/src/glw_internal.h b/src/glw_internal.h index 4fe6ab8f..93a5be4e 100644 --- a/src/glw_internal.h +++ b/src/glw_internal.h @@ -54,7 +54,8 @@ glwSize glwMeasureText(char *text, glwFont *font); unsigned char *glwRenderTextToRGBA(char *text, glwFont *font, glwSize size, int *pixelsWide, int *pixelsHigh); void glwDrawText(int x, int y, char *text, glwFont *font); -void glwDrawSystemText(glwWin *win, int x, int y, char *text); +void glwDrawSystemText(glwWin *win, int x, int y, char *text, + unsigned int color); glwSize glwMeasureSystemText(glwWin *win, char *text); void glwInitSystemFontTexture(glwWin *win); void glwInitPrimitives(void); diff --git a/src/glw_osx.m b/src/glw_osx.m index 546e5fc1..b702510b 100644 --- a/src/glw_osx.m +++ b/src/glw_osx.m @@ -200,10 +200,6 @@ glwWinContext *glwGetWinContext(glwWin *win) { } } -- (BOOL)isFlipped { - return YES; -} - - (void)mouseUp:(NSEvent*)event { [self saveMousePosFromEvent:event]; glwMouseEvent((glwWin *)self.window, GLW_LEFT_BUTTON, GLW_UP, @@ -213,6 +209,14 @@ glwWinContext *glwGetWinContext(glwWin *win) { self->context.x, self->context.y); } } + +- (BOOL)isFlipped { + return YES; +} + +-(void)windowWillClose:(NSNotification *)notification { + [[NSApplication sharedApplication] terminate:nil]; +} @end glwImGui *glwGetImGUI(glwWin *win) { diff --git a/src/glw_style.h b/src/glw_style.h index d80cc598..8974f20f 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -4,24 +4,25 @@ #define GLW_SYSTEM_FONT_NAME "Helvetica" #define GLW_SYSTEM_FONT_WEIGHT 5 #define GLW_SYSTEM_FONT_SIZE 21 +#define GLW_SYSTEM_FONT_COLOR 0x8f8f8f #define GLW_SMALL_ROUNDED_CORNER_SLICES 5 -#define GLW_BORDER_COLOR_1 0xa2a2a2 -#define GLW_BORDER_COLOR_2 0x616161 +#define GLW_BORDER_COLOR_1 0x161616 +#define GLW_BORDER_COLOR_2 0x161616 -#define GLW_FILL_GRADIENT_COLOR_1 0xffffff -#define GLW_FILL_GRADIENT_COLOR_2 0xc6c4c5 +#define GLW_FILL_GRADIENT_COLOR_1 0x424242 +#define GLW_FILL_GRADIENT_COLOR_2 0x242424 #define GLW_FILL_GRADIENT_COLOR_1_H 0x3795fa -#define GLW_FILL_GRADIENT_COLOR_2_H 0x333333 +#define GLW_FILL_GRADIENT_COLOR_2_H 0x242424 #define GLW_BUTTON_CORNER_RADIUS 5 #define GLW_CHECK_COLOR 0x000000 -#define GLW_TAB_FILL_GRADIENT_COLOR_1 0xffffff -#define GLW_TAB_FILL_GRADIENT_COLOR_2 0xc6c4c5 +#define GLW_TAB_FILL_GRADIENT_COLOR_1 GLW_FILL_GRADIENT_COLOR_1 +#define GLW_TAB_FILL_GRADIENT_COLOR_2 GLW_FILL_GRADIENT_COLOR_2 #define GLW_TAB_FILL_GRADIENT_COLOR_1_H 0x3795fa #define GLW_TAB_FILL_GRADIENT_COLOR_2_H 0x333333 @@ -31,7 +32,7 @@ #define GLW_HOR_AUTO_MARGIN 0.4 #define GLW_VER_AUTO_MARGIN 0.15 -#define GLW_BACKGROUND_COLOR 0xfcfcfc -#define GLW_TOOLBAR_BACKGROUND_COLOR 0xf5f5f5 +#define GLW_BACKGROUND_COLOR 0x373737 +#define GLW_TOOLBAR_BACKGROUND_COLOR 0x252525 #endif diff --git a/src/skeleton.c b/src/skeleton.c index 3b6de423..c6311150 100644 --- a/src/skeleton.c +++ b/src/skeleton.c @@ -1,6 +1,5 @@ #include "skeleton.h" #include "dmemory.h" -#include "osutil.h" struct skeleton { skeletonNode *root; @@ -15,7 +14,6 @@ void skeletonDestroy(skeleton *skl) { } skeletonNode *skeletonNewNode(skeleton *skl) { - unsued(skl); return dcalloc(1, sizeof(skeletonNode)); } From 0a426f981b6ecd57fbcbc5666b3f6704e01e9221 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 12 Feb 2017 19:29:51 +0930 Subject: [PATCH 55/61] Add dark theme and icons --- CMakeLists.txt | 16 +- README.md | 3 +- icons/README.md | 6 + icons/files/eye.png | Bin 0 -> 311 bytes icons/files/eyedropper.png | Bin 0 -> 324 bytes icons/files/file.png | Bin 0 -> 167 bytes icons/files/folder.png | Bin 0 -> 142 bytes icons/files/image.png | Bin 0 -> 187 bytes icons/files/info.png | Bin 0 -> 265 bytes icons/files/link.png | Bin 0 -> 350 bytes icons/files/lock.png | Bin 0 -> 196 bytes icons/files/minus.png | Bin 0 -> 125 bytes icons/files/monitor.png | Bin 0 -> 190 bytes icons/files/pause.png | Bin 0 -> 127 bytes icons/files/pencil.png | Bin 0 -> 200 bytes icons/files/pin.png | Bin 0 -> 202 bytes icons/files/play.png | Bin 0 -> 164 bytes icons/files/plus.png | Bin 0 -> 139 bytes icons/files/reload.png | Bin 0 -> 336 bytes icons/files/stop.png | Bin 0 -> 125 bytes icons/files/tool.png | Bin 0 -> 265 bytes icons/files/trash.png | Bin 0 -> 204 bytes icons/files/undo.png | Bin 0 -> 278 bytes icons/files/unlink.png | Bin 0 -> 329 bytes icons/files/unlock.png | Bin 0 -> 196 bytes icons/licenses/open-iconic/ICON-LICENSE | 21 + icons/licenses/open-iconic/README.md | 114 + res/icons.png | Bin 0 -> 2375 bytes screenshot/dust3d_glw_preview_dark.png | Bin 0 -> 177590 bytes src/editor.c | 58 +- src/glw.c | 146 +- src/glw.h | 2 +- src/glw_internal.h | 7 + src/glw_osx.m | 13 +- src/glw_style.h | 16 +- src/icons.c | 28 + src/icons.h | 48 + src/lodepng.c | 6224 +++++++++++++++++++++++ src/lodepng.h | 1760 +++++++ 39 files changed, 8402 insertions(+), 60 deletions(-) create mode 100644 icons/README.md create mode 100755 icons/files/eye.png create mode 100755 icons/files/eyedropper.png create mode 100755 icons/files/file.png create mode 100755 icons/files/folder.png create mode 100755 icons/files/image.png create mode 100755 icons/files/info.png create mode 100755 icons/files/link.png create mode 100755 icons/files/lock.png create mode 100755 icons/files/minus.png create mode 100755 icons/files/monitor.png create mode 100755 icons/files/pause.png create mode 100755 icons/files/pencil.png create mode 100755 icons/files/pin.png create mode 100755 icons/files/play.png create mode 100755 icons/files/plus.png create mode 100755 icons/files/reload.png create mode 100755 icons/files/stop.png create mode 100755 icons/files/tool.png create mode 100755 icons/files/trash.png create mode 100755 icons/files/undo.png create mode 100755 icons/files/unlink.png create mode 100755 icons/files/unlock.png create mode 100755 icons/licenses/open-iconic/ICON-LICENSE create mode 100755 icons/licenses/open-iconic/README.md create mode 100644 res/icons.png create mode 100644 screenshot/dust3d_glw_preview_dark.png create mode 100644 src/icons.c create mode 100644 src/icons.h create mode 100755 src/lodepng.c create mode 100755 src/lodepng.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 595d7193..29f35e10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8) project(dust3d) -file(GLOB_RECURSE sources +file(GLOB_RECURSE SOURCES src/glw_osx.m src/glw_internal.h src/glw_style.h @@ -29,17 +29,21 @@ file(GLOB_RECURSE sources src/draw.c src/skeleton.h src/skeleton.c + src/icons.h + src/icons.c src/editor.c + src/lodepng.h + src/lodepng.c ) IF(APPLE) - add_executable(dust3d MACOSX_BUNDLE ${sources}) + file(GLOB_RECURSE RES_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/res/*.png") + add_executable(dust3d MACOSX_BUNDLE ${SOURCES} ${RES_SOURCES}) + SET_SOURCE_FILES_PROPERTIES(${RES_SOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) find_package(OpenGL REQUIRED) include_directories(${OPENGL_INCLUDE_DIRS}) target_link_libraries(dust3d ${OPENGL_LIBRARIES}) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit -framework Quartz") - set_target_properties(dust3d PROPERTIES - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/src/Info.plist) - install(TARGETS dust3d - DESTINATION ".") + set_target_properties(dust3d PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/src/Info.plist) + install(TARGETS dust3d DESTINATION ".") ENDIF (APPLE) diff --git a/README.md b/README.md index 1820b190..6573588f 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,8 @@ This todo already done in the B-Mesh algorithm implementation. **Feb 11, 2017:** Qt removed, so C++ removed, but Objective-C imported for just support the OpenGL environment on OSX. - + + - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game diff --git a/icons/README.md b/icons/README.md new file mode 100644 index 00000000..67455023 --- /dev/null +++ b/icons/README.md @@ -0,0 +1,6 @@ +**Icons are not made by me, so if you want use these icons please check the listed license details inside current folder.** + +The following command line is using [squeezer](https://github.com/huxingyi/squeezer) to pack all the icons to one png. +```sh +./squeezerw files --verbose --width 128 --height 128 --border 0 --allowRotations 0 --outputTexture ../res/icons.png --outputInfo ../src/icons.c --infoHeader "//THIS FILE IS GENERATED AUTOMATICALLY BY https://github.com/huxingyi/squeezer, PLEASE DONT MODIFY IT MANUALLY.\n\n#include \"icons.h\"\n\nconst int iconTable[][ICON_ITEM_MAX] = {\n" --infoFooter "\n};\n" --infoBody " {%w, %h, %x, %y, %l, %t, %c, %r} /*\"%n\"*/" --infoSplit ",\n" +``` diff --git a/icons/files/eye.png b/icons/files/eye.png new file mode 100755 index 0000000000000000000000000000000000000000..b6d55edfeffaa1406e3dab3104ff672862e50deb GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5hVqL%Euqd1T#P*6qyOPfq z-f@*n7ClhibK!8k=?UJWmI$@H@(KheJ*k<;P6UuH?tZHwc)^J;rOi%gfj^zX(!##iw{8*=Y4nJ za0`PlBg3pY51&zU>nCP$&X0t$Wk2vPyLeOJykf!9nKgWJ zEz{qBa58=v$+$=GX;nl*-KO@|4|A68w)J?BDSk&S;NfbKbDScFEgO@5$Qw_}4tV`( S>3^V)89ZJ6T-G@yGywpE>4EnE literal 0 HcmV?d00001 diff --git a/icons/files/file.png b/icons/files/file.png new file mode 100755 index 0000000000000000000000000000000000000000..4196c44da842147328112fb85ccc0fcbc09e8f94 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY54nJ za0`PlBg3pY54nJ za0`PlBg3pY5$e*WFKFd~@|jh0ElfA}f^o9av{F882aRIbrlbklDxY eY3|ngM~prq5l3tbek=i6#Ng@b=d#Wzp$Py%NI%a2 literal 0 HcmV?d00001 diff --git a/icons/files/info.png b/icons/files/info.png new file mode 100755 index 0000000000000000000000000000000000000000..36c3cf812ee46f1b0714a7adab8124925ab2b53d GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5k literal 0 HcmV?d00001 diff --git a/icons/files/link.png b/icons/files/link.png new file mode 100755 index 0000000000000000000000000000000000000000..b157e9b7c13d6f49dc8904f4b7678929041881d1 GIT binary patch literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5)2HC44y8IAr`&8m-l)(I|{Ttd@c~ox^<(VORxP#0i7$-ADs4RIl2gl zgm?tJKWNmkbn2qH8nccZ3hF$1bHbcn^*8Ld&%Cj&G2ZPwOKQhKcMIJ$>YJv0Y^^J? zityG9aOY2-ahS)?dE)92@r}zqcHg_w;vId%L45lU$&;ZISjCfX9hsZ7-+x7GP1+47 z?Y8o#f4_a~P?P&0m6L8^Ci5suvPL3@Z;ESy`0dmWjx0{1>Zt{bS@s?0*85Hda_NV|;_UM=eL-t(CEd4w0^e}?bg{=UV5!JB{q#Ng@b=d#Wzp$P!h;)-kl literal 0 HcmV?d00001 diff --git a/icons/files/lock.png b/icons/files/lock.png new file mode 100755 index 0000000000000000000000000000000000000000..f2646f58c7ddbafc6f38d02a513a6c27a0bc2b5f GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY54nJ za0`PlBg3pY5+JpnE{-7 literal 0 HcmV?d00001 diff --git a/icons/files/monitor.png b/icons/files/monitor.png new file mode 100755 index 0000000000000000000000000000000000000000..47cdfc13a624d7300464d0bdde579c95eb6e5cae GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY50TY@RWk|28E51o>zX)Zv=u)q1*1f z5;|-Fb0*A?kdW{TT<~9F-<9@vMr*QGN_9B$@bIjc6tLu--Tlwlz+g{OLc)jRX%d^# eoPMbK2s1S7QZGvXbq#101B0ilpUXO@geCxO@jC?o literal 0 HcmV?d00001 diff --git a/icons/files/pause.png b/icons/files/pause.png new file mode 100755 index 0000000000000000000000000000000000000000..19a7b0924d168d764ac7f9b1a14da5615bd1922f GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY54nJ za0`PlBg3pY5~`ed^h48*u+E4nJ za0`PlBg3pY5M!VG^U@r5y}D|3sOYo9#ETY)VV|=$#bfe!{gtKY+!JHz6V6 rpmO=7#>R)ts%`BC1_l|zK`adMO{x|gTe~DWM4fn*=(M literal 0 HcmV?d00001 diff --git a/icons/files/play.png b/icons/files/play.png new file mode 100755 index 0000000000000000000000000000000000000000..e934b0a2e1df1618938346ec8896de12bbd33a6f GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5TmNj{ppNZMhOn}kC2;{!|#`#;!RZ20}?EYL&-Pgg&ebxsLQ E0E(9_EC2ui literal 0 HcmV?d00001 diff --git a/icons/files/plus.png b/icons/files/plus.png new file mode 100755 index 0000000000000000000000000000000000000000..667b035915290c08b925de47089622888a212203 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY54nJ za0`PlBg3pY5>Y*U9P$-MRL!(@9^X8fhq)(E zFJr#NVI#l5GfnbJnH`@4HZ}2mE9hQ-qOz;b%b=q*ea-b7vyRl=n5ChmHt%@F;V9;a z6Z5u)Owe0%kz&bqH;`{=)pW(4FHy7Od@(eJR=g%=_#4 zi__yCxo)1S*Z0cIYSL7p_d6W?wLbFf-tj58wY^j&QX})1kLtS(w^GujuU`_^dvqmc e)r~mQpVIIC_*-03aXkd|J%gvKpUXO@geCw(qlWDO literal 0 HcmV?d00001 diff --git a/icons/files/stop.png b/icons/files/stop.png new file mode 100755 index 0000000000000000000000000000000000000000..c261089092d9a07cec2aef1aea64f8face21af98 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5+JpnE{-77$U3lsvH5UABRj)3Z$=5>>?P-b PN*O#|{an^LB{Ts52^1bA literal 0 HcmV?d00001 diff --git a/icons/files/tool.png b/icons/files/tool.png new file mode 100755 index 0000000000000000000000000000000000000000..ec4a206ce345ed60eb0a4bf89611c8d2806cf41b GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5{F*Rz~K>HvfK(ckl97+zPMYvtzOcEBe5!XIq|u7irI6}=pN z4%3D1FdwvD!Fo#~hN)Iz!mddVPVJuXDzxc3)1BRx$8z(Mr<)&8c%zqW{r8Ph!P3TT zM!7pOq4N$fMN}26ZC!qVWya2^1pYf)m>SmpKC1lulezrMf1zI`c;+Mnoz39s>gTe~ HDWM4f91~wf literal 0 HcmV?d00001 diff --git a/icons/files/trash.png b/icons/files/trash.png new file mode 100755 index 0000000000000000000000000000000000000000..de1127e873e012ec6ac85627258a6634e47bef2e GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5-dDykDmZ{B#VnN{+`|ePR8h>eS1v3m7xzFZ;(G7qLKSGh;-9 u-eP8xM>*Qg)qVDiE&c|gY0NoA8<_X>8Q$tw(~}0;%;4$j=d#Wzp$P!U06=X3 literal 0 HcmV?d00001 diff --git a/icons/files/undo.png b/icons/files/undo.png new file mode 100755 index 0000000000000000000000000000000000000000..ef5679e02c2223e8e63c9688b033c44b9c2b8a3e GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5 zY1r1p;iMqGLGbmR!%nIjp4@zMDDCdi*lh(5LXAH^uXQf1y>>!OE1|7jt)YQ+5s(m- zJKZF^C#h3jM&LOE%xZ0XRimqZHUV;TDF-H&!O S@CX9^z~JfX=d#Wzp$PzLL1vu* literal 0 HcmV?d00001 diff --git a/icons/files/unlink.png b/icons/files/unlink.png new file mode 100755 index 0000000000000000000000000000000000000000..6af40b0292145b0a0390e7e89dfed27632e263cb GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5!8xw_+pTv|@`GW!)rL$3aI4E_2c{JayI* zUW0?xfA$@e+g2c3+^^c~Ym?lTxVpS2zox7=@RC{Ghl$#L8!j^Qn<(pCdbD!GoaJ&q zoHieMEVJiWCF8o5*C`JpbNsGy`ft=Z!2EDdz9!Fi!F_KUvSlACghz0i%YHvFSL)l7 z^&gaM)P8*WzOeVzv#OTpH%ap4vx47F;ko6Vb3ABA-;o5B#VbE_hY8MkZ1D1=)E}nB Xf#I$nE_faWdYi%1)z4*}Q$iB}7=4AZ literal 0 HcmV?d00001 diff --git a/icons/files/unlock.png b/icons/files/unlock.png new file mode 100755 index 0000000000000000000000000000000000000000..ca13401c1e4bc067ad8fbfeb32aa45af14f5b7ca GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5 +``` + +#### Using Open Iconic's SVG Sprite + +Open Iconic also comes in a SVG sprite which allows you to display all the icons in the set with a single request. It's like an icon font, without being a hack. + +Adding an icon from an SVG sprite is a little different than what you're used to, but it's still a piece of cake. *Tip: To make your icons easily style able, we suggest adding a general class to the* `` *tag and a unique class name for each different icon in the* `` *tag.* + +``` + + + +``` + +Sizing icons only needs basic CSS. All the icons are in a square format, so just set the `` tag with equal width and height dimensions. + +``` +.icon { + width: 16px; + height: 16px; +} +``` + +Coloring icons is even easier. All you need to do is set the `fill` rule on the `` tag. + +``` +.icon-account-login { + fill: #f00; +} +``` + +To learn more about SVG Sprites, read [Chris Coyier's guide](http://css-tricks.com/svg-sprites-use-better-icon-fonts/). + +#### Using Open Iconic's Icon Font... + + +##### …with Bootstrap + +You can find our Bootstrap stylesheets in `font/css/open-iconic-bootstrap.{css, less, scss, styl}` + + +``` + +``` + + +``` + +``` + +##### …with Foundation + +You can find our Foundation stylesheets in `font/css/open-iconic-foundation.{css, less, scss, styl}` + +``` + +``` + + +``` + +``` + +##### …on its own + +You can find our default stylesheets in `font/css/open-iconic.{css, less, scss, styl}` + +``` + +``` + +``` + +``` + + +## License + +### Icons + +All code (including SVG markup) is under the [MIT License](http://opensource.org/licenses/MIT). + +### Fonts + +All fonts are under the [SIL Licensed](http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web). diff --git a/res/icons.png b/res/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c72951b449264a6b5a35aa4b87e7acdae2f9b9 GIT binary patch literal 2375 zcmeHI_ct4gA5GFEMnbKkLkU5Q)Si7$6T~=1i9K5DwY=K#Xuh>#hiZ$^Vbppksx=?2 z6|0mMrH!BuMQE!UE0qMz^ZtnMZ|`%?z4zR6?zunQUp|=*_Lf3|X9NKNfRMG7IsRBl z|APO-G4CzqasU93pM$M4?%4i!|1I$UTOg`UbNIM@><_%X6M%2|tvF?q`ACqb^lYO} zacYF5@nDw2oyk>B1b=vUuH&)X7LxzxA^AiGTbjO)D3=f}d)mv&gc=kd&8`0sTEH>} zFSwYAeBYB_fxlE6`v?Q3ei}NhJ72q2sGuVA>dbv@(AkM`NXhGyi&d&(4G+_AUeSpt zKoQP&-`2|u_=f*_x%$iJKV{MRP6KzMiG8jI&K~!?e6Lb5+s1xA6^*+)t@TBfqEBLO zSz7zk>>SnG|FR$b-|EHYCdpIJ19RfrF6kSlXoVUDzYzdNfY1N{WYpRm>r4c07I0$4 zani#zpxL$g^eMDZIaJWDi0&%*D?C3<60C@UoIx`r3JLDiY*o0-oad#ocsi3 zDGI@11`pWv#j|QfZ=vk8(~mQ{CMe&&>6K25ckK#0Dlp4M6|5If5AvDmX9nT){w_y{ z&)eA-q#gl*ypbohVG#GI{E_cYy~a6Fy=O za^YY%-%Tof&}-ukS=N-fcDn~MC+8G5MuO}Lsy`U$R;bL!yHIr-_ncVL{nIwrSM?^G zHDT$P*^m+%p&fLiRdp)#yBA#jXf?n-iB`CghH&5*u5p|_O`6hle1D2x=6>TBLKIaKZHq@d#K}XlNLg%+TQ+hnZztG+16b^pOyrx;|Q1=ZNPTU}4lHw&k zNvSmYv|>sS5ttl|yA*Lz&1y*wml_l_cDI*WJ^&50B2#m7k~kPEvGdms2lzI+WXw!m z`|Q&csfeTOUTTIak6%LH7ub!Y}=icyM8l{x z!pZkl@{$UIy>NO?YmRIx>LYtQ?%B4R0v_qR6(DLm!@(=_@Nd{x9BB@mU)uf9s#lCJ z6~Y}%5|gIcrVR1s>m;%W8P)LnxRrUH?F(2Ds08T%MeD@G`#55`9AS(3n?t(YG0b)&4b31qvyv# zb=cya4}FWKLd(UFCs>@Aw33wgBL0+|N1q2^N0Ga(B%u2sM}Mws&=CVunzZKz3D$uY zBc&#*vNmU)NiC;$zeV?VSd8cux3(Mc`SKD) zAox>QQnDuSx6ERU{ZgOA614j{*!>%8Z^$W7?-23}re9kr#c=@?kLiuZSGz<>l9jm` z)6M<|@P&Xf9CM;l18Jr%qx|9pb{AT;YR5{cPZX$;97KnKQs6f!`iE|4STn;d3?!Ct zAR`uf==UjhB66jLO+oi>L~rQ}hi|nY;X;uNikI}|5uXn4+7fwUvIZ|a`>fomMMf^0 zouN@$j5RspwSP41?SFI`gc3`#8&c7g&1khKrV3Yzk+XO&K~r|vq0$^4P|DkesH{u? Q{`(58arWlVOnsC80bjaIg#Z8m literal 0 HcmV?d00001 diff --git a/screenshot/dust3d_glw_preview_dark.png b/screenshot/dust3d_glw_preview_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..0a45768bdee7b710a010892dce1b7e0a4ddf72a1 GIT binary patch literal 177590 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ⅅcz#a*j4$LG- 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°PM+??*97_QdG{wjr$ZHTnBVX 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 literal 0 HcmV?d00001 diff --git a/src/editor.c b/src/editor.c index 589c5cfe..6edc194e 100644 --- a/src/editor.c +++ b/src/editor.c @@ -12,19 +12,20 @@ #include "draw.h" #include "skeleton.h" #include "bmesh.h" +#include "icons.h" #define GEN_ID __LINE__ #define ED_MODE_EDIT 0 #define ED_MODE_ANIMATION 1 -#define ED_BACKGROUND_COLOR 0x2b2b2b +#define ED_BACKGROUND_COLOR 0x141414 #define ED_SIDEBAR_WIDTH 400 #define ED_SPACING 10 #define ED_TOPBAR_HEIGHT 100 -#define ED_TOOLBAR_HEIGHT 50 +#define ED_TOOLBAR_HEIGHT (glwImLineHeight(win) * 1.2) #define ED_GL_BACKGROUND_COLOR GLW_BACKGROUND_COLOR @@ -69,6 +70,26 @@ static int drawBmeshBone(bmesh *bm, bmeshBone *bone) { return 0; } +#define ED_CANVAS_BORDER_COLOR 0 +#define ED_CANVAS_OUTER_COLOR 0 +#define ED_CANVAS_BACKGROUND_COLOR 0 + +static void drawCanvas(int x, int y, int width, int height) { + int left = x; + int top = y; + int right = x + width - 1; + int bottom = y + height - 1; + glColor3f(glwR(ED_CANVAS_BORDER_COLOR), + glwG(ED_CANVAS_BORDER_COLOR), + glwB(ED_CANVAS_BORDER_COLOR)); + glBegin(GL_QUADS); + glVertex2f(left, top); + glVertex2f(right, top); + glVertex2f(right, bottom); + glVertex2f(left, bottom); + glEnd(); +} + static void display(glwWin *win) { editor *ed = glwGetUserData(win); @@ -87,10 +108,11 @@ static void display(glwWin *win) { } { - char *titles[] = {"Library", "Property", 0}; + char *titles[] = {"Tool", 0}; + int icons[] = {ICON_TOOL, 0}; glwImTabBox(win, GEN_ID, ED_SPACING / 2, ED_TOPBAR_HEIGHT, ED_SIDEBAR_WIDTH, ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2, - titles, 0); + titles, icons, 0); } { @@ -98,33 +120,34 @@ static void display(glwWin *win) { int y = ED_TOPBAR_HEIGHT; int width = ed->width - ED_SIDEBAR_WIDTH - ED_SPACING / 2 - ED_SPACING - ED_SPACING / 2; int height = ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2; - char *titles[] = {"Edit View", "Animation View", 0}; + char *titles[] = {"Skeleton", "Animation", "Config", 0}; + int icons[] = {ICON_MONITOR, ICON_PENCIL, ICON_EYE, 0}; ed->mode = glwImTabBox(win, GEN_ID, x, y, width, height, - titles, ed->mode); + titles, icons, ed->mode); if (ED_MODE_EDIT == ed->mode) { - int glWinY = glwImNextY(win); - int bottomY = y + height - ED_TOOLBAR_HEIGHT; - glwImBottomBar(win, GEN_ID, x, bottomY, width, ED_TOOLBAR_HEIGHT); + int toolBarY = glwImNextY(win) - 1; + int glWinY = toolBarY + ED_TOOLBAR_HEIGHT; + glwImToolBar(win, GEN_ID, x, toolBarY, width, ED_TOOLBAR_HEIGHT); ed->showBallChecked = glwImCheck(win, GEN_ID, x + ED_SPACING + ED_SPACING, - bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, "Ball", ed->showBallChecked); ed->showBoneChecked = glwImCheck(win, GEN_ID, glwImNextX(win) + ED_SPACING, - bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, "Bone", ed->showBoneChecked); ed->showMeshChecked = glwImCheck(win, GEN_ID, glwImNextX(win) + ED_SPACING, - bottomY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, "Mesh", ed->showMeshChecked); ed->renderLeft = x + 1; ed->renderTop = glWinY; ed->renderWidth = width - 3; - ed->renderHeight = bottomY - glWinY; + ed->renderHeight = height - ED_TOOLBAR_HEIGHT; if (0 == ed->skl) { ed->skl = skeletonCreate(); @@ -157,15 +180,16 @@ static void display(glwWin *win) { } glEnable(GL_SCISSOR_TEST); - glScissor(ed->renderLeft, ED_SPACING / 2 + ED_TOOLBAR_HEIGHT + 1, + glScissor(ed->renderLeft, ED_SPACING / 2 + 1, ed->renderWidth, ed->renderHeight); glPushMatrix(); - glTranslatef(x + 1, glWinY, 0); + glTranslatef(ed->renderLeft, ed->renderTop, 0); + /* glColor3f(glwR(ED_GL_BACKGROUND_COLOR), glwG(ED_GL_BACKGROUND_COLOR), glwB(ED_GL_BACKGROUND_COLOR)); - glRecti(0, 0, ed->renderWidth, ed->renderHeight); + glRecti(0, 0, ed->renderWidth, ed->renderHeight);*/ glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -279,7 +303,7 @@ int main(int argc, char *argv[]) { ed.cameraDistance = 14.4; ed.showMeshChecked = 1; - ed.win = glwCreateWindow(0, 0, 0, 0); + ed.win = glwCreateWindow(0, 0, 600, 480); glwSetUserData(ed.win, &ed); glwReshapeFunc(ed.win, reshape); glwDisplayFunc(ed.win, display); diff --git a/src/glw.c b/src/glw.c index 2bcf14d4..d12bf7b8 100644 --- a/src/glw.c +++ b/src/glw.c @@ -2,8 +2,11 @@ #include #include #include +#include #include "glw_internal.h" #include "glw_style.h" +#include "icons.h" +#include "lodepng.h" #ifndef M_PI #define M_PI 3.14159265 @@ -45,6 +48,44 @@ void glwDrawSystemText(glwWin *win, int x, int y, char *text, glDisable(GL_TEXTURE_2D); } +static int glwGetLineHeight(glwWin *win) { + glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); + return systemFontTexture->originSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); +} + +void glwDrawSystemIcon(glwWin *win, int x, int y, int icon, + unsigned int color) { + glwWinContext *ctx = glwGetWinContext(win); + float texLeft, texWidth, texTop, texHeight; + icon--; + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, ctx->iconTexId); + glColor3f(glwR(color), glwG(color), glwB(color)); + texLeft = (float)iconTable[icon][ICON_ITEM_LEFT] / ICON_IMAGE_WIDTH; + texTop = (float)iconTable[icon][ICON_ITEM_TOP] / ICON_IMAGE_WIDTH; + texWidth = (float)iconTable[icon][ICON_ITEM_WIDTH] / ICON_IMAGE_WIDTH; + texHeight = (float)iconTable[icon][ICON_ITEM_HEIGHT] / ICON_IMAGE_WIDTH; + x += iconTable[icon][ICON_ITEM_TRIM_OFFSET_LEFT]; + y += (iconTable[icon][ICON_ITEM_TRIM_OFFSET_TOP] + + (glwGetLineHeight(win) - iconTable[icon][ICON_ITEM_ORIGINAL_HEIGHT]) / 4); + glBegin(GL_QUADS); + glTexCoord2f(texLeft, texTop); + glVertex2i(x, y); + + glTexCoord2f(texLeft + texWidth, texTop); + glVertex2i(x + iconTable[icon][ICON_ITEM_WIDTH], y); + + glTexCoord2f(texLeft + texWidth, texTop + texHeight); + glVertex2i(x + iconTable[icon][ICON_ITEM_WIDTH], + y + iconTable[icon][ICON_ITEM_HEIGHT]); + + glTexCoord2f(texLeft, texTop + texHeight); + glVertex2i(x, + y + iconTable[icon][ICON_ITEM_HEIGHT]); + glEnd(); + glDisable(GL_TEXTURE_2D); +} + void glwMouseEvent(glwWin *win, int button, int state, int x, int y) { glwImGui *imGUI = glwGetImGUI(win); imGUI->mouseButton = button; @@ -131,6 +172,40 @@ void glwInitSystemFontTexture(glwWin *win) { glwDestroyFont(font); } +void glwInitSystemIconTexture(glwWin *win) { + glwWinContext *ctx = glwGetWinContext(win); + if (0 == ctx->iconTexId) { + char filename[1024]; + unsigned int err; + unsigned char *imageData = 0; + unsigned int width = 0; + unsigned int height = 0; + GLuint texture = 0; + snprintf(filename, sizeof(filename), "%s/icons.png", ctx->root); + err = lodepng_decode32_file(&imageData, &width, &height, + filename); + if (err) { + fprintf(stderr, "%s: lodepng_decode32_file error: %s\n", __FUNCTION__, + lodepng_error_text(err)); + return; + } + glEnable(GL_TEXTURE_2D); + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD); + glTexImage2D(GL_TEXTURE_2D, 0, 4, + (GLsizei)ICON_IMAGE_WIDTH, + (GLsizei)ICON_IMAGE_HEIGHT, 0, + GL_RGBA, GL_UNSIGNED_BYTE, imageData); + free(imageData); + ctx->iconTexId = (int)texture; + ctx->iconTexWidth = width; + ctx->iconTexHeight = height; + } +} + static glwVec2 glwRoundedCorners[GLW_SMALL_ROUNDED_CORNER_SLICES] = {{0}}; static void createRoundedCorners(glwVec2 *arr, int num) { @@ -512,15 +587,18 @@ int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked) { return (imGUI->activeId == id && oldActiveId != id) ? !checked : checked; } -static int glwCalcListMaxWidth(glwWin *win, char **list, int *height, - int *len) { +static int glwCalcListMaxWidth(glwWin *win, char **titles, int *icons, + int *height, int *len) { int i; int itemWidth = 0; int maxItemWidth = 0; - for (i = 0; list[i]; ++i) { - glwSize textSize = glwMeasureSystemText(win, list[i]); + for (i = 0; titles[i]; ++i) { + glwSize textSize = glwMeasureSystemText(win, titles[i]); itemWidth = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2); + if (icons && icons[i]) { + itemWidth += iconTable[icons[i]][ICON_ITEM_ORIGINAL_WIDTH]; + } if (itemWidth > maxItemWidth) { maxItemWidth = itemWidth; } @@ -532,6 +610,10 @@ static int glwCalcListMaxWidth(glwWin *win, char **list, int *height, } } + if (maxItemWidth < GLW_MIN_TAB_WIDTH) { + maxItemWidth = GLW_MIN_TAB_WIDTH; + } + return maxItemWidth; } @@ -545,7 +627,7 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, int listLen = 0; int offset; int maxItemWidth = 0; - maxItemWidth = glwCalcListMaxWidth(win, list, &height, &listLen); + maxItemWidth = glwCalcListMaxWidth(win, list, 0, &height, &listLen); width = maxItemWidth * listLen; left = listLen > 1 ? x + (parentWidth - width) / 2 : x + maxItemWidth * GLW_HOR_AUTO_MARGIN; @@ -600,7 +682,7 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, } int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, - char **list, int sel) { + char **titles, int *icons, int sel) { glwImGui *imGUI = glwGetImGUI(win); int tabWidth = 0; int tabHeight = 0; @@ -609,14 +691,23 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, int listLen = 0; int offset; int maxItemWidth = 0; - maxItemWidth = glwCalcListMaxWidth(win, list, &tabHeight, &listLen); + maxItemWidth = glwCalcListMaxWidth(win, titles, icons, &tabHeight, &listLen); tabWidth = maxItemWidth * listLen; - left = x + maxItemWidth * GLW_HOR_AUTO_MARGIN / 2; + left = x; imGUI->nextX = x; imGUI->nextY = y + tabHeight; glwImGUIActiveIdCheck(imGUI, id, left, y, tabWidth, tabHeight); - for (i = 0, offset = left; list[i]; ++i) { - glwSize textSize = glwMeasureSystemText(win, list[i]); + glwDrawRectGradientFill(x + 1, y + tabHeight, + width - 2, height - tabHeight - 2, + GLW_TAB_FILL_GRADIENT_COLOR_2, GLW_TAB_FILL_GRADIENT_COLOR_2); + glwDrawHLine(x, y + tabHeight - 1, width, 1, GLW_BORDER_COLOR_1); + glwDrawHLine(x, y + height - 1, width, 1, GLW_BORDER_COLOR_1); + glwDrawVLine(x, y + tabHeight, 1, height - tabHeight, + GLW_BORDER_COLOR_1); + glwDrawVLine(x + width - 1, y + tabHeight, 1, height - tabHeight, + GLW_BORDER_COLOR_1); + for (i = 0, offset = left; titles[i]; ++i) { + glwSize textSize = glwMeasureSystemText(win, titles[i]); if (imGUI->activeId == id) { int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, maxItemWidth, tabHeight, 0); @@ -625,27 +716,27 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, } } if (sel == i) { - glwDrawTopRoundedRectGradientFill(offset, y, - maxItemWidth, tabHeight, - GLW_BUTTON_CORNER_RADIUS, - GLW_TAB_FILL_GRADIENT_COLOR_1, GLW_TAB_FILL_GRADIENT_COLOR_2); glwDrawTopRoundedRectBorder(offset, y, maxItemWidth, tabHeight, GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_1); + glwDrawTopRoundedRectGradientFill(offset + 1, y + 1, + maxItemWidth - 2, tabHeight, + GLW_BUTTON_CORNER_RADIUS, + GLW_TAB_FILL_GRADIENT_COLOR_1, GLW_TAB_FILL_GRADIENT_COLOR_2); + } + if (icons && icons[i]) { + int iconIdx = icons[i] - 1; + glwDrawSystemIcon(win, offset + textSize.height / 2, + y + tabHeight * GLW_VER_AUTO_MARGIN, icons[i], GLW_SYSTEM_FONT_COLOR); + glwDrawSystemText(win, offset + textSize.height / 2 + + iconTable[iconIdx][ICON_ITEM_ORIGINAL_WIDTH] + textSize.height / 2, + y + tabHeight * GLW_VER_AUTO_MARGIN, titles[i], GLW_SYSTEM_FONT_COLOR); + } else { + glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, + y + tabHeight * GLW_VER_AUTO_MARGIN, titles[i], GLW_SYSTEM_FONT_COLOR); } - glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, - y + tabHeight * GLW_VER_AUTO_MARGIN, list[i], GLW_SYSTEM_FONT_COLOR); offset += maxItemWidth; } - glwDrawRectGradientFill(x + 1, y + tabHeight, - width - 2, height - tabHeight - 2, - GLW_BACKGROUND_COLOR, GLW_BACKGROUND_COLOR); - glwDrawHLine(x, y + tabHeight - 1, width, 1, GLW_BORDER_COLOR_1); - glwDrawHLine(x, y + height - 1, width, 1, GLW_BORDER_COLOR_1); - glwDrawVLine(x, y + tabHeight, 1, height - tabHeight, - GLW_BORDER_COLOR_1); - glwDrawVLine(x + width - 1, y + tabHeight, 1, height - tabHeight, - GLW_BORDER_COLOR_1); return sel; } @@ -688,8 +779,7 @@ int glwImNextY(glwWin *win) { } int glwImLineHeight(glwWin *win) { - glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); - return systemFontTexture->originSize.height * (1 + GLW_VER_AUTO_MARGIN * 2); + return glwGetLineHeight(win); } void glwSetUserData(glwWin *win, void *userData) { @@ -745,3 +835,5 @@ int glwMouseY(glwWin *win) { glwWinContext *ctx = glwGetWinContext(win); return ctx->y; } + + diff --git a/src/glw.h b/src/glw.h index 6120e39b..52e2e829 100644 --- a/src/glw.h +++ b/src/glw.h @@ -55,7 +55,7 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, char **list, int sel); int glwImPanel(glwWin *win, int id, int x, int y, int width, int height); int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, - char **list, int sel); + char **titles, int *icons, int sel); int glwImToolBar(glwWin *win, int id, int x, int y, int width, int height); int glwImBottomBar(glwWin *win, int id, int x, int y, int width, int height); int glwImNextX(glwWin *win); diff --git a/src/glw_internal.h b/src/glw_internal.h index 93a5be4e..56d454f3 100644 --- a/src/glw_internal.h +++ b/src/glw_internal.h @@ -30,6 +30,10 @@ typedef struct glwWinContext { void *userData; int x; int y; + int iconTexId; + int iconTexWidth; + int iconTexHeight; + char root[1024]; } glwWinContext; typedef struct glwSystemFontTexture { @@ -56,6 +60,8 @@ unsigned char *glwRenderTextToRGBA(char *text, glwFont *font, glwSize size, void glwDrawText(int x, int y, char *text, glwFont *font); void glwDrawSystemText(glwWin *win, int x, int y, char *text, unsigned int color); +void glwDrawSystemIcon(glwWin *win, int x, int y, int icon, + unsigned int color); glwSize glwMeasureSystemText(glwWin *win, char *text); void glwInitSystemFontTexture(glwWin *win); void glwInitPrimitives(void); @@ -68,5 +74,6 @@ void glwDrawButtonBackground(float x, float y, float width, float height, void glwMouseEvent(glwWin *win, int button, int state, int x, int y); glwImGui *glwGetImGUI(glwWin *win); glwWinContext *glwGetWinContext(glwWin *win); +void glwInitSystemIconTexture(glwWin *win); #endif diff --git a/src/glw_osx.m b/src/glw_osx.m index b702510b..a77067ec 100644 --- a/src/glw_osx.m +++ b/src/glw_osx.m @@ -80,6 +80,9 @@ glwWinContext *glwGetWinContext(glwWin *win) { if (self->pendingReshape) { if (self->context.onReshape) { self->pendingReshape = 0; + if (!self->context.iconTexId) { + glwInitSystemIconTexture((glwWin *)self.window); + } if (!self->systemFontTexture.texId) { glwInitSystemFontTexture((glwWin *)self.window); } @@ -225,10 +228,11 @@ glwImGui *glwGetImGUI(glwWin *win) { } glwFont *glwCreateFont(char *name, int weight, int size, int bold) { - NSString *fontFamily = [NSString stringWithCString:name + NSString *fontFamily = [NSString stringWithCString:name encoding:NSMacOSRomanStringEncoding]; NSFont *font = [[[NSFontManager sharedFontManager] fontWithFamily:fontFamily traits:(bold ? NSBoldFontMask : NSUnboldFontMask) weight:weight size:size] retain]; + //NSLog(@"%@",[[[NSFontManager sharedFontManager] availableFontFamilies] description]); return (glwFont *)font; } @@ -281,6 +285,13 @@ glwWin *glwCreateWindow(int x, int y, int width, int height) { view->context.scaleX = 1; view->context.scaleY = 1; + CFBundleRef mainBundle = CFBundleGetMainBundle(); + CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle); + CFURLGetFileSystemRepresentation(resourcesURL, TRUE, + (UInt8 *)view->context.root, + sizeof(view->context.root)); + CFRelease(resourcesURL); + [window setAcceptsMouseMovedEvents:YES]; [window setContentView:view]; [window setDelegate:view]; diff --git a/src/glw_style.h b/src/glw_style.h index 8974f20f..1242a1ba 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -1,15 +1,15 @@ #ifndef GLW_STYLE_H #define GLW_STYLE_H -#define GLW_SYSTEM_FONT_NAME "Helvetica" -#define GLW_SYSTEM_FONT_WEIGHT 5 -#define GLW_SYSTEM_FONT_SIZE 21 -#define GLW_SYSTEM_FONT_COLOR 0x8f8f8f +#define GLW_SYSTEM_FONT_NAME "PT Sans Narrow" //"Monaco" //"Helvetica" +#define GLW_SYSTEM_FONT_WEIGHT 10 +#define GLW_SYSTEM_FONT_SIZE 20 +#define GLW_SYSTEM_FONT_COLOR 0xb9b9b9 #define GLW_SMALL_ROUNDED_CORNER_SLICES 5 -#define GLW_BORDER_COLOR_1 0x161616 -#define GLW_BORDER_COLOR_2 0x161616 +#define GLW_BORDER_COLOR_1 0x000000 +#define GLW_BORDER_COLOR_2 0x000000 #define GLW_FILL_GRADIENT_COLOR_1 0x424242 #define GLW_FILL_GRADIENT_COLOR_2 0x242424 @@ -33,6 +33,8 @@ #define GLW_VER_AUTO_MARGIN 0.15 #define GLW_BACKGROUND_COLOR 0x373737 -#define GLW_TOOLBAR_BACKGROUND_COLOR 0x252525 +#define GLW_TOOLBAR_BACKGROUND_COLOR GLW_TAB_FILL_GRADIENT_COLOR_2 + +#define GLW_MIN_TAB_WIDTH 120 #endif diff --git a/src/icons.c b/src/icons.c new file mode 100644 index 00000000..49bda980 --- /dev/null +++ b/src/icons.c @@ -0,0 +1,28 @@ +//THIS FILE IS GENERATED AUTOMATICALLY BY https://github.com/huxingyi/squeezer, PLEASE DONT MODIFY IT MANUALLY. + +#include "icons.h" + +const int iconTable[][ICON_ITEM_MAX] = { + {12, 16, 0, 96, 2, 0, 16, 16} /*"unlock.png"*/, + {16, 16, 0, 32, 0, 0, 16, 16} /*"unlink.png"*/, + {16, 14, 8, 112, 0, 0, 16, 16} /*"undo.png"*/, + {14, 16, 0, 80, 0, 0, 16, 16} /*"trash.png"*/, + {16, 16, 0, 16, 0, 0, 16, 16} /*"tool.png"*/, + {12, 12, 28, 16, 2, 2, 16, 16} /*"stop.png"*/, + {16, 16, 112, 0, 0, 0, 16, 16} /*"reload.png"*/, + {16, 16, 96, 0, 0, 0, 16, 16} /*"plus.png"*/, + {12, 12, 16, 28, 2, 2, 16, 16} /*"play.png"*/, + {14, 16, 0, 64, 0, 0, 16, 16} /*"pin.png"*/, + {16, 16, 80, 0, 0, 0, 16, 16} /*"pencil.png"*/, + {12, 12, 16, 16, 2, 2, 16, 16} /*"pause.png"*/, + {16, 16, 64, 0, 0, 0, 16, 16} /*"monitor.png"*/, + {16, 4, 16, 40, 0, 6, 16, 16} /*"minus.png"*/, + {12, 14, 12, 96, 2, 0, 16, 16} /*"lock.png"*/, + {16, 16, 48, 0, 0, 0, 16, 16} /*"link.png"*/, + {8, 16, 0, 112, 4, 0, 16, 16} /*"info.png"*/, + {16, 16, 32, 0, 0, 0, 16, 16} /*"image.png"*/, + {16, 16, 16, 0, 0, 0, 16, 16} /*"folder.png"*/, + {14, 16, 0, 48, 0, 0, 16, 16} /*"file.png"*/, + {16, 16, 0, 0, 0, 0, 16, 16} /*"eyedropper.png"*/, + {16, 12, 14, 48, 0, 2, 16, 16} /*"eye.png"*/ +}; diff --git a/src/icons.h b/src/icons.h new file mode 100644 index 00000000..3dec6bb4 --- /dev/null +++ b/src/icons.h @@ -0,0 +1,48 @@ +#ifndef ICONS_H +#define ICONS_H + +typedef enum { + ICON_ITEM_WIDTH, + ICON_ITEM_HEIGHT, + ICON_ITEM_LEFT, + ICON_ITEM_TOP, + ICON_ITEM_TRIM_OFFSET_LEFT, + ICON_ITEM_TRIM_OFFSET_TOP, + ICON_ITEM_ORIGINAL_WIDTH, + ICON_ITEM_ORIGINAL_HEIGHT, + ICON_ITEM_MAX +} iconItem; + +#define ICON_IMAGE_WIDTH 128 +#define ICON_IMAGE_HEIGHT 128 + +typedef enum { + ICON_UNKNOWN, + ICON_UNLOCK, + ICON_UNLINK, + ICON_UNDO, + ICON_TRASH, + ICON_TOOL, + ICON_STOP, + ICON_RELOAD, + ICON_PLUS, + ICON_PLAY, + ICON_PIN, + ICON_PENCIL, + ICON_PAUSE, + ICON_MONITOR, + ICON_MINUS, + ICON_LOCK, + ICON_LINK, + ICON_INFO, + ICON_IMAGE, + ICON_FOLDER, + ICON_FILE, + ICON_EYEDROPPER, + ICON_EYE, + ICON_MAX +} iconId; + +const int iconTable[ICON_MAX][ICON_ITEM_MAX]; + +#endif diff --git a/src/lodepng.c b/src/lodepng.c new file mode 100755 index 00000000..8c78758f --- /dev/null +++ b/src/lodepng.c @@ -0,0 +1,6224 @@ +/* +LodePNG version 20160501 + +Copyright (c) 2005-2016 Lode Vandevenne + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*/ + +/* +The manual and changelog are in the header file "lodepng.h" +Rename this file to lodepng.cpp to use it for C++, or to lodepng.c to use it for C. +*/ + +#include "lodepng.h" + +#include +#include +#include + +#if defined(_MSC_VER) && (_MSC_VER >= 1310) /*Visual Studio: A few warning types are not desired here.*/ +#pragma warning( disable : 4244 ) /*implicit conversions: not warned by gcc -Wall -Wextra and requires too much casts*/ +#pragma warning( disable : 4996 ) /*VS does not like fopen, but fopen_s is not standard C so unusable here*/ +#endif /*_MSC_VER */ + +const char* LODEPNG_VERSION_STRING = "20160501"; + +/* +This source file is built up in the following large parts. The code sections +with the "LODEPNG_COMPILE_" #defines divide this up further in an intermixed way. +-Tools for C and common code for PNG and Zlib +-C Code for Zlib (huffman, deflate, ...) +-C Code for PNG (file format chunks, adam7, PNG filters, color conversions, ...) +-The C++ wrapper around all of the above +*/ + +/*The malloc, realloc and free functions defined here with "lodepng_" in front +of the name, so that you can easily change them to others related to your +platform if needed. Everything else in the code calls these. Pass +-DLODEPNG_NO_COMPILE_ALLOCATORS to the compiler, or comment out +#define LODEPNG_COMPILE_ALLOCATORS in the header, to disable the ones here and +define them in your own project's source files without needing to change +lodepng source code. Don't forget to remove "static" if you copypaste them +from here.*/ + +#ifdef LODEPNG_COMPILE_ALLOCATORS +static void* lodepng_malloc(size_t size) +{ + return malloc(size); +} + +static void* lodepng_realloc(void* ptr, size_t new_size) +{ + return realloc(ptr, new_size); +} + +static void lodepng_free(void* ptr) +{ + free(ptr); +} +#else /*LODEPNG_COMPILE_ALLOCATORS*/ +void* lodepng_malloc(size_t size); +void* lodepng_realloc(void* ptr, size_t new_size); +void lodepng_free(void* ptr); +#endif /*LODEPNG_COMPILE_ALLOCATORS*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // Tools for C, and common code for PNG and Zlib. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/* +Often in case of an error a value is assigned to a variable and then it breaks +out of a loop (to go to the cleanup phase of a function). This macro does that. +It makes the error handling code shorter and more readable. + +Example: if(!uivector_resizev(&frequencies_ll, 286, 0)) ERROR_BREAK(83); +*/ +#define CERROR_BREAK(errorvar, code)\ +{\ + errorvar = code;\ + break;\ +} + +/*version of CERROR_BREAK that assumes the common case where the error variable is named "error"*/ +#define ERROR_BREAK(code) CERROR_BREAK(error, code) + +/*Set error var to the error code, and return it.*/ +#define CERROR_RETURN_ERROR(errorvar, code)\ +{\ + errorvar = code;\ + return code;\ +} + +/*Try the code, if it returns error, also return the error.*/ +#define CERROR_TRY_RETURN(call)\ +{\ + unsigned error = call;\ + if(error) return error;\ +} + +/*Set error var to the error code, and return from the void function.*/ +#define CERROR_RETURN(errorvar, code)\ +{\ + errorvar = code;\ + return;\ +} + +/* +About uivector, ucvector and string: +-All of them wrap dynamic arrays or text strings in a similar way. +-LodePNG was originally written in C++. The vectors replace the std::vectors that were used in the C++ version. +-The string tools are made to avoid problems with compilers that declare things like strncat as deprecated. +-They're not used in the interface, only internally in this file as static functions. +-As with many other structs in this file, the init and cleanup functions serve as ctor and dtor. +*/ + +#ifdef LODEPNG_COMPILE_ZLIB +/*dynamic vector of unsigned ints*/ +typedef struct uivector +{ + unsigned* data; + size_t size; /*size in number of unsigned longs*/ + size_t allocsize; /*allocated size in bytes*/ +} uivector; + +static void uivector_cleanup(void* p) +{ + ((uivector*)p)->size = ((uivector*)p)->allocsize = 0; + lodepng_free(((uivector*)p)->data); + ((uivector*)p)->data = NULL; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_reserve(uivector* p, size_t allocsize) +{ + if(allocsize > p->allocsize) + { + size_t newsize = (allocsize > p->allocsize * 2) ? allocsize : (allocsize * 3 / 2); + void* data = lodepng_realloc(p->data, newsize); + if(data) + { + p->allocsize = newsize; + p->data = (unsigned*)data; + } + else return 0; /*error: not enough memory*/ + } + return 1; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_resize(uivector* p, size_t size) +{ + if(!uivector_reserve(p, size * sizeof(unsigned))) return 0; + p->size = size; + return 1; /*success*/ +} + +/*resize and give all new elements the value*/ +static unsigned uivector_resizev(uivector* p, size_t size, unsigned value) +{ + size_t oldsize = p->size, i; + if(!uivector_resize(p, size)) return 0; + for(i = oldsize; i < size; ++i) p->data[i] = value; + return 1; +} + +static void uivector_init(uivector* p) +{ + p->data = NULL; + p->size = p->allocsize = 0; +} + +#ifdef LODEPNG_COMPILE_ENCODER +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_push_back(uivector* p, unsigned c) +{ + if(!uivector_resize(p, p->size + 1)) return 0; + p->data[p->size - 1] = c; + return 1; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* /////////////////////////////////////////////////////////////////////////// */ + +/*dynamic vector of unsigned chars*/ +typedef struct ucvector +{ + unsigned char* data; + size_t size; /*used size*/ + size_t allocsize; /*allocated size*/ +} ucvector; + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_reserve(ucvector* p, size_t allocsize) +{ + if(allocsize > p->allocsize) + { + size_t newsize = (allocsize > p->allocsize * 2) ? allocsize : (allocsize * 3 / 2); + void* data = lodepng_realloc(p->data, newsize); + if(data) + { + p->allocsize = newsize; + p->data = (unsigned char*)data; + } + else return 0; /*error: not enough memory*/ + } + return 1; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_resize(ucvector* p, size_t size) +{ + if(!ucvector_reserve(p, size * sizeof(unsigned char))) return 0; + p->size = size; + return 1; /*success*/ +} + +#ifdef LODEPNG_COMPILE_PNG + +static void ucvector_cleanup(void* p) +{ + ((ucvector*)p)->size = ((ucvector*)p)->allocsize = 0; + lodepng_free(((ucvector*)p)->data); + ((ucvector*)p)->data = NULL; +} + +static void ucvector_init(ucvector* p) +{ + p->data = NULL; + p->size = p->allocsize = 0; +} +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ZLIB +/*you can both convert from vector to buffer&size and vica versa. If you use +init_buffer to take over a buffer and size, it is not needed to use cleanup*/ +static void ucvector_init_buffer(ucvector* p, unsigned char* buffer, size_t size) +{ + p->data = buffer; + p->allocsize = p->size = size; +} +#endif /*LODEPNG_COMPILE_ZLIB*/ + +#if (defined(LODEPNG_COMPILE_PNG) && defined(LODEPNG_COMPILE_ANCILLARY_CHUNKS)) || defined(LODEPNG_COMPILE_ENCODER) +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_push_back(ucvector* p, unsigned char c) +{ + if(!ucvector_resize(p, p->size + 1)) return 0; + p->data[p->size - 1] = c; + return 1; +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER)*/ + + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned string_resize(char** out, size_t size) +{ + char* data = (char*)lodepng_realloc(*out, size + 1); + if(data) + { + data[size] = 0; /*null termination char*/ + *out = data; + } + return data != 0; +} + +/*init a {char*, size_t} pair for use as string*/ +static void string_init(char** out) +{ + *out = NULL; + string_resize(out, 0); +} + +/*free the above pair again*/ +static void string_cleanup(char** out) +{ + lodepng_free(*out); + *out = NULL; +} + +static void string_set(char** out, const char* in) +{ + size_t insize = strlen(in), i; + if(string_resize(out, insize)) + { + for(i = 0; i != insize; ++i) + { + (*out)[i] = in[i]; + } + } +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +unsigned lodepng_read32bitInt(const unsigned char* buffer) +{ + return (unsigned)((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]); +} + +#if defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER) +/*buffer must have at least 4 allocated bytes available*/ +static void lodepng_set32bitInt(unsigned char* buffer, unsigned value) +{ + buffer[0] = (unsigned char)((value >> 24) & 0xff); + buffer[1] = (unsigned char)((value >> 16) & 0xff); + buffer[2] = (unsigned char)((value >> 8) & 0xff); + buffer[3] = (unsigned char)((value ) & 0xff); +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER)*/ + +#ifdef LODEPNG_COMPILE_ENCODER +static void lodepng_add32bitInt(ucvector* buffer, unsigned value) +{ + ucvector_resize(buffer, buffer->size + 4); /*todo: give error if resize failed*/ + lodepng_set32bitInt(&buffer->data[buffer->size - 4], value); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / File IO / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DISK + +/* returns negative value on error. This should be pure C compatible, so no fstat. */ +static long lodepng_filesize(const char* filename) +{ + FILE* file; + long size; + file = fopen(filename, "rb"); + if(!file) return -1; + + if(fseek(file, 0, SEEK_END) != 0) + { + fclose(file); + return -1; + } + + size = ftell(file); + /* It may give LONG_MAX as directory size, this is invalid for us. */ + if(size == LONG_MAX) size = -1; + + fclose(file); + return size; +} + +/* load file into buffer that already has the correct allocated size. Returns error code.*/ +static unsigned lodepng_buffer_file(unsigned char* out, size_t size, const char* filename) +{ + FILE* file; + size_t readsize; + file = fopen(filename, "rb"); + if(!file) return 78; + + readsize = fread(out, 1, size, file); + fclose(file); + + if (readsize != size) return 78; + return 0; +} + +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename) +{ + long size = lodepng_filesize(filename); + if (size < 0) return 78; + *outsize = (size_t)size; + + *out = (unsigned char*)lodepng_malloc((size_t)size); + if(!(*out) && size > 0) return 83; /*the above malloc failed*/ + + return lodepng_buffer_file(*out, (size_t)size, filename); +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename) +{ + FILE* file; + file = fopen(filename, "wb" ); + if(!file) return 79; + fwrite((char*)buffer , 1 , buffersize, file); + fclose(file); + return 0; +} + +#endif /*LODEPNG_COMPILE_DISK*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of common code and tools. Begin of Zlib related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_ENCODER +/*TODO: this ignores potential out of memory errors*/ +#define addBitToStream(/*size_t**/ bitpointer, /*ucvector**/ bitstream, /*unsigned char*/ bit)\ +{\ + /*add a new byte at the end*/\ + if(((*bitpointer) & 7) == 0) ucvector_push_back(bitstream, (unsigned char)0);\ + /*earlier bit of huffman code is in a lesser significant bit of an earlier byte*/\ + (bitstream->data[bitstream->size - 1]) |= (bit << ((*bitpointer) & 0x7));\ + ++(*bitpointer);\ +} + +static void addBitsToStream(size_t* bitpointer, ucvector* bitstream, unsigned value, size_t nbits) +{ + size_t i; + for(i = 0; i != nbits; ++i) addBitToStream(bitpointer, bitstream, (unsigned char)((value >> i) & 1)); +} + +static void addBitsToStreamReversed(size_t* bitpointer, ucvector* bitstream, unsigned value, size_t nbits) +{ + size_t i; + for(i = 0; i != nbits; ++i) addBitToStream(bitpointer, bitstream, (unsigned char)((value >> (nbits - 1 - i)) & 1)); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +#define READBIT(bitpointer, bitstream) ((bitstream[bitpointer >> 3] >> (bitpointer & 0x7)) & (unsigned char)1) + +static unsigned char readBitFromStream(size_t* bitpointer, const unsigned char* bitstream) +{ + unsigned char result = (unsigned char)(READBIT(*bitpointer, bitstream)); + ++(*bitpointer); + return result; +} + +static unsigned readBitsFromStream(size_t* bitpointer, const unsigned char* bitstream, size_t nbits) +{ + unsigned result = 0, i; + for(i = 0; i != nbits; ++i) + { + result += ((unsigned)READBIT(*bitpointer, bitstream)) << i; + ++(*bitpointer); + } + return result; +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflate - Huffman / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#define FIRST_LENGTH_CODE_INDEX 257 +#define LAST_LENGTH_CODE_INDEX 285 +/*256 literals, the end code, some length codes, and 2 unused codes*/ +#define NUM_DEFLATE_CODE_SYMBOLS 288 +/*the distance codes have their own symbols, 30 used, 2 unused*/ +#define NUM_DISTANCE_SYMBOLS 32 +/*the code length codes. 0-15: code lengths, 16: copy previous 3-6 times, 17: 3-10 zeros, 18: 11-138 zeros*/ +#define NUM_CODE_LENGTH_CODES 19 + +/*the base lengths represented by codes 257-285*/ +static const unsigned LENGTHBASE[29] + = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258}; + +/*the extra bits used by codes 257-285 (added to base length)*/ +static const unsigned LENGTHEXTRA[29] + = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 5, 5, 5, 5, 0}; + +/*the base backwards distances (the bits of distance codes appear after length codes and use their own huffman tree)*/ +static const unsigned DISTANCEBASE[30] + = {1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, + 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577}; + +/*the extra bits of backwards distances (added to base)*/ +static const unsigned DISTANCEEXTRA[30] + = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, + 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13}; + +/*the order in which "code length alphabet code lengths" are stored, out of this +the huffman tree of the dynamic huffman tree lengths is generated*/ +static const unsigned CLCL_ORDER[NUM_CODE_LENGTH_CODES] + = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +/* ////////////////////////////////////////////////////////////////////////// */ + +/* +Huffman tree struct, containing multiple representations of the tree +*/ +typedef struct HuffmanTree +{ + unsigned* tree2d; + unsigned* tree1d; + unsigned* lengths; /*the lengths of the codes of the 1d-tree*/ + unsigned maxbitlen; /*maximum number of bits a single code can get*/ + unsigned numcodes; /*number of symbols in the alphabet = number of codes*/ +} HuffmanTree; + +/*function used for debug purposes to draw the tree in ascii art with C++*/ +/* +static void HuffmanTree_draw(HuffmanTree* tree) +{ + std::cout << "tree. length: " << tree->numcodes << " maxbitlen: " << tree->maxbitlen << std::endl; + for(size_t i = 0; i != tree->tree1d.size; ++i) + { + if(tree->lengths.data[i]) + std::cout << i << " " << tree->tree1d.data[i] << " " << tree->lengths.data[i] << std::endl; + } + std::cout << std::endl; +}*/ + +static void HuffmanTree_init(HuffmanTree* tree) +{ + tree->tree2d = 0; + tree->tree1d = 0; + tree->lengths = 0; +} + +static void HuffmanTree_cleanup(HuffmanTree* tree) +{ + lodepng_free(tree->tree2d); + lodepng_free(tree->tree1d); + lodepng_free(tree->lengths); +} + +/*the tree representation used by the decoder. return value is error*/ +static unsigned HuffmanTree_make2DTree(HuffmanTree* tree) +{ + unsigned nodefilled = 0; /*up to which node it is filled*/ + unsigned treepos = 0; /*position in the tree (1 of the numcodes columns)*/ + unsigned n, i; + + tree->tree2d = (unsigned*)lodepng_malloc(tree->numcodes * 2 * sizeof(unsigned)); + if(!tree->tree2d) return 83; /*alloc fail*/ + + /* + convert tree1d[] to tree2d[][]. In the 2D array, a value of 32767 means + uninited, a value >= numcodes is an address to another bit, a value < numcodes + is a code. The 2 rows are the 2 possible bit values (0 or 1), there are as + many columns as codes - 1. + A good huffman tree has N * 2 - 1 nodes, of which N - 1 are internal nodes. + Here, the internal nodes are stored (what their 0 and 1 option point to). + There is only memory for such good tree currently, if there are more nodes + (due to too long length codes), error 55 will happen + */ + for(n = 0; n < tree->numcodes * 2; ++n) + { + tree->tree2d[n] = 32767; /*32767 here means the tree2d isn't filled there yet*/ + } + + for(n = 0; n < tree->numcodes; ++n) /*the codes*/ + { + for(i = 0; i != tree->lengths[n]; ++i) /*the bits for this code*/ + { + unsigned char bit = (unsigned char)((tree->tree1d[n] >> (tree->lengths[n] - i - 1)) & 1); + /*oversubscribed, see comment in lodepng_error_text*/ + if(treepos > 2147483647 || treepos + 2 > tree->numcodes) return 55; + if(tree->tree2d[2 * treepos + bit] == 32767) /*not yet filled in*/ + { + if(i + 1 == tree->lengths[n]) /*last bit*/ + { + tree->tree2d[2 * treepos + bit] = n; /*put the current code in it*/ + treepos = 0; + } + else + { + /*put address of the next step in here, first that address has to be found of course + (it's just nodefilled + 1)...*/ + ++nodefilled; + /*addresses encoded with numcodes added to it*/ + tree->tree2d[2 * treepos + bit] = nodefilled + tree->numcodes; + treepos = nodefilled; + } + } + else treepos = tree->tree2d[2 * treepos + bit] - tree->numcodes; + } + } + + for(n = 0; n < tree->numcodes * 2; ++n) + { + if(tree->tree2d[n] == 32767) tree->tree2d[n] = 0; /*remove possible remaining 32767's*/ + } + + return 0; +} + +/* +Second step for the ...makeFromLengths and ...makeFromFrequencies functions. +numcodes, lengths and maxbitlen must already be filled in correctly. return +value is error. +*/ +static unsigned HuffmanTree_makeFromLengths2(HuffmanTree* tree) +{ + uivector blcount; + uivector nextcode; + unsigned error = 0; + unsigned bits, n; + + uivector_init(&blcount); + uivector_init(&nextcode); + + tree->tree1d = (unsigned*)lodepng_malloc(tree->numcodes * sizeof(unsigned)); + if(!tree->tree1d) error = 83; /*alloc fail*/ + + if(!uivector_resizev(&blcount, tree->maxbitlen + 1, 0) + || !uivector_resizev(&nextcode, tree->maxbitlen + 1, 0)) + error = 83; /*alloc fail*/ + + if(!error) + { + /*step 1: count number of instances of each code length*/ + for(bits = 0; bits != tree->numcodes; ++bits) ++blcount.data[tree->lengths[bits]]; + /*step 2: generate the nextcode values*/ + for(bits = 1; bits <= tree->maxbitlen; ++bits) + { + nextcode.data[bits] = (nextcode.data[bits - 1] + blcount.data[bits - 1]) << 1; + } + /*step 3: generate all the codes*/ + for(n = 0; n != tree->numcodes; ++n) + { + if(tree->lengths[n] != 0) tree->tree1d[n] = nextcode.data[tree->lengths[n]]++; + } + } + + uivector_cleanup(&blcount); + uivector_cleanup(&nextcode); + + if(!error) return HuffmanTree_make2DTree(tree); + else return error; +} + +/* +given the code lengths (as stored in the PNG file), generate the tree as defined +by Deflate. maxbitlen is the maximum bits that a code in the tree can have. +return value is error. +*/ +static unsigned HuffmanTree_makeFromLengths(HuffmanTree* tree, const unsigned* bitlen, + size_t numcodes, unsigned maxbitlen) +{ + unsigned i; + tree->lengths = (unsigned*)lodepng_malloc(numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + for(i = 0; i != numcodes; ++i) tree->lengths[i] = bitlen[i]; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + tree->maxbitlen = maxbitlen; + return HuffmanTree_makeFromLengths2(tree); +} + +#ifdef LODEPNG_COMPILE_ENCODER + +/*BPM: Boundary Package Merge, see "A Fast and Space-Economical Algorithm for Length-Limited Coding", +Jyrki Katajainen, Alistair Moffat, Andrew Turpin, 1995.*/ + +/*chain node for boundary package merge*/ +typedef struct BPMNode +{ + int weight; /*the sum of all weights in this chain*/ + unsigned index; /*index of this leaf node (called "count" in the paper)*/ + struct BPMNode* tail; /*the next nodes in this chain (null if last)*/ + int in_use; +} BPMNode; + +/*lists of chains*/ +typedef struct BPMLists +{ + /*memory pool*/ + unsigned memsize; + BPMNode* memory; + unsigned numfree; + unsigned nextfree; + BPMNode** freelist; + /*two heads of lookahead chains per list*/ + unsigned listsize; + BPMNode** chains0; + BPMNode** chains1; +} BPMLists; + +/*creates a new chain node with the given parameters, from the memory in the lists */ +static BPMNode* bpmnode_create(BPMLists* lists, int weight, unsigned index, BPMNode* tail) +{ + unsigned i; + BPMNode* result; + + /*memory full, so garbage collect*/ + if(lists->nextfree >= lists->numfree) + { + /*mark only those that are in use*/ + for(i = 0; i != lists->memsize; ++i) lists->memory[i].in_use = 0; + for(i = 0; i != lists->listsize; ++i) + { + BPMNode* node; + for(node = lists->chains0[i]; node != 0; node = node->tail) node->in_use = 1; + for(node = lists->chains1[i]; node != 0; node = node->tail) node->in_use = 1; + } + /*collect those that are free*/ + lists->numfree = 0; + for(i = 0; i != lists->memsize; ++i) + { + if(!lists->memory[i].in_use) lists->freelist[lists->numfree++] = &lists->memory[i]; + } + lists->nextfree = 0; + } + + result = lists->freelist[lists->nextfree++]; + result->weight = weight; + result->index = index; + result->tail = tail; + return result; +} + +/*sort the leaves with stable mergesort*/ +static void bpmnode_sort(BPMNode* leaves, size_t num) +{ + BPMNode* mem = (BPMNode*)lodepng_malloc(sizeof(*leaves) * num); + size_t width, counter = 0; + for(width = 1; width < num; width *= 2) + { + BPMNode* a = (counter & 1) ? mem : leaves; + BPMNode* b = (counter & 1) ? leaves : mem; + size_t p; + for(p = 0; p < num; p += 2 * width) + { + size_t q = (p + width > num) ? num : (p + width); + size_t r = (p + 2 * width > num) ? num : (p + 2 * width); + size_t i = p, j = q, k; + for(k = p; k < r; k++) + { + if(i < q && (j >= r || a[i].weight <= a[j].weight)) b[k] = a[i++]; + else b[k] = a[j++]; + } + } + counter++; + } + if(counter & 1) memcpy(leaves, mem, sizeof(*leaves) * num); + lodepng_free(mem); +} + +/*Boundary Package Merge step, numpresent is the amount of leaves, and c is the current chain.*/ +static void boundaryPM(BPMLists* lists, BPMNode* leaves, size_t numpresent, int c, int num) +{ + unsigned lastindex = lists->chains1[c]->index; + + if(c == 0) + { + if(lastindex >= numpresent) return; + lists->chains0[c] = lists->chains1[c]; + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, 0); + } + else + { + /*sum of the weights of the head nodes of the previous lookahead chains.*/ + int sum = lists->chains0[c - 1]->weight + lists->chains1[c - 1]->weight; + lists->chains0[c] = lists->chains1[c]; + if(lastindex < numpresent && sum > leaves[lastindex].weight) + { + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, lists->chains1[c]->tail); + return; + } + lists->chains1[c] = bpmnode_create(lists, sum, lastindex, lists->chains1[c - 1]); + /*in the end we are only interested in the chain of the last list, so no + need to recurse if we're at the last one (this gives measurable speedup)*/ + if(num + 1 < (int)(2 * numpresent - 2)) + { + boundaryPM(lists, leaves, numpresent, c - 1, num); + boundaryPM(lists, leaves, numpresent, c - 1, num); + } + } +} + +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen) +{ + unsigned error = 0; + unsigned i; + size_t numpresent = 0; /*number of symbols with non-zero frequency*/ + BPMNode* leaves; /*the symbols, only those with > 0 frequency*/ + + if(numcodes == 0) return 80; /*error: a tree of 0 symbols is not supposed to be made*/ + if((1u << maxbitlen) < numcodes) return 80; /*error: represent all symbols*/ + + leaves = (BPMNode*)lodepng_malloc(numcodes * sizeof(*leaves)); + if(!leaves) return 83; /*alloc fail*/ + + for(i = 0; i != numcodes; ++i) + { + if(frequencies[i] > 0) + { + leaves[numpresent].weight = (int)frequencies[i]; + leaves[numpresent].index = i; + ++numpresent; + } + } + + for(i = 0; i != numcodes; ++i) lengths[i] = 0; + + /*ensure at least two present symbols. There should be at least one symbol + according to RFC 1951 section 3.2.7. Some decoders incorrectly require two. To + make these work as well ensure there are at least two symbols. The + Package-Merge code below also doesn't work correctly if there's only one + symbol, it'd give it the theoritical 0 bits but in practice zlib wants 1 bit*/ + if(numpresent == 0) + { + lengths[0] = lengths[1] = 1; /*note that for RFC 1951 section 3.2.7, only lengths[0] = 1 is needed*/ + } + else if(numpresent == 1) + { + lengths[leaves[0].index] = 1; + lengths[leaves[0].index == 0 ? 1 : 0] = 1; + } + else + { + BPMLists lists; + BPMNode* node; + + bpmnode_sort(leaves, numpresent); + + lists.listsize = maxbitlen; + lists.memsize = 2 * maxbitlen * (maxbitlen + 1); + lists.nextfree = 0; + lists.numfree = lists.memsize; + lists.memory = (BPMNode*)lodepng_malloc(lists.memsize * sizeof(*lists.memory)); + lists.freelist = (BPMNode**)lodepng_malloc(lists.memsize * sizeof(BPMNode*)); + lists.chains0 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + lists.chains1 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + if(!lists.memory || !lists.freelist || !lists.chains0 || !lists.chains1) error = 83; /*alloc fail*/ + + if(!error) + { + for(i = 0; i != lists.memsize; ++i) lists.freelist[i] = &lists.memory[i]; + + bpmnode_create(&lists, leaves[0].weight, 1, 0); + bpmnode_create(&lists, leaves[1].weight, 2, 0); + + for(i = 0; i != lists.listsize; ++i) + { + lists.chains0[i] = &lists.memory[0]; + lists.chains1[i] = &lists.memory[1]; + } + + /*each boundaryPM call adds one chain to the last list, and we need 2 * numpresent - 2 chains.*/ + for(i = 2; i != 2 * numpresent - 2; ++i) boundaryPM(&lists, leaves, numpresent, (int)maxbitlen - 1, (int)i); + + for(node = lists.chains1[maxbitlen - 1]; node; node = node->tail) + { + for(i = 0; i != node->index; ++i) ++lengths[leaves[i].index]; + } + } + + lodepng_free(lists.memory); + lodepng_free(lists.freelist); + lodepng_free(lists.chains0); + lodepng_free(lists.chains1); + } + + lodepng_free(leaves); + return error; +} + +/*Create the Huffman tree given the symbol frequencies*/ +static unsigned HuffmanTree_makeFromFrequencies(HuffmanTree* tree, const unsigned* frequencies, + size_t mincodes, size_t numcodes, unsigned maxbitlen) +{ + unsigned error = 0; + while(!frequencies[numcodes - 1] && numcodes > mincodes) --numcodes; /*trim zeroes*/ + tree->maxbitlen = maxbitlen; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + tree->lengths = (unsigned*)lodepng_realloc(tree->lengths, numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + /*initialize all lengths to 0*/ + memset(tree->lengths, 0, numcodes * sizeof(unsigned)); + + error = lodepng_huffman_code_lengths(tree->lengths, frequencies, numcodes, maxbitlen); + if(!error) error = HuffmanTree_makeFromLengths2(tree); + return error; +} + +static unsigned HuffmanTree_getCode(const HuffmanTree* tree, unsigned index) +{ + return tree->tree1d[index]; +} + +static unsigned HuffmanTree_getLength(const HuffmanTree* tree, unsigned index) +{ + return tree->lengths[index]; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*get the literal and length code tree of a deflated block with fixed tree, as per the deflate specification*/ +static unsigned generateFixedLitLenTree(HuffmanTree* tree) +{ + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*288 possible codes: 0-255=literals, 256=endcode, 257-285=lengthcodes, 286-287=unused*/ + for(i = 0; i <= 143; ++i) bitlen[i] = 8; + for(i = 144; i <= 255; ++i) bitlen[i] = 9; + for(i = 256; i <= 279; ++i) bitlen[i] = 7; + for(i = 280; i <= 287; ++i) bitlen[i] = 8; + + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DEFLATE_CODE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +/*get the distance code tree of a deflated block with fixed tree, as specified in the deflate specification*/ +static unsigned generateFixedDistanceTree(HuffmanTree* tree) +{ + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*there are 32 distance codes, but 30-31 are unused*/ + for(i = 0; i != NUM_DISTANCE_SYMBOLS; ++i) bitlen[i] = 5; + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DISTANCE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* +returns the code, or (unsigned)(-1) if error happened +inbitlength is the length of the complete buffer, in bits (so its byte length times 8) +*/ +static unsigned huffmanDecodeSymbol(const unsigned char* in, size_t* bp, + const HuffmanTree* codetree, size_t inbitlength) +{ + unsigned treepos = 0, ct; + for(;;) + { + if(*bp >= inbitlength) return (unsigned)(-1); /*error: end of input memory reached without endcode*/ + /* + decode the symbol from the tree. The "readBitFromStream" code is inlined in + the expression below because this is the biggest bottleneck while decoding + */ + ct = codetree->tree2d[(treepos << 1) + READBIT(*bp, in)]; + ++(*bp); + if(ct < codetree->numcodes) return ct; /*the symbol is decoded, return it*/ + else treepos = ct - codetree->numcodes; /*symbol not yet decoded, instead move tree position*/ + + if(treepos >= codetree->numcodes) return (unsigned)(-1); /*error: it appeared outside the codetree*/ + } +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Inflator (Decompressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*get the tree of a deflated block with fixed tree, as specified in the deflate specification*/ +static void getTreeInflateFixed(HuffmanTree* tree_ll, HuffmanTree* tree_d) +{ + /*TODO: check for out of memory errors*/ + generateFixedLitLenTree(tree_ll); + generateFixedDistanceTree(tree_d); +} + +/*get the tree of a deflated block with dynamic tree, the tree itself is also Huffman compressed with a known tree*/ +static unsigned getTreeInflateDynamic(HuffmanTree* tree_ll, HuffmanTree* tree_d, + const unsigned char* in, size_t* bp, size_t inlength) +{ + /*make sure that length values that aren't filled in will be 0, or a wrong tree will be generated*/ + unsigned error = 0; + unsigned n, HLIT, HDIST, HCLEN, i; + size_t inbitlength = inlength * 8; + + /*see comments in deflateDynamic for explanation of the context and these variables, it is analogous*/ + unsigned* bitlen_ll = 0; /*lit,len code lengths*/ + unsigned* bitlen_d = 0; /*dist code lengths*/ + /*code length code lengths ("clcl"), the bit lengths of the huffman tree used to compress bitlen_ll and bitlen_d*/ + unsigned* bitlen_cl = 0; + HuffmanTree tree_cl; /*the code tree for code length codes (the huffman tree for compressed huffman trees)*/ + + if((*bp) + 14 > (inlength << 3)) return 49; /*error: the bit pointer is or will go past the memory*/ + + /*number of literal/length codes + 257. Unlike the spec, the value 257 is added to it here already*/ + HLIT = readBitsFromStream(bp, in, 5) + 257; + /*number of distance codes. Unlike the spec, the value 1 is added to it here already*/ + HDIST = readBitsFromStream(bp, in, 5) + 1; + /*number of code length codes. Unlike the spec, the value 4 is added to it here already*/ + HCLEN = readBitsFromStream(bp, in, 4) + 4; + + if((*bp) + HCLEN * 3 > (inlength << 3)) return 50; /*error: the bit pointer is or will go past the memory*/ + + HuffmanTree_init(&tree_cl); + + while(!error) + { + /*read the code length codes out of 3 * (amount of code length codes) bits*/ + + bitlen_cl = (unsigned*)lodepng_malloc(NUM_CODE_LENGTH_CODES * sizeof(unsigned)); + if(!bitlen_cl) ERROR_BREAK(83 /*alloc fail*/); + + for(i = 0; i != NUM_CODE_LENGTH_CODES; ++i) + { + if(i < HCLEN) bitlen_cl[CLCL_ORDER[i]] = readBitsFromStream(bp, in, 3); + else bitlen_cl[CLCL_ORDER[i]] = 0; /*if not, it must stay 0*/ + } + + error = HuffmanTree_makeFromLengths(&tree_cl, bitlen_cl, NUM_CODE_LENGTH_CODES, 7); + if(error) break; + + /*now we can use this tree to read the lengths for the tree that this function will return*/ + bitlen_ll = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + bitlen_d = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen_ll || !bitlen_d) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != NUM_DEFLATE_CODE_SYMBOLS; ++i) bitlen_ll[i] = 0; + for(i = 0; i != NUM_DISTANCE_SYMBOLS; ++i) bitlen_d[i] = 0; + + /*i is the current symbol we're reading in the part that contains the code lengths of lit/len and dist codes*/ + i = 0; + while(i < HLIT + HDIST) + { + unsigned code = huffmanDecodeSymbol(in, bp, &tree_cl, inbitlength); + if(code <= 15) /*a length code*/ + { + if(i < HLIT) bitlen_ll[i] = code; + else bitlen_d[i - HLIT] = code; + ++i; + } + else if(code == 16) /*repeat previous*/ + { + unsigned replength = 3; /*read in the 2 bits that indicate repeat length (3-6)*/ + unsigned value; /*set value to the previous code*/ + + if(i == 0) ERROR_BREAK(54); /*can't repeat previous if i is 0*/ + + if((*bp + 2) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 2); + + if(i < HLIT + 1) value = bitlen_ll[i - 1]; + else value = bitlen_d[i - HLIT - 1]; + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(13); /*error: i is larger than the amount of codes*/ + if(i < HLIT) bitlen_ll[i] = value; + else bitlen_d[i - HLIT] = value; + ++i; + } + } + else if(code == 17) /*repeat "0" 3-10 times*/ + { + unsigned replength = 3; /*read in the bits that indicate repeat length*/ + if((*bp + 3) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 3); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(14); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } + else if(code == 18) /*repeat "0" 11-138 times*/ + { + unsigned replength = 11; /*read in the bits that indicate repeat length*/ + if((*bp + 7) > inbitlength) ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + replength += readBitsFromStream(bp, in, 7); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) + { + if(i >= HLIT + HDIST) ERROR_BREAK(15); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } + else /*if(code == (unsigned)(-1))*/ /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + if(code == (unsigned)(-1)) + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = (*bp) > inbitlength ? 10 : 11; + } + else error = 16; /*unexisting code, this can never happen*/ + break; + } + } + if(error) break; + + if(bitlen_ll[256] == 0) ERROR_BREAK(64); /*the length of the end code 256 must be larger than 0*/ + + /*now we've finally got HLIT and HDIST, so generate the code trees, and the function is done*/ + error = HuffmanTree_makeFromLengths(tree_ll, bitlen_ll, NUM_DEFLATE_CODE_SYMBOLS, 15); + if(error) break; + error = HuffmanTree_makeFromLengths(tree_d, bitlen_d, NUM_DISTANCE_SYMBOLS, 15); + + break; /*end of error-while*/ + } + + lodepng_free(bitlen_cl); + lodepng_free(bitlen_ll); + lodepng_free(bitlen_d); + HuffmanTree_cleanup(&tree_cl); + + return error; +} + +/*inflate a block with dynamic of fixed Huffman tree*/ +static unsigned inflateHuffmanBlock(ucvector* out, const unsigned char* in, size_t* bp, + size_t* pos, size_t inlength, unsigned btype) +{ + unsigned error = 0; + HuffmanTree tree_ll; /*the huffman tree for literal and length codes*/ + HuffmanTree tree_d; /*the huffman tree for distance codes*/ + size_t inbitlength = inlength * 8; + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + if(btype == 1) getTreeInflateFixed(&tree_ll, &tree_d); + else if(btype == 2) error = getTreeInflateDynamic(&tree_ll, &tree_d, in, bp, inlength); + + while(!error) /*decode all symbols until end reached, breaks at end code*/ + { + /*code_ll is literal, length or end code*/ + unsigned code_ll = huffmanDecodeSymbol(in, bp, &tree_ll, inbitlength); + if(code_ll <= 255) /*literal symbol*/ + { + /*ucvector_push_back would do the same, but for some reason the two lines below run 10% faster*/ + if(!ucvector_resize(out, (*pos) + 1)) ERROR_BREAK(83 /*alloc fail*/); + out->data[*pos] = (unsigned char)code_ll; + ++(*pos); + } + else if(code_ll >= FIRST_LENGTH_CODE_INDEX && code_ll <= LAST_LENGTH_CODE_INDEX) /*length code*/ + { + unsigned code_d, distance; + unsigned numextrabits_l, numextrabits_d; /*extra bits for length and distance*/ + size_t start, forward, backward, length; + + /*part 1: get length base*/ + length = LENGTHBASE[code_ll - FIRST_LENGTH_CODE_INDEX]; + + /*part 2: get extra bits and add the value of that to length*/ + numextrabits_l = LENGTHEXTRA[code_ll - FIRST_LENGTH_CODE_INDEX]; + if((*bp + numextrabits_l) > inbitlength) ERROR_BREAK(51); /*error, bit pointer will jump past memory*/ + length += readBitsFromStream(bp, in, numextrabits_l); + + /*part 3: get distance code*/ + code_d = huffmanDecodeSymbol(in, bp, &tree_d, inbitlength); + if(code_d > 29) + { + if(code_ll == (unsigned)(-1)) /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = (*bp) > inlength * 8 ? 10 : 11; + } + else error = 18; /*error: invalid distance code (30-31 are never used)*/ + break; + } + distance = DISTANCEBASE[code_d]; + + /*part 4: get extra bits from distance*/ + numextrabits_d = DISTANCEEXTRA[code_d]; + if((*bp + numextrabits_d) > inbitlength) ERROR_BREAK(51); /*error, bit pointer will jump past memory*/ + distance += readBitsFromStream(bp, in, numextrabits_d); + + /*part 5: fill in all the out[n] values based on the length and dist*/ + start = (*pos); + if(distance > start) ERROR_BREAK(52); /*too long backward distance*/ + backward = start - distance; + + if(!ucvector_resize(out, (*pos) + length)) ERROR_BREAK(83 /*alloc fail*/); + if (distance < length) { + for(forward = 0; forward < length; ++forward) + { + out->data[(*pos)++] = out->data[backward++]; + } + } else { + memcpy(out->data + *pos, out->data + backward, length); + *pos += length; + } + } + else if(code_ll == 256) + { + break; /*end code, break the loop*/ + } + else /*if(code == (unsigned)(-1))*/ /*huffmanDecodeSymbol returns (unsigned)(-1) in case of error*/ + { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + error = ((*bp) > inlength * 8) ? 10 : 11; + break; + } + } + + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned inflateNoCompression(ucvector* out, const unsigned char* in, size_t* bp, size_t* pos, size_t inlength) +{ + size_t p; + unsigned LEN, NLEN, n, error = 0; + + /*go to first boundary of byte*/ + while(((*bp) & 0x7) != 0) ++(*bp); + p = (*bp) / 8; /*byte position*/ + + /*read LEN (2 bytes) and NLEN (2 bytes)*/ + if(p + 4 >= inlength) return 52; /*error, bit pointer will jump past memory*/ + LEN = in[p] + 256u * in[p + 1]; p += 2; + NLEN = in[p] + 256u * in[p + 1]; p += 2; + + /*check if 16-bit NLEN is really the one's complement of LEN*/ + if(LEN + NLEN != 65535) return 21; /*error: NLEN is not one's complement of LEN*/ + + if(!ucvector_resize(out, (*pos) + LEN)) return 83; /*alloc fail*/ + + /*read the literal data: LEN bytes are now stored in the out buffer*/ + if(p + LEN > inlength) return 23; /*error: reading outside of in buffer*/ + for(n = 0; n < LEN; ++n) out->data[(*pos)++] = in[p++]; + + (*bp) = p * 8; + + return error; +} + +static unsigned lodepng_inflatev(ucvector* out, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + /*bit pointer in the "in" data, current byte is bp >> 3, current bit is bp & 0x7 (from lsb to msb of the byte)*/ + size_t bp = 0; + unsigned BFINAL = 0; + size_t pos = 0; /*byte position in the out buffer*/ + unsigned error = 0; + + (void)settings; + + while(!BFINAL) + { + unsigned BTYPE; + if(bp + 2 >= insize * 8) return 52; /*error, bit pointer will jump past memory*/ + BFINAL = readBitFromStream(&bp, in); + BTYPE = 1u * readBitFromStream(&bp, in); + BTYPE += 2u * readBitFromStream(&bp, in); + + if(BTYPE == 3) return 20; /*error: invalid BTYPE*/ + else if(BTYPE == 0) error = inflateNoCompression(out, in, &bp, &pos, insize); /*no compression*/ + else error = inflateHuffmanBlock(out, in, &bp, &pos, insize, BTYPE); /*compression, BTYPE 01 or 10*/ + + if(error) return error; + } + + return error; +} + +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + unsigned error; + ucvector v; + ucvector_init_buffer(&v, *out, *outsize); + error = lodepng_inflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) +{ + if(settings->custom_inflate) + { + return settings->custom_inflate(out, outsize, in, insize, settings); + } + else + { + return lodepng_inflate(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflator (Compressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static const size_t MAX_SUPPORTED_DEFLATE_LENGTH = 258; + +/*bitlen is the size in bits of the code*/ +static void addHuffmanSymbol(size_t* bp, ucvector* compressed, unsigned code, unsigned bitlen) +{ + addBitsToStreamReversed(bp, compressed, code, bitlen); +} + +/*search the index in the array, that has the largest value smaller than or equal to the given value, +given array must be sorted (if no value is smaller, it returns the size of the given array)*/ +static size_t searchCodeIndex(const unsigned* array, size_t array_size, size_t value) +{ + /*binary search (only small gain over linear). TODO: use CPU log2 instruction for getting symbols instead*/ + size_t left = 1; + size_t right = array_size - 1; + + while(left <= right) { + size_t mid = (left + right) >> 1; + if (array[mid] >= value) right = mid - 1; + else left = mid + 1; + } + if(left >= array_size || array[left] > value) left--; + return left; +} + +static void addLengthDistance(uivector* values, size_t length, size_t distance) +{ + /*values in encoded vector are those used by deflate: + 0-255: literal bytes + 256: end + 257-285: length/distance pair (length code, followed by extra length bits, distance code, extra distance bits) + 286-287: invalid*/ + + unsigned length_code = (unsigned)searchCodeIndex(LENGTHBASE, 29, length); + unsigned extra_length = (unsigned)(length - LENGTHBASE[length_code]); + unsigned dist_code = (unsigned)searchCodeIndex(DISTANCEBASE, 30, distance); + unsigned extra_distance = (unsigned)(distance - DISTANCEBASE[dist_code]); + + uivector_push_back(values, length_code + FIRST_LENGTH_CODE_INDEX); + uivector_push_back(values, extra_length); + uivector_push_back(values, dist_code); + uivector_push_back(values, extra_distance); +} + +/*3 bytes of data get encoded into two bytes. The hash cannot use more than 3 +bytes as input because 3 is the minimum match length for deflate*/ +static const unsigned HASH_NUM_VALUES = 65536; +static const unsigned HASH_BIT_MASK = 65535; /*HASH_NUM_VALUES - 1, but C90 does not like that as initializer*/ + +typedef struct Hash +{ + int* head; /*hash value to head circular pos - can be outdated if went around window*/ + /*circular pos to prev circular pos*/ + unsigned short* chain; + int* val; /*circular pos to hash value*/ + + /*TODO: do this not only for zeros but for any repeated byte. However for PNG + it's always going to be the zeros that dominate, so not important for PNG*/ + int* headz; /*similar to head, but for chainz*/ + unsigned short* chainz; /*those with same amount of zeros*/ + unsigned short* zeros; /*length of zeros streak, used as a second hash chain*/ +} Hash; + +static unsigned hash_init(Hash* hash, unsigned windowsize) +{ + unsigned i; + hash->head = (int*)lodepng_malloc(sizeof(int) * HASH_NUM_VALUES); + hash->val = (int*)lodepng_malloc(sizeof(int) * windowsize); + hash->chain = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + hash->zeros = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + hash->headz = (int*)lodepng_malloc(sizeof(int) * (MAX_SUPPORTED_DEFLATE_LENGTH + 1)); + hash->chainz = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + if(!hash->head || !hash->chain || !hash->val || !hash->headz|| !hash->chainz || !hash->zeros) + { + return 83; /*alloc fail*/ + } + + /*initialize hash table*/ + for(i = 0; i != HASH_NUM_VALUES; ++i) hash->head[i] = -1; + for(i = 0; i != windowsize; ++i) hash->val[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chain[i] = i; /*same value as index indicates uninitialized*/ + + for(i = 0; i <= MAX_SUPPORTED_DEFLATE_LENGTH; ++i) hash->headz[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chainz[i] = i; /*same value as index indicates uninitialized*/ + + return 0; +} + +static void hash_cleanup(Hash* hash) +{ + lodepng_free(hash->head); + lodepng_free(hash->val); + lodepng_free(hash->chain); + + lodepng_free(hash->zeros); + lodepng_free(hash->headz); + lodepng_free(hash->chainz); +} + + + +static unsigned getHash(const unsigned char* data, size_t size, size_t pos) +{ + unsigned result = 0; + if(pos + 2 < size) + { + /*A simple shift and xor hash is used. Since the data of PNGs is dominated + by zeroes due to the filters, a better hash does not have a significant + effect on speed in traversing the chain, and causes more time spend on + calculating the hash.*/ + result ^= (unsigned)(data[pos + 0] << 0u); + result ^= (unsigned)(data[pos + 1] << 4u); + result ^= (unsigned)(data[pos + 2] << 8u); + } else { + size_t amount, i; + if(pos >= size) return 0; + amount = size - pos; + for(i = 0; i != amount; ++i) result ^= (unsigned)(data[pos + i] << (i * 8u)); + } + return result & HASH_BIT_MASK; +} + +static unsigned countZeros(const unsigned char* data, size_t size, size_t pos) +{ + const unsigned char* start = data + pos; + const unsigned char* end = start + MAX_SUPPORTED_DEFLATE_LENGTH; + if(end > data + size) end = data + size; + data = start; + while(data != end && *data == 0) ++data; + /*subtracting two addresses returned as 32-bit number (max value is MAX_SUPPORTED_DEFLATE_LENGTH)*/ + return (unsigned)(data - start); +} + +/*wpos = pos & (windowsize - 1)*/ +static void updateHashChain(Hash* hash, size_t wpos, unsigned hashval, unsigned short numzeros) +{ + hash->val[wpos] = (int)hashval; + if(hash->head[hashval] != -1) hash->chain[wpos] = hash->head[hashval]; + hash->head[hashval] = wpos; + + hash->zeros[wpos] = numzeros; + if(hash->headz[numzeros] != -1) hash->chainz[wpos] = hash->headz[numzeros]; + hash->headz[numzeros] = wpos; +} + +/* +LZ77-encode the data. Return value is error code. The input are raw bytes, the output +is in the form of unsigned integers with codes representing for example literal bytes, or +length/distance pairs. +It uses a hash table technique to let it encode faster. When doing LZ77 encoding, a +sliding window (of windowsize) is used, and all past bytes in that window can be used as +the "dictionary". A brute force search through all possible distances would be slow, and +this hash technique is one out of several ways to speed this up. +*/ +static unsigned encodeLZ77(uivector* out, Hash* hash, + const unsigned char* in, size_t inpos, size_t insize, unsigned windowsize, + unsigned minmatch, unsigned nicematch, unsigned lazymatching) +{ + size_t pos; + unsigned i, error = 0; + /*for large window lengths, assume the user wants no compression loss. Otherwise, max hash chain length speedup.*/ + unsigned maxchainlength = windowsize >= 8192 ? windowsize : windowsize / 8; + unsigned maxlazymatch = windowsize >= 8192 ? MAX_SUPPORTED_DEFLATE_LENGTH : 64; + + unsigned usezeros = 1; /*not sure if setting it to false for windowsize < 8192 is better or worse*/ + unsigned numzeros = 0; + + unsigned offset; /*the offset represents the distance in LZ77 terminology*/ + unsigned length; + unsigned lazy = 0; + unsigned lazylength = 0, lazyoffset = 0; + unsigned hashval; + unsigned current_offset, current_length; + unsigned prev_offset; + const unsigned char *lastptr, *foreptr, *backptr; + unsigned hashpos; + + if(windowsize == 0 || windowsize > 32768) return 60; /*error: windowsize smaller/larger than allowed*/ + if((windowsize & (windowsize - 1)) != 0) return 90; /*error: must be power of two*/ + + if(nicematch > MAX_SUPPORTED_DEFLATE_LENGTH) nicematch = MAX_SUPPORTED_DEFLATE_LENGTH; + + for(pos = inpos; pos < insize; ++pos) + { + size_t wpos = pos & (windowsize - 1); /*position for in 'circular' hash buffers*/ + unsigned chainlength = 0; + + hashval = getHash(in, insize, pos); + + if(usezeros && hashval == 0) + { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } + else + { + numzeros = 0; + } + + updateHashChain(hash, wpos, hashval, numzeros); + + /*the length and offset found for the current position*/ + length = 0; + offset = 0; + + hashpos = hash->chain[wpos]; + + lastptr = &in[insize < pos + MAX_SUPPORTED_DEFLATE_LENGTH ? insize : pos + MAX_SUPPORTED_DEFLATE_LENGTH]; + + /*search for the longest string*/ + prev_offset = 0; + for(;;) + { + if(chainlength++ >= maxchainlength) break; + current_offset = hashpos <= wpos ? wpos - hashpos : wpos - hashpos + windowsize; + + if(current_offset < prev_offset) break; /*stop when went completely around the circular buffer*/ + prev_offset = current_offset; + if(current_offset > 0) + { + /*test the next characters*/ + foreptr = &in[pos]; + backptr = &in[pos - current_offset]; + + /*common case in PNGs is lots of zeros. Quickly skip over them as a speedup*/ + if(numzeros >= 3) + { + unsigned skip = hash->zeros[hashpos]; + if(skip > numzeros) skip = numzeros; + backptr += skip; + foreptr += skip; + } + + while(foreptr != lastptr && *backptr == *foreptr) /*maximum supported length by deflate is max length*/ + { + ++backptr; + ++foreptr; + } + current_length = (unsigned)(foreptr - &in[pos]); + + if(current_length > length) + { + length = current_length; /*the longest length*/ + offset = current_offset; /*the offset that is related to this longest length*/ + /*jump out once a length of max length is found (speed gain). This also jumps + out if length is MAX_SUPPORTED_DEFLATE_LENGTH*/ + if(current_length >= nicematch) break; + } + } + + if(hashpos == hash->chain[hashpos]) break; + + if(numzeros >= 3 && length > numzeros) + { + hashpos = hash->chainz[hashpos]; + if(hash->zeros[hashpos] != numzeros) break; + } + else + { + hashpos = hash->chain[hashpos]; + /*outdated hash value, happens if particular value was not encountered in whole last window*/ + if(hash->val[hashpos] != (int)hashval) break; + } + } + + if(lazymatching) + { + if(!lazy && length >= 3 && length <= maxlazymatch && length < MAX_SUPPORTED_DEFLATE_LENGTH) + { + lazy = 1; + lazylength = length; + lazyoffset = offset; + continue; /*try the next byte*/ + } + if(lazy) + { + lazy = 0; + if(pos == 0) ERROR_BREAK(81); + if(length > lazylength + 1) + { + /*push the previous character as literal*/ + if(!uivector_push_back(out, in[pos - 1])) ERROR_BREAK(83 /*alloc fail*/); + } + else + { + length = lazylength; + offset = lazyoffset; + hash->head[hashval] = -1; /*the same hashchain update will be done, this ensures no wrong alteration*/ + hash->headz[numzeros] = -1; /*idem*/ + --pos; + } + } + } + if(length >= 3 && offset > windowsize) ERROR_BREAK(86 /*too big (or overflown negative) offset*/); + + /*encode it as length/distance pair or literal value*/ + if(length < 3) /*only lengths of 3 or higher are supported as length/distance pair*/ + { + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } + else if(length < minmatch || (length == 3 && offset > 4096)) + { + /*compensate for the fact that longer offsets have more extra bits, a + length of only 3 may be not worth it then*/ + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } + else + { + addLengthDistance(out, length, offset); + for(i = 1; i < length; ++i) + { + ++pos; + wpos = pos & (windowsize - 1); + hashval = getHash(in, insize, pos); + if(usezeros && hashval == 0) + { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } + else + { + numzeros = 0; + } + updateHashChain(hash, wpos, hashval, numzeros); + } + } + } /*end of the loop through each character of input*/ + + return error; +} + +/* /////////////////////////////////////////////////////////////////////////// */ + +static unsigned deflateNoCompression(ucvector* out, const unsigned char* data, size_t datasize) +{ + /*non compressed deflate block data: 1 bit BFINAL,2 bits BTYPE,(5 bits): it jumps to start of next byte, + 2 bytes LEN, 2 bytes NLEN, LEN bytes literal DATA*/ + + size_t i, j, numdeflateblocks = (datasize + 65534) / 65535; + unsigned datapos = 0; + for(i = 0; i != numdeflateblocks; ++i) + { + unsigned BFINAL, BTYPE, LEN, NLEN; + unsigned char firstbyte; + + BFINAL = (i == numdeflateblocks - 1); + BTYPE = 0; + + firstbyte = (unsigned char)(BFINAL + ((BTYPE & 1) << 1) + ((BTYPE & 2) << 1)); + ucvector_push_back(out, firstbyte); + + LEN = 65535; + if(datasize - datapos < 65535) LEN = (unsigned)datasize - datapos; + NLEN = 65535 - LEN; + + ucvector_push_back(out, (unsigned char)(LEN & 255)); + ucvector_push_back(out, (unsigned char)(LEN >> 8)); + ucvector_push_back(out, (unsigned char)(NLEN & 255)); + ucvector_push_back(out, (unsigned char)(NLEN >> 8)); + + /*Decompressed data*/ + for(j = 0; j < 65535 && datapos < datasize; ++j) + { + ucvector_push_back(out, data[datapos++]); + } + } + + return 0; +} + +/* +write the lz77-encoded data, which has lit, len and dist codes, to compressed stream using huffman trees. +tree_ll: the tree for lit and len codes. +tree_d: the tree for distance codes. +*/ +static void writeLZ77data(size_t* bp, ucvector* out, const uivector* lz77_encoded, + const HuffmanTree* tree_ll, const HuffmanTree* tree_d) +{ + size_t i = 0; + for(i = 0; i != lz77_encoded->size; ++i) + { + unsigned val = lz77_encoded->data[i]; + addHuffmanSymbol(bp, out, HuffmanTree_getCode(tree_ll, val), HuffmanTree_getLength(tree_ll, val)); + if(val > 256) /*for a length code, 3 more things have to be added*/ + { + unsigned length_index = val - FIRST_LENGTH_CODE_INDEX; + unsigned n_length_extra_bits = LENGTHEXTRA[length_index]; + unsigned length_extra_bits = lz77_encoded->data[++i]; + + unsigned distance_code = lz77_encoded->data[++i]; + + unsigned distance_index = distance_code; + unsigned n_distance_extra_bits = DISTANCEEXTRA[distance_index]; + unsigned distance_extra_bits = lz77_encoded->data[++i]; + + addBitsToStream(bp, out, length_extra_bits, n_length_extra_bits); + addHuffmanSymbol(bp, out, HuffmanTree_getCode(tree_d, distance_code), + HuffmanTree_getLength(tree_d, distance_code)); + addBitsToStream(bp, out, distance_extra_bits, n_distance_extra_bits); + } + } +} + +/*Deflate for a block of type "dynamic", that is, with freely, optimally, created huffman trees*/ +static unsigned deflateDynamic(ucvector* out, size_t* bp, Hash* hash, + const unsigned char* data, size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) +{ + unsigned error = 0; + + /* + A block is compressed as follows: The PNG data is lz77 encoded, resulting in + literal bytes and length/distance pairs. This is then huffman compressed with + two huffman trees. One huffman tree is used for the lit and len values ("ll"), + another huffman tree is used for the dist values ("d"). These two trees are + stored using their code lengths, and to compress even more these code lengths + are also run-length encoded and huffman compressed. This gives a huffman tree + of code lengths "cl". The code lenghts used to describe this third tree are + the code length code lengths ("clcl"). + */ + + /*The lz77 encoded data, represented with integers since there will also be length and distance codes in it*/ + uivector lz77_encoded; + HuffmanTree tree_ll; /*tree for lit,len values*/ + HuffmanTree tree_d; /*tree for distance codes*/ + HuffmanTree tree_cl; /*tree for encoding the code lengths representing tree_ll and tree_d*/ + uivector frequencies_ll; /*frequency of lit,len codes*/ + uivector frequencies_d; /*frequency of dist codes*/ + uivector frequencies_cl; /*frequency of code length codes*/ + uivector bitlen_lld; /*lit,len,dist code lenghts (int bits), literally (without repeat codes).*/ + uivector bitlen_lld_e; /*bitlen_lld encoded with repeat codes (this is a rudemtary run length compression)*/ + /*bitlen_cl is the code length code lengths ("clcl"). The bit lengths of codes to represent tree_cl + (these are written as is in the file, it would be crazy to compress these using yet another huffman + tree that needs to be represented by yet another set of code lengths)*/ + uivector bitlen_cl; + size_t datasize = dataend - datapos; + + /* + Due to the huffman compression of huffman tree representations ("two levels"), there are some anologies: + bitlen_lld is to tree_cl what data is to tree_ll and tree_d. + bitlen_lld_e is to bitlen_lld what lz77_encoded is to data. + bitlen_cl is to bitlen_lld_e what bitlen_lld is to lz77_encoded. + */ + + unsigned BFINAL = final; + size_t numcodes_ll, numcodes_d, i; + unsigned HLIT, HDIST, HCLEN; + + uivector_init(&lz77_encoded); + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + HuffmanTree_init(&tree_cl); + uivector_init(&frequencies_ll); + uivector_init(&frequencies_d); + uivector_init(&frequencies_cl); + uivector_init(&bitlen_lld); + uivector_init(&bitlen_lld_e); + uivector_init(&bitlen_cl); + + /*This while loop never loops due to a break at the end, it is here to + allow breaking out of it to the cleanup phase on error conditions.*/ + while(!error) + { + if(settings->use_lz77) + { + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(error) break; + } + else + { + if(!uivector_resize(&lz77_encoded, datasize)) ERROR_BREAK(83 /*alloc fail*/); + for(i = datapos; i < dataend; ++i) lz77_encoded.data[i - datapos] = data[i]; /*no LZ77, but still will be Huffman compressed*/ + } + + if(!uivector_resizev(&frequencies_ll, 286, 0)) ERROR_BREAK(83 /*alloc fail*/); + if(!uivector_resizev(&frequencies_d, 30, 0)) ERROR_BREAK(83 /*alloc fail*/); + + /*Count the frequencies of lit, len and dist codes*/ + for(i = 0; i != lz77_encoded.size; ++i) + { + unsigned symbol = lz77_encoded.data[i]; + ++frequencies_ll.data[symbol]; + if(symbol > 256) + { + unsigned dist = lz77_encoded.data[i + 2]; + ++frequencies_d.data[dist]; + i += 3; + } + } + frequencies_ll.data[256] = 1; /*there will be exactly 1 end code, at the end of the block*/ + + /*Make both huffman trees, one for the lit and len codes, one for the dist codes*/ + error = HuffmanTree_makeFromFrequencies(&tree_ll, frequencies_ll.data, 257, frequencies_ll.size, 15); + if(error) break; + /*2, not 1, is chosen for mincodes: some buggy PNG decoders require at least 2 symbols in the dist tree*/ + error = HuffmanTree_makeFromFrequencies(&tree_d, frequencies_d.data, 2, frequencies_d.size, 15); + if(error) break; + + numcodes_ll = tree_ll.numcodes; if(numcodes_ll > 286) numcodes_ll = 286; + numcodes_d = tree_d.numcodes; if(numcodes_d > 30) numcodes_d = 30; + /*store the code lengths of both generated trees in bitlen_lld*/ + for(i = 0; i != numcodes_ll; ++i) uivector_push_back(&bitlen_lld, HuffmanTree_getLength(&tree_ll, (unsigned)i)); + for(i = 0; i != numcodes_d; ++i) uivector_push_back(&bitlen_lld, HuffmanTree_getLength(&tree_d, (unsigned)i)); + + /*run-length compress bitlen_ldd into bitlen_lld_e by using repeat codes 16 (copy length 3-6 times), + 17 (3-10 zeroes), 18 (11-138 zeroes)*/ + for(i = 0; i != (unsigned)bitlen_lld.size; ++i) + { + unsigned j = 0; /*amount of repititions*/ + while(i + j + 1 < (unsigned)bitlen_lld.size && bitlen_lld.data[i + j + 1] == bitlen_lld.data[i]) ++j; + + if(bitlen_lld.data[i] == 0 && j >= 2) /*repeat code for zeroes*/ + { + ++j; /*include the first zero*/ + if(j <= 10) /*repeat code 17 supports max 10 zeroes*/ + { + uivector_push_back(&bitlen_lld_e, 17); + uivector_push_back(&bitlen_lld_e, j - 3); + } + else /*repeat code 18 supports max 138 zeroes*/ + { + if(j > 138) j = 138; + uivector_push_back(&bitlen_lld_e, 18); + uivector_push_back(&bitlen_lld_e, j - 11); + } + i += (j - 1); + } + else if(j >= 3) /*repeat code for value other than zero*/ + { + size_t k; + unsigned num = j / 6, rest = j % 6; + uivector_push_back(&bitlen_lld_e, bitlen_lld.data[i]); + for(k = 0; k < num; ++k) + { + uivector_push_back(&bitlen_lld_e, 16); + uivector_push_back(&bitlen_lld_e, 6 - 3); + } + if(rest >= 3) + { + uivector_push_back(&bitlen_lld_e, 16); + uivector_push_back(&bitlen_lld_e, rest - 3); + } + else j -= rest; + i += j; + } + else /*too short to benefit from repeat code*/ + { + uivector_push_back(&bitlen_lld_e, bitlen_lld.data[i]); + } + } + + /*generate tree_cl, the huffmantree of huffmantrees*/ + + if(!uivector_resizev(&frequencies_cl, NUM_CODE_LENGTH_CODES, 0)) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != bitlen_lld_e.size; ++i) + { + ++frequencies_cl.data[bitlen_lld_e.data[i]]; + /*after a repeat code come the bits that specify the number of repetitions, + those don't need to be in the frequencies_cl calculation*/ + if(bitlen_lld_e.data[i] >= 16) ++i; + } + + error = HuffmanTree_makeFromFrequencies(&tree_cl, frequencies_cl.data, + frequencies_cl.size, frequencies_cl.size, 7); + if(error) break; + + if(!uivector_resize(&bitlen_cl, tree_cl.numcodes)) ERROR_BREAK(83 /*alloc fail*/); + for(i = 0; i != tree_cl.numcodes; ++i) + { + /*lenghts of code length tree is in the order as specified by deflate*/ + bitlen_cl.data[i] = HuffmanTree_getLength(&tree_cl, CLCL_ORDER[i]); + } + while(bitlen_cl.data[bitlen_cl.size - 1] == 0 && bitlen_cl.size > 4) + { + /*remove zeros at the end, but minimum size must be 4*/ + if(!uivector_resize(&bitlen_cl, bitlen_cl.size - 1)) ERROR_BREAK(83 /*alloc fail*/); + } + if(error) break; + + /* + Write everything into the output + + After the BFINAL and BTYPE, the dynamic block consists out of the following: + - 5 bits HLIT, 5 bits HDIST, 4 bits HCLEN + - (HCLEN+4)*3 bits code lengths of code length alphabet + - HLIT + 257 code lenghts of lit/length alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - HDIST + 1 code lengths of distance alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - compressed data + - 256 (end code) + */ + + /*Write block type*/ + addBitToStream(bp, out, BFINAL); + addBitToStream(bp, out, 0); /*first bit of BTYPE "dynamic"*/ + addBitToStream(bp, out, 1); /*second bit of BTYPE "dynamic"*/ + + /*write the HLIT, HDIST and HCLEN values*/ + HLIT = (unsigned)(numcodes_ll - 257); + HDIST = (unsigned)(numcodes_d - 1); + HCLEN = (unsigned)bitlen_cl.size - 4; + /*trim zeroes for HCLEN. HLIT and HDIST were already trimmed at tree creation*/ + while(!bitlen_cl.data[HCLEN + 4 - 1] && HCLEN > 0) --HCLEN; + addBitsToStream(bp, out, HLIT, 5); + addBitsToStream(bp, out, HDIST, 5); + addBitsToStream(bp, out, HCLEN, 4); + + /*write the code lenghts of the code length alphabet*/ + for(i = 0; i != HCLEN + 4; ++i) addBitsToStream(bp, out, bitlen_cl.data[i], 3); + + /*write the lenghts of the lit/len AND the dist alphabet*/ + for(i = 0; i != bitlen_lld_e.size; ++i) + { + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_cl, bitlen_lld_e.data[i]), + HuffmanTree_getLength(&tree_cl, bitlen_lld_e.data[i])); + /*extra bits of repeat codes*/ + if(bitlen_lld_e.data[i] == 16) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 2); + else if(bitlen_lld_e.data[i] == 17) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 3); + else if(bitlen_lld_e.data[i] == 18) addBitsToStream(bp, out, bitlen_lld_e.data[++i], 7); + } + + /*write the compressed data symbols*/ + writeLZ77data(bp, out, &lz77_encoded, &tree_ll, &tree_d); + /*error: the length of the end code 256 must be larger than 0*/ + if(HuffmanTree_getLength(&tree_ll, 256) == 0) ERROR_BREAK(64); + + /*write the end code*/ + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, 256), HuffmanTree_getLength(&tree_ll, 256)); + + break; /*end of error-while*/ + } + + /*cleanup*/ + uivector_cleanup(&lz77_encoded); + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + HuffmanTree_cleanup(&tree_cl); + uivector_cleanup(&frequencies_ll); + uivector_cleanup(&frequencies_d); + uivector_cleanup(&frequencies_cl); + uivector_cleanup(&bitlen_lld_e); + uivector_cleanup(&bitlen_lld); + uivector_cleanup(&bitlen_cl); + + return error; +} + +static unsigned deflateFixed(ucvector* out, size_t* bp, Hash* hash, + const unsigned char* data, + size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) +{ + HuffmanTree tree_ll; /*tree for literal values and length codes*/ + HuffmanTree tree_d; /*tree for distance codes*/ + + unsigned BFINAL = final; + unsigned error = 0; + size_t i; + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + generateFixedLitLenTree(&tree_ll); + generateFixedDistanceTree(&tree_d); + + addBitToStream(bp, out, BFINAL); + addBitToStream(bp, out, 1); /*first bit of BTYPE*/ + addBitToStream(bp, out, 0); /*second bit of BTYPE*/ + + if(settings->use_lz77) /*LZ77 encoded*/ + { + uivector lz77_encoded; + uivector_init(&lz77_encoded); + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(!error) writeLZ77data(bp, out, &lz77_encoded, &tree_ll, &tree_d); + uivector_cleanup(&lz77_encoded); + } + else /*no LZ77, but still will be Huffman compressed*/ + { + for(i = datapos; i < dataend; ++i) + { + addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, data[i]), HuffmanTree_getLength(&tree_ll, data[i])); + } + } + /*add END code*/ + if(!error) addHuffmanSymbol(bp, out, HuffmanTree_getCode(&tree_ll, 256), HuffmanTree_getLength(&tree_ll, 256)); + + /*cleanup*/ + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned lodepng_deflatev(ucvector* out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + unsigned error = 0; + size_t i, blocksize, numdeflateblocks; + size_t bp = 0; /*the bit pointer*/ + Hash hash; + + if(settings->btype > 2) return 61; + else if(settings->btype == 0) return deflateNoCompression(out, in, insize); + else if(settings->btype == 1) blocksize = insize; + else /*if(settings->btype == 2)*/ + { + /*on PNGs, deflate blocks of 65-262k seem to give most dense encoding*/ + blocksize = insize / 8 + 8; + if(blocksize < 65536) blocksize = 65536; + if(blocksize > 262144) blocksize = 262144; + } + + numdeflateblocks = (insize + blocksize - 1) / blocksize; + if(numdeflateblocks == 0) numdeflateblocks = 1; + + error = hash_init(&hash, settings->windowsize); + if(error) return error; + + for(i = 0; i != numdeflateblocks && !error; ++i) + { + unsigned final = (i == numdeflateblocks - 1); + size_t start = i * blocksize; + size_t end = start + blocksize; + if(end > insize) end = insize; + + if(settings->btype == 1) error = deflateFixed(out, &bp, &hash, in, start, end, settings, final); + else if(settings->btype == 2) error = deflateDynamic(out, &bp, &hash, in, start, end, settings, final); + } + + hash_cleanup(&hash); + + return error; +} + +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + unsigned error; + ucvector v; + ucvector_init_buffer(&v, *out, *outsize); + error = lodepng_deflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) +{ + if(settings->custom_deflate) + { + return settings->custom_deflate(out, outsize, in, insize, settings); + } + else + { + return lodepng_deflate(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Adler32 */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static unsigned update_adler32(unsigned adler, const unsigned char* data, unsigned len) +{ + unsigned s1 = adler & 0xffff; + unsigned s2 = (adler >> 16) & 0xffff; + + while(len > 0) + { + /*at least 5550 sums can be done before the sums overflow, saving a lot of module divisions*/ + unsigned amount = len > 5550 ? 5550 : len; + len -= amount; + while(amount > 0) + { + s1 += (*data++); + s2 += s1; + --amount; + } + s1 %= 65521; + s2 %= 65521; + } + + return (s2 << 16) | s1; +} + +/*Return the adler32 of the bytes data[0..len-1]*/ +static unsigned adler32(const unsigned char* data, unsigned len) +{ + return update_adler32(1L, data, len); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Zlib / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DECODER + +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + unsigned error = 0; + unsigned CM, CINFO, FDICT; + + if(insize < 2) return 53; /*error, size of zlib data too small*/ + /*read information from zlib header*/ + if((in[0] * 256 + in[1]) % 31 != 0) + { + /*error: 256 * in[0] + in[1] must be a multiple of 31, the FCHECK value is supposed to be made that way*/ + return 24; + } + + CM = in[0] & 15; + CINFO = (in[0] >> 4) & 15; + /*FCHECK = in[1] & 31;*/ /*FCHECK is already tested above*/ + FDICT = (in[1] >> 5) & 1; + /*FLEVEL = (in[1] >> 6) & 3;*/ /*FLEVEL is not used here*/ + + if(CM != 8 || CINFO > 7) + { + /*error: only compression method 8: inflate with sliding window of 32k is supported by the PNG spec*/ + return 25; + } + if(FDICT != 0) + { + /*error: the specification of PNG says about the zlib stream: + "The additional flags shall not specify a preset dictionary."*/ + return 26; + } + + error = inflate(out, outsize, in + 2, insize - 2, settings); + if(error) return error; + + if(!settings->ignore_adler32) + { + unsigned ADLER32 = lodepng_read32bitInt(&in[insize - 4]); + unsigned checksum = adler32(*out, (unsigned)(*outsize)); + if(checksum != ADLER32) return 58; /*error, adler checksum not correct, data must be corrupted*/ + } + + return 0; /*no error*/ +} + +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + if(settings->custom_zlib) + { + return settings->custom_zlib(out, outsize, in, insize, settings); + } + else + { + return lodepng_zlib_decompress(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + /*initially, *out must be NULL and outsize 0, if you just give some random *out + that's pointing to a non allocated buffer, this'll crash*/ + ucvector outv; + size_t i; + unsigned error; + unsigned char* deflatedata = 0; + size_t deflatesize = 0; + + /*zlib data: 1 byte CMF (CM+CINFO), 1 byte FLG, deflate data, 4 byte ADLER32 checksum of the Decompressed data*/ + unsigned CMF = 120; /*0b01111000: CM 8, CINFO 7. With CINFO 7, any window size up to 32768 can be used.*/ + unsigned FLEVEL = 0; + unsigned FDICT = 0; + unsigned CMFFLG = 256 * CMF + FDICT * 32 + FLEVEL * 64; + unsigned FCHECK = 31 - CMFFLG % 31; + CMFFLG += FCHECK; + + /*ucvector-controlled version of the output buffer, for dynamic array*/ + ucvector_init_buffer(&outv, *out, *outsize); + + ucvector_push_back(&outv, (unsigned char)(CMFFLG >> 8)); + ucvector_push_back(&outv, (unsigned char)(CMFFLG & 255)); + + error = deflate(&deflatedata, &deflatesize, in, insize, settings); + + if(!error) + { + unsigned ADLER32 = adler32(in, (unsigned)insize); + for(i = 0; i != deflatesize; ++i) ucvector_push_back(&outv, deflatedata[i]); + lodepng_free(deflatedata); + lodepng_add32bitInt(&outv, ADLER32); + } + + *out = outv.data; + *outsize = outv.size; + + return error; +} + +/* compress using the default or custom zlib function */ +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + if(settings->custom_zlib) + { + return settings->custom_zlib(out, outsize, in, insize, settings); + } + else + { + return lodepng_zlib_compress(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#else /*no LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DECODER +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) +{ + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) +{ + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/*this is a good tradeoff between speed and compression ratio*/ +#define DEFAULT_WINDOWSIZE 2048 + +void lodepng_compress_settings_init(LodePNGCompressSettings* settings) +{ + /*compress with dynamic huffman tree (not in the mathematical sense, just not the predefined one)*/ + settings->btype = 2; + settings->use_lz77 = 1; + settings->windowsize = DEFAULT_WINDOWSIZE; + settings->minmatch = 3; + settings->nicematch = 128; + settings->lazymatching = 1; + + settings->custom_zlib = 0; + settings->custom_deflate = 0; + settings->custom_context = 0; +} + +const LodePNGCompressSettings lodepng_default_compress_settings = {2, 1, DEFAULT_WINDOWSIZE, 3, 128, 1, 0, 0, 0}; + + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings) +{ + settings->ignore_adler32 = 0; + + settings->custom_zlib = 0; + settings->custom_inflate = 0; + settings->custom_context = 0; +} + +const LodePNGDecompressSettings lodepng_default_decompress_settings = {0, 0, 0, 0}; + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of Zlib related code. Begin of PNG related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / CRC32 / */ +/* ////////////////////////////////////////////////////////////////////////// */ + + +#ifndef LODEPNG_NO_COMPILE_CRC +/* CRC polynomial: 0xedb88320 */ +static unsigned lodepng_crc32_table[256] = { + 0u, 1996959894u, 3993919788u, 2567524794u, 124634137u, 1886057615u, 3915621685u, 2657392035u, + 249268274u, 2044508324u, 3772115230u, 2547177864u, 162941995u, 2125561021u, 3887607047u, 2428444049u, + 498536548u, 1789927666u, 4089016648u, 2227061214u, 450548861u, 1843258603u, 4107580753u, 2211677639u, + 325883990u, 1684777152u, 4251122042u, 2321926636u, 335633487u, 1661365465u, 4195302755u, 2366115317u, + 997073096u, 1281953886u, 3579855332u, 2724688242u, 1006888145u, 1258607687u, 3524101629u, 2768942443u, + 901097722u, 1119000684u, 3686517206u, 2898065728u, 853044451u, 1172266101u, 3705015759u, 2882616665u, + 651767980u, 1373503546u, 3369554304u, 3218104598u, 565507253u, 1454621731u, 3485111705u, 3099436303u, + 671266974u, 1594198024u, 3322730930u, 2970347812u, 795835527u, 1483230225u, 3244367275u, 3060149565u, + 1994146192u, 31158534u, 2563907772u, 4023717930u, 1907459465u, 112637215u, 2680153253u, 3904427059u, + 2013776290u, 251722036u, 2517215374u, 3775830040u, 2137656763u, 141376813u, 2439277719u, 3865271297u, + 1802195444u, 476864866u, 2238001368u, 4066508878u, 1812370925u, 453092731u, 2181625025u, 4111451223u, + 1706088902u, 314042704u, 2344532202u, 4240017532u, 1658658271u, 366619977u, 2362670323u, 4224994405u, + 1303535960u, 984961486u, 2747007092u, 3569037538u, 1256170817u, 1037604311u, 2765210733u, 3554079995u, + 1131014506u, 879679996u, 2909243462u, 3663771856u, 1141124467u, 855842277u, 2852801631u, 3708648649u, + 1342533948u, 654459306u, 3188396048u, 3373015174u, 1466479909u, 544179635u, 3110523913u, 3462522015u, + 1591671054u, 702138776u, 2966460450u, 3352799412u, 1504918807u, 783551873u, 3082640443u, 3233442989u, + 3988292384u, 2596254646u, 62317068u, 1957810842u, 3939845945u, 2647816111u, 81470997u, 1943803523u, + 3814918930u, 2489596804u, 225274430u, 2053790376u, 3826175755u, 2466906013u, 167816743u, 2097651377u, + 4027552580u, 2265490386u, 503444072u, 1762050814u, 4150417245u, 2154129355u, 426522225u, 1852507879u, + 4275313526u, 2312317920u, 282753626u, 1742555852u, 4189708143u, 2394877945u, 397917763u, 1622183637u, + 3604390888u, 2714866558u, 953729732u, 1340076626u, 3518719985u, 2797360999u, 1068828381u, 1219638859u, + 3624741850u, 2936675148u, 906185462u, 1090812512u, 3747672003u, 2825379669u, 829329135u, 1181335161u, + 3412177804u, 3160834842u, 628085408u, 1382605366u, 3423369109u, 3138078467u, 570562233u, 1426400815u, + 3317316542u, 2998733608u, 733239954u, 1555261956u, 3268935591u, 3050360625u, 752459403u, 1541320221u, + 2607071920u, 3965973030u, 1969922972u, 40735498u, 2617837225u, 3943577151u, 1913087877u, 83908371u, + 2512341634u, 3803740692u, 2075208622u, 213261112u, 2463272603u, 3855990285u, 2094854071u, 198958881u, + 2262029012u, 4057260610u, 1759359992u, 534414190u, 2176718541u, 4139329115u, 1873836001u, 414664567u, + 2282248934u, 4279200368u, 1711684554u, 285281116u, 2405801727u, 4167216745u, 1634467795u, 376229701u, + 2685067896u, 3608007406u, 1308918612u, 956543938u, 2808555105u, 3495958263u, 1231636301u, 1047427035u, + 2932959818u, 3654703836u, 1088359270u, 936918000u, 2847714899u, 3736837829u, 1202900863u, 817233897u, + 3183342108u, 3401237130u, 1404277552u, 615818150u, 3134207493u, 3453421203u, 1423857449u, 601450431u, + 3009837614u, 3294710456u, 1567103746u, 711928724u, 3020668471u, 3272380065u, 1510334235u, 755167117u +}; + +/*Return the CRC of the bytes buf[0..len-1].*/ +unsigned lodepng_crc32(const unsigned char* data, size_t length) +{ + unsigned r = 0xffffffffu; + size_t i; + for(i = 0; i < length; ++i) + { + r = lodepng_crc32_table[(r ^ data[i]) & 0xff] ^ (r >> 8); + } + return r ^ 0xffffffffu; +} +#else /* !LODEPNG_NO_COMPILE_CRC */ +unsigned lodepng_crc32(const unsigned char* data, size_t length); +#endif /* !LODEPNG_NO_COMPILE_CRC */ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Reading and writing single bits and bytes from/to stream for LodePNG / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static unsigned char readBitFromReversedStream(size_t* bitpointer, const unsigned char* bitstream) +{ + unsigned char result = (unsigned char)((bitstream[(*bitpointer) >> 3] >> (7 - ((*bitpointer) & 0x7))) & 1); + ++(*bitpointer); + return result; +} + +static unsigned readBitsFromReversedStream(size_t* bitpointer, const unsigned char* bitstream, size_t nbits) +{ + unsigned result = 0; + size_t i; + for(i = 0 ; i < nbits; ++i) + { + result <<= 1; + result |= (unsigned)readBitFromReversedStream(bitpointer, bitstream); + } + return result; +} + +#ifdef LODEPNG_COMPILE_DECODER +static void setBitOfReversedStream0(size_t* bitpointer, unsigned char* bitstream, unsigned char bit) +{ + /*the current bit in bitstream must be 0 for this to work*/ + if(bit) + { + /*earlier bit of huffman code is in a lesser significant bit of an earlier byte*/ + bitstream[(*bitpointer) >> 3] |= (bit << (7 - ((*bitpointer) & 0x7))); + } + ++(*bitpointer); +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +static void setBitOfReversedStream(size_t* bitpointer, unsigned char* bitstream, unsigned char bit) +{ + /*the current bit in bitstream may be 0 or 1 for this to work*/ + if(bit == 0) bitstream[(*bitpointer) >> 3] &= (unsigned char)(~(1 << (7 - ((*bitpointer) & 0x7)))); + else bitstream[(*bitpointer) >> 3] |= (1 << (7 - ((*bitpointer) & 0x7))); + ++(*bitpointer); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG chunks / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +unsigned lodepng_chunk_length(const unsigned char* chunk) +{ + return lodepng_read32bitInt(&chunk[0]); +} + +void lodepng_chunk_type(char type[5], const unsigned char* chunk) +{ + unsigned i; + for(i = 0; i != 4; ++i) type[i] = (char)chunk[4 + i]; + type[4] = 0; /*null termination char*/ +} + +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type) +{ + if(strlen(type) != 4) return 0; + return (chunk[4] == type[0] && chunk[5] == type[1] && chunk[6] == type[2] && chunk[7] == type[3]); +} + +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk) +{ + return((chunk[4] & 32) != 0); +} + +unsigned char lodepng_chunk_private(const unsigned char* chunk) +{ + return((chunk[6] & 32) != 0); +} + +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk) +{ + return((chunk[7] & 32) != 0); +} + +unsigned char* lodepng_chunk_data(unsigned char* chunk) +{ + return &chunk[8]; +} + +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk) +{ + return &chunk[8]; +} + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk) +{ + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_read32bitInt(&chunk[length + 8]); + /*the CRC is taken of the data and the 4 chunk type letters, not the length*/ + unsigned checksum = lodepng_crc32(&chunk[4], length + 4); + if(CRC != checksum) return 1; + else return 0; +} + +void lodepng_chunk_generate_crc(unsigned char* chunk) +{ + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_crc32(&chunk[4], length + 4); + lodepng_set32bitInt(chunk + 8 + length, CRC); +} + +unsigned char* lodepng_chunk_next(unsigned char* chunk) +{ + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + return &chunk[total_chunk_length]; +} + +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk) +{ + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + return &chunk[total_chunk_length]; +} + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk) +{ + unsigned i; + unsigned total_chunk_length = lodepng_chunk_length(chunk) + 12; + unsigned char *chunk_start, *new_buffer; + size_t new_length = (*outlength) + total_chunk_length; + if(new_length < total_chunk_length || new_length < (*outlength)) return 77; /*integer overflow happened*/ + + new_buffer = (unsigned char*)lodepng_realloc(*out, new_length); + if(!new_buffer) return 83; /*alloc fail*/ + (*out) = new_buffer; + (*outlength) = new_length; + chunk_start = &(*out)[new_length - total_chunk_length]; + + for(i = 0; i != total_chunk_length; ++i) chunk_start[i] = chunk[i]; + + return 0; +} + +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data) +{ + unsigned i; + unsigned char *chunk, *new_buffer; + size_t new_length = (*outlength) + length + 12; + if(new_length < length + 12 || new_length < (*outlength)) return 77; /*integer overflow happened*/ + new_buffer = (unsigned char*)lodepng_realloc(*out, new_length); + if(!new_buffer) return 83; /*alloc fail*/ + (*out) = new_buffer; + (*outlength) = new_length; + chunk = &(*out)[(*outlength) - length - 12]; + + /*1: length*/ + lodepng_set32bitInt(chunk, (unsigned)length); + + /*2: chunk name (4 letters)*/ + chunk[4] = (unsigned char)type[0]; + chunk[5] = (unsigned char)type[1]; + chunk[6] = (unsigned char)type[2]; + chunk[7] = (unsigned char)type[3]; + + /*3: the data*/ + for(i = 0; i != length; ++i) chunk[8 + i] = data[i]; + + /*4: CRC (of the chunkname characters and the data)*/ + lodepng_chunk_generate_crc(chunk); + + return 0; +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Color types and such / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*return type is a LodePNG error code*/ +static unsigned checkColorValidity(LodePNGColorType colortype, unsigned bd) /*bd = bitdepth*/ +{ + switch(colortype) + { + case 0: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 || bd == 16)) return 37; break; /*grey*/ + case 2: if(!( bd == 8 || bd == 16)) return 37; break; /*RGB*/ + case 3: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 )) return 37; break; /*palette*/ + case 4: if(!( bd == 8 || bd == 16)) return 37; break; /*grey + alpha*/ + case 6: if(!( bd == 8 || bd == 16)) return 37; break; /*RGBA*/ + default: return 31; + } + return 0; /*allowed color type / bits combination*/ +} + +static unsigned getNumColorChannels(LodePNGColorType colortype) +{ + switch(colortype) + { + case 0: return 1; /*grey*/ + case 2: return 3; /*RGB*/ + case 3: return 1; /*palette*/ + case 4: return 2; /*grey + alpha*/ + case 6: return 4; /*RGBA*/ + } + return 0; /*unexisting color type*/ +} + +static unsigned lodepng_get_bpp_lct(LodePNGColorType colortype, unsigned bitdepth) +{ + /*bits per pixel is amount of channels * bits per channel*/ + return getNumColorChannels(colortype) * bitdepth; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +void lodepng_color_mode_init(LodePNGColorMode* info) +{ + info->key_defined = 0; + info->key_r = info->key_g = info->key_b = 0; + info->colortype = LCT_RGBA; + info->bitdepth = 8; + info->palette = 0; + info->palettesize = 0; +} + +void lodepng_color_mode_cleanup(LodePNGColorMode* info) +{ + lodepng_palette_clear(info); +} + +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source) +{ + size_t i; + lodepng_color_mode_cleanup(dest); + *dest = *source; + if(source->palette) + { + dest->palette = (unsigned char*)lodepng_malloc(1024); + if(!dest->palette && source->palettesize) return 83; /*alloc fail*/ + for(i = 0; i != source->palettesize * 4; ++i) dest->palette[i] = source->palette[i]; + } + return 0; +} + +static int lodepng_color_mode_equal(const LodePNGColorMode* a, const LodePNGColorMode* b) +{ + size_t i; + if(a->colortype != b->colortype) return 0; + if(a->bitdepth != b->bitdepth) return 0; + if(a->key_defined != b->key_defined) return 0; + if(a->key_defined) + { + if(a->key_r != b->key_r) return 0; + if(a->key_g != b->key_g) return 0; + if(a->key_b != b->key_b) return 0; + } + /*if one of the palette sizes is 0, then we consider it to be the same as the + other: it means that e.g. the palette was not given by the user and should be + considered the same as the palette inside the PNG.*/ + if(1/*a->palettesize != 0 && b->palettesize != 0*/) { + if(a->palettesize != b->palettesize) return 0; + for(i = 0; i != a->palettesize * 4; ++i) + { + if(a->palette[i] != b->palette[i]) return 0; + } + } + return 1; +} + +void lodepng_palette_clear(LodePNGColorMode* info) +{ + if(info->palette) lodepng_free(info->palette); + info->palette = 0; + info->palettesize = 0; +} + +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + unsigned char* data; + /*the same resize technique as C++ std::vectors is used, and here it's made so that for a palette with + the max of 256 colors, it'll have the exact alloc size*/ + if(!info->palette) /*allocate palette if empty*/ + { + /*room for 256 colors with 4 bytes each*/ + data = (unsigned char*)lodepng_realloc(info->palette, 1024); + if(!data) return 83; /*alloc fail*/ + else info->palette = data; + } + info->palette[4 * info->palettesize + 0] = r; + info->palette[4 * info->palettesize + 1] = g; + info->palette[4 * info->palettesize + 2] = b; + info->palette[4 * info->palettesize + 3] = a; + ++info->palettesize; + return 0; +} + +unsigned lodepng_get_bpp(const LodePNGColorMode* info) +{ + /*calculate bits per pixel out of colortype and bitdepth*/ + return lodepng_get_bpp_lct(info->colortype, info->bitdepth); +} + +unsigned lodepng_get_channels(const LodePNGColorMode* info) +{ + return getNumColorChannels(info->colortype); +} + +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info) +{ + return info->colortype == LCT_GREY || info->colortype == LCT_GREY_ALPHA; +} + +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info) +{ + return (info->colortype & 4) != 0; /*4 or 6*/ +} + +unsigned lodepng_is_palette_type(const LodePNGColorMode* info) +{ + return info->colortype == LCT_PALETTE; +} + +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info) +{ + size_t i; + for(i = 0; i != info->palettesize; ++i) + { + if(info->palette[i * 4 + 3] < 255) return 1; + } + return 0; +} + +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info) +{ + return info->key_defined + || lodepng_is_alpha_type(info) + || lodepng_has_palette_alpha(info); +} + +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + size_t bpp = lodepng_get_bpp(color); + size_t n = w * h; + return ((n / 8) * bpp) + ((n & 7) * bpp + 7) / 8; +} + +size_t lodepng_get_raw_size_lct(unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + size_t bpp = lodepng_get_bpp_lct(colortype, bitdepth); + size_t n = w * h; + return ((n / 8) * bpp) + ((n & 7) * bpp + 7) / 8; +} + + +#ifdef LODEPNG_COMPILE_PNG +#ifdef LODEPNG_COMPILE_DECODER +/*in an idat chunk, each scanline is a multiple of 8 bits, unlike the lodepng output buffer*/ +static size_t lodepng_get_raw_size_idat(unsigned w, unsigned h, const LodePNGColorMode* color) +{ + /*will not overflow for any color type if roughly w * h < 268435455*/ + size_t bpp = lodepng_get_bpp(color); + size_t line = ((w / 8) * bpp) + ((w & 7) * bpp + 7) / 8; + return h * line; +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static void LodePNGUnknownChunks_init(LodePNGInfo* info) +{ + unsigned i; + for(i = 0; i != 3; ++i) info->unknown_chunks_data[i] = 0; + for(i = 0; i != 3; ++i) info->unknown_chunks_size[i] = 0; +} + +static void LodePNGUnknownChunks_cleanup(LodePNGInfo* info) +{ + unsigned i; + for(i = 0; i != 3; ++i) lodepng_free(info->unknown_chunks_data[i]); +} + +static unsigned LodePNGUnknownChunks_copy(LodePNGInfo* dest, const LodePNGInfo* src) +{ + unsigned i; + + LodePNGUnknownChunks_cleanup(dest); + + for(i = 0; i != 3; ++i) + { + size_t j; + dest->unknown_chunks_size[i] = src->unknown_chunks_size[i]; + dest->unknown_chunks_data[i] = (unsigned char*)lodepng_malloc(src->unknown_chunks_size[i]); + if(!dest->unknown_chunks_data[i] && dest->unknown_chunks_size[i]) return 83; /*alloc fail*/ + for(j = 0; j < src->unknown_chunks_size[i]; ++j) + { + dest->unknown_chunks_data[i][j] = src->unknown_chunks_data[i][j]; + } + } + + return 0; +} + +/******************************************************************************/ + +static void LodePNGText_init(LodePNGInfo* info) +{ + info->text_num = 0; + info->text_keys = NULL; + info->text_strings = NULL; +} + +static void LodePNGText_cleanup(LodePNGInfo* info) +{ + size_t i; + for(i = 0; i != info->text_num; ++i) + { + string_cleanup(&info->text_keys[i]); + string_cleanup(&info->text_strings[i]); + } + lodepng_free(info->text_keys); + lodepng_free(info->text_strings); +} + +static unsigned LodePNGText_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + size_t i = 0; + dest->text_keys = 0; + dest->text_strings = 0; + dest->text_num = 0; + for(i = 0; i != source->text_num; ++i) + { + CERROR_TRY_RETURN(lodepng_add_text(dest, source->text_keys[i], source->text_strings[i])); + } + return 0; +} + +void lodepng_clear_text(LodePNGInfo* info) +{ + LodePNGText_cleanup(info); +} + +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str) +{ + char** new_keys = (char**)(lodepng_realloc(info->text_keys, sizeof(char*) * (info->text_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->text_strings, sizeof(char*) * (info->text_num + 1))); + if(!new_keys || !new_strings) + { + lodepng_free(new_keys); + lodepng_free(new_strings); + return 83; /*alloc fail*/ + } + + ++info->text_num; + info->text_keys = new_keys; + info->text_strings = new_strings; + + string_init(&info->text_keys[info->text_num - 1]); + string_set(&info->text_keys[info->text_num - 1], key); + + string_init(&info->text_strings[info->text_num - 1]); + string_set(&info->text_strings[info->text_num - 1], str); + + return 0; +} + +/******************************************************************************/ + +static void LodePNGIText_init(LodePNGInfo* info) +{ + info->itext_num = 0; + info->itext_keys = NULL; + info->itext_langtags = NULL; + info->itext_transkeys = NULL; + info->itext_strings = NULL; +} + +static void LodePNGIText_cleanup(LodePNGInfo* info) +{ + size_t i; + for(i = 0; i != info->itext_num; ++i) + { + string_cleanup(&info->itext_keys[i]); + string_cleanup(&info->itext_langtags[i]); + string_cleanup(&info->itext_transkeys[i]); + string_cleanup(&info->itext_strings[i]); + } + lodepng_free(info->itext_keys); + lodepng_free(info->itext_langtags); + lodepng_free(info->itext_transkeys); + lodepng_free(info->itext_strings); +} + +static unsigned LodePNGIText_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + size_t i = 0; + dest->itext_keys = 0; + dest->itext_langtags = 0; + dest->itext_transkeys = 0; + dest->itext_strings = 0; + dest->itext_num = 0; + for(i = 0; i != source->itext_num; ++i) + { + CERROR_TRY_RETURN(lodepng_add_itext(dest, source->itext_keys[i], source->itext_langtags[i], + source->itext_transkeys[i], source->itext_strings[i])); + } + return 0; +} + +void lodepng_clear_itext(LodePNGInfo* info) +{ + LodePNGIText_cleanup(info); +} + +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str) +{ + char** new_keys = (char**)(lodepng_realloc(info->itext_keys, sizeof(char*) * (info->itext_num + 1))); + char** new_langtags = (char**)(lodepng_realloc(info->itext_langtags, sizeof(char*) * (info->itext_num + 1))); + char** new_transkeys = (char**)(lodepng_realloc(info->itext_transkeys, sizeof(char*) * (info->itext_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->itext_strings, sizeof(char*) * (info->itext_num + 1))); + if(!new_keys || !new_langtags || !new_transkeys || !new_strings) + { + lodepng_free(new_keys); + lodepng_free(new_langtags); + lodepng_free(new_transkeys); + lodepng_free(new_strings); + return 83; /*alloc fail*/ + } + + ++info->itext_num; + info->itext_keys = new_keys; + info->itext_langtags = new_langtags; + info->itext_transkeys = new_transkeys; + info->itext_strings = new_strings; + + string_init(&info->itext_keys[info->itext_num - 1]); + string_set(&info->itext_keys[info->itext_num - 1], key); + + string_init(&info->itext_langtags[info->itext_num - 1]); + string_set(&info->itext_langtags[info->itext_num - 1], langtag); + + string_init(&info->itext_transkeys[info->itext_num - 1]); + string_set(&info->itext_transkeys[info->itext_num - 1], transkey); + + string_init(&info->itext_strings[info->itext_num - 1]); + string_set(&info->itext_strings[info->itext_num - 1], str); + + return 0; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +void lodepng_info_init(LodePNGInfo* info) +{ + lodepng_color_mode_init(&info->color); + info->interlace_method = 0; + info->compression_method = 0; + info->filter_method = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + info->background_defined = 0; + info->background_r = info->background_g = info->background_b = 0; + + LodePNGText_init(info); + LodePNGIText_init(info); + + info->time_defined = 0; + info->phys_defined = 0; + + LodePNGUnknownChunks_init(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +void lodepng_info_cleanup(LodePNGInfo* info) +{ + lodepng_color_mode_cleanup(&info->color); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + LodePNGText_cleanup(info); + LodePNGIText_cleanup(info); + + LodePNGUnknownChunks_cleanup(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source) +{ + lodepng_info_cleanup(dest); + *dest = *source; + lodepng_color_mode_init(&dest->color); + CERROR_TRY_RETURN(lodepng_color_mode_copy(&dest->color, &source->color)); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + CERROR_TRY_RETURN(LodePNGText_copy(dest, source)); + CERROR_TRY_RETURN(LodePNGIText_copy(dest, source)); + + LodePNGUnknownChunks_init(dest); + CERROR_TRY_RETURN(LodePNGUnknownChunks_copy(dest, source)); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + return 0; +} + +void lodepng_info_swap(LodePNGInfo* a, LodePNGInfo* b) +{ + LodePNGInfo temp = *a; + *a = *b; + *b = temp; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +/*index: bitgroup index, bits: bitgroup size(1, 2 or 4), in: bitgroup value, out: octet array to add bits to*/ +static void addColorBits(unsigned char* out, size_t index, unsigned bits, unsigned in) +{ + unsigned m = bits == 1 ? 7 : bits == 2 ? 3 : 1; /*8 / bits - 1*/ + /*p = the partial index in the byte, e.g. with 4 palettebits it is 0 for first half or 1 for second half*/ + unsigned p = index & m; + in &= (1u << bits) - 1u; /*filter out any other bits of the input value*/ + in = in << (bits * (m - p)); + if(p == 0) out[index * bits / 8] = in; + else out[index * bits / 8] |= in; +} + +typedef struct ColorTree ColorTree; + +/* +One node of a color tree +This is the data structure used to count the number of unique colors and to get a palette +index for a color. It's like an octree, but because the alpha channel is used too, each +node has 16 instead of 8 children. +*/ +struct ColorTree +{ + ColorTree* children[16]; /*up to 16 pointers to ColorTree of next level*/ + int index; /*the payload. Only has a meaningful value if this is in the last level*/ +}; + +static void color_tree_init(ColorTree* tree) +{ + int i; + for(i = 0; i != 16; ++i) tree->children[i] = 0; + tree->index = -1; +} + +static void color_tree_cleanup(ColorTree* tree) +{ + int i; + for(i = 0; i != 16; ++i) + { + if(tree->children[i]) + { + color_tree_cleanup(tree->children[i]); + lodepng_free(tree->children[i]); + } + } +} + +/*returns -1 if color not present, its index otherwise*/ +static int color_tree_get(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + int bit = 0; + for(bit = 0; bit < 8; ++bit) + { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) return -1; + else tree = tree->children[i]; + } + return tree ? tree->index : -1; +} + +#ifdef LODEPNG_COMPILE_ENCODER +static int color_tree_has(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return color_tree_get(tree, r, g, b, a) >= 0; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*color is not allowed to already exist. +Index should be >= 0 (it's signed to be compatible with using -1 for "doesn't exist")*/ +static void color_tree_add(ColorTree* tree, + unsigned char r, unsigned char g, unsigned char b, unsigned char a, unsigned index) +{ + int bit; + for(bit = 0; bit < 8; ++bit) + { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) + { + tree->children[i] = (ColorTree*)lodepng_malloc(sizeof(ColorTree)); + color_tree_init(tree->children[i]); + } + tree = tree->children[i]; + } + tree->index = (int)index; +} + +/*put a pixel, given its RGBA color, into image of any color type*/ +static unsigned rgba8ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, ColorTree* tree /*for palette*/, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + if(mode->colortype == LCT_GREY) + { + unsigned char grey = r; /*((unsigned short)r + g + b) / 3*/; + if(mode->bitdepth == 8) out[i] = grey; + else if(mode->bitdepth == 16) out[i * 2 + 0] = out[i * 2 + 1] = grey; + else + { + /*take the most significant bits of grey*/ + grey = (grey >> (8 - mode->bitdepth)) & ((1 << mode->bitdepth) - 1); + addColorBits(out, i, mode->bitdepth, grey); + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + out[i * 3 + 0] = r; + out[i * 3 + 1] = g; + out[i * 3 + 2] = b; + } + else + { + out[i * 6 + 0] = out[i * 6 + 1] = r; + out[i * 6 + 2] = out[i * 6 + 3] = g; + out[i * 6 + 4] = out[i * 6 + 5] = b; + } + } + else if(mode->colortype == LCT_PALETTE) + { + int index = color_tree_get(tree, r, g, b, a); + if(index < 0) return 82; /*color not in palette*/ + if(mode->bitdepth == 8) out[i] = index; + else addColorBits(out, i, mode->bitdepth, (unsigned)index); + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + unsigned char grey = r; /*((unsigned short)r + g + b) / 3*/; + if(mode->bitdepth == 8) + { + out[i * 2 + 0] = grey; + out[i * 2 + 1] = a; + } + else if(mode->bitdepth == 16) + { + out[i * 4 + 0] = out[i * 4 + 1] = grey; + out[i * 4 + 2] = out[i * 4 + 3] = a; + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + out[i * 4 + 0] = r; + out[i * 4 + 1] = g; + out[i * 4 + 2] = b; + out[i * 4 + 3] = a; + } + else + { + out[i * 8 + 0] = out[i * 8 + 1] = r; + out[i * 8 + 2] = out[i * 8 + 3] = g; + out[i * 8 + 4] = out[i * 8 + 5] = b; + out[i * 8 + 6] = out[i * 8 + 7] = a; + } + } + + return 0; /*no error*/ +} + +/*put a pixel, given its RGBA16 color, into image of any color 16-bitdepth type*/ +static void rgba16ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, + unsigned short r, unsigned short g, unsigned short b, unsigned short a) +{ + if(mode->colortype == LCT_GREY) + { + unsigned short grey = r; /*((unsigned)r + g + b) / 3*/; + out[i * 2 + 0] = (grey >> 8) & 255; + out[i * 2 + 1] = grey & 255; + } + else if(mode->colortype == LCT_RGB) + { + out[i * 6 + 0] = (r >> 8) & 255; + out[i * 6 + 1] = r & 255; + out[i * 6 + 2] = (g >> 8) & 255; + out[i * 6 + 3] = g & 255; + out[i * 6 + 4] = (b >> 8) & 255; + out[i * 6 + 5] = b & 255; + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + unsigned short grey = r; /*((unsigned)r + g + b) / 3*/; + out[i * 4 + 0] = (grey >> 8) & 255; + out[i * 4 + 1] = grey & 255; + out[i * 4 + 2] = (a >> 8) & 255; + out[i * 4 + 3] = a & 255; + } + else if(mode->colortype == LCT_RGBA) + { + out[i * 8 + 0] = (r >> 8) & 255; + out[i * 8 + 1] = r & 255; + out[i * 8 + 2] = (g >> 8) & 255; + out[i * 8 + 3] = g & 255; + out[i * 8 + 4] = (b >> 8) & 255; + out[i * 8 + 5] = b & 255; + out[i * 8 + 6] = (a >> 8) & 255; + out[i * 8 + 7] = a & 255; + } +} + +/*Get RGBA8 color of pixel with index i (y * width + x) from the raw image with given color type.*/ +static void getPixelColorRGBA8(unsigned char* r, unsigned char* g, + unsigned char* b, unsigned char* a, + const unsigned char* in, size_t i, + const LodePNGColorMode* mode) +{ + if(mode->colortype == LCT_GREY) + { + if(mode->bitdepth == 8) + { + *r = *g = *b = in[i]; + if(mode->key_defined && *r == mode->key_r) *a = 0; + else *a = 255; + } + else if(mode->bitdepth == 16) + { + *r = *g = *b = in[i * 2 + 0]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 255; + } + else + { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = i * mode->bitdepth; + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + *r = *g = *b = (value * 255) / highest; + if(mode->key_defined && value == mode->key_r) *a = 0; + else *a = 255; + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + *r = in[i * 3 + 0]; *g = in[i * 3 + 1]; *b = in[i * 3 + 2]; + if(mode->key_defined && *r == mode->key_r && *g == mode->key_g && *b == mode->key_b) *a = 0; + else *a = 255; + } + else + { + *r = in[i * 6 + 0]; + *g = in[i * 6 + 2]; + *b = in[i * 6 + 4]; + if(mode->key_defined && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 255; + } + } + else if(mode->colortype == LCT_PALETTE) + { + unsigned index; + if(mode->bitdepth == 8) index = in[i]; + else + { + size_t j = i * mode->bitdepth; + index = readBitsFromReversedStream(&j, in, mode->bitdepth); + } + + if(index >= mode->palettesize) + { + /*This is an error according to the PNG spec, but common PNG decoders make it black instead. + Done here too, slightly faster due to no error handling needed.*/ + *r = *g = *b = 0; + *a = 255; + } + else + { + *r = mode->palette[index * 4 + 0]; + *g = mode->palette[index * 4 + 1]; + *b = mode->palette[index * 4 + 2]; + *a = mode->palette[index * 4 + 3]; + } + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + if(mode->bitdepth == 8) + { + *r = *g = *b = in[i * 2 + 0]; + *a = in[i * 2 + 1]; + } + else + { + *r = *g = *b = in[i * 4 + 0]; + *a = in[i * 4 + 2]; + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + *r = in[i * 4 + 0]; + *g = in[i * 4 + 1]; + *b = in[i * 4 + 2]; + *a = in[i * 4 + 3]; + } + else + { + *r = in[i * 8 + 0]; + *g = in[i * 8 + 2]; + *b = in[i * 8 + 4]; + *a = in[i * 8 + 6]; + } + } +} + +/*Similar to getPixelColorRGBA8, but with all the for loops inside of the color +mode test cases, optimized to convert the colors much faster, when converting +to RGBA or RGB with 8 bit per cannel. buffer must be RGBA or RGB output with +enough memory, if has_alpha is true the output is RGBA. mode has the color mode +of the input buffer.*/ +static void getPixelColorsRGBA8(unsigned char* buffer, size_t numpixels, + unsigned has_alpha, const unsigned char* in, + const LodePNGColorMode* mode) +{ + unsigned num_channels = has_alpha ? 4 : 3; + size_t i; + if(mode->colortype == LCT_GREY) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i]; + if(has_alpha) buffer[3] = mode->key_defined && in[i] == mode->key_r ? 0 : 255; + } + } + else if(mode->bitdepth == 16) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 2]; + if(has_alpha) buffer[3] = mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r ? 0 : 255; + } + } + else + { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + buffer[0] = buffer[1] = buffer[2] = (value * 255) / highest; + if(has_alpha) buffer[3] = mode->key_defined && value == mode->key_r ? 0 : 255; + } + } + } + else if(mode->colortype == LCT_RGB) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 3 + 0]; + buffer[1] = in[i * 3 + 1]; + buffer[2] = in[i * 3 + 2]; + if(has_alpha) buffer[3] = mode->key_defined && buffer[0] == mode->key_r + && buffer[1]== mode->key_g && buffer[2] == mode->key_b ? 0 : 255; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 6 + 0]; + buffer[1] = in[i * 6 + 2]; + buffer[2] = in[i * 6 + 4]; + if(has_alpha) buffer[3] = mode->key_defined + && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b ? 0 : 255; + } + } + } + else if(mode->colortype == LCT_PALETTE) + { + unsigned index; + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + if(mode->bitdepth == 8) index = in[i]; + else index = readBitsFromReversedStream(&j, in, mode->bitdepth); + + if(index >= mode->palettesize) + { + /*This is an error according to the PNG spec, but most PNG decoders make it black instead. + Done here too, slightly faster due to no error handling needed.*/ + buffer[0] = buffer[1] = buffer[2] = 0; + if(has_alpha) buffer[3] = 255; + } + else + { + buffer[0] = mode->palette[index * 4 + 0]; + buffer[1] = mode->palette[index * 4 + 1]; + buffer[2] = mode->palette[index * 4 + 2]; + if(has_alpha) buffer[3] = mode->palette[index * 4 + 3]; + } + } + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 2 + 0]; + if(has_alpha) buffer[3] = in[i * 2 + 1]; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = buffer[1] = buffer[2] = in[i * 4 + 0]; + if(has_alpha) buffer[3] = in[i * 4 + 2]; + } + } + } + else if(mode->colortype == LCT_RGBA) + { + if(mode->bitdepth == 8) + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 4 + 0]; + buffer[1] = in[i * 4 + 1]; + buffer[2] = in[i * 4 + 2]; + if(has_alpha) buffer[3] = in[i * 4 + 3]; + } + } + else + { + for(i = 0; i != numpixels; ++i, buffer += num_channels) + { + buffer[0] = in[i * 8 + 0]; + buffer[1] = in[i * 8 + 2]; + buffer[2] = in[i * 8 + 4]; + if(has_alpha) buffer[3] = in[i * 8 + 6]; + } + } + } +} + +/*Get RGBA16 color of pixel with index i (y * width + x) from the raw image with +given color type, but the given color type must be 16-bit itself.*/ +static void getPixelColorRGBA16(unsigned short* r, unsigned short* g, unsigned short* b, unsigned short* a, + const unsigned char* in, size_t i, const LodePNGColorMode* mode) +{ + if(mode->colortype == LCT_GREY) + { + *r = *g = *b = 256 * in[i * 2 + 0] + in[i * 2 + 1]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 65535; + } + else if(mode->colortype == LCT_RGB) + { + *r = 256u * in[i * 6 + 0] + in[i * 6 + 1]; + *g = 256u * in[i * 6 + 2] + in[i * 6 + 3]; + *b = 256u * in[i * 6 + 4] + in[i * 6 + 5]; + if(mode->key_defined + && 256u * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256u * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256u * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 65535; + } + else if(mode->colortype == LCT_GREY_ALPHA) + { + *r = *g = *b = 256u * in[i * 4 + 0] + in[i * 4 + 1]; + *a = 256u * in[i * 4 + 2] + in[i * 4 + 3]; + } + else if(mode->colortype == LCT_RGBA) + { + *r = 256u * in[i * 8 + 0] + in[i * 8 + 1]; + *g = 256u * in[i * 8 + 2] + in[i * 8 + 3]; + *b = 256u * in[i * 8 + 4] + in[i * 8 + 5]; + *a = 256u * in[i * 8 + 6] + in[i * 8 + 7]; + } +} + +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h) +{ + size_t i; + ColorTree tree; + size_t numpixels = w * h; + + if(lodepng_color_mode_equal(mode_out, mode_in)) + { + size_t numbytes = lodepng_get_raw_size(w, h, mode_in); + for(i = 0; i != numbytes; ++i) out[i] = in[i]; + return 0; + } + + if(mode_out->colortype == LCT_PALETTE) + { + size_t palettesize = mode_out->palettesize; + const unsigned char* palette = mode_out->palette; + size_t palsize = 1u << mode_out->bitdepth; + /*if the user specified output palette but did not give the values, assume + they want the values of the input color type (assuming that one is palette). + Note that we never create a new palette ourselves.*/ + if(palettesize == 0) + { + palettesize = mode_in->palettesize; + palette = mode_in->palette; + } + if(palettesize < palsize) palsize = palettesize; + color_tree_init(&tree); + for(i = 0; i != palsize; ++i) + { + const unsigned char* p = &palette[i * 4]; + color_tree_add(&tree, p[0], p[1], p[2], p[3], i); + } + } + + if(mode_in->bitdepth == 16 && mode_out->bitdepth == 16) + { + for(i = 0; i != numpixels; ++i) + { + unsigned short r = 0, g = 0, b = 0, a = 0; + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + rgba16ToPixel(out, i, mode_out, r, g, b, a); + } + } + else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGBA) + { + getPixelColorsRGBA8(out, numpixels, 1, in, mode_in); + } + else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGB) + { + getPixelColorsRGBA8(out, numpixels, 0, in, mode_in); + } + else + { + unsigned char r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in); + CERROR_TRY_RETURN(rgba8ToPixel(out, i, mode_out, &tree, r, g, b, a)); + } + } + + if(mode_out->colortype == LCT_PALETTE) + { + color_tree_cleanup(&tree); + } + + return 0; /*no error*/ +} + +#ifdef LODEPNG_COMPILE_ENCODER + +void lodepng_color_profile_init(LodePNGColorProfile* profile) +{ + profile->colored = 0; + profile->key = 0; + profile->alpha = 0; + profile->key_r = profile->key_g = profile->key_b = 0; + profile->numcolors = 0; + profile->bits = 1; +} + +/*function used for debug purposes with C++*/ +/*void printColorProfile(LodePNGColorProfile* p) +{ + std::cout << "colored: " << (int)p->colored << ", "; + std::cout << "key: " << (int)p->key << ", "; + std::cout << "key_r: " << (int)p->key_r << ", "; + std::cout << "key_g: " << (int)p->key_g << ", "; + std::cout << "key_b: " << (int)p->key_b << ", "; + std::cout << "alpha: " << (int)p->alpha << ", "; + std::cout << "numcolors: " << (int)p->numcolors << ", "; + std::cout << "bits: " << (int)p->bits << std::endl; +}*/ + +/*Returns how many bits needed to represent given value (max 8 bit)*/ +static unsigned getValueRequiredBits(unsigned char value) +{ + if(value == 0 || value == 255) return 1; + /*The scaling of 2-bit and 4-bit values uses multiples of 85 and 17*/ + if(value % 17 == 0) return value % 85 == 0 ? 2 : 4; + return 8; +} + +/*profile must already have been inited with mode. +It's ok to set some parameters of profile to done already.*/ +unsigned lodepng_get_color_profile(LodePNGColorProfile* profile, + const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* mode) +{ + unsigned error = 0; + size_t i; + ColorTree tree; + size_t numpixels = w * h; + + unsigned colored_done = lodepng_is_greyscale_type(mode) ? 1 : 0; + unsigned alpha_done = lodepng_can_have_alpha(mode) ? 0 : 1; + unsigned numcolors_done = 0; + unsigned bpp = lodepng_get_bpp(mode); + unsigned bits_done = bpp == 1 ? 1 : 0; + unsigned maxnumcolors = 257; + unsigned sixteen = 0; + if(bpp <= 8) maxnumcolors = bpp == 1 ? 2 : (bpp == 2 ? 4 : (bpp == 4 ? 16 : 256)); + + color_tree_init(&tree); + + /*Check if the 16-bit input is truly 16-bit*/ + if(mode->bitdepth == 16) + { + unsigned short r, g, b, a; + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode); + if((r & 255) != ((r >> 8) & 255) || (g & 255) != ((g >> 8) & 255) || + (b & 255) != ((b >> 8) & 255) || (a & 255) != ((a >> 8) & 255)) /*first and second byte differ*/ + { + sixteen = 1; + break; + } + } + } + + if(sixteen) + { + unsigned short r = 0, g = 0, b = 0, a = 0; + profile->bits = 16; + bits_done = numcolors_done = 1; /*counting colors no longer useful, palette doesn't support 16-bit*/ + + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode); + + if(!colored_done && (r != g || r != b)) + { + profile->colored = 1; + colored_done = 1; + } + + if(!alpha_done) + { + unsigned matchkey = (r == profile->key_r && g == profile->key_g && b == profile->key_b); + if(a != 65535 && (a != 0 || (profile->key && !matchkey))) + { + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + else if(a == 0 && !profile->alpha && !profile->key) + { + profile->key = 1; + profile->key_r = r; + profile->key_g = g; + profile->key_b = b; + } + else if(a == 65535 && profile->key && matchkey) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + } + } + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + + if(profile->key && !profile->alpha) + { + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode); + if(a != 0 && r == profile->key_r && g == profile->key_g && b == profile->key_b) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + } + } + } + } + else /* < 16-bit */ + { + unsigned char r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode); + + if(!bits_done && profile->bits < 8) + { + /*only r is checked, < 8 bits is only relevant for greyscale*/ + unsigned bits = getValueRequiredBits(r); + if(bits > profile->bits) profile->bits = bits; + } + bits_done = (profile->bits >= bpp); + + if(!colored_done && (r != g || r != b)) + { + profile->colored = 1; + colored_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no colored modes with less than 8-bit per channel*/ + } + + if(!alpha_done) + { + unsigned matchkey = (r == profile->key_r && g == profile->key_g && b == profile->key_b); + if(a != 255 && (a != 0 || (profile->key && !matchkey))) + { + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + else if(a == 0 && !profile->alpha && !profile->key) + { + profile->key = 1; + profile->key_r = r; + profile->key_g = g; + profile->key_b = b; + } + else if(a == 255 && profile->key && matchkey) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + if(profile->bits < 8) profile->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + } + + if(!numcolors_done) + { + if(!color_tree_has(&tree, r, g, b, a)) + { + color_tree_add(&tree, r, g, b, a, profile->numcolors); + if(profile->numcolors < 256) + { + unsigned char* p = profile->palette; + unsigned n = profile->numcolors; + p[n * 4 + 0] = r; + p[n * 4 + 1] = g; + p[n * 4 + 2] = b; + p[n * 4 + 3] = a; + } + ++profile->numcolors; + numcolors_done = profile->numcolors >= maxnumcolors; + } + } + + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + + if(profile->key && !profile->alpha) + { + for(i = 0; i != numpixels; ++i) + { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode); + if(a != 0 && r == profile->key_r && g == profile->key_g && b == profile->key_b) + { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + profile->alpha = 1; + alpha_done = 1; + } + } + } + + /*make the profile's key always 16-bit for consistency - repeat each byte twice*/ + profile->key_r += (profile->key_r << 8); + profile->key_g += (profile->key_g << 8); + profile->key_b += (profile->key_b << 8); + } + + color_tree_cleanup(&tree); + return error; +} + +/*Automatically chooses color type that gives smallest amount of bits in the +output image, e.g. grey if there are only greyscale pixels, palette if there +are less than 256 colors, ... +Updates values of mode with a potentially smaller color model. mode_out should +contain the user chosen color model, but will be overwritten with the new chosen one.*/ +unsigned lodepng_auto_choose_color(LodePNGColorMode* mode_out, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in) +{ + LodePNGColorProfile prof; + unsigned error = 0; + unsigned i, n, palettebits, grey_ok, palette_ok; + + lodepng_color_profile_init(&prof); + error = lodepng_get_color_profile(&prof, image, w, h, mode_in); + if(error) return error; + mode_out->key_defined = 0; + + if(prof.key && w * h <= 16) + { + prof.alpha = 1; /*too few pixels to justify tRNS chunk overhead*/ + if(prof.bits < 8) prof.bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + grey_ok = !prof.colored && !prof.alpha; /*grey without alpha, with potentially low bits*/ + n = prof.numcolors; + palettebits = n <= 2 ? 1 : (n <= 4 ? 2 : (n <= 16 ? 4 : 8)); + palette_ok = n <= 256 && (n * 2 < w * h) && prof.bits <= 8; + if(w * h < n * 2) palette_ok = 0; /*don't add palette overhead if image has only a few pixels*/ + if(grey_ok && prof.bits <= palettebits) palette_ok = 0; /*grey is less overhead*/ + + if(palette_ok) + { + unsigned char* p = prof.palette; + lodepng_palette_clear(mode_out); /*remove potential earlier palette*/ + for(i = 0; i != prof.numcolors; ++i) + { + error = lodepng_palette_add(mode_out, p[i * 4 + 0], p[i * 4 + 1], p[i * 4 + 2], p[i * 4 + 3]); + if(error) break; + } + + mode_out->colortype = LCT_PALETTE; + mode_out->bitdepth = palettebits; + + if(mode_in->colortype == LCT_PALETTE && mode_in->palettesize >= mode_out->palettesize + && mode_in->bitdepth == mode_out->bitdepth) + { + /*If input should have same palette colors, keep original to preserve its order and prevent conversion*/ + lodepng_color_mode_cleanup(mode_out); + lodepng_color_mode_copy(mode_out, mode_in); + } + } + else /*8-bit or 16-bit per channel*/ + { + mode_out->bitdepth = prof.bits; + mode_out->colortype = prof.alpha ? (prof.colored ? LCT_RGBA : LCT_GREY_ALPHA) + : (prof.colored ? LCT_RGB : LCT_GREY); + + if(prof.key && !prof.alpha) + { + unsigned mask = (1u << mode_out->bitdepth) - 1u; /*profile always uses 16-bit, mask converts it*/ + mode_out->key_r = prof.key_r & mask; + mode_out->key_g = prof.key_g & mask; + mode_out->key_b = prof.key_b & mask; + mode_out->key_defined = 1; + } + } + + return error; +} + +#endif /* #ifdef LODEPNG_COMPILE_ENCODER */ + +/* +Paeth predicter, used by PNG filter type 4 +The parameters are of type short, but should come from unsigned chars, the shorts +are only needed to make the paeth calculation correct. +*/ +static unsigned char paethPredictor(short a, short b, short c) +{ + short pa = abs(b - c); + short pb = abs(a - c); + short pc = abs(a + b - c - c); + + if(pc < pa && pc < pb) return (unsigned char)c; + else if(pb < pa) return (unsigned char)b; + else return (unsigned char)a; +} + +/*shared values used by multiple Adam7 related functions*/ + +static const unsigned ADAM7_IX[7] = { 0, 4, 0, 2, 0, 1, 0 }; /*x start values*/ +static const unsigned ADAM7_IY[7] = { 0, 0, 4, 0, 2, 0, 1 }; /*y start values*/ +static const unsigned ADAM7_DX[7] = { 8, 8, 4, 4, 2, 2, 1 }; /*x delta values*/ +static const unsigned ADAM7_DY[7] = { 8, 8, 8, 4, 4, 2, 2 }; /*y delta values*/ + +/* +Outputs various dimensions and positions in the image related to the Adam7 reduced images. +passw: output containing the width of the 7 passes +passh: output containing the height of the 7 passes +filter_passstart: output containing the index of the start and end of each + reduced image with filter bytes +padded_passstart output containing the index of the start and end of each + reduced image when without filter bytes but with padded scanlines +passstart: output containing the index of the start and end of each reduced + image without padding between scanlines, but still padding between the images +w, h: width and height of non-interlaced image +bpp: bits per pixel +"padded" is only relevant if bpp is less than 8 and a scanline or image does not + end at a full byte +*/ +static void Adam7_getpassvalues(unsigned passw[7], unsigned passh[7], size_t filter_passstart[8], + size_t padded_passstart[8], size_t passstart[8], unsigned w, unsigned h, unsigned bpp) +{ + /*the passstart values have 8 values: the 8th one indicates the byte after the end of the 7th (= last) pass*/ + unsigned i; + + /*calculate width and height in pixels of each pass*/ + for(i = 0; i != 7; ++i) + { + passw[i] = (w + ADAM7_DX[i] - ADAM7_IX[i] - 1) / ADAM7_DX[i]; + passh[i] = (h + ADAM7_DY[i] - ADAM7_IY[i] - 1) / ADAM7_DY[i]; + if(passw[i] == 0) passh[i] = 0; + if(passh[i] == 0) passw[i] = 0; + } + + filter_passstart[0] = padded_passstart[0] = passstart[0] = 0; + for(i = 0; i != 7; ++i) + { + /*if passw[i] is 0, it's 0 bytes, not 1 (no filtertype-byte)*/ + filter_passstart[i + 1] = filter_passstart[i] + + ((passw[i] && passh[i]) ? passh[i] * (1 + (passw[i] * bpp + 7) / 8) : 0); + /*bits padded if needed to fill full byte at end of each scanline*/ + padded_passstart[i + 1] = padded_passstart[i] + passh[i] * ((passw[i] * bpp + 7) / 8); + /*only padded at end of reduced image*/ + passstart[i + 1] = passstart[i] + (passh[i] * passw[i] * bpp + 7) / 8; + } +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Decoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*read the information from the header and store it in the LodePNGInfo. return value is error*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, LodePNGState* state, + const unsigned char* in, size_t insize) +{ + LodePNGInfo* info = &state->info_png; + if(insize == 0 || in == 0) + { + CERROR_RETURN_ERROR(state->error, 48); /*error: the given data is empty*/ + } + if(insize < 33) + { + CERROR_RETURN_ERROR(state->error, 27); /*error: the data length is smaller than the length of a PNG header*/ + } + + /*when decoding a new PNG image, make sure all parameters created after previous decoding are reset*/ + lodepng_info_cleanup(info); + lodepng_info_init(info); + + if(in[0] != 137 || in[1] != 80 || in[2] != 78 || in[3] != 71 + || in[4] != 13 || in[5] != 10 || in[6] != 26 || in[7] != 10) + { + CERROR_RETURN_ERROR(state->error, 28); /*error: the first 8 bytes are not the correct PNG signature*/ + } + if(lodepng_chunk_length(in + 8) != 13) + { + CERROR_RETURN_ERROR(state->error, 94); /*error: header size must be 13 bytes*/ + } + if(!lodepng_chunk_type_equals(in + 8, "IHDR")) + { + CERROR_RETURN_ERROR(state->error, 29); /*error: it doesn't start with a IHDR chunk!*/ + } + + /*read the values given in the header*/ + *w = lodepng_read32bitInt(&in[16]); + *h = lodepng_read32bitInt(&in[20]); + info->color.bitdepth = in[24]; + info->color.colortype = (LodePNGColorType)in[25]; + info->compression_method = in[26]; + info->filter_method = in[27]; + info->interlace_method = in[28]; + + if(*w == 0 || *h == 0) + { + CERROR_RETURN_ERROR(state->error, 93); + } + + if(!state->decoder.ignore_crc) + { + unsigned CRC = lodepng_read32bitInt(&in[29]); + unsigned checksum = lodepng_crc32(&in[12], 17); + if(CRC != checksum) + { + CERROR_RETURN_ERROR(state->error, 57); /*invalid CRC*/ + } + } + + /*error: only compression method 0 is allowed in the specification*/ + if(info->compression_method != 0) CERROR_RETURN_ERROR(state->error, 32); + /*error: only filter method 0 is allowed in the specification*/ + if(info->filter_method != 0) CERROR_RETURN_ERROR(state->error, 33); + /*error: only interlace methods 0 and 1 exist in the specification*/ + if(info->interlace_method > 1) CERROR_RETURN_ERROR(state->error, 34); + + state->error = checkColorValidity(info->color.colortype, info->color.bitdepth); + return state->error; +} + +static unsigned unfilterScanline(unsigned char* recon, const unsigned char* scanline, const unsigned char* precon, + size_t bytewidth, unsigned char filterType, size_t length) +{ + /* + For PNG filter method 0 + unfilter a PNG image scanline by scanline. when the pixels are smaller than 1 byte, + the filter works byte per byte (bytewidth = 1) + precon is the previous unfiltered scanline, recon the result, scanline the current one + the incoming scanlines do NOT include the filtertype byte, that one is given in the parameter filterType instead + recon and scanline MAY be the same memory address! precon must be disjoint. + */ + + size_t i; + switch(filterType) + { + case 0: + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + break; + case 1: + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + recon[i - bytewidth]; + break; + case 2: + if(precon) + { + for(i = 0; i != length; ++i) recon[i] = scanline[i] + precon[i]; + } + else + { + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + } + break; + case 3: + if(precon) + { + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i] + (precon[i] >> 1); + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + ((recon[i - bytewidth] + precon[i]) >> 1); + } + else + { + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) recon[i] = scanline[i] + (recon[i - bytewidth] >> 1); + } + break; + case 4: + if(precon) + { + for(i = 0; i != bytewidth; ++i) + { + recon[i] = (scanline[i] + precon[i]); /*paethPredictor(0, precon[i], 0) is always precon[i]*/ + } + for(i = bytewidth; i < length; ++i) + { + recon[i] = (scanline[i] + paethPredictor(recon[i - bytewidth], precon[i], precon[i - bytewidth])); + } + } + else + { + for(i = 0; i != bytewidth; ++i) + { + recon[i] = scanline[i]; + } + for(i = bytewidth; i < length; ++i) + { + /*paethPredictor(recon[i - bytewidth], 0, 0) is always recon[i - bytewidth]*/ + recon[i] = (scanline[i] + recon[i - bytewidth]); + } + } + break; + default: return 36; /*error: unexisting filter type given*/ + } + return 0; +} + +static unsigned unfilter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + /* + For PNG filter method 0 + this function unfilters a single image (e.g. without interlacing this is called once, with Adam7 seven times) + out must have enough bytes allocated already, in must have the scanlines + 1 filtertype byte per scanline + w and h are image dimensions or dimensions of reduced image, bpp is bits per pixel + in and out are allowed to be the same memory address (but aren't the same size since in has the extra filter bytes) + */ + + unsigned y; + unsigned char* prevline = 0; + + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7) / 8; + size_t linebytes = (w * bpp + 7) / 8; + + for(y = 0; y < h; ++y) + { + size_t outindex = linebytes * y; + size_t inindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + unsigned char filterType = in[inindex]; + + CERROR_TRY_RETURN(unfilterScanline(&out[outindex], &in[inindex + 1], prevline, bytewidth, filterType, linebytes)); + + prevline = &out[outindex]; + } + + return 0; +} + +/* +in: Adam7 interlaced image, with no padding bits between scanlines, but between + reduced images so that each reduced image starts at a byte. +out: the same pixels, but re-ordered so that they're now a non-interlaced image with size w*h +bpp: bits per pixel +out has the following size in bits: w * h * bpp. +in is possibly bigger due to padding bits between reduced images. +out must be big enough AND must be 0 everywhere if bpp < 8 in the current implementation +(because that's likely a little bit faster) +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_deinterlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + size_t bytewidth = bpp / 8; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + size_t pixelinstart = passstart[i] + (y * passw[i] + x) * bytewidth; + size_t pixeloutstart = ((ADAM7_IY[i] + y * ADAM7_DY[i]) * w + ADAM7_IX[i] + x * ADAM7_DX[i]) * bytewidth; + for(b = 0; b < bytewidth; ++b) + { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } + else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + ibp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + obp = (ADAM7_IY[i] + y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + x * ADAM7_DX[i]) * bpp; + for(b = 0; b < bpp; ++b) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + /*note that this function assumes the out buffer is completely 0, use setBitOfReversedStream otherwise*/ + setBitOfReversedStream0(&obp, out, bit); + } + } + } + } +} + +static void removePaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) +{ + /* + After filtering there are still padding bits if scanlines have non multiple of 8 bit amounts. They need + to be removed (except at last scanline of (Adam7-reduced) image) before working with pure image buffers + for the Adam7 code, the color convert code and the output to the user. + in and out are allowed to be the same buffer, in may also be higher but still overlapping; in must + have >= ilinebits*h bits, out must have >= olinebits*h bits, olinebits must be <= ilinebits + also used to move bits after earlier such operations happened, e.g. in a sequence of reduced images from Adam7 + only useful if (ilinebits - olinebits) is a value in the range 1..7 + */ + unsigned y; + size_t diff = ilinebits - olinebits; + size_t ibp = 0, obp = 0; /*input and output bit pointers*/ + for(y = 0; y < h; ++y) + { + size_t x; + for(x = 0; x < olinebits; ++x) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + ibp += diff; + } +} + +/*out must be buffer big enough to contain full image, and in must contain the full decompressed data from +the IDAT chunks (with filter index bytes and possible padding bits) +return value is error*/ +static unsigned postProcessScanlines(unsigned char* out, unsigned char* in, + unsigned w, unsigned h, const LodePNGInfo* info_png) +{ + /* + This function converts the filtered-padded-interlaced data into pure 2D image buffer with the PNG's colortype. + Steps: + *) if no Adam7: 1) unfilter 2) remove padding bits (= posible extra bits per scanline if bpp < 8) + *) if adam7: 1) 7x unfilter 2) 7x remove padding bits 3) Adam7_deinterlace + NOTE: the in buffer will be overwritten with intermediate data! + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + if(bpp == 0) return 31; /*error: invalid colortype*/ + + if(info_png->interlace_method == 0) + { + if(bpp < 8 && w * bpp != ((w * bpp + 7) / 8) * 8) + { + CERROR_TRY_RETURN(unfilter(in, in, w, h, bpp)); + removePaddingBits(out, in, w * bpp, ((w * bpp + 7) / 8) * 8, h); + } + /*we can immediately filter into the out buffer, no other steps needed*/ + else CERROR_TRY_RETURN(unfilter(out, in, w, h, bpp)); + } + else /*interlace_method is 1 (Adam7)*/ + { + unsigned passw[7], passh[7]; size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + for(i = 0; i != 7; ++i) + { + CERROR_TRY_RETURN(unfilter(&in[padded_passstart[i]], &in[filter_passstart[i]], passw[i], passh[i], bpp)); + /*TODO: possible efficiency improvement: if in this reduced image the bits fit nicely in 1 scanline, + move bytes instead of bits or move not at all*/ + if(bpp < 8) + { + /*remove padding bits in scanlines; after this there still may be padding + bits between the different reduced images: each reduced image still starts nicely at a byte*/ + removePaddingBits(&in[passstart[i]], &in[padded_passstart[i]], passw[i] * bpp, + ((passw[i] * bpp + 7) / 8) * 8, passh[i]); + } + } + + Adam7_deinterlace(out, in, w, h, bpp); + } + + return 0; +} + +static unsigned readChunk_PLTE(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) +{ + unsigned pos = 0, i; + if(color->palette) lodepng_free(color->palette); + color->palettesize = chunkLength / 3; + color->palette = (unsigned char*)lodepng_malloc(4 * color->palettesize); + if(!color->palette && color->palettesize) + { + color->palettesize = 0; + return 83; /*alloc fail*/ + } + if(color->palettesize > 256) return 38; /*error: palette too big*/ + + for(i = 0; i != color->palettesize; ++i) + { + color->palette[4 * i + 0] = data[pos++]; /*R*/ + color->palette[4 * i + 1] = data[pos++]; /*G*/ + color->palette[4 * i + 2] = data[pos++]; /*B*/ + color->palette[4 * i + 3] = 255; /*alpha*/ + } + + return 0; /* OK */ +} + +static unsigned readChunk_tRNS(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) +{ + unsigned i; + if(color->colortype == LCT_PALETTE) + { + /*error: more alpha values given than there are palette entries*/ + if(chunkLength > color->palettesize) return 38; + + for(i = 0; i != chunkLength; ++i) color->palette[4 * i + 3] = data[i]; + } + else if(color->colortype == LCT_GREY) + { + /*error: this chunk must be 2 bytes for greyscale image*/ + if(chunkLength != 2) return 30; + + color->key_defined = 1; + color->key_r = color->key_g = color->key_b = 256u * data[0] + data[1]; + } + else if(color->colortype == LCT_RGB) + { + /*error: this chunk must be 6 bytes for RGB image*/ + if(chunkLength != 6) return 41; + + color->key_defined = 1; + color->key_r = 256u * data[0] + data[1]; + color->key_g = 256u * data[2] + data[3]; + color->key_b = 256u * data[4] + data[5]; + } + else return 42; /*error: tRNS chunk not allowed for other color models*/ + + return 0; /* OK */ +} + + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*background color chunk (bKGD)*/ +static unsigned readChunk_bKGD(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(info->color.colortype == LCT_PALETTE) + { + /*error: this chunk must be 1 byte for indexed color image*/ + if(chunkLength != 1) return 43; + + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = data[0]; + } + else if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) + { + /*error: this chunk must be 2 bytes for greyscale image*/ + if(chunkLength != 2) return 44; + + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = 256u * data[0] + data[1]; + } + else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) + { + /*error: this chunk must be 6 bytes for greyscale image*/ + if(chunkLength != 6) return 45; + + info->background_defined = 1; + info->background_r = 256u * data[0] + data[1]; + info->background_g = 256u * data[2] + data[3]; + info->background_b = 256u * data[4] + data[5]; + } + + return 0; /* OK */ +} + +/*text chunk (tEXt)*/ +static unsigned readChunk_tEXt(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + char *key = 0, *str = 0; + unsigned i; + + while(!error) /*not really a while loop, only used to break on error*/ + { + unsigned length, string2_begin; + + length = 0; + while(length < chunkLength && data[length] != 0) ++length; + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + string2_begin = length + 1; /*skip keyword null terminator*/ + + length = chunkLength < string2_begin ? 0 : chunkLength - string2_begin; + str = (char*)lodepng_malloc(length + 1); + if(!str) CERROR_BREAK(error, 83); /*alloc fail*/ + + str[length] = 0; + for(i = 0; i != length; ++i) str[i] = (char)data[string2_begin + i]; + + error = lodepng_add_text(info, key, str); + + break; + } + + lodepng_free(key); + lodepng_free(str); + + return error; +} + +/*compressed text chunk (zTXt)*/ +static unsigned readChunk_zTXt(LodePNGInfo* info, const LodePNGDecompressSettings* zlibsettings, + const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + unsigned i; + + unsigned length, string2_begin; + char *key = 0; + ucvector decoded; + + ucvector_init(&decoded); + + while(!error) /*not really a while loop, only used to break on error*/ + { + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 2 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + if(data[length + 1] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + string2_begin = length + 2; + if(string2_begin > chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + + length = chunkLength - string2_begin; + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&decoded.data, &decoded.size, + (unsigned char*)(&data[string2_begin]), + length, zlibsettings); + if(error) break; + ucvector_push_back(&decoded, 0); + + error = lodepng_add_text(info, key, (char*)decoded.data); + + break; + } + + lodepng_free(key); + ucvector_cleanup(&decoded); + + return error; +} + +/*international text chunk (iTXt)*/ +static unsigned readChunk_iTXt(LodePNGInfo* info, const LodePNGDecompressSettings* zlibsettings, + const unsigned char* data, size_t chunkLength) +{ + unsigned error = 0; + unsigned i; + + unsigned length, begin, compressed; + char *key = 0, *langtag = 0, *transkey = 0; + ucvector decoded; + ucvector_init(&decoded); + + while(!error) /*not really a while loop, only used to break on error*/ + { + /*Quick check if the chunk length isn't too small. Even without check + it'd still fail with other error checks below if it's too short. This just gives a different error code.*/ + if(chunkLength < 5) CERROR_BREAK(error, 30); /*iTXt chunk too short*/ + + /*read the key*/ + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 3 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination char, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + key[length] = 0; + for(i = 0; i != length; ++i) key[i] = (char)data[i]; + + /*read the compression method*/ + compressed = data[length + 1]; + if(data[length + 2] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty for the next 3 texts*/ + + /*read the langtag*/ + begin = length + 3; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + langtag = (char*)lodepng_malloc(length + 1); + if(!langtag) CERROR_BREAK(error, 83); /*alloc fail*/ + + langtag[length] = 0; + for(i = 0; i != length; ++i) langtag[i] = (char)data[begin + i]; + + /*read the transkey*/ + begin += length + 1; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + transkey = (char*)lodepng_malloc(length + 1); + if(!transkey) CERROR_BREAK(error, 83); /*alloc fail*/ + + transkey[length] = 0; + for(i = 0; i != length; ++i) transkey[i] = (char)data[begin + i]; + + /*read the actual text*/ + begin += length + 1; + + length = chunkLength < begin ? 0 : chunkLength - begin; + + if(compressed) + { + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&decoded.data, &decoded.size, + (unsigned char*)(&data[begin]), + length, zlibsettings); + if(error) break; + if(decoded.allocsize < decoded.size) decoded.allocsize = decoded.size; + ucvector_push_back(&decoded, 0); + } + else + { + if(!ucvector_resize(&decoded, length + 1)) CERROR_BREAK(error, 83 /*alloc fail*/); + + decoded.data[length] = 0; + for(i = 0; i != length; ++i) decoded.data[i] = data[begin + i]; + } + + error = lodepng_add_itext(info, key, langtag, transkey, (char*)decoded.data); + + break; + } + + lodepng_free(key); + lodepng_free(langtag); + lodepng_free(transkey); + ucvector_cleanup(&decoded); + + return error; +} + +static unsigned readChunk_tIME(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(chunkLength != 7) return 73; /*invalid tIME chunk size*/ + + info->time_defined = 1; + info->time.year = 256u * data[0] + data[1]; + info->time.month = data[2]; + info->time.day = data[3]; + info->time.hour = data[4]; + info->time.minute = data[5]; + info->time.second = data[6]; + + return 0; /* OK */ +} + +static unsigned readChunk_pHYs(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) +{ + if(chunkLength != 9) return 74; /*invalid pHYs chunk size*/ + + info->phys_defined = 1; + info->phys_x = 16777216u * data[0] + 65536u * data[1] + 256u * data[2] + data[3]; + info->phys_y = 16777216u * data[4] + 65536u * data[5] + 256u * data[6] + data[7]; + info->phys_unit = data[8]; + + return 0; /* OK */ +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*read a PNG, the result will be in the same color type as the PNG (hence "generic")*/ +static void decodeGeneric(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) +{ + unsigned char IEND = 0; + const unsigned char* chunk; + size_t i; + ucvector idat; /*the data from idat chunks*/ + ucvector scanlines; + size_t predict; + size_t numpixels; + size_t outsize = 0; + + /*for unknown chunk order*/ + unsigned unknown = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned critical_pos = 1; /*1 = after IHDR, 2 = after PLTE, 3 = after IDAT*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + + /*provide some proper output values if error will happen*/ + *out = 0; + + state->error = lodepng_inspect(w, h, state, in, insize); /*reads header and resets other parameters in state->info_png*/ + if(state->error) return; + + numpixels = *w * *h; + + /*multiplication overflow*/ + if(*h != 0 && numpixels / *h != *w) CERROR_RETURN(state->error, 92); + /*multiplication overflow possible further below. Allows up to 2^31-1 pixel + bytes with 16-bit RGBA, the rest is room for filter bytes.*/ + if(numpixels > 268435455) CERROR_RETURN(state->error, 92); + + ucvector_init(&idat); + chunk = &in[33]; /*first byte of the first chunk after the header*/ + + /*loop through the chunks, ignoring unknown chunks and stopping at IEND chunk. + IDAT data is put at the start of the in buffer*/ + while(!IEND && !state->error) + { + unsigned chunkLength; + const unsigned char* data; /*the data in the chunk*/ + + /*error: size of the in buffer too small to contain next chunk*/ + if((size_t)((chunk - in) + 12) > insize || chunk < in) CERROR_BREAK(state->error, 30); + + /*length of the data of the chunk, excluding the length bytes, chunk type and CRC bytes*/ + chunkLength = lodepng_chunk_length(chunk); + /*error: chunk length larger than the max PNG chunk size*/ + if(chunkLength > 2147483647) CERROR_BREAK(state->error, 63); + + if((size_t)((chunk - in) + chunkLength + 12) > insize || (chunk + chunkLength + 12) < in) + { + CERROR_BREAK(state->error, 64); /*error: size of the in buffer too small to contain next chunk*/ + } + + data = lodepng_chunk_data_const(chunk); + + /*IDAT chunk, containing compressed image data*/ + if(lodepng_chunk_type_equals(chunk, "IDAT")) + { + size_t oldsize = idat.size; + if(!ucvector_resize(&idat, oldsize + chunkLength)) CERROR_BREAK(state->error, 83 /*alloc fail*/); + for(i = 0; i != chunkLength; ++i) idat.data[oldsize + i] = data[i]; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 3; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + /*IEND chunk*/ + else if(lodepng_chunk_type_equals(chunk, "IEND")) + { + IEND = 1; + } + /*palette chunk (PLTE)*/ + else if(lodepng_chunk_type_equals(chunk, "PLTE")) + { + state->error = readChunk_PLTE(&state->info_png.color, data, chunkLength); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 2; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + /*palette transparency chunk (tRNS)*/ + else if(lodepng_chunk_type_equals(chunk, "tRNS")) + { + state->error = readChunk_tRNS(&state->info_png.color, data, chunkLength); + if(state->error) break; + } +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*background color chunk (bKGD)*/ + else if(lodepng_chunk_type_equals(chunk, "bKGD")) + { + state->error = readChunk_bKGD(&state->info_png, data, chunkLength); + if(state->error) break; + } + /*text chunk (tEXt)*/ + else if(lodepng_chunk_type_equals(chunk, "tEXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_tEXt(&state->info_png, data, chunkLength); + if(state->error) break; + } + } + /*compressed text chunk (zTXt)*/ + else if(lodepng_chunk_type_equals(chunk, "zTXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_zTXt(&state->info_png, &state->decoder.zlibsettings, data, chunkLength); + if(state->error) break; + } + } + /*international text chunk (iTXt)*/ + else if(lodepng_chunk_type_equals(chunk, "iTXt")) + { + if(state->decoder.read_text_chunks) + { + state->error = readChunk_iTXt(&state->info_png, &state->decoder.zlibsettings, data, chunkLength); + if(state->error) break; + } + } + else if(lodepng_chunk_type_equals(chunk, "tIME")) + { + state->error = readChunk_tIME(&state->info_png, data, chunkLength); + if(state->error) break; + } + else if(lodepng_chunk_type_equals(chunk, "pHYs")) + { + state->error = readChunk_pHYs(&state->info_png, data, chunkLength); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + else /*it's not an implemented chunk type, so ignore it: skip over the data*/ + { + /*error: unknown critical chunk (5th bit of first byte of chunk type is 0)*/ + if(!lodepng_chunk_ancillary(chunk)) CERROR_BREAK(state->error, 69); + + unknown = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(state->decoder.remember_unknown_chunks) + { + state->error = lodepng_chunk_append(&state->info_png.unknown_chunks_data[critical_pos - 1], + &state->info_png.unknown_chunks_size[critical_pos - 1], chunk); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + + if(!state->decoder.ignore_crc && !unknown) /*check CRC if wanted, only on known chunk types*/ + { + if(lodepng_chunk_check_crc(chunk)) CERROR_BREAK(state->error, 57); /*invalid CRC*/ + } + + if(!IEND) chunk = lodepng_chunk_next_const(chunk); + } + + ucvector_init(&scanlines); + /*predict output size, to allocate exact size for output buffer to avoid more dynamic allocation. + If the decompressed size does not match the prediction, the image must be corrupt.*/ + if(state->info_png.interlace_method == 0) + { + /*The extra *h is added because this are the filter bytes every scanline starts with*/ + predict = lodepng_get_raw_size_idat(*w, *h, &state->info_png.color) + *h; + } + else + { + /*Adam-7 interlaced: predicted size is the sum of the 7 sub-images sizes*/ + const LodePNGColorMode* color = &state->info_png.color; + predict = 0; + predict += lodepng_get_raw_size_idat((*w + 7) >> 3, (*h + 7) >> 3, color) + ((*h + 7) >> 3); + if(*w > 4) predict += lodepng_get_raw_size_idat((*w + 3) >> 3, (*h + 7) >> 3, color) + ((*h + 7) >> 3); + predict += lodepng_get_raw_size_idat((*w + 3) >> 2, (*h + 3) >> 3, color) + ((*h + 3) >> 3); + if(*w > 2) predict += lodepng_get_raw_size_idat((*w + 1) >> 2, (*h + 3) >> 2, color) + ((*h + 3) >> 2); + predict += lodepng_get_raw_size_idat((*w + 1) >> 1, (*h + 1) >> 2, color) + ((*h + 1) >> 2); + if(*w > 1) predict += lodepng_get_raw_size_idat((*w + 0) >> 1, (*h + 1) >> 1, color) + ((*h + 1) >> 1); + predict += lodepng_get_raw_size_idat((*w + 0), (*h + 0) >> 1, color) + ((*h + 0) >> 1); + } + if(!state->error && !ucvector_reserve(&scanlines, predict)) state->error = 83; /*alloc fail*/ + if(!state->error) + { + state->error = zlib_decompress(&scanlines.data, &scanlines.size, idat.data, + idat.size, &state->decoder.zlibsettings); + if(!state->error && scanlines.size != predict) state->error = 91; /*decompressed size doesn't match prediction*/ + } + ucvector_cleanup(&idat); + + if(!state->error) + { + outsize = lodepng_get_raw_size(*w, *h, &state->info_png.color); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!*out) state->error = 83; /*alloc fail*/ + } + if(!state->error) + { + for(i = 0; i < outsize; i++) (*out)[i] = 0; + state->error = postProcessScanlines(*out, scanlines.data, *w, *h, &state->info_png); + } + ucvector_cleanup(&scanlines); +} + +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) +{ + *out = 0; + decodeGeneric(out, w, h, state, in, insize); + if(state->error) return state->error; + if(!state->decoder.color_convert || lodepng_color_mode_equal(&state->info_raw, &state->info_png.color)) + { + /*same color type, no copying or converting of data needed*/ + /*store the info_png color settings on the info_raw so that the info_raw still reflects what colortype + the raw image has to the end user*/ + if(!state->decoder.color_convert) + { + state->error = lodepng_color_mode_copy(&state->info_raw, &state->info_png.color); + if(state->error) return state->error; + } + } + else + { + /*color conversion needed; sort of copy of the data*/ + unsigned char* data = *out; + size_t outsize; + + /*TODO: check if this works according to the statement in the documentation: "The converter can convert + from greyscale input color type, to 8-bit greyscale or greyscale with alpha"*/ + if(!(state->info_raw.colortype == LCT_RGB || state->info_raw.colortype == LCT_RGBA) + && !(state->info_raw.bitdepth == 8)) + { + return 56; /*unsupported color mode conversion*/ + } + + outsize = lodepng_get_raw_size(*w, *h, &state->info_raw); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!(*out)) + { + state->error = 83; /*alloc fail*/ + } + else state->error = lodepng_convert(*out, data, &state->info_raw, + &state->info_png.color, *w, *h); + lodepng_free(data); + } + return state->error; +} + +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + error = lodepng_decode(out, w, h, &state, in, insize); + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) +{ + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGBA, 8); +} + +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) +{ + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer = 0; + size_t buffersize; + unsigned error; + error = lodepng_load_file(&buffer, &buffersize, filename); + if(!error) error = lodepng_decode_memory(out, w, h, buffer, buffersize, colortype, bitdepth); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) +{ + return lodepng_decode_file(out, w, h, filename, LCT_RGBA, 8); +} + +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) +{ + return lodepng_decode_file(out, w, h, filename, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings) +{ + settings->color_convert = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->read_text_chunks = 1; + settings->remember_unknown_chunks = 0; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + settings->ignore_crc = 0; + lodepng_decompress_settings_init(&settings->zlibsettings); +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) + +void lodepng_state_init(LodePNGState* state) +{ +#ifdef LODEPNG_COMPILE_DECODER + lodepng_decoder_settings_init(&state->decoder); +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + lodepng_encoder_settings_init(&state->encoder); +#endif /*LODEPNG_COMPILE_ENCODER*/ + lodepng_color_mode_init(&state->info_raw); + lodepng_info_init(&state->info_png); + state->error = 1; +} + +void lodepng_state_cleanup(LodePNGState* state) +{ + lodepng_color_mode_cleanup(&state->info_raw); + lodepng_info_cleanup(&state->info_png); +} + +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source) +{ + lodepng_state_cleanup(dest); + *dest = *source; + lodepng_color_mode_init(&dest->info_raw); + lodepng_info_init(&dest->info_png); + dest->error = lodepng_color_mode_copy(&dest->info_raw, &source->info_raw); if(dest->error) return; + dest->error = lodepng_info_copy(&dest->info_png, &source->info_png); if(dest->error) return; +} + +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Encoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*chunkName must be string of 4 characters*/ +static unsigned addChunk(ucvector* out, const char* chunkName, const unsigned char* data, size_t length) +{ + CERROR_TRY_RETURN(lodepng_chunk_create(&out->data, &out->size, (unsigned)length, chunkName, data)); + out->allocsize = out->size; /*fix the allocsize again*/ + return 0; +} + +static void writeSignature(ucvector* out) +{ + /*8 bytes PNG signature, aka the magic bytes*/ + ucvector_push_back(out, 137); + ucvector_push_back(out, 80); + ucvector_push_back(out, 78); + ucvector_push_back(out, 71); + ucvector_push_back(out, 13); + ucvector_push_back(out, 10); + ucvector_push_back(out, 26); + ucvector_push_back(out, 10); +} + +static unsigned addChunk_IHDR(ucvector* out, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth, unsigned interlace_method) +{ + unsigned error = 0; + ucvector header; + ucvector_init(&header); + + lodepng_add32bitInt(&header, w); /*width*/ + lodepng_add32bitInt(&header, h); /*height*/ + ucvector_push_back(&header, (unsigned char)bitdepth); /*bit depth*/ + ucvector_push_back(&header, (unsigned char)colortype); /*color type*/ + ucvector_push_back(&header, 0); /*compression method*/ + ucvector_push_back(&header, 0); /*filter method*/ + ucvector_push_back(&header, interlace_method); /*interlace method*/ + + error = addChunk(out, "IHDR", header.data, header.size); + ucvector_cleanup(&header); + + return error; +} + +static unsigned addChunk_PLTE(ucvector* out, const LodePNGColorMode* info) +{ + unsigned error = 0; + size_t i; + ucvector PLTE; + ucvector_init(&PLTE); + for(i = 0; i != info->palettesize * 4; ++i) + { + /*add all channels except alpha channel*/ + if(i % 4 != 3) ucvector_push_back(&PLTE, info->palette[i]); + } + error = addChunk(out, "PLTE", PLTE.data, PLTE.size); + ucvector_cleanup(&PLTE); + + return error; +} + +static unsigned addChunk_tRNS(ucvector* out, const LodePNGColorMode* info) +{ + unsigned error = 0; + size_t i; + ucvector tRNS; + ucvector_init(&tRNS); + if(info->colortype == LCT_PALETTE) + { + size_t amount = info->palettesize; + /*the tail of palette values that all have 255 as alpha, does not have to be encoded*/ + for(i = info->palettesize; i != 0; --i) + { + if(info->palette[4 * (i - 1) + 3] == 255) --amount; + else break; + } + /*add only alpha channel*/ + for(i = 0; i != amount; ++i) ucvector_push_back(&tRNS, info->palette[4 * i + 3]); + } + else if(info->colortype == LCT_GREY) + { + if(info->key_defined) + { + ucvector_push_back(&tRNS, (unsigned char)(info->key_r >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_r & 255)); + } + } + else if(info->colortype == LCT_RGB) + { + if(info->key_defined) + { + ucvector_push_back(&tRNS, (unsigned char)(info->key_r >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_r & 255)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_g >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_g & 255)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_b >> 8)); + ucvector_push_back(&tRNS, (unsigned char)(info->key_b & 255)); + } + } + + error = addChunk(out, "tRNS", tRNS.data, tRNS.size); + ucvector_cleanup(&tRNS); + + return error; +} + +static unsigned addChunk_IDAT(ucvector* out, const unsigned char* data, size_t datasize, + LodePNGCompressSettings* zlibsettings) +{ + ucvector zlibdata; + unsigned error = 0; + + /*compress with the Zlib compressor*/ + ucvector_init(&zlibdata); + error = zlib_compress(&zlibdata.data, &zlibdata.size, data, datasize, zlibsettings); + if(!error) error = addChunk(out, "IDAT", zlibdata.data, zlibdata.size); + ucvector_cleanup(&zlibdata); + + return error; +} + +static unsigned addChunk_IEND(ucvector* out) +{ + unsigned error = 0; + error = addChunk(out, "IEND", 0, 0); + return error; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static unsigned addChunk_tEXt(ucvector* out, const char* keyword, const char* textstring) +{ + unsigned error = 0; + size_t i; + ucvector text; + ucvector_init(&text); + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&text, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&text, 0); /*0 termination char*/ + for(i = 0; textstring[i] != 0; ++i) ucvector_push_back(&text, (unsigned char)textstring[i]); + error = addChunk(out, "tEXt", text.data, text.size); + ucvector_cleanup(&text); + + return error; +} + +static unsigned addChunk_zTXt(ucvector* out, const char* keyword, const char* textstring, + LodePNGCompressSettings* zlibsettings) +{ + unsigned error = 0; + ucvector data, compressed; + size_t i, textsize = strlen(textstring); + + ucvector_init(&data); + ucvector_init(&compressed); + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&data, 0); /*0 termination char*/ + ucvector_push_back(&data, 0); /*compression method: 0*/ + + error = zlib_compress(&compressed.data, &compressed.size, + (unsigned char*)textstring, textsize, zlibsettings); + if(!error) + { + for(i = 0; i != compressed.size; ++i) ucvector_push_back(&data, compressed.data[i]); + error = addChunk(out, "zTXt", data.data, data.size); + } + + ucvector_cleanup(&compressed); + ucvector_cleanup(&data); + return error; +} + +static unsigned addChunk_iTXt(ucvector* out, unsigned compressed, const char* keyword, const char* langtag, + const char* transkey, const char* textstring, LodePNGCompressSettings* zlibsettings) +{ + unsigned error = 0; + ucvector data; + size_t i, textsize = strlen(textstring); + + ucvector_init(&data); + + for(i = 0; keyword[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)keyword[i]); + if(i < 1 || i > 79) return 89; /*error: invalid keyword size*/ + ucvector_push_back(&data, 0); /*null termination char*/ + ucvector_push_back(&data, compressed ? 1 : 0); /*compression flag*/ + ucvector_push_back(&data, 0); /*compression method*/ + for(i = 0; langtag[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)langtag[i]); + ucvector_push_back(&data, 0); /*null termination char*/ + for(i = 0; transkey[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)transkey[i]); + ucvector_push_back(&data, 0); /*null termination char*/ + + if(compressed) + { + ucvector compressed_data; + ucvector_init(&compressed_data); + error = zlib_compress(&compressed_data.data, &compressed_data.size, + (unsigned char*)textstring, textsize, zlibsettings); + if(!error) + { + for(i = 0; i != compressed_data.size; ++i) ucvector_push_back(&data, compressed_data.data[i]); + } + ucvector_cleanup(&compressed_data); + } + else /*not compressed*/ + { + for(i = 0; textstring[i] != 0; ++i) ucvector_push_back(&data, (unsigned char)textstring[i]); + } + + if(!error) error = addChunk(out, "iTXt", data.data, data.size); + ucvector_cleanup(&data); + return error; +} + +static unsigned addChunk_bKGD(ucvector* out, const LodePNGInfo* info) +{ + unsigned error = 0; + ucvector bKGD; + ucvector_init(&bKGD); + if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); + } + else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_g >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_g & 255)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_b >> 8)); + ucvector_push_back(&bKGD, (unsigned char)(info->background_b & 255)); + } + else if(info->color.colortype == LCT_PALETTE) + { + ucvector_push_back(&bKGD, (unsigned char)(info->background_r & 255)); /*palette index*/ + } + + error = addChunk(out, "bKGD", bKGD.data, bKGD.size); + ucvector_cleanup(&bKGD); + + return error; +} + +static unsigned addChunk_tIME(ucvector* out, const LodePNGTime* time) +{ + unsigned error = 0; + unsigned char* data = (unsigned char*)lodepng_malloc(7); + if(!data) return 83; /*alloc fail*/ + data[0] = (unsigned char)(time->year >> 8); + data[1] = (unsigned char)(time->year & 255); + data[2] = (unsigned char)time->month; + data[3] = (unsigned char)time->day; + data[4] = (unsigned char)time->hour; + data[5] = (unsigned char)time->minute; + data[6] = (unsigned char)time->second; + error = addChunk(out, "tIME", data, 7); + lodepng_free(data); + return error; +} + +static unsigned addChunk_pHYs(ucvector* out, const LodePNGInfo* info) +{ + unsigned error = 0; + ucvector data; + ucvector_init(&data); + + lodepng_add32bitInt(&data, info->phys_x); + lodepng_add32bitInt(&data, info->phys_y); + ucvector_push_back(&data, info->phys_unit); + + error = addChunk(out, "pHYs", data.data, data.size); + ucvector_cleanup(&data); + + return error; +} + +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +static void filterScanline(unsigned char* out, const unsigned char* scanline, const unsigned char* prevline, + size_t length, size_t bytewidth, unsigned char filterType) +{ + size_t i; + switch(filterType) + { + case 0: /*None*/ + for(i = 0; i != length; ++i) out[i] = scanline[i]; + break; + case 1: /*Sub*/ + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - scanline[i - bytewidth]; + break; + case 2: /*Up*/ + if(prevline) + { + for(i = 0; i != length; ++i) out[i] = scanline[i] - prevline[i]; + } + else + { + for(i = 0; i != length; ++i) out[i] = scanline[i]; + } + break; + case 3: /*Average*/ + if(prevline) + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i] - (prevline[i] >> 1); + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - ((scanline[i - bytewidth] + prevline[i]) >> 1); + } + else + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - (scanline[i - bytewidth] >> 1); + } + break; + case 4: /*Paeth*/ + if(prevline) + { + /*paethPredictor(0, prevline[i], 0) is always prevline[i]*/ + for(i = 0; i != bytewidth; ++i) out[i] = (scanline[i] - prevline[i]); + for(i = bytewidth; i < length; ++i) + { + out[i] = (scanline[i] - paethPredictor(scanline[i - bytewidth], prevline[i], prevline[i - bytewidth])); + } + } + else + { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + /*paethPredictor(scanline[i - bytewidth], 0, 0) is always scanline[i - bytewidth]*/ + for(i = bytewidth; i < length; ++i) out[i] = (scanline[i] - scanline[i - bytewidth]); + } + break; + default: return; /*unexisting filter type given*/ + } +} + +/* log2 approximation. A slight bit faster than std::log. */ +static float flog2(float f) +{ + float result = 0; + while(f > 32) { result += 4; f /= 16; } + while(f > 2) { ++result; f /= 2; } + return result + 1.442695f * (f * f * f / 3 - 3 * f * f / 2 + 3 * f - 1.83333f); +} + +static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* info, const LodePNGEncoderSettings* settings) +{ + /* + For PNG filter method 0 + out must be a buffer with as size: h + (w * h * bpp + 7) / 8, because there are + the scanlines with 1 extra byte per scanline + */ + + unsigned bpp = lodepng_get_bpp(info); + /*the width of a scanline in bytes, not including the filter type*/ + size_t linebytes = (w * bpp + 7) / 8; + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7) / 8; + const unsigned char* prevline = 0; + unsigned x, y; + unsigned error = 0; + LodePNGFilterStrategy strategy = settings->filter_strategy; + + /* + There is a heuristic called the minimum sum of absolute differences heuristic, suggested by the PNG standard: + * If the image type is Palette, or the bit depth is smaller than 8, then do not filter the image (i.e. + use fixed filtering, with the filter None). + * (The other case) If the image type is Grayscale or RGB (with or without Alpha), and the bit depth is + not smaller than 8, then use adaptive filtering heuristic as follows: independently for each row, apply + all five filters and select the filter that produces the smallest sum of absolute values per row. + This heuristic is used if filter strategy is LFS_MINSUM and filter_palette_zero is true. + + If filter_palette_zero is true and filter_strategy is not LFS_MINSUM, the above heuristic is followed, + but for "the other case", whatever strategy filter_strategy is set to instead of the minimum sum + heuristic is used. + */ + if(settings->filter_palette_zero && + (info->colortype == LCT_PALETTE || info->bitdepth < 8)) strategy = LFS_ZERO; + + if(bpp == 0) return 31; /*error: invalid color type*/ + + if(strategy == LFS_ZERO) + { + for(y = 0; y != h; ++y) + { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + out[outindex] = 0; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, 0); + prevline = &in[inindex]; + } + } + else if(strategy == LFS_MINSUM) + { + /*adaptive filtering*/ + size_t sum[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned char type, bestType = 0; + + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + + if(!error) + { + for(y = 0; y != h; ++y) + { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) + { + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + + /*calculate the sum of the result*/ + sum[type] = 0; + if(type == 0) + { + for(x = 0; x != linebytes; ++x) sum[type] += (unsigned char)(attempt[type][x]); + } + else + { + for(x = 0; x != linebytes; ++x) + { + /*For differences, each byte should be treated as signed, values above 127 are negative + (converted to signed char). Filtertype 0 isn't a difference though, so use unsigned there. + This means filtertype 0 is almost never chosen, but that is justified.*/ + unsigned char s = attempt[type][x]; + sum[type] += s < 128 ? s : (255U - s); + } + } + + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum[type] < smallest) + { + bestType = type; + smallest = sum[type]; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else if(strategy == LFS_ENTROPY) + { + float sum[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + float smallest = 0; + unsigned type, bestType = 0; + unsigned count[256]; + + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + + for(y = 0; y != h; ++y) + { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) + { + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + for(x = 0; x != 256; ++x) count[x] = 0; + for(x = 0; x != linebytes; ++x) ++count[attempt[type][x]]; + ++count[type]; /*the filter type itself is part of the scanline*/ + sum[type] = 0; + for(x = 0; x != 256; ++x) + { + float p = count[x] / (float)(linebytes + 1); + sum[type] += count[x] == 0 ? 0 : flog2(1 / p) * p; + } + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum[type] < smallest) + { + bestType = type; + smallest = sum[type]; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else if(strategy == LFS_PREDEFINED) + { + for(y = 0; y != h; ++y) + { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + unsigned char type = settings->predefined_filters[y]; + out[outindex] = type; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, type); + prevline = &in[inindex]; + } + } + else if(strategy == LFS_BRUTE_FORCE) + { + /*brute force filter chooser. + deflate the scanline after every filter attempt to see which one deflates best. + This is very slow and gives only slightly smaller, sometimes even larger, result*/ + size_t size[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned type = 0, bestType = 0; + unsigned char* dummy; + LodePNGCompressSettings zlibsettings = settings->zlibsettings; + /*use fixed tree on the attempts so that the tree is not adapted to the filtertype on purpose, + to simulate the true case where the tree is the same for the whole image. Sometimes it gives + better result with dynamic tree anyway. Using the fixed tree sometimes gives worse, but in rare + cases better compression. It does make this a bit less slow, so it's worth doing this.*/ + zlibsettings.btype = 1; + /*a custom encoder likely doesn't read the btype setting and is optimized for complete PNG + images only, so disable it*/ + zlibsettings.custom_zlib = 0; + zlibsettings.custom_deflate = 0; + for(type = 0; type != 5; ++type) + { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) return 83; /*alloc fail*/ + } + for(y = 0; y != h; ++y) /*try the 5 filter types*/ + { + for(type = 0; type != 5; ++type) + { + unsigned testsize = linebytes; + /*if(testsize > 8) testsize /= 8;*/ /*it already works good enough by testing a part of the row*/ + + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + size[type] = 0; + dummy = 0; + zlib_compress(&dummy, &size[type], attempt[type], testsize, &zlibsettings); + lodepng_free(dummy); + /*check if this is smallest size (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || size[type] < smallest) + { + bestType = type; + smallest = size[type]; + } + } + prevline = &in[y * linebytes]; + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else return 88; /* unknown filter strategy */ + + return error; +} + +static void addPaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) +{ + /*The opposite of the removePaddingBits function + olinebits must be >= ilinebits*/ + unsigned y; + size_t diff = olinebits - ilinebits; + size_t obp = 0, ibp = 0; /*bit pointers*/ + for(y = 0; y != h; ++y) + { + size_t x; + for(x = 0; x < ilinebits; ++x) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + /*obp += diff; --> no, fill in some value in the padding bits too, to avoid + "Use of uninitialised value of size ###" warning from valgrind*/ + for(x = 0; x != diff; ++x) setBitOfReversedStream(&obp, out, 0); + } +} + +/* +in: non-interlaced image with size w*h +out: the same pixels, but re-ordered according to PNG's Adam7 interlacing, with + no padding bits between scanlines, but between reduced images so that each + reduced image starts at a byte. +bpp: bits per pixel +there are no padding bits, not between scanlines, not between reduced images +in has the following size in bits: w * h * bpp. +out is possibly bigger due to padding bits between reduced images +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_interlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) +{ + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + size_t bytewidth = bpp / 8; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + size_t pixelinstart = ((ADAM7_IY[i] + y * ADAM7_DY[i]) * w + ADAM7_IX[i] + x * ADAM7_DX[i]) * bytewidth; + size_t pixeloutstart = passstart[i] + (y * passw[i] + x) * bytewidth; + for(b = 0; b < bytewidth; ++b) + { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } + else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ + { + for(i = 0; i != 7; ++i) + { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) + { + ibp = (ADAM7_IY[i] + y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + x * ADAM7_DX[i]) * bpp; + obp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + for(b = 0; b < bpp; ++b) + { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + } + } + } +} + +/*out must be buffer big enough to contain uncompressed IDAT chunk data, and in must contain the full image. +return value is error**/ +static unsigned preProcessScanlines(unsigned char** out, size_t* outsize, const unsigned char* in, + unsigned w, unsigned h, + const LodePNGInfo* info_png, const LodePNGEncoderSettings* settings) +{ + /* + This function converts the pure 2D image with the PNG's colortype, into filtered-padded-interlaced data. Steps: + *) if no Adam7: 1) add padding bits (= posible extra bits per scanline if bpp < 8) 2) filter + *) if adam7: 1) Adam7_interlace 2) 7x add padding bits 3) 7x filter + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + unsigned error = 0; + + if(info_png->interlace_method == 0) + { + *outsize = h + (h * ((w * bpp + 7) / 8)); /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out) && (*outsize)) error = 83; /*alloc fail*/ + + if(!error) + { + /*non multiple of 8 bits per scanline, padding bits needed per scanline*/ + if(bpp < 8 && w * bpp != ((w * bpp + 7) / 8) * 8) + { + unsigned char* padded = (unsigned char*)lodepng_malloc(h * ((w * bpp + 7) / 8)); + if(!padded) error = 83; /*alloc fail*/ + if(!error) + { + addPaddingBits(padded, in, ((w * bpp + 7) / 8) * 8, w * bpp, h); + error = filter(*out, padded, w, h, &info_png->color, settings); + } + lodepng_free(padded); + } + else + { + /*we can immediately filter into the out buffer, no other steps needed*/ + error = filter(*out, in, w, h, &info_png->color, settings); + } + } + } + else /*interlace_method is 1 (Adam7)*/ + { + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned char* adam7; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + *outsize = filter_passstart[7]; /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out)) error = 83; /*alloc fail*/ + + adam7 = (unsigned char*)lodepng_malloc(passstart[7]); + if(!adam7 && passstart[7]) error = 83; /*alloc fail*/ + + if(!error) + { + unsigned i; + + Adam7_interlace(adam7, in, w, h, bpp); + for(i = 0; i != 7; ++i) + { + if(bpp < 8) + { + unsigned char* padded = (unsigned char*)lodepng_malloc(padded_passstart[i + 1] - padded_passstart[i]); + if(!padded) ERROR_BREAK(83); /*alloc fail*/ + addPaddingBits(padded, &adam7[passstart[i]], + ((passw[i] * bpp + 7) / 8) * 8, passw[i] * bpp, passh[i]); + error = filter(&(*out)[filter_passstart[i]], padded, + passw[i], passh[i], &info_png->color, settings); + lodepng_free(padded); + } + else + { + error = filter(&(*out)[filter_passstart[i]], &adam7[padded_passstart[i]], + passw[i], passh[i], &info_png->color, settings); + } + + if(error) break; + } + } + + lodepng_free(adam7); + } + + return error; +} + +/* +palette must have 4 * palettesize bytes allocated, and given in format RGBARGBARGBARGBA... +returns 0 if the palette is opaque, +returns 1 if the palette has a single color with alpha 0 ==> color key +returns 2 if the palette is semi-translucent. +*/ +static unsigned getPaletteTranslucency(const unsigned char* palette, size_t palettesize) +{ + size_t i; + unsigned key = 0; + unsigned r = 0, g = 0, b = 0; /*the value of the color with alpha 0, so long as color keying is possible*/ + for(i = 0; i != palettesize; ++i) + { + if(!key && palette[4 * i + 3] == 0) + { + r = palette[4 * i + 0]; g = palette[4 * i + 1]; b = palette[4 * i + 2]; + key = 1; + i = (size_t)(-1); /*restart from beginning, to detect earlier opaque colors with key's value*/ + } + else if(palette[4 * i + 3] != 255) return 2; + /*when key, no opaque RGB may have key's RGB*/ + else if(key && r == palette[i * 4 + 0] && g == palette[i * 4 + 1] && b == palette[i * 4 + 2]) return 2; + } + return key; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +static unsigned addUnknownChunks(ucvector* out, unsigned char* data, size_t datasize) +{ + unsigned char* inchunk = data; + while((size_t)(inchunk - data) < datasize) + { + CERROR_TRY_RETURN(lodepng_chunk_append(&out->data, &out->size, inchunk)); + out->allocsize = out->size; /*fix the allocsize again*/ + inchunk = lodepng_chunk_next(inchunk); + } + return 0; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state) +{ + LodePNGInfo info; + ucvector outv; + unsigned char* data = 0; /*uncompressed version of the IDAT chunk data*/ + size_t datasize = 0; + + /*provide some proper output values if error will happen*/ + *out = 0; + *outsize = 0; + state->error = 0; + + lodepng_info_init(&info); + lodepng_info_copy(&info, &state->info_png); + + if((info.color.colortype == LCT_PALETTE || state->encoder.force_palette) + && (info.color.palettesize == 0 || info.color.palettesize > 256)) + { + state->error = 68; /*invalid palette size, it is only allowed to be 1-256*/ + return state->error; + } + + if(state->encoder.auto_convert) + { + state->error = lodepng_auto_choose_color(&info.color, image, w, h, &state->info_raw); + } + if(state->error) return state->error; + + if(state->encoder.zlibsettings.btype > 2) + { + CERROR_RETURN_ERROR(state->error, 61); /*error: unexisting btype*/ + } + if(state->info_png.interlace_method > 1) + { + CERROR_RETURN_ERROR(state->error, 71); /*error: unexisting interlace mode*/ + } + + state->error = checkColorValidity(info.color.colortype, info.color.bitdepth); + if(state->error) return state->error; /*error: unexisting color type given*/ + state->error = checkColorValidity(state->info_raw.colortype, state->info_raw.bitdepth); + if(state->error) return state->error; /*error: unexisting color type given*/ + + if(!lodepng_color_mode_equal(&state->info_raw, &info.color)) + { + unsigned char* converted; + size_t size = (w * h * (size_t)lodepng_get_bpp(&info.color) + 7) / 8; + + converted = (unsigned char*)lodepng_malloc(size); + if(!converted && size) state->error = 83; /*alloc fail*/ + if(!state->error) + { + state->error = lodepng_convert(converted, image, &info.color, &state->info_raw, w, h); + } + if(!state->error) preProcessScanlines(&data, &datasize, converted, w, h, &info, &state->encoder); + lodepng_free(converted); + } + else preProcessScanlines(&data, &datasize, image, w, h, &info, &state->encoder); + + ucvector_init(&outv); + while(!state->error) /*while only executed once, to break on error*/ + { +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + size_t i; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*write signature and chunks*/ + writeSignature(&outv); + /*IHDR*/ + addChunk_IHDR(&outv, w, h, info.color.colortype, info.color.bitdepth, info.interlace_method); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*unknown chunks between IHDR and PLTE*/ + if(info.unknown_chunks_data[0]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[0], info.unknown_chunks_size[0]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*PLTE*/ + if(info.color.colortype == LCT_PALETTE) + { + addChunk_PLTE(&outv, &info.color); + } + if(state->encoder.force_palette && (info.color.colortype == LCT_RGB || info.color.colortype == LCT_RGBA)) + { + addChunk_PLTE(&outv, &info.color); + } + /*tRNS*/ + if(info.color.colortype == LCT_PALETTE && getPaletteTranslucency(info.color.palette, info.color.palettesize) != 0) + { + addChunk_tRNS(&outv, &info.color); + } + if((info.color.colortype == LCT_GREY || info.color.colortype == LCT_RGB) && info.color.key_defined) + { + addChunk_tRNS(&outv, &info.color); + } +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*bKGD (must come between PLTE and the IDAt chunks*/ + if(info.background_defined) addChunk_bKGD(&outv, &info); + /*pHYs (must come before the IDAT chunks)*/ + if(info.phys_defined) addChunk_pHYs(&outv, &info); + + /*unknown chunks between PLTE and IDAT*/ + if(info.unknown_chunks_data[1]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[1], info.unknown_chunks_size[1]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*IDAT (multiple IDAT chunks must be consecutive)*/ + state->error = addChunk_IDAT(&outv, data, datasize, &state->encoder.zlibsettings); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*tIME*/ + if(info.time_defined) addChunk_tIME(&outv, &info.time); + /*tEXt and/or zTXt*/ + for(i = 0; i != info.text_num; ++i) + { + if(strlen(info.text_keys[i]) > 79) + { + state->error = 66; /*text chunk too large*/ + break; + } + if(strlen(info.text_keys[i]) < 1) + { + state->error = 67; /*text chunk too small*/ + break; + } + if(state->encoder.text_compression) + { + addChunk_zTXt(&outv, info.text_keys[i], info.text_strings[i], &state->encoder.zlibsettings); + } + else + { + addChunk_tEXt(&outv, info.text_keys[i], info.text_strings[i]); + } + } + /*LodePNG version id in text chunk*/ + if(state->encoder.add_id) + { + unsigned alread_added_id_text = 0; + for(i = 0; i != info.text_num; ++i) + { + if(!strcmp(info.text_keys[i], "LodePNG")) + { + alread_added_id_text = 1; + break; + } + } + if(alread_added_id_text == 0) + { + addChunk_tEXt(&outv, "LodePNG", LODEPNG_VERSION_STRING); /*it's shorter as tEXt than as zTXt chunk*/ + } + } + /*iTXt*/ + for(i = 0; i != info.itext_num; ++i) + { + if(strlen(info.itext_keys[i]) > 79) + { + state->error = 66; /*text chunk too large*/ + break; + } + if(strlen(info.itext_keys[i]) < 1) + { + state->error = 67; /*text chunk too small*/ + break; + } + addChunk_iTXt(&outv, state->encoder.text_compression, + info.itext_keys[i], info.itext_langtags[i], info.itext_transkeys[i], info.itext_strings[i], + &state->encoder.zlibsettings); + } + + /*unknown chunks between IDAT and IEND*/ + if(info.unknown_chunks_data[2]) + { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[2], info.unknown_chunks_size[2]); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + addChunk_IEND(&outv); + + break; /*this isn't really a while loop; no error happened so break out now!*/ + } + + lodepng_info_cleanup(&info); + lodepng_free(data); + /*instead of cleaning the vector up, give it to the output*/ + *out = outv.data; + *outsize = outv.size; + + return state->error; +} + +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, const unsigned char* image, + unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + state.info_png.color.colortype = colortype; + state.info_png.color.bitdepth = bitdepth; + lodepng_encode(out, outsize, image, w, h, &state); + error = state.error; + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_encode_file(const char* filename, const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, image, w, h, colortype, bitdepth); + if(!error) error = lodepng_save_file(buffer, buffersize, filename); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_encode32_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_file(filename, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) +{ + return lodepng_encode_file(filename, image, w, h, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings) +{ + lodepng_compress_settings_init(&settings->zlibsettings); + settings->filter_palette_zero = 1; + settings->filter_strategy = LFS_MINSUM; + settings->auto_convert = 1; + settings->force_palette = 0; + settings->predefined_filters = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->add_id = 0; + settings->text_compression = 1; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/* +This returns the description of a numerical error code in English. This is also +the documentation of all the error codes. +*/ +const char* lodepng_error_text(unsigned code) +{ + switch(code) + { + case 0: return "no error, everything went ok"; + case 1: return "nothing done yet"; /*the Encoder/Decoder has done nothing yet, error checking makes no sense yet*/ + case 10: return "end of input memory reached without huffman end code"; /*while huffman decoding*/ + case 11: return "error in code tree made it jump outside of huffman tree"; /*while huffman decoding*/ + case 13: return "problem while processing dynamic deflate block"; + case 14: return "problem while processing dynamic deflate block"; + case 15: return "problem while processing dynamic deflate block"; + case 16: return "unexisting code while processing dynamic deflate block"; + case 17: return "end of out buffer memory reached while inflating"; + case 18: return "invalid distance code while inflating"; + case 19: return "end of out buffer memory reached while inflating"; + case 20: return "invalid deflate block BTYPE encountered while decoding"; + case 21: return "NLEN is not ones complement of LEN in a deflate block"; + /*end of out buffer memory reached while inflating: + This can happen if the inflated deflate data is longer than the amount of bytes required to fill up + all the pixels of the image, given the color depth and image dimensions. Something that doesn't + happen in a normal, well encoded, PNG image.*/ + case 22: return "end of out buffer memory reached while inflating"; + case 23: return "end of in buffer memory reached while inflating"; + case 24: return "invalid FCHECK in zlib header"; + case 25: return "invalid compression method in zlib header"; + case 26: return "FDICT encountered in zlib header while it's not used for PNG"; + case 27: return "PNG file is smaller than a PNG header"; + /*Checks the magic file header, the first 8 bytes of the PNG file*/ + case 28: return "incorrect PNG signature, it's no PNG or corrupted"; + case 29: return "first chunk is not the header chunk"; + case 30: return "chunk length too large, chunk broken off at end of file"; + case 31: return "illegal PNG color type or bpp"; + case 32: return "illegal PNG compression method"; + case 33: return "illegal PNG filter method"; + case 34: return "illegal PNG interlace method"; + case 35: return "chunk length of a chunk is too large or the chunk too small"; + case 36: return "illegal PNG filter type encountered"; + case 37: return "illegal bit depth for this color type given"; + case 38: return "the palette is too big"; /*more than 256 colors*/ + case 39: return "more palette alpha values given in tRNS chunk than there are colors in the palette"; + case 40: return "tRNS chunk has wrong size for greyscale image"; + case 41: return "tRNS chunk has wrong size for RGB image"; + case 42: return "tRNS chunk appeared while it was not allowed for this color type"; + case 43: return "bKGD chunk has wrong size for palette image"; + case 44: return "bKGD chunk has wrong size for greyscale image"; + case 45: return "bKGD chunk has wrong size for RGB image"; + case 48: return "empty input buffer given to decoder. Maybe caused by non-existing file?"; + case 49: return "jumped past memory while generating dynamic huffman tree"; + case 50: return "jumped past memory while generating dynamic huffman tree"; + case 51: return "jumped past memory while inflating huffman block"; + case 52: return "jumped past memory while inflating"; + case 53: return "size of zlib data too small"; + case 54: return "repeat symbol in tree while there was no value symbol yet"; + /*jumped past tree while generating huffman tree, this could be when the + tree will have more leaves than symbols after generating it out of the + given lenghts. They call this an oversubscribed dynamic bit lengths tree in zlib.*/ + case 55: return "jumped past tree while generating huffman tree"; + case 56: return "given output image colortype or bitdepth not supported for color conversion"; + case 57: return "invalid CRC encountered (checking CRC can be disabled)"; + case 58: return "invalid ADLER32 encountered (checking ADLER32 can be disabled)"; + case 59: return "requested color conversion not supported"; + case 60: return "invalid window size given in the settings of the encoder (must be 0-32768)"; + case 61: return "invalid BTYPE given in the settings of the encoder (only 0, 1 and 2 are allowed)"; + /*LodePNG leaves the choice of RGB to greyscale conversion formula to the user.*/ + case 62: return "conversion from color to greyscale not supported"; + case 63: return "length of a chunk too long, max allowed for PNG is 2147483647 bytes per chunk"; /*(2^31-1)*/ + /*this would result in the inability of a deflated block to ever contain an end code. It must be at least 1.*/ + case 64: return "the length of the END symbol 256 in the Huffman tree is 0"; + case 66: return "the length of a text chunk keyword given to the encoder is longer than the maximum of 79 bytes"; + case 67: return "the length of a text chunk keyword given to the encoder is smaller than the minimum of 1 byte"; + case 68: return "tried to encode a PLTE chunk with a palette that has less than 1 or more than 256 colors"; + case 69: return "unknown chunk type with 'critical' flag encountered by the decoder"; + case 71: return "unexisting interlace mode given to encoder (must be 0 or 1)"; + case 72: return "while decoding, unexisting compression method encountering in zTXt or iTXt chunk (it must be 0)"; + case 73: return "invalid tIME chunk size"; + case 74: return "invalid pHYs chunk size"; + /*length could be wrong, or data chopped off*/ + case 75: return "no null termination char found while decoding text chunk"; + case 76: return "iTXt chunk too short to contain required bytes"; + case 77: return "integer overflow in buffer size"; + case 78: return "failed to open file for reading"; /*file doesn't exist or couldn't be opened for reading*/ + case 79: return "failed to open file for writing"; + case 80: return "tried creating a tree of 0 symbols"; + case 81: return "lazy matching at pos 0 is impossible"; + case 82: return "color conversion to palette requested while a color isn't in palette"; + case 83: return "memory allocation failed"; + case 84: return "given image too small to contain all pixels to be encoded"; + case 86: return "impossible offset in lz77 encoding (internal bug)"; + case 87: return "must provide custom zlib function pointer if LODEPNG_COMPILE_ZLIB is not defined"; + case 88: return "invalid filter strategy given for LodePNGEncoderSettings.filter_strategy"; + case 89: return "text chunk keyword too short or long: must have size 1-79"; + /*the windowsize in the LodePNGCompressSettings. Requiring POT(==> & instead of %) makes encoding 12% faster.*/ + case 90: return "windowsize must be a power of two"; + case 91: return "invalid decompressed idat size"; + case 92: return "too many pixels, not supported"; + case 93: return "zero width or height is invalid"; + case 94: return "header chunk must have a size of 13 bytes"; + } + return "unknown error code"; +} +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // C++ Wrapper // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng +{ + +#ifdef LODEPNG_COMPILE_DISK +unsigned load_file(std::vector& buffer, const std::string& filename) +{ + long size = lodepng_filesize(filename.c_str()); + if(size < 0) return 78; + buffer.resize((size_t)size); + return size == 0 ? 0 : lodepng_buffer_file(&buffer[0], (size_t)size, filename.c_str()); +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned save_file(const std::vector& buffer, const std::string& filename) +{ + return lodepng_save_file(buffer.empty() ? 0 : &buffer[0], buffer.size(), filename.c_str()); +} +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings) +{ + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_decompress(&buffer, &buffersize, in, insize, &settings); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings) +{ + return decompress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings) +{ + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_compress(&buffer, &buffersize, in, insize, &settings); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings) +{ + return compress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ + + +#ifdef LODEPNG_COMPILE_PNG + +State::State() +{ + lodepng_state_init(this); +} + +State::State(const State& other) +{ + lodepng_state_init(this); + lodepng_state_copy(this, &other); +} + +State::~State() +{ + lodepng_state_cleanup(this); +} + +State& State::operator=(const State& other) +{ + lodepng_state_copy(this, &other); + return *this; +} + +#ifdef LODEPNG_COMPILE_DECODER + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + unsigned error = lodepng_decode_memory(&buffer, &w, &h, in, insize, colortype, bitdepth); + if(buffer && !error) + { + State state; + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, LodePNGColorType colortype, unsigned bitdepth) +{ + return decode(out, w, h, in.empty() ? 0 : &in[0], (unsigned)in.size(), colortype, bitdepth); +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize) +{ + unsigned char* buffer = NULL; + unsigned error = lodepng_decode(&buffer, &w, &h, &state, in, insize); + if(buffer && !error) + { + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + } + lodepng_free(buffer); + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in) +{ + return decode(out, w, h, state, in.empty() ? 0 : &in[0], in.size()); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const std::string& filename, + LodePNGColorType colortype, unsigned bitdepth) +{ + std::vector buffer; + unsigned error = load_file(buffer, filename); + if(error) return error; + return decode(out, w, h, buffer, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DECODER */ +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned encode(std::vector& out, const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, in, w, h, colortype, bitdepth); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} + +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state) +{ + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode(&buffer, &buffersize, in, w, h, &state); + if(buffer) + { + out.insert(out.end(), &buffer[0], &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state) +{ + if(lodepng_get_raw_size(w, h, &state.info_raw) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, state); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + std::vector buffer; + unsigned error = encode(buffer, in, w, h, colortype, bitdepth); + if(!error) error = save_file(buffer, filename); + return error; +} + +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) +{ + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(filename, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_PNG */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ diff --git a/src/lodepng.h b/src/lodepng.h new file mode 100755 index 00000000..fcf9f714 --- /dev/null +++ b/src/lodepng.h @@ -0,0 +1,1760 @@ +/* +LodePNG version 20160501 + +Copyright (c) 2005-2016 Lode Vandevenne + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +*/ + +#ifndef LODEPNG_H +#define LODEPNG_H + +#include /*for size_t*/ + +extern const char* LODEPNG_VERSION_STRING; + +/* +The following #defines are used to create code sections. They can be disabled +to disable code sections, which can give faster compile time and smaller binary. +The "NO_COMPILE" defines are designed to be used to pass as defines to the +compiler command to disable them without modifying this header, e.g. +-DLODEPNG_NO_COMPILE_ZLIB for gcc. +In addition to those below, you can also define LODEPNG_NO_COMPILE_CRC to +allow implementing a custom lodepng_crc32. +*/ +/*deflate & zlib. If disabled, you must specify alternative zlib functions in +the custom_zlib field of the compress and decompress settings*/ +#ifndef LODEPNG_NO_COMPILE_ZLIB +#define LODEPNG_COMPILE_ZLIB +#endif +/*png encoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_PNG +#define LODEPNG_COMPILE_PNG +#endif +/*deflate&zlib decoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_DECODER +#define LODEPNG_COMPILE_DECODER +#endif +/*deflate&zlib encoder and png encoder*/ +#ifndef LODEPNG_NO_COMPILE_ENCODER +#define LODEPNG_COMPILE_ENCODER +#endif +/*the optional built in harddisk file loading and saving functions*/ +#ifndef LODEPNG_NO_COMPILE_DISK +#define LODEPNG_COMPILE_DISK +#endif +/*support for chunks other than IHDR, IDAT, PLTE, tRNS, IEND: ancillary and unknown chunks*/ +#ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS +#define LODEPNG_COMPILE_ANCILLARY_CHUNKS +#endif +/*ability to convert error numerical codes to English text string*/ +#ifndef LODEPNG_NO_COMPILE_ERROR_TEXT +#define LODEPNG_COMPILE_ERROR_TEXT +#endif +/*Compile the default allocators (C's free, malloc and realloc). If you disable this, +you can define the functions lodepng_free, lodepng_malloc and lodepng_realloc in your +source files with custom allocators.*/ +#ifndef LODEPNG_NO_COMPILE_ALLOCATORS +#define LODEPNG_COMPILE_ALLOCATORS +#endif +/*compile the C++ version (you can disable the C++ wrapper here even when compiling for C++)*/ +#ifdef __cplusplus +#ifndef LODEPNG_NO_COMPILE_CPP +#define LODEPNG_COMPILE_CPP +#endif +#endif + +#ifdef LODEPNG_COMPILE_CPP +#include +#include +#endif /*LODEPNG_COMPILE_CPP*/ + +#ifdef LODEPNG_COMPILE_PNG +/*The PNG color types (also used for raw).*/ +typedef enum LodePNGColorType +{ + LCT_GREY = 0, /*greyscale: 1,2,4,8,16 bit*/ + LCT_RGB = 2, /*RGB: 8,16 bit*/ + LCT_PALETTE = 3, /*palette: 1,2,4,8 bit*/ + LCT_GREY_ALPHA = 4, /*greyscale with alpha: 8,16 bit*/ + LCT_RGBA = 6 /*RGB with alpha: 8,16 bit*/ +} LodePNGColorType; + +#ifdef LODEPNG_COMPILE_DECODER +/* +Converts PNG data in memory to raw pixel data. +out: Output parameter. Pointer to buffer that will contain the raw pixel data. + After decoding, its size is w * h * (bytes per pixel) bytes larger than + initially. Bytes per pixel depends on colortype and bitdepth. + Must be freed after usage with free(*out). + Note: for 16-bit per channel colors, uses big endian format like PNG does. +w: Output parameter. Pointer to width of pixel data. +h: Output parameter. Pointer to height of pixel data. +in: Memory buffer with the PNG file. +insize: size of the in buffer. +colortype: the desired color type for the raw output image. See explanation on PNG color types. +bitdepth: the desired bit depth for the raw output image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_memory, but always decodes to 32-bit RGBA raw image*/ +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +/*Same as lodepng_decode_memory, but always decodes to 24-bit RGB raw image*/ +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +#ifdef LODEPNG_COMPILE_DISK +/* +Load PNG from disk, from file with given name. +Same as the other decode functions, but instead takes a filename as input. +*/ +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_file, but always decodes to 32-bit RGBA raw image.*/ +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); + +/*Same as lodepng_decode_file, but always decodes to 24-bit RGB raw image.*/ +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_DECODER*/ + + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Converts raw pixel data into a PNG image in memory. The colortype and bitdepth + of the output PNG image cannot be chosen, they are automatically determined + by the colortype, bitdepth and content of the input pixel data. + Note: for 16-bit per channel colors, needs big endian format like PNG does. +out: Output parameter. Pointer to buffer that will contain the PNG image data. + Must be freed after usage with free(*out). +outsize: Output parameter. Pointer to the size in bytes of the out buffer. +image: The raw pixel data to encode. The size of this buffer should be + w * h * (bytes per pixel), bytes per pixel depends on colortype and bitdepth. +w: width of the raw pixel data in pixels. +h: height of the raw pixel data in pixels. +colortype: the color type of the raw input image. See explanation on PNG color types. +bitdepth: the bit depth of the raw input image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_memory, but always encodes from 32-bit RGBA raw image.*/ +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_memory, but always encodes from 24-bit RGB raw image.*/ +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DISK +/* +Converts raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. +NOTE: This overwrites existing files without warning! +*/ +unsigned lodepng_encode_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_file, but always encodes from 32-bit RGBA raw image.*/ +unsigned lodepng_encode32_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_file, but always encodes from 24-bit RGB raw image.*/ +unsigned lodepng_encode24_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng +{ +#ifdef LODEPNG_COMPILE_DECODER +/*Same as lodepng_decode_memory, but decodes to an std::vector. The colortype +is the format to output the pixels to. Default is RGBA 8-bit per channel.*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts PNG file from disk to raw pixel data in memory. +Same as the other decode functions, but instead takes a filename as input. +*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::string& filename, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/*Same as lodepng_encode_memory, but encodes to an std::vector. colortype +is that of the raw input data. The output PNG color type will be auto chosen.*/ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts 32-bit RGBA raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. +NOTE: This overwrites existing files without warning! +*/ +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/*Returns an English description of the numerical error code.*/ +const char* lodepng_error_text(unsigned code); +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Settings for zlib decompression*/ +typedef struct LodePNGDecompressSettings LodePNGDecompressSettings; +struct LodePNGDecompressSettings +{ + unsigned ignore_adler32; /*if 1, continue and don't give an error message if the Adler32 checksum is corrupted*/ + + /*use custom zlib decoder instead of built in one (default: null)*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + /*use custom deflate decoder instead of built in one (default: null) + if custom_zlib is used, custom_deflate is ignored since only the built in + zlib function will call custom_deflate*/ + unsigned (*custom_inflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGDecompressSettings lodepng_default_decompress_settings; +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Settings for zlib compression. Tweaking these settings tweaks the balance +between speed and compression ratio. +*/ +typedef struct LodePNGCompressSettings LodePNGCompressSettings; +struct LodePNGCompressSettings /*deflate = compress*/ +{ + /*LZ77 related settings*/ + unsigned btype; /*the block type for LZ (0, 1, 2 or 3, see zlib standard). Should be 2 for proper compression.*/ + unsigned use_lz77; /*whether or not to use LZ77. Should be 1 for proper compression.*/ + unsigned windowsize; /*must be a power of two <= 32768. higher compresses more but is slower. Default value: 2048.*/ + unsigned minmatch; /*mininum lz77 length. 3 is normally best, 6 can be better for some PNGs. Default: 0*/ + unsigned nicematch; /*stop searching if >= this length found. Set to 258 for best compression. Default: 128*/ + unsigned lazymatching; /*use lazy matching: better compression but a bit slower. Default: true*/ + + /*use custom zlib encoder instead of built in one (default: null)*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + /*use custom deflate encoder instead of built in one (default: null) + if custom_zlib is used, custom_deflate is ignored since only the built in + zlib function will call custom_deflate*/ + unsigned (*custom_deflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGCompressSettings lodepng_default_compress_settings; +void lodepng_compress_settings_init(LodePNGCompressSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_PNG +/* +Color mode of an image. Contains all information required to decode the pixel +bits to RGBA colors. This information is the same as used in the PNG file +format, and is used both for PNG and raw image data in LodePNG. +*/ +typedef struct LodePNGColorMode +{ + /*header (IHDR)*/ + LodePNGColorType colortype; /*color type, see PNG standard or documentation further in this header file*/ + unsigned bitdepth; /*bits per sample, see PNG standard or documentation further in this header file*/ + + /* + palette (PLTE and tRNS) + + Dynamically allocated with the colors of the palette, including alpha. + When encoding a PNG, to store your colors in the palette of the LodePNGColorMode, first use + lodepng_palette_clear, then for each color use lodepng_palette_add. + If you encode an image without alpha with palette, don't forget to put value 255 in each A byte of the palette. + + When decoding, by default you can ignore this palette, since LodePNG already + fills the palette colors in the pixels of the raw RGBA output. + + The palette is only supported for color type 3. + */ + unsigned char* palette; /*palette in RGBARGBA... order. When allocated, must be either 0, or have size 1024*/ + size_t palettesize; /*palette size in number of colors (amount of bytes is 4 * palettesize)*/ + + /* + transparent color key (tRNS) + + This color uses the same bit depth as the bitdepth value in this struct, which can be 1-bit to 16-bit. + For greyscale PNGs, r, g and b will all 3 be set to the same. + + When decoding, by default you can ignore this information, since LodePNG sets + pixels with this key to transparent already in the raw RGBA output. + + The color key is only supported for color types 0 and 2. + */ + unsigned key_defined; /*is a transparent color key given? 0 = false, 1 = true*/ + unsigned key_r; /*red/greyscale component of color key*/ + unsigned key_g; /*green component of color key*/ + unsigned key_b; /*blue component of color key*/ +} LodePNGColorMode; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_color_mode_init(LodePNGColorMode* info); +void lodepng_color_mode_cleanup(LodePNGColorMode* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source); + +void lodepng_palette_clear(LodePNGColorMode* info); +/*add 1 color to the palette*/ +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a); + +/*get the total amount of bits per pixel, based on colortype and bitdepth in the struct*/ +unsigned lodepng_get_bpp(const LodePNGColorMode* info); +/*get the amount of color channels used, based on colortype in the struct. +If a palette is used, it counts as 1 channel.*/ +unsigned lodepng_get_channels(const LodePNGColorMode* info); +/*is it a greyscale type? (only colortype 0 or 4)*/ +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info); +/*has it got an alpha channel? (only colortype 2 or 6)*/ +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info); +/*has it got a palette? (only colortype 3)*/ +unsigned lodepng_is_palette_type(const LodePNGColorMode* info); +/*only returns true if there is a palette and there is a value in the palette with alpha < 255. +Loops through the palette to check this.*/ +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info); +/* +Check if the given color info indicates the possibility of having non-opaque pixels in the PNG image. +Returns true if the image can have translucent or invisible pixels (it still be opaque if it doesn't use such pixels). +Returns false if the image can only have opaque pixels. +In detail, it returns true only if it's a color type with alpha, or has a palette with non-opaque values, +or if "key_defined" is true. +*/ +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info); +/*Returns the byte size of a raw image buffer with given width, height and color mode*/ +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*The information of a Time chunk in PNG.*/ +typedef struct LodePNGTime +{ + unsigned year; /*2 bytes used (0-65535)*/ + unsigned month; /*1-12*/ + unsigned day; /*1-31*/ + unsigned hour; /*0-23*/ + unsigned minute; /*0-59*/ + unsigned second; /*0-60 (to allow for leap seconds)*/ +} LodePNGTime; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*Information about the PNG image, except pixels, width and height.*/ +typedef struct LodePNGInfo +{ + /*header (IHDR), palette (PLTE) and transparency (tRNS) chunks*/ + unsigned compression_method;/*compression method of the original file. Always 0.*/ + unsigned filter_method; /*filter method of the original file*/ + unsigned interlace_method; /*interlace method of the original file*/ + LodePNGColorMode color; /*color type and bits, palette and transparency of the PNG file*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /* + suggested background color chunk (bKGD) + This color uses the same color mode as the PNG (except alpha channel), which can be 1-bit to 16-bit. + + For greyscale PNGs, r, g and b will all 3 be set to the same. When encoding + the encoder writes the red one. For palette PNGs: When decoding, the RGB value + will be stored, not a palette index. But when encoding, specify the index of + the palette in background_r, the other two are then ignored. + + The decoder does not use this background color to edit the color of pixels. + */ + unsigned background_defined; /*is a suggested background color given?*/ + unsigned background_r; /*red component of suggested background color*/ + unsigned background_g; /*green component of suggested background color*/ + unsigned background_b; /*blue component of suggested background color*/ + + /* + non-international text chunks (tEXt and zTXt) + + The char** arrays each contain num strings. The actual messages are in + text_strings, while text_keys are keywords that give a short description what + the actual text represents, e.g. Title, Author, Description, or anything else. + + A keyword is minimum 1 character and maximum 79 characters long. It's + discouraged to use a single line length longer than 79 characters for texts. + + Don't allocate these text buffers yourself. Use the init/cleanup functions + correctly and use lodepng_add_text and lodepng_clear_text. + */ + size_t text_num; /*the amount of texts in these char** buffers (there may be more texts in itext)*/ + char** text_keys; /*the keyword of a text chunk (e.g. "Comment")*/ + char** text_strings; /*the actual text*/ + + /* + international text chunks (iTXt) + Similar to the non-international text chunks, but with additional strings + "langtags" and "transkeys". + */ + size_t itext_num; /*the amount of international texts in this PNG*/ + char** itext_keys; /*the English keyword of the text chunk (e.g. "Comment")*/ + char** itext_langtags; /*language tag for this text's language, ISO/IEC 646 string, e.g. ISO 639 language tag*/ + char** itext_transkeys; /*keyword translated to the international language - UTF-8 string*/ + char** itext_strings; /*the actual international text - UTF-8 string*/ + + /*time chunk (tIME)*/ + unsigned time_defined; /*set to 1 to make the encoder generate a tIME chunk*/ + LodePNGTime time; + + /*phys chunk (pHYs)*/ + unsigned phys_defined; /*if 0, there is no pHYs chunk and the values below are undefined, if 1 else there is one*/ + unsigned phys_x; /*pixels per unit in x direction*/ + unsigned phys_y; /*pixels per unit in y direction*/ + unsigned phys_unit; /*may be 0 (unknown unit) or 1 (metre)*/ + + /* + unknown chunks + There are 3 buffers, one for each position in the PNG where unknown chunks can appear + each buffer contains all unknown chunks for that position consecutively + The 3 buffers are the unknown chunks between certain critical chunks: + 0: IHDR-PLTE, 1: PLTE-IDAT, 2: IDAT-IEND + Do not allocate or traverse this data yourself. Use the chunk traversing functions declared + later, such as lodepng_chunk_next and lodepng_chunk_append, to read/write this struct. + */ + unsigned char* unknown_chunks_data[3]; + size_t unknown_chunks_size[3]; /*size in bytes of the unknown chunks, given for protection*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGInfo; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_info_init(LodePNGInfo* info); +void lodepng_info_cleanup(LodePNGInfo* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +void lodepng_clear_text(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str); /*push back both texts at once*/ + +void lodepng_clear_itext(LodePNGInfo* info); /*use this to clear the itexts again after you filled them in*/ +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str); /*push back the 4 texts of 1 chunk at once*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/* +Converts raw buffer from one color type to another color type, based on +LodePNGColorMode structs to describe the input and output color type. +See the reference manual at the end of this header file to see which color conversions are supported. +return value = LodePNG error code (0 if all went ok, an error if the conversion isn't supported) +The out buffer must have size (w * h * bpp + 7) / 8, where bpp is the bits per pixel +of the output color type (lodepng_get_bpp). +For < 8 bpp images, there should not be padding bits at the end of scanlines. +For 16-bit per channel colors, uses big endian format like PNG does. +Return value is LodePNG error code +*/ +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DECODER +/* +Settings for the decoder. This contains settings for the PNG and the Zlib +decoder, but not the Info settings from the Info structs. +*/ +typedef struct LodePNGDecoderSettings +{ + LodePNGDecompressSettings zlibsettings; /*in here is the setting to ignore Adler32 checksums*/ + + unsigned ignore_crc; /*ignore CRC checksums*/ + + unsigned color_convert; /*whether to convert the PNG to the color type you want. Default: yes*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned read_text_chunks; /*if false but remember_unknown_chunks is true, they're stored in the unknown chunks*/ + /*store all bytes from unknown chunks in the LodePNGInfo (off by default, useful for a png editor)*/ + unsigned remember_unknown_chunks; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGDecoderSettings; + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/*automatically use color type with less bits per pixel if losslessly possible. Default: AUTO*/ +typedef enum LodePNGFilterStrategy +{ + /*every filter at zero*/ + LFS_ZERO, + /*Use filter that gives minimum sum, as described in the official PNG filter heuristic.*/ + LFS_MINSUM, + /*Use the filter type that gives smallest Shannon entropy for this scanline. Depending + on the image, this is better or worse than minsum.*/ + LFS_ENTROPY, + /* + Brute-force-search PNG filters by compressing each filter for each scanline. + Experimental, very slow, and only rarely gives better compression than MINSUM. + */ + LFS_BRUTE_FORCE, + /*use predefined_filters buffer: you specify the filter type for each scanline*/ + LFS_PREDEFINED +} LodePNGFilterStrategy; + +/*Gives characteristics about the colors of the image, which helps decide which color model to use for encoding. +Used internally by default if "auto_convert" is enabled. Public because it's useful for custom algorithms.*/ +typedef struct LodePNGColorProfile +{ + unsigned colored; /*not greyscale*/ + unsigned key; /*if true, image is not opaque. Only if true and alpha is false, color key is possible.*/ + unsigned short key_r; /*these values are always in 16-bit bitdepth in the profile*/ + unsigned short key_g; + unsigned short key_b; + unsigned alpha; /*alpha channel or alpha palette required*/ + unsigned numcolors; /*amount of colors, up to 257. Not valid if bits == 16.*/ + unsigned char palette[1024]; /*Remembers up to the first 256 RGBA colors, in no particular order*/ + unsigned bits; /*bits per channel (not for palette). 1,2 or 4 for greyscale only. 16 if 16-bit per channel required.*/ +} LodePNGColorProfile; + +void lodepng_color_profile_init(LodePNGColorProfile* profile); + +/*Get a LodePNGColorProfile of the image.*/ +unsigned lodepng_get_color_profile(LodePNGColorProfile* profile, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in); +/*The function LodePNG uses internally to decide the PNG color with auto_convert. +Chooses an optimal color model, e.g. grey if only grey pixels, palette if < 256 colors, ...*/ +unsigned lodepng_auto_choose_color(LodePNGColorMode* mode_out, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in); + +/*Settings for the encoder.*/ +typedef struct LodePNGEncoderSettings +{ + LodePNGCompressSettings zlibsettings; /*settings for the zlib encoder, such as window size, ...*/ + + unsigned auto_convert; /*automatically choose output PNG color type. Default: true*/ + + /*If true, follows the official PNG heuristic: if the PNG uses a palette or lower than + 8 bit depth, set all filters to zero. Otherwise use the filter_strategy. Note that to + completely follow the official PNG heuristic, filter_palette_zero must be true and + filter_strategy must be LFS_MINSUM*/ + unsigned filter_palette_zero; + /*Which filter strategy to use when not using zeroes due to filter_palette_zero. + Set filter_palette_zero to 0 to ensure always using your chosen strategy. Default: LFS_MINSUM*/ + LodePNGFilterStrategy filter_strategy; + /*used if filter_strategy is LFS_PREDEFINED. In that case, this must point to a buffer with + the same length as the amount of scanlines in the image, and each value must <= 5. You + have to cleanup this buffer, LodePNG will never free it. Don't forget that filter_palette_zero + must be set to 0 to ensure this is also used on palette or low bitdepth images.*/ + const unsigned char* predefined_filters; + + /*force creating a PLTE chunk if colortype is 2 or 6 (= a suggested palette). + If colortype is 3, PLTE is _always_ created.*/ + unsigned force_palette; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*add LodePNG identifier and version as a text chunk, for debugging*/ + unsigned add_id; + /*encode text chunks as zTXt chunks instead of tEXt chunks, and use compression in iTXt chunks*/ + unsigned text_compression; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGEncoderSettings; + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) +/*The settings, state and information for extended encoding and decoding.*/ +typedef struct LodePNGState +{ +#ifdef LODEPNG_COMPILE_DECODER + LodePNGDecoderSettings decoder; /*the decoding settings*/ +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + LodePNGEncoderSettings encoder; /*the encoding settings*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + LodePNGColorMode info_raw; /*specifies the format in which you would like to get the raw pixel buffer*/ + LodePNGInfo info_png; /*info of the PNG image obtained after decoding*/ + unsigned error; +#ifdef LODEPNG_COMPILE_CPP + /* For the lodepng::State subclass. */ + virtual ~LodePNGState(){} +#endif +} LodePNGState; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_state_init(LodePNGState* state); +void lodepng_state_cleanup(LodePNGState* state); +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source); +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_DECODER +/* +Same as lodepng_decode_memory, but uses a LodePNGState to allow custom settings and +getting much more information about the PNG image and color mode. +*/ +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); + +/* +Read the PNG header, but not the actual data. This returns only the information +that is in the header chunk of the PNG, such as width, height and color type. The +information is placed in the info_png field of the LodePNGState. +*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); +#endif /*LODEPNG_COMPILE_DECODER*/ + + +#ifdef LODEPNG_COMPILE_ENCODER +/*This function allocates the out buffer with standard malloc and stores the size in *outsize.*/ +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/* +The lodepng_chunk functions are normally not needed, except to traverse the +unknown chunks stored in the LodePNGInfo struct, or add new ones to it. +It also allows traversing the chunks of an encoded PNG file yourself. + +PNG standard chunk naming conventions: +First byte: uppercase = critical, lowercase = ancillary +Second byte: uppercase = public, lowercase = private +Third byte: must be uppercase +Fourth byte: uppercase = unsafe to copy, lowercase = safe to copy +*/ + +/* +Gets the length of the data of the chunk. Total chunk length has 12 bytes more. +There must be at least 4 bytes to read from. If the result value is too large, +it may be corrupt data. +*/ +unsigned lodepng_chunk_length(const unsigned char* chunk); + +/*puts the 4-byte type in null terminated string*/ +void lodepng_chunk_type(char type[5], const unsigned char* chunk); + +/*check if the type is the given type*/ +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type); + +/*0: it's one of the critical chunk types, 1: it's an ancillary chunk (see PNG standard)*/ +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk); + +/*0: public, 1: private (see PNG standard)*/ +unsigned char lodepng_chunk_private(const unsigned char* chunk); + +/*0: the chunk is unsafe to copy, 1: the chunk is safe to copy (see PNG standard)*/ +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk); + +/*get pointer to the data of the chunk, where the input points to the header of the chunk*/ +unsigned char* lodepng_chunk_data(unsigned char* chunk); +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk); + +/*returns 0 if the crc is correct, 1 if it's incorrect (0 for OK as usual!)*/ +unsigned lodepng_chunk_check_crc(const unsigned char* chunk); + +/*generates the correct CRC from the data and puts it in the last 4 bytes of the chunk*/ +void lodepng_chunk_generate_crc(unsigned char* chunk); + +/*iterate to next chunks. don't use on IEND chunk, as there is no next chunk then*/ +unsigned char* lodepng_chunk_next(unsigned char* chunk); +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk); + +/* +Appends chunk to the data in out. The given chunk should already have its chunk header. +The out variable and outlength are updated to reflect the new reallocated buffer. +Returns error code (0 if it went ok) +*/ +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk); + +/* +Appends new chunk to out. The chunk to append is given by giving its length, type +and data separately. The type is a 4-letter string. +The out variable and outlength are updated to reflect the new reallocated buffer. +Returne error code (0 if it went ok) +*/ +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data); + + +/*Calculate CRC32 of buffer*/ +unsigned lodepng_crc32(const unsigned char* buf, size_t len); +#endif /*LODEPNG_COMPILE_PNG*/ + + +#ifdef LODEPNG_COMPILE_ZLIB +/* +This zlib part can be used independently to zlib compress and decompress a +buffer. It cannot be used to create gzip files however, and it only supports the +part of zlib that is required for PNG, it does not support dictionaries. +*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Inflate a buffer. Inflate is the decompression step of deflate. Out buffer must be freed after use.*/ +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); + +/* +Decompresses Zlib data. Reallocates the out buffer and appends the data. The +data must be according to the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Compresses data with Zlib. Reallocates the out buffer and appends the data. +Zlib adds a small header and trailer around the deflate data. +The data is output in the format of the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +/* +Find length-limited Huffman code for given frequencies. This function is in the +public interface only for tests, it's used internally by lodepng_deflate. +*/ +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen); + +/*Compress a buffer with deflate. See RFC 1951. Out buffer must be freed after use.*/ +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into buffer. The function allocates the out buffer, and +after usage you should free it. +out: output parameter, contains pointer to loaded buffer. +outsize: output parameter, size of the allocated out buffer +filename: the path to the file to load +return value: error code (0 means ok) +*/ +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename); + +/* +Save a file from buffer to disk. Warning, if it exists, this function overwrites +the file without warning! +buffer: the buffer to write +buffersize: size of the buffer to write +filename: the path to the file to save to +return value: error code (0 means ok) +*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ + +#ifdef LODEPNG_COMPILE_CPP +/* The LodePNG C++ wrapper uses std::vectors instead of manually allocated memory buffers. */ +namespace lodepng +{ +#ifdef LODEPNG_COMPILE_PNG +class State : public LodePNGState +{ + public: + State(); + State(const State& other); + virtual ~State(); + State& operator=(const State& other); +}; + +#ifdef LODEPNG_COMPILE_DECODER +/* Same as other lodepng::decode, but using a State for more settings and information. */ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Same as other lodepng::encode, but using a State for more settings and information. */ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into an std::vector. +return value: error code (0 means ok) +*/ +unsigned load_file(std::vector& buffer, const std::string& filename); + +/* +Save the binary data in an std::vector to a file on disk. The file is overwritten +without warning. +*/ +unsigned save_file(const std::vector& buffer, const std::string& filename); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_PNG */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +/* Zlib-decompress an unsigned char buffer */ +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); + +/* Zlib-decompress an std::vector */ +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Zlib-compress an unsigned char buffer */ +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); + +/* Zlib-compress an std::vector */ +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ + +/* +TODO: +[.] test if there are no memory leaks or security exploits - done a lot but needs to be checked often +[.] check compatibility with various compilers - done but needs to be redone for every newer version +[X] converting color to 16-bit per channel types +[ ] read all public PNG chunk types (but never let the color profile and gamma ones touch RGB values) +[ ] make sure encoder generates no chunks with size > (2^31)-1 +[ ] partial decoding (stream processing) +[X] let the "isFullyOpaque" function check color keys and transparent palettes too +[X] better name for the variables "codes", "codesD", "codelengthcodes", "clcl" and "lldl" +[ ] don't stop decoding on errors like 69, 57, 58 (make warnings) +[ ] make warnings like: oob palette, checksum fail, data after iend, wrong/unknown crit chunk, no null terminator in text, ... +[ ] let the C++ wrapper catch exceptions coming from the standard library and return LodePNG error codes +[ ] allow user to provide custom color conversion functions, e.g. for premultiplied alpha, padding bits or not, ... +[ ] allow user to give data (void*) to custom allocator +*/ + +#endif /*LODEPNG_H inclusion guard*/ + +/* +LodePNG Documentation +--------------------- + +0. table of contents +-------------------- + + 1. about + 1.1. supported features + 1.2. features not supported + 2. C and C++ version + 3. security + 4. decoding + 5. encoding + 6. color conversions + 6.1. PNG color types + 6.2. color conversions + 6.3. padding bits + 6.4. A note about 16-bits per channel and endianness + 7. error values + 8. chunks and PNG editing + 9. compiler support + 10. examples + 10.1. decoder C++ example + 10.2. decoder C example + 11. state settings reference + 12. changes + 13. contact information + + +1. about +-------- + +PNG is a file format to store raster images losslessly with good compression, +supporting different color types and alpha channel. + +LodePNG is a PNG codec according to the Portable Network Graphics (PNG) +Specification (Second Edition) - W3C Recommendation 10 November 2003. + +The specifications used are: + +*) Portable Network Graphics (PNG) Specification (Second Edition): + http://www.w3.org/TR/2003/REC-PNG-20031110 +*) RFC 1950 ZLIB Compressed Data Format version 3.3: + http://www.gzip.org/zlib/rfc-zlib.html +*) RFC 1951 DEFLATE Compressed Data Format Specification ver 1.3: + http://www.gzip.org/zlib/rfc-deflate.html + +The most recent version of LodePNG can currently be found at +http://lodev.org/lodepng/ + +LodePNG works both in C (ISO C90) and C++, with a C++ wrapper that adds +extra functionality. + +LodePNG exists out of two files: +-lodepng.h: the header file for both C and C++ +-lodepng.c(pp): give it the name lodepng.c or lodepng.cpp (or .cc) depending on your usage + +If you want to start using LodePNG right away without reading this doc, get the +examples from the LodePNG website to see how to use it in code, or check the +smaller examples in chapter 13 here. + +LodePNG is simple but only supports the basic requirements. To achieve +simplicity, the following design choices were made: There are no dependencies +on any external library. There are functions to decode and encode a PNG with +a single function call, and extended versions of these functions taking a +LodePNGState struct allowing to specify or get more information. By default +the colors of the raw image are always RGB or RGBA, no matter what color type +the PNG file uses. To read and write files, there are simple functions to +convert the files to/from buffers in memory. + +This all makes LodePNG suitable for loading textures in games, demos and small +programs, ... It's less suitable for full fledged image editors, loading PNGs +over network (it requires all the image data to be available before decoding can +begin), life-critical systems, ... + +1.1. supported features +----------------------- + +The following features are supported by the decoder: + +*) decoding of PNGs with any color type, bit depth and interlace mode, to a 24- or 32-bit color raw image, + or the same color type as the PNG +*) encoding of PNGs, from any raw image to 24- or 32-bit color, or the same color type as the raw image +*) Adam7 interlace and deinterlace for any color type +*) loading the image from harddisk or decoding it from a buffer from other sources than harddisk +*) support for alpha channels, including RGBA color model, translucent palettes and color keying +*) zlib decompression (inflate) +*) zlib compression (deflate) +*) CRC32 and ADLER32 checksums +*) handling of unknown chunks, allowing making a PNG editor that stores custom and unknown chunks. +*) the following chunks are supported (generated/interpreted) by both encoder and decoder: + IHDR: header information + PLTE: color palette + IDAT: pixel data + IEND: the final chunk + tRNS: transparency for palettized images + tEXt: textual information + zTXt: compressed textual information + iTXt: international textual information + bKGD: suggested background color + pHYs: physical dimensions + tIME: modification time + +1.2. features not supported +--------------------------- + +The following features are _not_ supported: + +*) some features needed to make a conformant PNG-Editor might be still missing. +*) partial loading/stream processing. All data must be available and is processed in one call. +*) The following public chunks are not supported but treated as unknown chunks by LodePNG + cHRM, gAMA, iCCP, sRGB, sBIT, hIST, sPLT + Some of these are not supported on purpose: LodePNG wants to provide the RGB values + stored in the pixels, not values modified by system dependent gamma or color models. + + +2. C and C++ version +-------------------- + +The C version uses buffers allocated with alloc that you need to free() +yourself. You need to use init and cleanup functions for each struct whenever +using a struct from the C version to avoid exploits and memory leaks. + +The C++ version has extra functions with std::vectors in the interface and the +lodepng::State class which is a LodePNGState with constructor and destructor. + +These files work without modification for both C and C++ compilers because all +the additional C++ code is in "#ifdef __cplusplus" blocks that make C-compilers +ignore it, and the C code is made to compile both with strict ISO C90 and C++. + +To use the C++ version, you need to rename the source file to lodepng.cpp +(instead of lodepng.c), and compile it with a C++ compiler. + +To use the C version, you need to rename the source file to lodepng.c (instead +of lodepng.cpp), and compile it with a C compiler. + + +3. Security +----------- + +Even if carefully designed, it's always possible that LodePNG contains possible +exploits. If you discover one, please let me know, and it will be fixed. + +When using LodePNG, care has to be taken with the C version of LodePNG, as well +as the C-style structs when working with C++. The following conventions are used +for all C-style structs: + +-if a struct has a corresponding init function, always call the init function when making a new one +-if a struct has a corresponding cleanup function, call it before the struct disappears to avoid memory leaks +-if a struct has a corresponding copy function, use the copy function instead of "=". + The destination must also be inited already. + + +4. Decoding +----------- + +Decoding converts a PNG compressed image to a raw pixel buffer. + +Most documentation on using the decoder is at its declarations in the header +above. For C, simple decoding can be done with functions such as +lodepng_decode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_decode. For C++, all decoding can be done with the +various lodepng::decode functions, and lodepng::State can be used for advanced +features. + +When using the LodePNGState, it uses the following fields for decoding: +*) LodePNGInfo info_png: it stores extra information about the PNG (the input) in here +*) LodePNGColorMode info_raw: here you can say what color mode of the raw image (the output) you want to get +*) LodePNGDecoderSettings decoder: you can specify a few extra settings for the decoder to use + +LodePNGInfo info_png +-------------------- + +After decoding, this contains extra information of the PNG image, except the actual +pixels, width and height because these are already gotten directly from the decoder +functions. + +It contains for example the original color type of the PNG image, text comments, +suggested background color, etc... More details about the LodePNGInfo struct are +at its declaration documentation. + +LodePNGColorMode info_raw +------------------------- + +When decoding, here you can specify which color type you want +the resulting raw image to be. If this is different from the colortype of the +PNG, then the decoder will automatically convert the result. This conversion +always works, except if you want it to convert a color PNG to greyscale or to +a palette with missing colors. + +By default, 32-bit color is used for the result. + +LodePNGDecoderSettings decoder +------------------------------ + +The settings can be used to ignore the errors created by invalid CRC and Adler32 +chunks, and to disable the decoding of tEXt chunks. + +There's also a setting color_convert, true by default. If false, no conversion +is done, the resulting data will be as it was in the PNG (after decompression) +and you'll have to puzzle the colors of the pixels together yourself using the +color type information in the LodePNGInfo. + + +5. Encoding +----------- + +Encoding converts a raw pixel buffer to a PNG compressed image. + +Most documentation on using the encoder is at its declarations in the header +above. For C, simple encoding can be done with functions such as +lodepng_encode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_encode. For C++, all encoding can be done with the +various lodepng::encode functions, and lodepng::State can be used for advanced +features. + +Like the decoder, the encoder can also give errors. However it gives less errors +since the encoder input is trusted, the decoder input (a PNG image that could +be forged by anyone) is not trusted. + +When using the LodePNGState, it uses the following fields for encoding: +*) LodePNGInfo info_png: here you specify how you want the PNG (the output) to be. +*) LodePNGColorMode info_raw: here you say what color type of the raw image (the input) has +*) LodePNGEncoderSettings encoder: you can specify a few settings for the encoder to use + +LodePNGInfo info_png +-------------------- + +When encoding, you use this the opposite way as when decoding: for encoding, +you fill in the values you want the PNG to have before encoding. By default it's +not needed to specify a color type for the PNG since it's automatically chosen, +but it's possible to choose it yourself given the right settings. + +The encoder will not always exactly match the LodePNGInfo struct you give, +it tries as close as possible. Some things are ignored by the encoder. The +encoder uses, for example, the following settings from it when applicable: +colortype and bitdepth, text chunks, time chunk, the color key, the palette, the +background color, the interlace method, unknown chunks, ... + +When encoding to a PNG with colortype 3, the encoder will generate a PLTE chunk. +If the palette contains any colors for which the alpha channel is not 255 (so +there are translucent colors in the palette), it'll add a tRNS chunk. + +LodePNGColorMode info_raw +------------------------- + +You specify the color type of the raw image that you give to the input here, +including a possible transparent color key and palette you happen to be using in +your raw image data. + +By default, 32-bit color is assumed, meaning your input has to be in RGBA +format with 4 bytes (unsigned chars) per pixel. + +LodePNGEncoderSettings encoder +------------------------------ + +The following settings are supported (some are in sub-structs): +*) auto_convert: when this option is enabled, the encoder will +automatically choose the smallest possible color mode (including color key) that +can encode the colors of all pixels without information loss. +*) btype: the block type for LZ77. 0 = uncompressed, 1 = fixed huffman tree, + 2 = dynamic huffman tree (best compression). Should be 2 for proper + compression. +*) use_lz77: whether or not to use LZ77 for compressed block types. Should be + true for proper compression. +*) windowsize: the window size used by the LZ77 encoder (1 - 32768). Has value + 2048 by default, but can be set to 32768 for better, but slow, compression. +*) force_palette: if colortype is 2 or 6, you can make the encoder write a PLTE + chunk if force_palette is true. This can used as suggested palette to convert + to by viewers that don't support more than 256 colors (if those still exist) +*) add_id: add text chunk "Encoder: LodePNG " to the image. +*) text_compression: default 1. If 1, it'll store texts as zTXt instead of tEXt chunks. + zTXt chunks use zlib compression on the text. This gives a smaller result on + large texts but a larger result on small texts (such as a single program name). + It's all tEXt or all zTXt though, there's no separate setting per text yet. + + +6. color conversions +-------------------- + +An important thing to note about LodePNG, is that the color type of the PNG, and +the color type of the raw image, are completely independent. By default, when +you decode a PNG, you get the result as a raw image in the color type you want, +no matter whether the PNG was encoded with a palette, greyscale or RGBA color. +And if you encode an image, by default LodePNG will automatically choose the PNG +color type that gives good compression based on the values of colors and amount +of colors in the image. It can be configured to let you control it instead as +well, though. + +To be able to do this, LodePNG does conversions from one color mode to another. +It can convert from almost any color type to any other color type, except the +following conversions: RGB to greyscale is not supported, and converting to a +palette when the palette doesn't have a required color is not supported. This is +not supported on purpose: this is information loss which requires a color +reduction algorithm that is beyong the scope of a PNG encoder (yes, RGB to grey +is easy, but there are multiple ways if you want to give some channels more +weight). + +By default, when decoding, you get the raw image in 32-bit RGBA or 24-bit RGB +color, no matter what color type the PNG has. And by default when encoding, +LodePNG automatically picks the best color model for the output PNG, and expects +the input image to be 32-bit RGBA or 24-bit RGB. So, unless you want to control +the color format of the images yourself, you can skip this chapter. + +6.1. PNG color types +-------------------- + +A PNG image can have many color types, ranging from 1-bit color to 64-bit color, +as well as palettized color modes. After the zlib decompression and unfiltering +in the PNG image is done, the raw pixel data will have that color type and thus +a certain amount of bits per pixel. If you want the output raw image after +decoding to have another color type, a conversion is done by LodePNG. + +The PNG specification gives the following color types: + +0: greyscale, bit depths 1, 2, 4, 8, 16 +2: RGB, bit depths 8 and 16 +3: palette, bit depths 1, 2, 4 and 8 +4: greyscale with alpha, bit depths 8 and 16 +6: RGBA, bit depths 8 and 16 + +Bit depth is the amount of bits per pixel per color channel. So the total amount +of bits per pixel is: amount of channels * bitdepth. + +6.2. color conversions +---------------------- + +As explained in the sections about the encoder and decoder, you can specify +color types and bit depths in info_png and info_raw to change the default +behaviour. + +If, when decoding, you want the raw image to be something else than the default, +you need to set the color type and bit depth you want in the LodePNGColorMode, +or the parameters colortype and bitdepth of the simple decoding function. + +If, when encoding, you use another color type than the default in the raw input +image, you need to specify its color type and bit depth in the LodePNGColorMode +of the raw image, or use the parameters colortype and bitdepth of the simple +encoding function. + +If, when encoding, you don't want LodePNG to choose the output PNG color type +but control it yourself, you need to set auto_convert in the encoder settings +to false, and specify the color type you want in the LodePNGInfo of the +encoder (including palette: it can generate a palette if auto_convert is true, +otherwise not). + +If the input and output color type differ (whether user chosen or auto chosen), +LodePNG will do a color conversion, which follows the rules below, and may +sometimes result in an error. + +To avoid some confusion: +-the decoder converts from PNG to raw image +-the encoder converts from raw image to PNG +-the colortype and bitdepth in LodePNGColorMode info_raw, are those of the raw image +-the colortype and bitdepth in the color field of LodePNGInfo info_png, are those of the PNG +-when encoding, the color type in LodePNGInfo is ignored if auto_convert + is enabled, it is automatically generated instead +-when decoding, the color type in LodePNGInfo is set by the decoder to that of the original + PNG image, but it can be ignored since the raw image has the color type you requested instead +-if the color type of the LodePNGColorMode and PNG image aren't the same, a conversion + between the color types is done if the color types are supported. If it is not + supported, an error is returned. If the types are the same, no conversion is done. +-even though some conversions aren't supported, LodePNG supports loading PNGs from any + colortype and saving PNGs to any colortype, sometimes it just requires preparing + the raw image correctly before encoding. +-both encoder and decoder use the same color converter. + +Non supported color conversions: +-color to greyscale: no error is thrown, but the result will look ugly because +only the red channel is taken +-anything to palette when that palette does not have that color in it: in this +case an error is thrown + +Supported color conversions: +-anything to 8-bit RGB, 8-bit RGBA, 16-bit RGB, 16-bit RGBA +-any grey or grey+alpha, to grey or grey+alpha +-anything to a palette, as long as the palette has the requested colors in it +-removing alpha channel +-higher to smaller bitdepth, and vice versa + +If you want no color conversion to be done (e.g. for speed or control): +-In the encoder, you can make it save a PNG with any color type by giving the +raw color mode and LodePNGInfo the same color mode, and setting auto_convert to +false. +-In the decoder, you can make it store the pixel data in the same color type +as the PNG has, by setting the color_convert setting to false. Settings in +info_raw are then ignored. + +The function lodepng_convert does the color conversion. It is available in the +interface but normally isn't needed since the encoder and decoder already call +it. + +6.3. padding bits +----------------- + +In the PNG file format, if a less than 8-bit per pixel color type is used and the scanlines +have a bit amount that isn't a multiple of 8, then padding bits are used so that each +scanline starts at a fresh byte. But that is NOT true for the LodePNG raw input and output. +The raw input image you give to the encoder, and the raw output image you get from the decoder +will NOT have these padding bits, e.g. in the case of a 1-bit image with a width +of 7 pixels, the first pixel of the second scanline will the the 8th bit of the first byte, +not the first bit of a new byte. + +6.4. A note about 16-bits per channel and endianness +---------------------------------------------------- + +LodePNG uses unsigned char arrays for 16-bit per channel colors too, just like +for any other color format. The 16-bit values are stored in big endian (most +significant byte first) in these arrays. This is the opposite order of the +little endian used by x86 CPU's. + +LodePNG always uses big endian because the PNG file format does so internally. +Conversions to other formats than PNG uses internally are not supported by +LodePNG on purpose, there are myriads of formats, including endianness of 16-bit +colors, the order in which you store R, G, B and A, and so on. Supporting and +converting to/from all that is outside the scope of LodePNG. + +This may mean that, depending on your use case, you may want to convert the big +endian output of LodePNG to little endian with a for loop. This is certainly not +always needed, many applications and libraries support big endian 16-bit colors +anyway, but it means you cannot simply cast the unsigned char* buffer to an +unsigned short* buffer on x86 CPUs. + + +7. error values +--------------- + +All functions in LodePNG that return an error code, return 0 if everything went +OK, or a non-zero code if there was an error. + +The meaning of the LodePNG error values can be retrieved with the function +lodepng_error_text: given the numerical error code, it returns a description +of the error in English as a string. + +Check the implementation of lodepng_error_text to see the meaning of each code. + + +8. chunks and PNG editing +------------------------- + +If you want to add extra chunks to a PNG you encode, or use LodePNG for a PNG +editor that should follow the rules about handling of unknown chunks, or if your +program is able to read other types of chunks than the ones handled by LodePNG, +then that's possible with the chunk functions of LodePNG. + +A PNG chunk has the following layout: + +4 bytes length +4 bytes type name +length bytes data +4 bytes CRC + +8.1. iterating through chunks +----------------------------- + +If you have a buffer containing the PNG image data, then the first chunk (the +IHDR chunk) starts at byte number 8 of that buffer. The first 8 bytes are the +signature of the PNG and are not part of a chunk. But if you start at byte 8 +then you have a chunk, and can check the following things of it. + +NOTE: none of these functions check for memory buffer boundaries. To avoid +exploits, always make sure the buffer contains all the data of the chunks. +When using lodepng_chunk_next, make sure the returned value is within the +allocated memory. + +unsigned lodepng_chunk_length(const unsigned char* chunk): + +Get the length of the chunk's data. The total chunk length is this length + 12. + +void lodepng_chunk_type(char type[5], const unsigned char* chunk): +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type): + +Get the type of the chunk or compare if it's a certain type + +unsigned char lodepng_chunk_critical(const unsigned char* chunk): +unsigned char lodepng_chunk_private(const unsigned char* chunk): +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk): + +Check if the chunk is critical in the PNG standard (only IHDR, PLTE, IDAT and IEND are). +Check if the chunk is private (public chunks are part of the standard, private ones not). +Check if the chunk is safe to copy. If it's not, then, when modifying data in a critical +chunk, unsafe to copy chunks of the old image may NOT be saved in the new one if your +program doesn't handle that type of unknown chunk. + +unsigned char* lodepng_chunk_data(unsigned char* chunk): +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk): + +Get a pointer to the start of the data of the chunk. + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk): +void lodepng_chunk_generate_crc(unsigned char* chunk): + +Check if the crc is correct or generate a correct one. + +unsigned char* lodepng_chunk_next(unsigned char* chunk): +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk): + +Iterate to the next chunk. This works if you have a buffer with consecutive chunks. Note that these +functions do no boundary checking of the allocated data whatsoever, so make sure there is enough +data available in the buffer to be able to go to the next chunk. + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outlength, const unsigned char* chunk): +unsigned lodepng_chunk_create(unsigned char** out, size_t* outlength, unsigned length, + const char* type, const unsigned char* data): + +These functions are used to create new chunks that are appended to the data in *out that has +length *outlength. The append function appends an existing chunk to the new data. The create +function creates a new chunk with the given parameters and appends it. Type is the 4-letter +name of the chunk. + +8.2. chunks in info_png +----------------------- + +The LodePNGInfo struct contains fields with the unknown chunk in it. It has 3 +buffers (each with size) to contain 3 types of unknown chunks: +the ones that come before the PLTE chunk, the ones that come between the PLTE +and the IDAT chunks, and the ones that come after the IDAT chunks. +It's necessary to make the distionction between these 3 cases because the PNG +standard forces to keep the ordering of unknown chunks compared to the critical +chunks, but does not force any other ordering rules. + +info_png.unknown_chunks_data[0] is the chunks before PLTE +info_png.unknown_chunks_data[1] is the chunks after PLTE, before IDAT +info_png.unknown_chunks_data[2] is the chunks after IDAT + +The chunks in these 3 buffers can be iterated through and read by using the same +way described in the previous subchapter. + +When using the decoder to decode a PNG, you can make it store all unknown chunks +if you set the option settings.remember_unknown_chunks to 1. By default, this +option is off (0). + +The encoder will always encode unknown chunks that are stored in the info_png. +If you need it to add a particular chunk that isn't known by LodePNG, you can +use lodepng_chunk_append or lodepng_chunk_create to the chunk data in +info_png.unknown_chunks_data[x]. + +Chunks that are known by LodePNG should not be added in that way. E.g. to make +LodePNG add a bKGD chunk, set background_defined to true and add the correct +parameters there instead. + + +9. compiler support +------------------- + +No libraries other than the current standard C library are needed to compile +LodePNG. For the C++ version, only the standard C++ library is needed on top. +Add the files lodepng.c(pp) and lodepng.h to your project, include +lodepng.h where needed, and your program can read/write PNG files. + +It is compatible with C90 and up, and C++03 and up. + +If performance is important, use optimization when compiling! For both the +encoder and decoder, this makes a large difference. + +Make sure that LodePNG is compiled with the same compiler of the same version +and with the same settings as the rest of the program, or the interfaces with +std::vectors and std::strings in C++ can be incompatible. + +CHAR_BITS must be 8 or higher, because LodePNG uses unsigned chars for octets. + +*) gcc and g++ + +LodePNG is developed in gcc so this compiler is natively supported. It gives no +warnings with compiler options "-Wall -Wextra -pedantic -ansi", with gcc and g++ +version 4.7.1 on Linux, 32-bit and 64-bit. + +*) Clang + +Fully supported and warning-free. + +*) Mingw + +The Mingw compiler (a port of gcc for Windows) should be fully supported by +LodePNG. + +*) Visual Studio and Visual C++ Express Edition + +LodePNG should be warning-free with warning level W4. Two warnings were disabled +with pragmas though: warning 4244 about implicit conversions, and warning 4996 +where it wants to use a non-standard function fopen_s instead of the standard C +fopen. + +Visual Studio may want "stdafx.h" files to be included in each source file and +give an error "unexpected end of file while looking for precompiled header". +This is not standard C++ and will not be added to the stock LodePNG. You can +disable it for lodepng.cpp only by right clicking it, Properties, C/C++, +Precompiled Headers, and set it to Not Using Precompiled Headers there. + +NOTE: Modern versions of VS should be fully supported, but old versions, e.g. +VS6, are not guaranteed to work. + +*) Compilers on Macintosh + +LodePNG has been reported to work both with gcc and LLVM for Macintosh, both for +C and C++. + +*) Other Compilers + +If you encounter problems on any compilers, feel free to let me know and I may +try to fix it if the compiler is modern and standards complient. + + +10. examples +------------ + +This decoder example shows the most basic usage of LodePNG. More complex +examples can be found on the LodePNG website. + +10.1. decoder C++ example +------------------------- + +#include "lodepng.h" +#include + +int main(int argc, char *argv[]) +{ + const char* filename = argc > 1 ? argv[1] : "test.png"; + + //load and decode + std::vector image; + unsigned width, height; + unsigned error = lodepng::decode(image, width, height, filename); + + //if there's an error, display it + if(error) std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl; + + //the pixels are now in the vector "image", 4 bytes per pixel, ordered RGBARGBA..., use it as texture, draw it, ... +} + +10.2. decoder C example +----------------------- + +#include "lodepng.h" + +int main(int argc, char *argv[]) +{ + unsigned error; + unsigned char* image; + size_t width, height; + const char* filename = argc > 1 ? argv[1] : "test.png"; + + error = lodepng_decode32_file(&image, &width, &height, filename); + + if(error) printf("decoder error %u: %s\n", error, lodepng_error_text(error)); + + / * use image here * / + + free(image); + return 0; +} + +11. state settings reference +---------------------------- + +A quick reference of some settings to set on the LodePNGState + +For decoding: + +state.decoder.zlibsettings.ignore_adler32: ignore ADLER32 checksums +state.decoder.zlibsettings.custom_...: use custom inflate function +state.decoder.ignore_crc: ignore CRC checksums +state.decoder.color_convert: convert internal PNG color to chosen one +state.decoder.read_text_chunks: whether to read in text metadata chunks +state.decoder.remember_unknown_chunks: whether to read in unknown chunks +state.info_raw.colortype: desired color type for decoded image +state.info_raw.bitdepth: desired bit depth for decoded image +state.info_raw....: more color settings, see struct LodePNGColorMode +state.info_png....: no settings for decoder but ouput, see struct LodePNGInfo + +For encoding: + +state.encoder.zlibsettings.btype: disable compression by setting it to 0 +state.encoder.zlibsettings.use_lz77: use LZ77 in compression +state.encoder.zlibsettings.windowsize: tweak LZ77 windowsize +state.encoder.zlibsettings.minmatch: tweak min LZ77 length to match +state.encoder.zlibsettings.nicematch: tweak LZ77 match where to stop searching +state.encoder.zlibsettings.lazymatching: try one more LZ77 matching +state.encoder.zlibsettings.custom_...: use custom deflate function +state.encoder.auto_convert: choose optimal PNG color type, if 0 uses info_png +state.encoder.filter_palette_zero: PNG filter strategy for palette +state.encoder.filter_strategy: PNG filter strategy to encode with +state.encoder.force_palette: add palette even if not encoding to one +state.encoder.add_id: add LodePNG identifier and version as a text chunk +state.encoder.text_compression: use compressed text chunks for metadata +state.info_raw.colortype: color type of raw input image you provide +state.info_raw.bitdepth: bit depth of raw input image you provide +state.info_raw: more color settings, see struct LodePNGColorMode +state.info_png.color.colortype: desired color type if auto_convert is false +state.info_png.color.bitdepth: desired bit depth if auto_convert is false +state.info_png.color....: more color settings, see struct LodePNGColorMode +state.info_png....: more PNG related settings, see struct LodePNGInfo + + +12. changes +----------- + +The version number of LodePNG is the date of the change given in the format +yyyymmdd. + +Some changes aren't backwards compatible. Those are indicated with a (!) +symbol. + +*) 18 apr 2016: Changed qsort to custom stable sort (for platforms w/o qsort). +*) 09 apr 2016: Fixed colorkey usage detection, and better file loading (within + the limits of pure C90). +*) 08 dec 2015: Made load_file function return error if file can't be opened. +*) 24 okt 2015: Bugfix with decoding to palette output. +*) 18 apr 2015: Boundary PM instead of just package-merge for faster encoding. +*) 23 aug 2014: Reduced needless memory usage of decoder. +*) 28 jun 2014: Removed fix_png setting, always support palette OOB for + simplicity. Made ColorProfile public. +*) 09 jun 2014: Faster encoder by fixing hash bug and more zeros optimization. +*) 22 dec 2013: Power of two windowsize required for optimization. +*) 15 apr 2013: Fixed bug with LAC_ALPHA and color key. +*) 25 mar 2013: Added an optional feature to ignore some PNG errors (fix_png). +*) 11 mar 2013 (!): Bugfix with custom free. Changed from "my" to "lodepng_" + prefix for the custom allocators and made it possible with a new #define to + use custom ones in your project without needing to change lodepng's code. +*) 28 jan 2013: Bugfix with color key. +*) 27 okt 2012: Tweaks in text chunk keyword length error handling. +*) 8 okt 2012 (!): Added new filter strategy (entropy) and new auto color mode. + (no palette). Better deflate tree encoding. New compression tweak settings. + Faster color conversions while decoding. Some internal cleanups. +*) 23 sep 2012: Reduced warnings in Visual Studio a little bit. +*) 1 sep 2012 (!): Removed #define's for giving custom (de)compression functions + and made it work with function pointers instead. +*) 23 jun 2012: Added more filter strategies. Made it easier to use custom alloc + and free functions and toggle #defines from compiler flags. Small fixes. +*) 6 may 2012 (!): Made plugging in custom zlib/deflate functions more flexible. +*) 22 apr 2012 (!): Made interface more consistent, renaming a lot. Removed + redundant C++ codec classes. Reduced amount of structs. Everything changed, + but it is cleaner now imho and functionality remains the same. Also fixed + several bugs and shrunk the implementation code. Made new samples. +*) 6 nov 2011 (!): By default, the encoder now automatically chooses the best + PNG color model and bit depth, based on the amount and type of colors of the + raw image. For this, autoLeaveOutAlphaChannel replaced by auto_choose_color. +*) 9 okt 2011: simpler hash chain implementation for the encoder. +*) 8 sep 2011: lz77 encoder lazy matching instead of greedy matching. +*) 23 aug 2011: tweaked the zlib compression parameters after benchmarking. + A bug with the PNG filtertype heuristic was fixed, so that it chooses much + better ones (it's quite significant). A setting to do an experimental, slow, + brute force search for PNG filter types is added. +*) 17 aug 2011 (!): changed some C zlib related function names. +*) 16 aug 2011: made the code less wide (max 120 characters per line). +*) 17 apr 2011: code cleanup. Bugfixes. Convert low to 16-bit per sample colors. +*) 21 feb 2011: fixed compiling for C90. Fixed compiling with sections disabled. +*) 11 dec 2010: encoding is made faster, based on suggestion by Peter Eastman + to optimize long sequences of zeros. +*) 13 nov 2010: added LodePNG_InfoColor_hasPaletteAlpha and + LodePNG_InfoColor_canHaveAlpha functions for convenience. +*) 7 nov 2010: added LodePNG_error_text function to get error code description. +*) 30 okt 2010: made decoding slightly faster +*) 26 okt 2010: (!) changed some C function and struct names (more consistent). + Reorganized the documentation and the declaration order in the header. +*) 08 aug 2010: only changed some comments and external samples. +*) 05 jul 2010: fixed bug thanks to warnings in the new gcc version. +*) 14 mar 2010: fixed bug where too much memory was allocated for char buffers. +*) 02 sep 2008: fixed bug where it could create empty tree that linux apps could + read by ignoring the problem but windows apps couldn't. +*) 06 jun 2008: added more error checks for out of memory cases. +*) 26 apr 2008: added a few more checks here and there to ensure more safety. +*) 06 mar 2008: crash with encoding of strings fixed +*) 02 feb 2008: support for international text chunks added (iTXt) +*) 23 jan 2008: small cleanups, and #defines to divide code in sections +*) 20 jan 2008: support for unknown chunks allowing using LodePNG for an editor. +*) 18 jan 2008: support for tIME and pHYs chunks added to encoder and decoder. +*) 17 jan 2008: ability to encode and decode compressed zTXt chunks added + Also various fixes, such as in the deflate and the padding bits code. +*) 13 jan 2008: Added ability to encode Adam7-interlaced images. Improved + filtering code of encoder. +*) 07 jan 2008: (!) changed LodePNG to use ISO C90 instead of C++. A + C++ wrapper around this provides an interface almost identical to before. + Having LodePNG be pure ISO C90 makes it more portable. The C and C++ code + are together in these files but it works both for C and C++ compilers. +*) 29 dec 2007: (!) changed most integer types to unsigned int + other tweaks +*) 30 aug 2007: bug fixed which makes this Borland C++ compatible +*) 09 aug 2007: some VS2005 warnings removed again +*) 21 jul 2007: deflate code placed in new namespace separate from zlib code +*) 08 jun 2007: fixed bug with 2- and 4-bit color, and small interlaced images +*) 04 jun 2007: improved support for Visual Studio 2005: crash with accessing + invalid std::vector element [0] fixed, and level 3 and 4 warnings removed +*) 02 jun 2007: made the encoder add a tag with version by default +*) 27 may 2007: zlib and png code separated (but still in the same file), + simple encoder/decoder functions added for more simple usage cases +*) 19 may 2007: minor fixes, some code cleaning, new error added (error 69), + moved some examples from here to lodepng_examples.cpp +*) 12 may 2007: palette decoding bug fixed +*) 24 apr 2007: changed the license from BSD to the zlib license +*) 11 mar 2007: very simple addition: ability to encode bKGD chunks. +*) 04 mar 2007: (!) tEXt chunk related fixes, and support for encoding + palettized PNG images. Plus little interface change with palette and texts. +*) 03 mar 2007: Made it encode dynamic Huffman shorter with repeat codes. + Fixed a bug where the end code of a block had length 0 in the Huffman tree. +*) 26 feb 2007: Huffman compression with dynamic trees (BTYPE 2) now implemented + and supported by the encoder, resulting in smaller PNGs at the output. +*) 27 jan 2007: Made the Adler-32 test faster so that a timewaste is gone. +*) 24 jan 2007: gave encoder an error interface. Added color conversion from any + greyscale type to 8-bit greyscale with or without alpha. +*) 21 jan 2007: (!) Totally changed the interface. It allows more color types + to convert to and is more uniform. See the manual for how it works now. +*) 07 jan 2007: Some cleanup & fixes, and a few changes over the last days: + encode/decode custom tEXt chunks, separate classes for zlib & deflate, and + at last made the decoder give errors for incorrect Adler32 or Crc. +*) 01 jan 2007: Fixed bug with encoding PNGs with less than 8 bits per channel. +*) 29 dec 2006: Added support for encoding images without alpha channel, and + cleaned out code as well as making certain parts faster. +*) 28 dec 2006: Added "Settings" to the encoder. +*) 26 dec 2006: The encoder now does LZ77 encoding and produces much smaller files now. + Removed some code duplication in the decoder. Fixed little bug in an example. +*) 09 dec 2006: (!) Placed output parameters of public functions as first parameter. + Fixed a bug of the decoder with 16-bit per color. +*) 15 okt 2006: Changed documentation structure +*) 09 okt 2006: Encoder class added. It encodes a valid PNG image from the + given image buffer, however for now it's not compressed. +*) 08 sep 2006: (!) Changed to interface with a Decoder class +*) 30 jul 2006: (!) LodePNG_InfoPng , width and height are now retrieved in different + way. Renamed decodePNG to decodePNGGeneric. +*) 29 jul 2006: (!) Changed the interface: image info is now returned as a + struct of type LodePNG::LodePNG_Info, instead of a vector, which was a bit clumsy. +*) 28 jul 2006: Cleaned the code and added new error checks. + Corrected terminology "deflate" into "inflate". +*) 23 jun 2006: Added SDL example in the documentation in the header, this + example allows easy debugging by displaying the PNG and its transparency. +*) 22 jun 2006: (!) Changed way to obtain error value. Added + loadFile function for convenience. Made decodePNG32 faster. +*) 21 jun 2006: (!) Changed type of info vector to unsigned. + Changed position of palette in info vector. Fixed an important bug that + happened on PNGs with an uncompressed block. +*) 16 jun 2006: Internally changed unsigned into unsigned where + needed, and performed some optimizations. +*) 07 jun 2006: (!) Renamed functions to decodePNG and placed them + in LodePNG namespace. Changed the order of the parameters. Rewrote the + documentation in the header. Renamed files to lodepng.cpp and lodepng.h +*) 22 apr 2006: Optimized and improved some code +*) 07 sep 2005: (!) Changed to std::vector interface +*) 12 aug 2005: Initial release (C++, decoder only) + + +13. contact information +----------------------- + +Feel free to contact me with suggestions, problems, comments, ... concerning +LodePNG. If you encounter a PNG image that doesn't work properly with this +decoder, feel free to send it and I'll use it to find and fix the problem. + +My email address is (puzzle the account and domain together with an @ symbol): +Domain: gmail dot com. +Account: lode dot vandevenne. + + +Copyright (c) 2005-2016 Lode Vandevenne +*/ From 9736aaf5e605c1b47370fffb6381e035f2f21f5e Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 12 Feb 2017 23:28:45 +0930 Subject: [PATCH 56/61] Add new color theme. --- src/editor.c | 87 +++++++++++++++++++-------- src/glw.c | 154 ++++++++++++++++++++++++++++++++++-------------- src/glw.h | 8 ++- src/glw_style.h | 13 ++-- 4 files changed, 185 insertions(+), 77 deletions(-) diff --git a/src/editor.c b/src/editor.c index 6edc194e..ccf6efa1 100644 --- a/src/editor.c +++ b/src/editor.c @@ -19,15 +19,18 @@ #define ED_MODE_EDIT 0 #define ED_MODE_ANIMATION 1 -#define ED_BACKGROUND_COLOR 0x141414 +#define ED_BACKGROUND_COLOR 0x141414 //0x111111 #define ED_SIDEBAR_WIDTH 400 #define ED_SPACING 10 -#define ED_TOPBAR_HEIGHT 100 -#define ED_TOOLBAR_HEIGHT (glwImLineHeight(win) * 1.2) +#define ED_MENU_HEIGHT ((float)glwImLineHeight(win)) -#define ED_GL_BACKGROUND_COLOR GLW_BACKGROUND_COLOR +#define ED_TOPBAR_HEIGHT (ED_MENU_HEIGHT + ED_SPACING + glwImLineHeight(win) + ED_SPACING) +#define ED_TOOLBAR_HEIGHT ((float)glwImLineHeight(win) * 1.2) + +#define ED_GL_BACKGROUND_COLOR 0x242424 +#define ED_GL_BORDER_SIZE 7 #define ED_BONE_COLOR 0xffff00 @@ -36,7 +39,7 @@ typedef struct editor { float cameraAngleX; float cameraAngleY; float cameraDistance; - int newImId; + int selectedMenu; int showBoneChecked; int showBallChecked; int showMeshChecked; @@ -103,12 +106,41 @@ static void display(glwWin *win) { glLoadIdentity(); { - char *list[] = {"Open..", "New..", "Save As..", 0}; - glwImButtonGroup(win, GEN_ID, 100, 30, 300, list, -1); + char *titles[] = {"File", "Window", "Help", 0}; + ed->selectedMenu = glwImMenu(win, GEN_ID, 0, 0, ed->width, + glwImLineHeight(win), titles, ed->selectedMenu); } { - char *titles[] = {"Tool", 0}; + char *titles[] = {"New..", "Open..", "Save As..", "Save", 0}; + int icons[] = {ICON_FILE, 0, 0, 0, 0}; + glwImButtonGroup(win, GEN_ID, ED_SPACING / 2, + ED_TOPBAR_HEIGHT - ED_SPACING - glwImLineHeight(win), titles, icons, 3); + } + + { + char *titles[] = {"Add Ball", 0}; + int icons[] = {ICON_PLUS, 0}; + glwImButtonGroup(win, GEN_ID, glwImNextX(win) + ED_SPACING, + glwImNextY(win), titles, icons, 0); + } + + { + char *titles[] = {"Del Ball", "Del All", 0}; + int icons[] = {ICON_TRASH, 0, 0}; + glwImButtonGroup(win, GEN_ID, glwImNextX(win) + ED_SPACING, + glwImNextY(win), titles, icons, -1); + } + + { + char *titles[] = {"Start", "Pause", "Stop", 0}; + int icons[] = {ICON_PLAY, ICON_PAUSE, ICON_STOP, 0}; + glwImButtonGroup(win, GEN_ID, glwImNextX(win) + ED_SPACING, + glwImNextY(win), titles, icons, -1); + } + + { + char *titles[] = {"Property", 0}; int icons[] = {ICON_TOOL, 0}; glwImTabBox(win, GEN_ID, ED_SPACING / 2, ED_TOPBAR_HEIGHT, ED_SIDEBAR_WIDTH, ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2, @@ -120,34 +152,36 @@ static void display(glwWin *win) { int y = ED_TOPBAR_HEIGHT; int width = ed->width - ED_SIDEBAR_WIDTH - ED_SPACING / 2 - ED_SPACING - ED_SPACING / 2; int height = ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2; - char *titles[] = {"Skeleton", "Animation", "Config", 0}; - int icons[] = {ICON_MONITOR, ICON_PENCIL, ICON_EYE, 0}; + char *titles[] = {"Model", 0}; + int icons[] = {ICON_MONITOR, 0}; ed->mode = glwImTabBox(win, GEN_ID, x, y, width, height, titles, icons, ed->mode); if (ED_MODE_EDIT == ed->mode) { int toolBarY = glwImNextY(win) - 1; int glWinY = toolBarY + ED_TOOLBAR_HEIGHT; + int toolBarContentY = toolBarY + + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)); glwImToolBar(win, GEN_ID, x, toolBarY, width, ED_TOOLBAR_HEIGHT); ed->showBallChecked = glwImCheck(win, GEN_ID, x + ED_SPACING + ED_SPACING, - toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarContentY, "Ball", ed->showBallChecked); ed->showBoneChecked = glwImCheck(win, GEN_ID, glwImNextX(win) + ED_SPACING, - toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarContentY, "Bone", ed->showBoneChecked); ed->showMeshChecked = glwImCheck(win, GEN_ID, glwImNextX(win) + ED_SPACING, - toolBarY + (ED_TOOLBAR_HEIGHT - glwImLineHeight(win)) / 2 + 2, + toolBarContentY, "Mesh", ed->showMeshChecked); - ed->renderLeft = x + 1; - ed->renderTop = glWinY; - ed->renderWidth = width - 3; - ed->renderHeight = height - ED_TOOLBAR_HEIGHT; + ed->renderLeft = x + 1 + ED_GL_BORDER_SIZE; + ed->renderTop = glWinY + ED_GL_BORDER_SIZE; + ed->renderWidth = width - 3 - ED_GL_BORDER_SIZE * 2; + ed->renderHeight = height - (glWinY - y) - 3 - ED_GL_BORDER_SIZE * 2; if (0 == ed->skl) { ed->skl = skeletonCreate(); @@ -179,17 +213,19 @@ static void display(glwWin *win) { bmeshGenerate(ed->bm); } - glEnable(GL_SCISSOR_TEST); - glScissor(ed->renderLeft, ED_SPACING / 2 + 1, - ed->renderWidth, ed->renderHeight); - glPushMatrix(); - glTranslatef(ed->renderLeft, ed->renderTop, 0); - - /* glColor3f(glwR(ED_GL_BACKGROUND_COLOR), glwG(ED_GL_BACKGROUND_COLOR), glwB(ED_GL_BACKGROUND_COLOR)); - glRecti(0, 0, ed->renderWidth, ed->renderHeight);*/ + glRecti(ed->renderLeft, + ed->renderTop, + ed->renderLeft + ed->renderWidth, + ed->renderTop + ed->renderHeight); + + glEnable(GL_SCISSOR_TEST); + glScissor(ed->renderLeft, ed->height - (ed->renderTop + ed->renderHeight), + ed->renderWidth, ed->renderHeight); + glPushMatrix(); + glTranslatef(ed->renderLeft, ed->renderTop, 0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -302,6 +338,7 @@ int main(int argc, char *argv[]) { ed.cameraAngleY = -312; ed.cameraDistance = 14.4; ed.showMeshChecked = 1; + ed.selectedMenu = -1; ed.win = glwCreateWindow(0, 0, 600, 480); glwSetUserData(ed.win, &ed); diff --git a/src/glw.c b/src/glw.c index d12bf7b8..efcde223 100644 --- a/src/glw.c +++ b/src/glw.c @@ -12,6 +12,12 @@ #define M_PI 3.14159265 #endif +#define glwSwapColor(color1, color2) do {\ + unsigned int tmp = color1;\ + color1 = color2;\ + color2 = tmp;\ +} while (0) + void glwDrawSystemText(glwWin *win, int x, int y, char *text, unsigned int color) { int vleft, vwidth; @@ -478,26 +484,37 @@ void glwDrawRoundedRectGradientFill(float x, float y, float width, float height, glEnd(); } -void glwDrawButtonBackground(float x, float y, float width, float height, - glwCtrlState state) { +static void glwDrawGradientBackground(float x, float y, float width, float height, + glwCtrlState state, int sunken) { + unsigned int topColor = 0; + unsigned int bottomColor = 0; switch (state) { case GLW_CTRL_STATE_PRESS: - glwDrawRoundedRectGradientFill(x, y, width, height, - GLW_BUTTON_CORNER_RADIUS, - GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + topColor = GLW_FILL_GRADIENT_COLOR_1_H; + bottomColor = GLW_FILL_GRADIENT_COLOR_2_H; break; case GLW_CTRL_STATE_NORMAL: default: - glwDrawRoundedRectGradientFill(x, y, width, height, - GLW_BUTTON_CORNER_RADIUS, - GLW_FILL_GRADIENT_COLOR_1, GLW_FILL_GRADIENT_COLOR_2); + topColor = GLW_FILL_GRADIENT_COLOR_1; + bottomColor = GLW_FILL_GRADIENT_COLOR_2; break; } + if (sunken) { + glwSwapColor(topColor, bottomColor); + } + glwDrawRoundedRectGradientFill(x, y, width, height, + GLW_BUTTON_CORNER_RADIUS, + topColor, bottomColor); glwDrawRoundedRectBorder(x, y, width, height, GLW_BUTTON_CORNER_RADIUS, GLW_BORDER_COLOR_2); } +void glwDrawButtonBackground(float x, float y, float width, float height, + glwCtrlState state) { + glwDrawGradientBackground(x, y, width, height, state, 0); +} + glwSize glwMeasureSystemText(glwWin *win, char *text) { glwSystemFontTexture *systemFontTexture = glwGetSystemFontTexture(win); glwSize size = {0, systemFontTexture->originSize.height}; @@ -528,7 +545,7 @@ static void glwImGUIActiveIdCheck(glwImGui *imGUI, int id, int x, int y, } } -int glwImButton(glwWin *win, int id, int x, int y, char *text) { +int glwImButton(glwWin *win, int id, int x, int y, char *text, int icon) { glwImGui *imGUI = glwGetImGUI(win); glwSize textSize = glwMeasureSystemText(win, text); int width = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2); @@ -544,6 +561,30 @@ int glwImButton(glwWin *win, int id, int x, int y, char *text) { return imGUI->activeId == id; } +static glwSize glwMeasureLabel(glwWin *win, char *text, int icon) { + glwSize size = glwMeasureSystemText(win, text); + int padding = glwGetLineHeight(win) / 2; + size.width += padding + padding + padding; + return size; +} + +static void glwDrawLabel(glwWin *win, int x, int y, char *text, int icon, + unsigned int color) { + int lineHeight = glwGetLineHeight(win); + int padding = glwGetLineHeight(win) / 2; + if (icon) { + int iconIdx = icon - 1; + glwDrawSystemIcon(win, x + padding, + y + lineHeight * GLW_VER_AUTO_MARGIN, icon, color); + glwDrawSystemText(win, x + padding + + iconTable[iconIdx][ICON_ITEM_ORIGINAL_WIDTH] + padding / 2, + y + lineHeight * GLW_VER_AUTO_MARGIN, text, color); + } else { + glwDrawSystemText(win, x + padding, + y + lineHeight * GLW_VER_AUTO_MARGIN, text, color); + } +} + int glwImDropdownBox(glwWin *win, int id, int x, int y, char *text) { glwImGui *imGUI = glwGetImGUI(win); glwSize textSize = glwMeasureSystemText(win, text); @@ -569,14 +610,16 @@ int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked) { glwImGui *imGUI = glwGetImGUI(win); glwSize textSize = glwMeasureSystemText(win, text); int height = textSize.height; - int boxWidth = height; + int boxWidth = height * 0.8; + int boxHeight = boxWidth; int width = boxWidth + textSize.height * (1 + GLW_HOR_AUTO_MARGIN * 2) + textSize.width; int oldActiveId = imGUI->activeId; glwImGUIActiveIdCheck(imGUI, id, x, y, width, height); - glwDrawButtonBackground(x, y, boxWidth, height, + glwDrawGradientBackground(x, y + (height - boxHeight) / 2, + boxWidth, boxHeight, (imGUI->activeId == id || checked) ? - GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL); + GLW_CTRL_STATE_PRESS : GLW_CTRL_STATE_NORMAL, 1); glwDrawSystemText(win, x + textSize.height * GLW_HOR_AUTO_MARGIN + boxWidth, y, text, GLW_SYSTEM_FONT_COLOR); if (checked) { @@ -594,8 +637,8 @@ static int glwCalcListMaxWidth(glwWin *win, char **titles, int *icons, int maxItemWidth = 0; for (i = 0; titles[i]; ++i) { - glwSize textSize = glwMeasureSystemText(win, titles[i]); - itemWidth = textSize.width * (1 + GLW_HOR_AUTO_MARGIN * 2); + glwSize textSize = glwMeasureLabel(win, titles[i], icons ? icons[i] : 0); + itemWidth = textSize.width; if (icons && icons[i]) { itemWidth += iconTable[icons[i]][ICON_ITEM_ORIGINAL_WIDTH]; } @@ -610,15 +653,11 @@ static int glwCalcListMaxWidth(glwWin *win, char **titles, int *icons, } } - if (maxItemWidth < GLW_MIN_TAB_WIDTH) { - maxItemWidth = GLW_MIN_TAB_WIDTH; - } - return maxItemWidth; } -int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, - char **list, int sel) { +int glwImButtonGroup(glwWin *win, int id, int x, int y, char **titles, + int *icons, int sel) { glwImGui *imGUI = glwGetImGUI(win); int width = 0; int height = 0; @@ -627,16 +666,16 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, int listLen = 0; int offset; int maxItemWidth = 0; - maxItemWidth = glwCalcListMaxWidth(win, list, 0, &height, &listLen); + unsigned int topColor = 0; + unsigned int bottomColor = 0; + maxItemWidth = glwCalcListMaxWidth(win, titles, icons, &height, &listLen); width = maxItemWidth * listLen; - left = listLen > 1 ? x + (parentWidth - width) / 2 : - x + maxItemWidth * GLW_HOR_AUTO_MARGIN; + left = x; glwImGUIActiveIdCheck(imGUI, id, left, y, width, height); glwDrawRoundedRectGradientFill(left, y, width, height, GLW_BUTTON_CORNER_RADIUS, GLW_FILL_GRADIENT_COLOR_1, GLW_FILL_GRADIENT_COLOR_2); - for (i = 0, offset = left; list[i]; ++i) { - glwSize textSize = glwMeasureSystemText(win, list[i]); + for (i = 0, offset = left; titles[i]; ++i) { if (imGUI->activeId == id) { int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, maxItemWidth, height, 0); @@ -645,33 +684,38 @@ int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, } } if (sel == i) { + topColor = GLW_FILL_GRADIENT_COLOR_1_H; + bottomColor = GLW_FILL_GRADIENT_COLOR_2_H; + if (imGUI->activeId == id) { + glwSwapColor(topColor, bottomColor); + } if (1 == listLen) { glwDrawRoundedRectGradientFill(left, y, width, height, GLW_BUTTON_CORNER_RADIUS, - GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + topColor, bottomColor); } else { if (0 == i) { glwDrawLeftRoundedRectGradientFill(offset, y, maxItemWidth, height, GLW_BUTTON_CORNER_RADIUS, - GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + topColor, bottomColor); } else if (listLen - 1 == i) { glwDrawRightRoundedRectGradientFill(offset, y, maxItemWidth, height, GLW_BUTTON_CORNER_RADIUS, - GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + topColor, bottomColor); } else { glwDrawRectGradientFill(offset, y, maxItemWidth, height, - GLW_FILL_GRADIENT_COLOR_1_H, GLW_FILL_GRADIENT_COLOR_2_H); + topColor, bottomColor); } } } if (0 != i) { glwDrawVLine(offset, y, 1, height, GLW_BORDER_COLOR_2); } - glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, - y + height * 0.1, list[i], GLW_SYSTEM_FONT_COLOR); + glwDrawLabel(win, offset, y, titles[i], icons ? icons[i] : 0, + GLW_SYSTEM_FONT_COLOR); offset += maxItemWidth; } imGUI->nextX = offset; @@ -692,6 +736,9 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, int offset; int maxItemWidth = 0; maxItemWidth = glwCalcListMaxWidth(win, titles, icons, &tabHeight, &listLen); + if (maxItemWidth < GLW_MIN_TAB_WIDTH) { + maxItemWidth = GLW_MIN_TAB_WIDTH; + } tabWidth = maxItemWidth * listLen; left = x; imGUI->nextX = x; @@ -707,7 +754,6 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, glwDrawVLine(x + width - 1, y + tabHeight, 1, height - tabHeight, GLW_BORDER_COLOR_1); for (i = 0, offset = left; titles[i]; ++i) { - glwSize textSize = glwMeasureSystemText(win, titles[i]); if (imGUI->activeId == id) { int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, maxItemWidth, tabHeight, 0); @@ -724,17 +770,8 @@ int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, GLW_BUTTON_CORNER_RADIUS, GLW_TAB_FILL_GRADIENT_COLOR_1, GLW_TAB_FILL_GRADIENT_COLOR_2); } - if (icons && icons[i]) { - int iconIdx = icons[i] - 1; - glwDrawSystemIcon(win, offset + textSize.height / 2, - y + tabHeight * GLW_VER_AUTO_MARGIN, icons[i], GLW_SYSTEM_FONT_COLOR); - glwDrawSystemText(win, offset + textSize.height / 2 + - iconTable[iconIdx][ICON_ITEM_ORIGINAL_WIDTH] + textSize.height / 2, - y + tabHeight * GLW_VER_AUTO_MARGIN, titles[i], GLW_SYSTEM_FONT_COLOR); - } else { - glwDrawSystemText(win, offset + (maxItemWidth - textSize.width) / 2, - y + tabHeight * GLW_VER_AUTO_MARGIN, titles[i], GLW_SYSTEM_FONT_COLOR); - } + glwDrawLabel(win, offset, y, titles[i], icons ? icons[i] : 0, + GLW_SYSTEM_FONT_COLOR); offset += maxItemWidth; } return sel; @@ -836,4 +873,33 @@ int glwMouseY(glwWin *win) { return ctx->y; } - +int glwImMenu(glwWin *win, int id, int x, int y, int width, int height, + char **titles, int sel) { + glwImGui *imGUI = glwGetImGUI(win); + int left = 0; + int i; + int listLen = 0; + int offset; + int maxItemWidth = 0; + maxItemWidth = glwCalcListMaxWidth(win, titles, 0, &height, &listLen); + left = x + glwGetLineHeight(win) / 2; + glwImGUIActiveIdCheck(imGUI, id, left, y, width, height); + glwDrawRectGradientFill(x, y, width, height, + GLW_MENU_BACKGROUND_COLOR, GLW_MENU_BACKGROUND_COLOR); + for (i = 0, offset = left; titles[i]; ++i) { + if (imGUI->activeId == id) { + int hit = glwPointTest(imGUI->mouseX, imGUI->mouseY, offset, y, + maxItemWidth, height, 0); + if (hit) { + sel = i; + } + } + glwDrawLabel(win, offset, y, titles[i], 0, sel == i ? + GLW_SYSTEM_FONT_COLOR_H : GLW_SYSTEM_FONT_COLOR); + offset += maxItemWidth; + } + glwDrawHLine(x, y + height - 1, width, 1, GLW_BORDER_COLOR_1); + imGUI->nextX = x; + imGUI->nextY = y + height; + return sel; +} diff --git a/src/glw.h b/src/glw.h index 52e2e829..4d10d1ba 100644 --- a/src/glw.h +++ b/src/glw.h @@ -48,11 +48,11 @@ void glwWheelFunc(glwWin *win, void(*func)(glwWin *win, float delta)); #define glwR(rgb) ((float)(((rgb) >> 16) & 0xff) / 255) #define glwG(rgb) ((float)(((rgb) >> 8) & 0xff) / 255) #define glwB(rgb) ((float)(((rgb)) & 0xff) / 255) -int glwImButton(glwWin *win, int id, int x, int y, char *text); +int glwImButton(glwWin *win, int id, int x, int y, char *text, int icon); int glwImCheck(glwWin *win, int id, int x, int y, char *text, int checked); int glwImDropdownBox(glwWin *win, int id, int x, int y, char *text); -int glwImButtonGroup(glwWin *win, int id, int x, int y, int parentWidth, - char **list, int sel); +int glwImButtonGroup(glwWin *win, int id, int x, int y, char **titles, + int *icons, int sel); int glwImPanel(glwWin *win, int id, int x, int y, int width, int height); int glwImTabBox(glwWin *win, int id, int x, int y, int width, int height, char **titles, int *icons, int sel); @@ -65,6 +65,8 @@ int glwPointTest(int x, int y, int left, int top, int width, int height, int allowOffset); int glwMouseX(glwWin *win); int glwMouseY(glwWin *win); +int glwImMenu(glwWin *win, int id, int x, int y, int width, int height, + char **titles, int sel); #ifdef __cplusplus } diff --git a/src/glw_style.h b/src/glw_style.h index 1242a1ba..3877a1b7 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -5,21 +5,22 @@ #define GLW_SYSTEM_FONT_WEIGHT 10 #define GLW_SYSTEM_FONT_SIZE 20 #define GLW_SYSTEM_FONT_COLOR 0xb9b9b9 +#define GLW_SYSTEM_FONT_COLOR_H 0xffffff #define GLW_SMALL_ROUNDED_CORNER_SLICES 5 #define GLW_BORDER_COLOR_1 0x000000 #define GLW_BORDER_COLOR_2 0x000000 -#define GLW_FILL_GRADIENT_COLOR_1 0x424242 -#define GLW_FILL_GRADIENT_COLOR_2 0x242424 +#define GLW_FILL_GRADIENT_COLOR_1 0x2f2f2f //0x424242 +#define GLW_FILL_GRADIENT_COLOR_2 0x1f1f1f //0x111111 //0x242424 -#define GLW_FILL_GRADIENT_COLOR_1_H 0x3795fa -#define GLW_FILL_GRADIENT_COLOR_2_H 0x242424 +#define GLW_FILL_GRADIENT_COLOR_1_H 0xf77100 +#define GLW_FILL_GRADIENT_COLOR_2_H 0x713300 #define GLW_BUTTON_CORNER_RADIUS 5 -#define GLW_CHECK_COLOR 0x000000 +#define GLW_CHECK_COLOR GLW_BORDER_COLOR_2 #define GLW_TAB_FILL_GRADIENT_COLOR_1 GLW_FILL_GRADIENT_COLOR_1 #define GLW_TAB_FILL_GRADIENT_COLOR_2 GLW_FILL_GRADIENT_COLOR_2 @@ -37,4 +38,6 @@ #define GLW_MIN_TAB_WIDTH 120 +#define GLW_MENU_BACKGROUND_COLOR 0x181818 + #endif From ffeaeb0725f8b1e1569bf8c330e068c093a7046b Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 13 Feb 2017 00:50:33 +0930 Subject: [PATCH 57/61] Add zbrush like slider control --- src/editor.c | 12 ++++++++++ src/glw.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++-- src/glw.h | 2 ++ src/glw_style.h | 6 +++++ 4 files changed, 78 insertions(+), 2 deletions(-) diff --git a/src/editor.c b/src/editor.c index ccf6efa1..c99f095a 100644 --- a/src/editor.c +++ b/src/editor.c @@ -23,6 +23,7 @@ #define ED_SIDEBAR_WIDTH 400 #define ED_SPACING 10 +#define ED_MARGIN 20 #define ED_MENU_HEIGHT ((float)glwImLineHeight(win)) @@ -34,6 +35,9 @@ #define ED_BONE_COLOR 0xffff00 +#define ED_MIN_BALL_RADIUS 0.1 +#define ED_MAX_BALL_RADIUS 30 + typedef struct editor { glwWin *win; float cameraAngleX; @@ -54,6 +58,7 @@ typedef struct editor { int moveMouseY; bmesh *bm; skeleton *skl; + float ballRadius; } editor; #include "../data/bmesh_test_2.h" @@ -145,6 +150,13 @@ static void display(glwWin *win) { glwImTabBox(win, GEN_ID, ED_SPACING / 2, ED_TOPBAR_HEIGHT, ED_SIDEBAR_WIDTH, ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2, titles, icons, 0); + ed->ballRadius = glwImSlider(win, GEN_ID, glwImNextX(win) + ED_MARGIN, + glwImNextY(win) + ED_MARGIN, + ED_SIDEBAR_WIDTH - ED_MARGIN * 2, + ED_MIN_BALL_RADIUS, ED_MAX_BALL_RADIUS, + ed->ballRadius, + "Radius: %.4f", + ed->ballRadius); } { diff --git a/src/glw.c b/src/glw.c index efcde223..dcb5f939 100644 --- a/src/glw.c +++ b/src/glw.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include "glw_internal.h" #include "glw_style.h" @@ -102,8 +103,8 @@ void glwMouseEvent(glwWin *win, int button, int state, int x, int y) { int glwPointTest(int x, int y, int left, int top, int width, int height, int allowOffset) { - int right = left + width - 1 + allowOffset; - int bottom = top + height - 1 + allowOffset; + int right = left + width + allowOffset; + int bottom = top + height + 5 + allowOffset; left -= allowOffset; top -= allowOffset; return x >= left && x <= right && y >= top && y <= bottom; @@ -903,3 +904,58 @@ int glwImMenu(glwWin *win, int id, int x, int y, int width, int height, imGUI->nextY = y + height; return sel; } + +static void glwDrawGradientLine(int x, int y, int width, int height, + unsigned int beginColor, unsigned int endColor) { + glLineWidth(height); + glBegin(GL_LINES); + glColor3f(glwR(beginColor), glwG(beginColor), glwB(beginColor)); + glVertex2f(x, y); + glColor3f(glwR(endColor), glwG(endColor), glwB(endColor)); + glVertex2f(x + width, y); + glEnd(); + glLineWidth(1); +} + +float glwImSlider(glwWin *win, int id, int x, int y, int width, + float min, float max, float cur, char *fmt, ...) { + glwImGui *imGUI = glwGetImGUI(win); + char text[100]; + float leftSegLen = width * (cur - min) / max; + float thumLeft = x + leftSegLen - (GLW_SLIDER_THUMB_WIDTH / 2); + float thumTop = y + glwGetLineHeight(win) - (GLW_SLIDER_THUMB_HEIGHT / 2); + unsigned int topColor = 0; + unsigned int bottomColor = 0; + va_list args; + va_start(args, fmt); + vsnprintf(text, sizeof(text), fmt, args); + glwImGUIActiveIdCheck(imGUI, id, thumLeft, thumTop, + GLW_SLIDER_THUMB_WIDTH, GLW_SLIDER_THUMB_HEIGHT); + topColor = GLW_FILL_GRADIENT_COLOR_1_H; + bottomColor = GLW_FILL_GRADIENT_COLOR_2_H; + if (imGUI->activeId == id) { + float mouseFromLeft = (float)glwMouseX(win) - x; + glwSwapColor(topColor, bottomColor); + cur = min + (max - min) * mouseFromLeft / width; + } + if (cur < min) { + cur = min; + } else if (cur > max) { + cur = max; + } + glwDrawSystemText(win, x, y, text, GLW_SYSTEM_FONT_COLOR); + glwDrawGradientLine(x, y + glwGetLineHeight(win), leftSegLen, + GLW_SLIDER_HEIGHT, + GLW_TOOLBAR_BACKGROUND_COLOR, 0x4d4d4d); + glwDrawGradientLine(x + leftSegLen, y + glwGetLineHeight(win), + width - leftSegLen, GLW_SLIDER_HEIGHT, + 0x4d4d4d, GLW_TOOLBAR_BACKGROUND_COLOR); + glwDrawRoundedRectGradientFill(thumLeft, thumTop, + GLW_SLIDER_THUMB_WIDTH, GLW_SLIDER_THUMB_HEIGHT, + GLW_SLIDER_CORNER_RADIUS, + topColor, bottomColor); + glwDrawRoundedRectBorder(thumLeft, thumTop, + GLW_SLIDER_THUMB_WIDTH, GLW_SLIDER_THUMB_HEIGHT, + GLW_SLIDER_CORNER_RADIUS, GLW_BORDER_COLOR_2); + return cur; +} diff --git a/src/glw.h b/src/glw.h index 4d10d1ba..f094ef19 100644 --- a/src/glw.h +++ b/src/glw.h @@ -67,6 +67,8 @@ int glwMouseX(glwWin *win); int glwMouseY(glwWin *win); int glwImMenu(glwWin *win, int id, int x, int y, int width, int height, char **titles, int sel); +float glwImSlider(glwWin *win, int id, int x, int y, int width, + float min, float max, float cur, char *fmt, ...); #ifdef __cplusplus } diff --git a/src/glw_style.h b/src/glw_style.h index 3877a1b7..8cce5d00 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -40,4 +40,10 @@ #define GLW_MENU_BACKGROUND_COLOR 0x181818 +#define GLW_SLIDER_THUMB_WIDTH 20 +#define GLW_SLIDER_THUMB_HEIGHT 12 +#define GLW_SLIDER_HEIGHT 2 + +#define GLW_SLIDER_CORNER_RADIUS 3 + #endif From 331889ece938c463f449a226fc353e26ed39d6bc Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Mon, 13 Feb 2017 00:54:37 +0930 Subject: [PATCH 58/61] Update progress --- README.md | 3 ++- screenshot/dust3d_glw_preview_dark_2.png | Bin 0 -> 325485 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 screenshot/dust3d_glw_preview_dark_2.png diff --git a/README.md b/README.md index 6573588f..c9af4f2a 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,8 @@ This todo already done in the B-Mesh algorithm implementation. **Feb 11, 2017:** Qt removed, so C++ removed, but Objective-C imported for just support the OpenGL environment on OSX. - + **Feb 12, 2017:** + - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game diff --git a/screenshot/dust3d_glw_preview_dark_2.png b/screenshot/dust3d_glw_preview_dark_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7414a9116f3c4dc5d11bfd4f3e943f3a0c797c71 GIT binary patch literal 325485 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≷1dT7>zy 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⪚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 Qz~499_kLZv?Z}1y2A}BgApigX literal 0 HcmV?d00001 From 108d9d67cb0cd8a87dc6a6c1e4beb956a5d13386 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sun, 26 Feb 2017 16:15:07 +0930 Subject: [PATCH 59/61] Add glwImThread api Add subdivide level configure --- src/bmesh.c | 5 +- src/bmesh.h | 2 +- src/editor.c | 122 ++++++++++++++++++++++++++++++--------------- src/glw.c | 34 +++++++++++++ src/glw.h | 2 + src/glw_internal.h | 9 +++- src/glw_osx.m | 14 ++++++ src/glw_style.h | 2 +- src/subdivide.c | 3 +- 9 files changed, 145 insertions(+), 48 deletions(-) diff --git a/src/bmesh.c b/src/bmesh.c index f055104b..a1eda942 100644 --- a/src/bmesh.c +++ b/src/bmesh.c @@ -755,14 +755,13 @@ int bmeshGenerateInbetweenMesh(bmesh *bm) { return 0; } -int bmeshGenerate(bmesh *bm) { +int bmeshGenerate(bmesh *bm, int level) { bmeshGenerateInbetweenBalls(bm); bmeshSweep(bm); bmeshStitch(bm); bmeshGenerateInbetweenMesh(bm); subdivCalculteNorms(bm->model); - //bm->subdivModel = subdivCatmullClark(bm->model); - bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, 1); + bm->subdivModel = subdivCatmullClarkWithLoops(bm->model, level); return 0; } diff --git a/src/bmesh.h b/src/bmesh.h index 5edb076f..ab383cc5 100644 --- a/src/bmesh.h +++ b/src/bmesh.h @@ -60,7 +60,7 @@ int bmeshAddQuad(bmesh *bm, quad *q); int bmeshSweep(bmesh *bm); int bmeshStitch(bmesh *bm); int bmeshGenerateInbetweenMesh(bmesh *bm); -int bmeshGenerate(bmesh *bm); +int bmeshGenerate(bmesh *bm, int level); int bmeshDraw(bmesh *bm); #ifdef __cplusplus diff --git a/src/editor.c b/src/editor.c index c99f095a..21616b00 100644 --- a/src/editor.c +++ b/src/editor.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "glw.h" #include "glw_style.h" #include "draw.h" @@ -59,6 +60,10 @@ typedef struct editor { bmesh *bm; skeleton *skl; float ballRadius; + int bmeshLevel; + float bmeshLevelCfg; + bmesh *newBm; + int needGenerateBm; } editor; #include "../data/bmesh_test_2.h" @@ -98,6 +103,37 @@ static void drawCanvas(int x, int y, int width, int height) { glEnd(); } +static void generateBmeshInBackground(glwWin *win, void *tag) { + editor *ed = glwGetUserData(win); + bmesh *newBm; + bmeshBall ball; + bmeshBone bone; + unsigned int i; + + newBm = bmeshCreate(); + + for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { + memset(&ball, 0, sizeof(ball)); + ball.position.x = bmeshTestBalls[i][1]; + ball.position.y = bmeshTestBalls[i][2]; + ball.position.z = bmeshTestBalls[i][3]; + ball.radius = bmeshTestBalls[i][4]; + ball.type = bmeshTestBalls[i][5]; + bmeshAddBall(newBm, &ball); + } + + for (i = 0; i < sizeof(bmeshTestBones) / sizeof(bmeshTestBones[0]); ++i) { + memset(&bone, 0, sizeof(bone)); + bone.firstBallIndex = bmeshTestBones[i][0]; + bone.secondBallIndex = bmeshTestBones[i][1]; + bmeshAddBone(newBm, &bone); + } + + bmeshGenerate(newBm, ed->bmeshLevel); + + *(bmesh **)tag = newBm; +} + static void display(glwWin *win) { editor *ed = glwGetUserData(win); @@ -144,19 +180,21 @@ static void display(glwWin *win) { glwImNextY(win), titles, icons, -1); } +#define ED_MAX_BMESH_SUB_LEVEL 2 + { char *titles[] = {"Property", 0}; int icons[] = {ICON_TOOL, 0}; glwImTabBox(win, GEN_ID, ED_SPACING / 2, ED_TOPBAR_HEIGHT, ED_SIDEBAR_WIDTH, ed->height - ED_TOPBAR_HEIGHT - ED_SPACING / 2, titles, icons, 0); - ed->ballRadius = glwImSlider(win, GEN_ID, glwImNextX(win) + ED_MARGIN, + ed->bmeshLevelCfg = glwImSlider(win, GEN_ID, glwImNextX(win) + ED_MARGIN, glwImNextY(win) + ED_MARGIN, ED_SIDEBAR_WIDTH - ED_MARGIN * 2, - ED_MIN_BALL_RADIUS, ED_MAX_BALL_RADIUS, - ed->ballRadius, - "Radius: %.4f", - ed->ballRadius); + 0, 1, + ed->bmeshLevelCfg, + "Subdivide Level: %d", + 1 + (int)round(ed->bmeshLevelCfg)); } { @@ -198,31 +236,24 @@ static void display(glwWin *win) { if (0 == ed->skl) { ed->skl = skeletonCreate(); } - - if (0 == ed->bm) { - bmeshBall ball; - bmeshBone bone; - unsigned int i; - ed->bm = bmeshCreate(); - - for (i = 0; i < sizeof(bmeshTestBalls) / sizeof(bmeshTestBalls[0]); ++i) { - memset(&ball, 0, sizeof(ball)); - ball.position.x = bmeshTestBalls[i][1]; - ball.position.y = bmeshTestBalls[i][2]; - ball.position.z = bmeshTestBalls[i][3]; - ball.radius = bmeshTestBalls[i][4]; - ball.type = bmeshTestBalls[i][5]; - bmeshAddBall(ed->bm, &ball); + + if (!ed->needGenerateBm) { + if (1 + (int)round(ed->bmeshLevelCfg) != ed->bmeshLevel) { + ed->bmeshLevel = 1 + (int)round(ed->bmeshLevelCfg); + ed->needGenerateBm = 1; } - - for (i = 0; i < sizeof(bmeshTestBones) / sizeof(bmeshTestBones[0]); ++i) { - memset(&bone, 0, sizeof(bone)); - bone.firstBallIndex = bmeshTestBones[i][0]; - bone.secondBallIndex = bmeshTestBones[i][1]; - bmeshAddBone(ed->bm, &bone); + } + + if (ed->needGenerateBm) { + if (glwImThread(win, GEN_ID, generateBmeshInBackground, &ed->newBm)) { + if (ed->bm) { + bmeshDestroy(ed->bm); + ed->bm = 0; + } + ed->bm = ed->newBm; + ed->newBm = 0; + ed->needGenerateBm = 0; } - - bmeshGenerate(ed->bm); } glColor3f(glwR(ED_GL_BACKGROUND_COLOR), @@ -254,20 +285,24 @@ static void display(glwWin *win) { glEnable(GL_LIGHTING); glEnable(GL_CULL_FACE); - if (ed->showBallChecked) { + if (ed->bm) { + if (ed->showBallChecked) { - } - - if (ed->showBoneChecked) { - int index; - for (index = 0; index < bmeshGetBoneNum(ed->bm); ++index) { - bmeshBone *bone = bmeshGetBone(ed->bm, index); - drawBmeshBone(ed->bm, bone); } - } - if (ed->showMeshChecked) { - bmeshDraw(ed->bm); + if (ed->showBoneChecked) { + int index; + for (index = 0; index < bmeshGetBoneNum(ed->bm); ++index) { + bmeshBone *bone = bmeshGetBone(ed->bm, index); + drawBmeshBone(ed->bm, bone); + } + } + + if (ed->showMeshChecked) { + unsigned int color = 0xffffff; + glColor3f(glwR(color), glwG(color), glwB(color)); + bmeshDraw(ed->bm); + } } glDisable(GL_CULL_FACE); @@ -340,6 +375,10 @@ static void wheel(glwWin *win, float delta) { ed->cameraDistance -= delta * 0.01f; } +static void keyboard(glwWin *win, unsigned char key, int x, int y) { + +} + int main(int argc, char *argv[]) { editor ed; glwInit(); @@ -352,11 +391,14 @@ int main(int argc, char *argv[]) { ed.showMeshChecked = 1; ed.selectedMenu = -1; - ed.win = glwCreateWindow(0, 0, 600, 480); + ed.bmeshLevelCfg = 1; + + ed.win = glwCreateWindow(0, 0, 0, 0); glwSetUserData(ed.win, &ed); glwReshapeFunc(ed.win, reshape); glwDisplayFunc(ed.win, display); glwMouseFunc(ed.win, mouse); + glwKeyboardFunc(ed.win, keyboard); glwMotionFunc(ed.win, motion); glwWheelFunc(ed.win, wheel); glwMainLoop(); diff --git a/src/glw.c b/src/glw.c index dcb5f939..05e6920e 100644 --- a/src/glw.c +++ b/src/glw.c @@ -847,6 +847,12 @@ void glwMouseFunc(glwWin *win, void (*func)(glwWin *win, int button, int state, ctx->onMouse = func; } +void glwKeyboardFunc(glwWin *win, void (*func)(glwWin *win, unsigned char key, + int x, int y)) { + glwWinContext *ctx = glwGetWinContext(win); + ctx->onKeyboard = func; +} + void glwMotionFunc(glwWin *win, void (*func)(glwWin *win, int x, int y)) { glwWinContext *ctx = glwGetWinContext(win); @@ -959,3 +965,31 @@ float glwImSlider(glwWin *win, int id, int x, int y, int width, GLW_SLIDER_CORNER_RADIUS, GLW_BORDER_COLOR_2); return cur; } + +static void *activeThreadWrapper(void *param) { + glwWin *win = (glwWin *)param; + glwImGui *imGUI = glwGetImGUI(win); + imGUI->activeThreadCall(win, imGUI->activeThreadTag); + imGUI->activeThreadDoneFlag = 1; + return 0; +} + +int glwImThread(glwWin *win, int id, void (*thread)(glwWin *win, void *tag), + void *tag) { + glwImGui *imGUI = glwGetImGUI(win); + int finished = 0; + if (0 == imGUI->activeThreadId) { + imGUI->activeThreadId = id; + imGUI->activeThreadTag = tag; + imGUI->activeThreadDoneFlag = 0; + imGUI->activeThreadCall = thread; + pthread_create(&imGUI->activeThread, NULL, activeThreadWrapper, win); + } else if (id == imGUI->activeThreadId) { + if (imGUI->activeThreadDoneFlag) { + pthread_join(imGUI->activeThread, NULL); + imGUI->activeThreadId = 0; + finished = 1; + } + } + return finished; +} diff --git a/src/glw.h b/src/glw.h index f094ef19..25936b95 100644 --- a/src/glw.h +++ b/src/glw.h @@ -69,6 +69,8 @@ int glwImMenu(glwWin *win, int id, int x, int y, int width, int height, char **titles, int sel); float glwImSlider(glwWin *win, int id, int x, int y, int width, float min, float max, float cur, char *fmt, ...); +int glwImThread(glwWin *win, int id, void (*thread)(glwWin *win, void *tag), + void *tag); #ifdef __cplusplus } diff --git a/src/glw_internal.h b/src/glw_internal.h index 56d454f3..40d49094 100644 --- a/src/glw_internal.h +++ b/src/glw_internal.h @@ -1,5 +1,6 @@ #ifndef GLW_INTERNAL_H #define GLW_INTERNAL_H +#include #include "glw.h" #include "glw_style.h" @@ -22,7 +23,8 @@ typedef struct glwWinContext { void (*onMouse)(glwWin *win, int button, int state, int x, int y); void (*onMotion)(glwWin *win, int x, int y); void (*onPassiveMotion)(glwWin *win, int x, int y); - void(*onWheel)(glwWin *win, float delta); + void (*onWheel)(glwWin *win, float delta); + void (*onKeyboard)(glwWin *win, unsigned char key, int x, int y); int viewWidth; int viewHeight; float scaleX; @@ -52,6 +54,11 @@ typedef struct glwImGui { int activeId; int nextX; int nextY; + int activeThreadId; + pthread_t activeThread; + void *activeThreadTag; + volatile int activeThreadDoneFlag; + void (*activeThreadCall)(glwWin *win, void *tag); } glwImGui; glwSize glwMeasureText(char *text, glwFont *font); diff --git a/src/glw_osx.m b/src/glw_osx.m index a77067ec..36771370 100644 --- a/src/glw_osx.m +++ b/src/glw_osx.m @@ -213,6 +213,20 @@ glwWinContext *glwGetWinContext(glwWin *win) { } } +- (void)keyDown:(NSEvent *)event { + NSString * const character = [event charactersIgnoringModifiers]; + if ([character length] > 0) { + unichar c = [character characterAtIndex:0]; + NSCharacterSet *letters = [NSCharacterSet letterCharacterSet]; + if ([letters characterIsMember:c]) { + if (self->context.onKeyboard) { + self->context.onKeyboard((glwWin *)self.window, (unsigned char)c, + self->context.x, self->context.y); + } + } + } +} + - (BOOL)isFlipped { return YES; } diff --git a/src/glw_style.h b/src/glw_style.h index 8cce5d00..e3f57e60 100644 --- a/src/glw_style.h +++ b/src/glw_style.h @@ -2,7 +2,7 @@ #define GLW_STYLE_H #define GLW_SYSTEM_FONT_NAME "PT Sans Narrow" //"Monaco" //"Helvetica" -#define GLW_SYSTEM_FONT_WEIGHT 10 +#define GLW_SYSTEM_FONT_WEIGHT 5 #define GLW_SYSTEM_FONT_SIZE 20 #define GLW_SYSTEM_FONT_COLOR 0xb9b9b9 #define GLW_SYSTEM_FONT_COLOR_H 0xffffff diff --git a/src/subdivide.c b/src/subdivide.c index fa2faac2..e204dc3e 100644 --- a/src/subdivide.c +++ b/src/subdivide.c @@ -411,7 +411,6 @@ void subdivDrawModel(subdivModel *model) { int faceIterator; int vertexIterator; faceIterator = model->faceLink; - glColor4f(1.0, 1.0, 1.0, 1.0); while (-1 != faceIterator) { linkItem = arrayGetItem(model->indexArray, faceIterator); f = getFace(model, linkItem->index); @@ -591,6 +590,6 @@ subdivModel *subdivCatmullClarkWithLoops(subdivModel *model, int loops) { outputModel = subdivCatmullClark(loopInput); subdivDestroyModel(loopInput); } - subdivDrawModel(outputModel); + //subdivDrawModel(outputModel); return outputModel; } From 62bc12f87ddf03fab15f3d8bc583f3903a2f9478 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 29 Jul 2017 22:33:38 +0800 Subject: [PATCH 60/61] Update progress --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c9af4f2a..16b04579 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Two caps and many strips composites a cylinder. *Infinite Grid* Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. Now, for just beginning, I think it's a not bad start. - + - [x] Implement B-Mesh algorithm (Dec 18, 2016 ~ Jan 04, 2017) There is a implementation of [B-Mesh algorithm in C++](https://github.com/evanw/cs224final) language, but I want the pure C version, so I start to implement my own version. I read both paper and this implementation, it gave me very helpful understanding of this algorithm. *Drawing Skeletal Shape Balls* @@ -70,7 +70,8 @@ This todo already done in the B-Mesh algorithm implementation. **Feb 12, 2017:** - + **July 29, 2017:** + It's been more than 5 months since my last update. I was busy on preparing for my IELTS and PTE English test, and still is. However, the suspended period on this project make me rethink the progress though. Removing C++ from codebase and introducing Objective-C is really not a good idea, especially because my target is not making a GUI framework, but a modeling tool for game making. I need focus back on my original target. - [ ] Render rigid animation - [ ] png exporter for isometric 2.5D game - [ ] Export Wavefront .obj From 31f2597230539c4bcdb929f744af6c04045e5556 Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Sat, 29 Jul 2017 22:47:11 +0800 Subject: [PATCH 61/61] Fix markdown --- README.md | 64 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 16b04579..c038b6a7 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,18 @@ From my initial thought, Dust3D should be a tool like [Makehuman](http://www.mak TODO & Progress ============== -- [x] Drawing Primitives (Dec 15, 2016 ~ Dec 17, 2016) +- [x] Drawing Primitives +- [x] Implement B-Mesh algorithm +- [x] Render B-Mesh result +- [ ] Design UI for monster parts configuration +- [ ] Render rigid animation +- [ ] png exporter for isometric 2.5D game +- [ ] Export Wavefront .obj +- [ ] Materials merge of different parts +- [ ] Version 0.01 release +- [ ] Implement [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) + +**Dec 15, 2016 ~ Dec 17, 2016:** *Sphere* I don't want the whole project have any unnecessary dependent, like glu library. Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/questions/7687148/drawing-sphere-in-opengl-without-using-glusphere), because I want implement the same spheres which presented in the [B-Mesh paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.357.7134&rep=rep1&type=pdf). @@ -20,9 +31,9 @@ Let's start with [drawing a sphere without gluSphere]( http://stackoverflow.com/ Two caps and many strips composites a cylinder. *Infinite Grid* Almost all 3D editor have a infinite grid ground, I just made a finite one, in the future, I should expand the grid outside of the screen to make it infinite. -Now, for just beginning, I think it's a not bad start. +Now, for just beginning, I think it's a not bad start. -- [x] Implement B-Mesh algorithm (Dec 18, 2016 ~ Jan 04, 2017) +**Dec 18, 2016 ~ Jan 04, 2017:** There is a implementation of [B-Mesh algorithm in C++](https://github.com/evanw/cs224final) language, but I want the pure C version, so I start to implement my own version. I read both paper and this implementation, it gave me very helpful understanding of this algorithm. *Drawing Skeletal Shape Balls* Draw shape ball is easy, no need to rotate, I just need scale it along the ball's radius. @@ -50,31 +61,22 @@ I follow the B-Mesh paper, made another test module inside Blender, and created *Catmull-Clark Subdivision* There is a implementation of Catmull-Clark Subdivision algorithm on [rosettacode](https://rosettacode.org/wiki/Catmull%E2%80%93Clark_subdivision_surface/C), the code is very simple and beautiful, just lack of some memory alloc fail check. I translated the algorithm to use my own array implementation. -Now, the render result looks not bad after 2 times of subdivisions. I would like to mark this todo as done, though there are more polish steps on the original paper, I just leave it as to be done in the future. -- [x] Render B-Mesh result -This todo already done in the B-Mesh algorithm implementation. -- [ ] Design UI for monster parts configuration - **Jan 17, 2017 ~ Jan 18, 2017:** - *Skeleton Editor* - There is a good tutorial introduced how to implement object selection by mouse in OpenGL, written by [Bartek](http://www.bfilipek.com/2012/06/select-mouse-opengl.html). - But there is a big pain in the progress of implement the object selection logic, because of resizeGL, the width and height which passed in as parameters of this function is not equal to the size of the window. - **Feb 3, 2017:** - Recently, I submitted a patch(https://developer.blender.org/D2489) to blender to fix a crash bug, because is just a quick fix and I am not familiar with the blender's code, so the patch is not fixing the real problem, though the bug is there, and Gaia Clary fixed it. What I am trying to say is when I was compiling the blender code, there was a real pain to fix some third part dependency and different C++ version problem. - So I reconsidered the GUI of Dust3d, I want remove all the C++ code inevitably including the Qt library. Maybe I need try just use OpenGL to draw the interface in the next step. - **Feb 8, 2017:** - There are lots of changes to the UI part of Dust3D, though not commit yet because of many things have not been finalize. - I removed the Qt, the counterpart of the build system is CMake, and instead of using Qt based OpenGL windows, I am using my own implemented OpenGL support library. I considered using the most popular [Dear ImGui](https://github.com/ocornut/imgui) library, but I really want remove the C++ from the codebase. It's a good start of the skeleton editor UI! - - **Feb 11, 2017:** - Qt removed, so C++ removed, but Objective-C imported for just support the OpenGL environment on OSX. - - **Feb 12, 2017:** - - **July 29, 2017:** - It's been more than 5 months since my last update. I was busy on preparing for my IELTS and PTE English test, and still is. However, the suspended period on this project make me rethink the progress though. Removing C++ from codebase and introducing Objective-C is really not a good idea, especially because my target is not making a GUI framework, but a modeling tool for game making. I need focus back on my original target. -- [ ] Render rigid animation -- [ ] png exporter for isometric 2.5D game -- [ ] Export Wavefront .obj -- [ ] Materials merge of different parts -- [ ] Version 0.01 release -- [ ] Implement [the Skeleton of a Closed 3D Shape](http://www1.idc.ac.il/icgf/GraphicsSeminar2006/DCGskeleton06.pdf) +Now, the render result looks not bad after 2 times of subdivisions. I would like to mark this todo as done, though there are more polish steps on the original paper, I just leave it as to be done in the future. +**Jan 17, 2017 ~ Jan 18, 2017:** +*Skeleton Editor* +There is a good tutorial introduced how to implement object selection by mouse in OpenGL, written by [Bartek](http://www.bfilipek.com/2012/06/select-mouse-opengl.html). +But there is a big pain in the progress of implement the object selection logic, because of resizeGL, the width and height which passed in as parameters of this function is not equal to the size of the window. +**Feb 3, 2017:** +Recently, I submitted a patch(https://developer.blender.org/D2489) to blender to fix a crash bug, because is just a quick fix and I am not familiar with the blender's code, so the patch is not fixing the real problem, though the bug is there, and Gaia Clary fixed it. What I am trying to say is when I was compiling the blender code, there was a real pain to fix some third part dependency and different C++ version problem. +So I reconsidered the GUI of Dust3d, I want remove all the C++ code inevitably including the Qt library. Maybe I need try just use OpenGL to draw the interface in the next step. +**Feb 8, 2017:** +There are lots of changes to the UI part of Dust3D, though not commit yet because of many things have not been finalize. +I removed the Qt, the counterpart of the build system is CMake, and instead of using Qt based OpenGL windows, I am using my own implemented OpenGL support library. I considered using the most popular [Dear ImGui](https://github.com/ocornut/imgui) library, but I really want remove the C++ from the codebase. It's a good start of the skeleton editor UI! + +**Feb 11, 2017:** +Qt removed, so C++ removed, but Objective-C imported for just support the OpenGL environment on OSX. + +**Feb 12, 2017:** + +**July 29, 2017:** +It's been more than 5 months since my last update. I was busy on preparing for my IELTS and PTE English test, and still is. However, the suspended period on this project make me rethink the progress though. Removing C++ from codebase and introducing Objective-C is really not a good idea, especially because my target is not making a GUI framework, but a modeling tool for game making. I need focus back on my original target.

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