From 84b99181e804430acedb94ba848a801ffc33e15a Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Wed, 17 Jan 2018 00:15:21 +0000 Subject: initial commit --- drawing/Makefile | 13 ++++ drawing/addons.make | 1 + drawing/bin/data/diver.svg | 120 +++++++++++++++++++++++++++++++ drawing/bin/data/diveroutline.svg | 33 +++++++++ drawing/bin/data/shapes.svg | 46 ++++++++++++ drawing/config.make | 144 ++++++++++++++++++++++++++++++++++++++ drawing/src/lineSegmenter.cpp | 15 ++++ drawing/src/lineSegmenter.h | 14 ++++ drawing/src/main.cpp | 22 ++++++ drawing/src/ofApp.cpp | 128 +++++++++++++++++++++++++++++++++ drawing/src/ofApp.h | 35 +++++++++ notes | 10 +++ 12 files changed, 581 insertions(+) create mode 100644 drawing/Makefile create mode 100644 drawing/addons.make create mode 100644 drawing/bin/data/diver.svg create mode 100644 drawing/bin/data/diveroutline.svg create mode 100644 drawing/bin/data/shapes.svg create mode 100644 drawing/config.make create mode 100644 drawing/src/lineSegmenter.cpp create mode 100644 drawing/src/lineSegmenter.h create mode 100644 drawing/src/main.cpp create mode 100644 drawing/src/ofApp.cpp create mode 100644 drawing/src/ofApp.h create mode 100644 notes diff --git a/drawing/Makefile b/drawing/Makefile new file mode 100644 index 0000000..177e172 --- /dev/null +++ b/drawing/Makefile @@ -0,0 +1,13 @@ +# Attempt to load a config.make file. +# If none is found, project defaults in config.project.make will be used. +ifneq ($(wildcard config.make),) + include config.make +endif + +# make sure the the OF_ROOT location is defined +ifndef OF_ROOT + OF_ROOT=$(realpath ../../..) +endif + +# call the project makefile! +include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk diff --git a/drawing/addons.make b/drawing/addons.make new file mode 100644 index 0000000..a63536d --- /dev/null +++ b/drawing/addons.make @@ -0,0 +1 @@ +ofxSvg \ No newline at end of file diff --git a/drawing/bin/data/diver.svg b/drawing/bin/data/diver.svg new file mode 100644 index 0000000..7afbd20 --- /dev/null +++ b/drawing/bin/data/diver.svg @@ -0,0 +1,120 @@ + + + + + + image/svg+xml + + + + + + + wmf2svg + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/drawing/bin/data/diveroutline.svg b/drawing/bin/data/diveroutline.svg new file mode 100644 index 0000000..dd0805c --- /dev/null +++ b/drawing/bin/data/diveroutline.svg @@ -0,0 +1,33 @@ + + + + + + image/svg+xml + + + + + + + wmf2svg + + diff --git a/drawing/bin/data/shapes.svg b/drawing/bin/data/shapes.svg new file mode 100644 index 0000000..c4a186b --- /dev/null +++ b/drawing/bin/data/shapes.svg @@ -0,0 +1,46 @@ + + + + + + image/svg+xml + + + + + + + wmf2svg + + + + diff --git a/drawing/config.make b/drawing/config.make new file mode 100644 index 0000000..a57f4d4 --- /dev/null +++ b/drawing/config.make @@ -0,0 +1,144 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +OF_ROOT = ../../openFrameworks + +################################################################################ +# OF_ROOT = ../../.. + +################################################################################ +# PROJECT ROOT +# The location of the project - a starting place for searching for files +# (default) PROJECT_ROOT = . (this directory) +# +################################################################################ +# PROJECT_ROOT = . + +################################################################################ +# PROJECT SPECIFIC CHECKS +# This is a project defined section to create internal makefile flags to +# conditionally enable or disable the addition of various features within +# this makefile. For instance, if you want to make changes based on whether +# GTK is installed, one might test that here and create a variable to check. +################################################################################ +# None + +################################################################################ +# PROJECT EXTERNAL SOURCE PATHS +# These are fully qualified paths that are not within the PROJECT_ROOT folder. +# Like source folders in the PROJECT_ROOT, these paths are subject to +# exlclusion via the PROJECT_EXLCUSIONS list. +# +# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXTERNAL_SOURCE_PATHS = + +################################################################################ +# PROJECT EXCLUSIONS +# These makefiles assume that all folders in your current project directory +# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations +# to look for source code. The any folders or files that match any of the +# items in the PROJECT_EXCLUSIONS list below will be ignored. +# +# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete +# string unless teh user adds a wildcard (%) operator to match subdirectories. +# GNU make only allows one wildcard for matching. The second wildcard (%) is +# treated literally. +# +# (default) PROJECT_EXCLUSIONS = (blank) +# +# Will automatically exclude the following: +# +# $(PROJECT_EXCLUSIONSJECT_ROOT)/bin% +# $(PROJECT_ROOT)/obj% +# $(PROJECT_ROOT)/%.xcodeproj +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXCLUSIONS = + +################################################################################ +# PROJECT LINKER FLAGS +# These flags will be sent to the linker when compiling the executable. +# +# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_LDFLAGS = -FFrameworks -framework Syphon + +# Currently, shared libraries that are needed are copied to the +# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to +# add a runtime path to search for those shared libraries, since they aren't +# incorporated directly into the final executable application binary. +# TODO: should this be a default setting? +# PROJECT_LDFLAGS=-Wl,-rpath=./libs + +################################################################################ +# PROJECT DEFINES +# Create a space-delimited list of DEFINES. The list will be converted into +# CFLAGS with the "-D" flag later in the makefile. +# +# (default) PROJECT_DEFINES = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_DEFINES = + +################################################################################ +# PROJECT CFLAGS +# This is a list of fully qualified CFLAGS required when compiling for this +# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS +# defined in your platform specific core configuration files. These flags are +# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. +# +# (default) PROJECT_CFLAGS = (blank) +# +# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in +# your platform specific configuration file will be applied by default and +# further flags here may not be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CFLAGS = + +################################################################################ +# PROJECT OPTIMIZATION CFLAGS +# These are lists of CFLAGS that are target-specific. While any flags could +# be conditionally added, they are usually limited to optimization flags. +# These flags are added BEFORE the PROJECT_CFLAGS. +# +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) +# +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) +# +# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the +# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration +# file will be applied by default and further optimization flags here may not +# be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE = +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG = + +################################################################################ +# PROJECT COMPILERS +# Custom compilers can be set for CC and CXX +# (default) PROJECT_CXX = (blank) +# (default) PROJECT_CC = (blank) +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CXX = +# PROJECT_CC = diff --git a/drawing/src/lineSegmenter.cpp b/drawing/src/lineSegmenter.cpp new file mode 100644 index 0000000..f848272 --- /dev/null +++ b/drawing/src/lineSegmenter.cpp @@ -0,0 +1,15 @@ +#include "lineSegmenter.h" + +const vector & lineSegmenter::getSegments(int num,float coverage, float phase) const{ + segments.clear(); + + float spacing=1.0f/num; + + for (int i=0;i &getSegments(int num,float coverage, float phase) const; + private: + ofPolyline line; + vector segments; +}; \ No newline at end of file diff --git a/drawing/src/main.cpp b/drawing/src/main.cpp new file mode 100644 index 0000000..0d7049c --- /dev/null +++ b/drawing/src/main.cpp @@ -0,0 +1,22 @@ +#include "ofMain.h" +#include "ofApp.h" + + +//======================================================================== +int main(int argc, char *argv[]){ + + + ofGLFWWindowSettings settings; + + + settings.width = 800; + settings.height = 800; + + shared_ptr mainWindow = ofCreateWindow(settings); + + shared_ptr mainApp(new ofApp); + + ofRunApp(mainWindow, mainApp); + ofRunMainLoop(); +} + \ No newline at end of file diff --git a/drawing/src/ofApp.cpp b/drawing/src/ofApp.cpp new file mode 100644 index 0000000..f4a00b5 --- /dev/null +++ b/drawing/src/ofApp.cpp @@ -0,0 +1,128 @@ +#include "ofApp.h" +#include "glew.h" + + +//-------------------------------------------------------------- +void ofApp::setup(){ + ofxSVG svg; + svg.load("shapes.svg"); + vector paths= svg.getPaths(); + + for (int i=0;i outlines= paths[i].getOutline(); + + for (int j=0;j segments; + +}; diff --git a/notes b/notes new file mode 100644 index 0000000..c0f05d4 --- /dev/null +++ b/notes @@ -0,0 +1,10 @@ +what's required -> prioritise + +- a way to draw vectors - simple, just keep drawing as fast as possible +- a way to remap the drawing with corner coordinates +- a way to set the corner coordinates - draw crosshairs on screens, allow mouse/ keyboard movement +- a way to add and remove elements to draw - transitions +- animated drawings - pattern drawing, spiral generators +- animated outlines - fading +- clipping +- an interface -- cgit v1.2.3