Added.
This commit is contained in:
parent
88ef37994e
commit
f7368d7ea5
@ -7,24 +7,44 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
9227913421D266F2009DB236 /* wav.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9227913321D266F2009DB236 /* wav.cpp */; };
|
||||||
92B75C4021C24AB600DA2DF9 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92B75C3F21C24AB600DA2DF9 /* main.cpp */; };
|
92B75C4021C24AB600DA2DF9 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92B75C3F21C24AB600DA2DF9 /* main.cpp */; };
|
||||||
|
92B75C4821C2513C00DA2DF9 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92B75C4721C2513C00DA2DF9 /* GLUT.framework */; };
|
||||||
|
92B75C4A21C2514200DA2DF9 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92B75C4921C2514200DA2DF9 /* OpenGL.framework */; };
|
||||||
|
92B75C4D21C2602000DA2DF9 /* graphs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92B75C4C21C2602000DA2DF9 /* graphs.cpp */; };
|
||||||
|
92B75C5021C2B69100DA2DF9 /* fields.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92B75C4E21C2B69100DA2DF9 /* fields.cpp */; };
|
||||||
|
92B75C5221C2CCC700DA2DF9 /* libfreetype.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 92B75C5121C2CCC700DA2DF9 /* libfreetype.6.dylib */; };
|
||||||
|
92B75C5921C2D21E00DA2DF9 /* libglm_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 92B75C5821C2D21E00DA2DF9 /* libglm_static.a */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
92B75C3A21C24AB600DA2DF9 /* CopyFiles */ = {
|
92B75C3A21C24AB600DA2DF9 /* Copy Files */ = {
|
||||||
isa = PBXCopyFilesBuildPhase;
|
isa = PBXCopyFilesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
dstPath = /usr/share/man/man1/;
|
dstPath = /usr/share/man/man1/;
|
||||||
dstSubfolderSpec = 0;
|
dstSubfolderSpec = 0;
|
||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
|
name = "Copy Files";
|
||||||
runOnlyForDeploymentPostprocessing = 1;
|
runOnlyForDeploymentPostprocessing = 1;
|
||||||
};
|
};
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
9227913221D266DE009DB236 /* wav.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = wav.hpp; sourceTree = "<group>"; };
|
||||||
|
9227913321D266F2009DB236 /* wav.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wav.cpp; sourceTree = "<group>"; };
|
||||||
|
9227913521D269C1009DB236 /* type.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = type.hpp; sourceTree = "<group>"; };
|
||||||
92B75C3C21C24AB600DA2DF9 /* Fields */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Fields; sourceTree = BUILT_PRODUCTS_DIR; };
|
92B75C3C21C24AB600DA2DF9 /* Fields */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Fields; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
92B75C3F21C24AB600DA2DF9 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
|
92B75C3F21C24AB600DA2DF9 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
|
||||||
|
92B75C4721C2513C00DA2DF9 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = System/Library/Frameworks/GLUT.framework; sourceTree = SDKROOT; };
|
||||||
|
92B75C4921C2514200DA2DF9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
|
||||||
|
92B75C4B21C2602000DA2DF9 /* graphs.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = graphs.hpp; sourceTree = "<group>"; };
|
||||||
|
92B75C4C21C2602000DA2DF9 /* graphs.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = graphs.cpp; sourceTree = "<group>"; };
|
||||||
|
92B75C4E21C2B69100DA2DF9 /* fields.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = fields.cpp; sourceTree = "<group>"; };
|
||||||
|
92B75C4F21C2B69100DA2DF9 /* fields.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = fields.hpp; sourceTree = "<group>"; };
|
||||||
|
92B75C5121C2CCC700DA2DF9 /* libfreetype.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libfreetype.6.dylib; path = ../../../../../usr/local/lib/libfreetype.6.dylib; sourceTree = "<group>"; };
|
||||||
|
92B75C5621C2D1E500DA2DF9 /* libglm_shared.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libglm_shared.dylib; path = ../../../../../usr/local/include/glm/libglm_shared.dylib; sourceTree = "<group>"; };
|
||||||
|
92B75C5821C2D21E00DA2DF9 /* libglm_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libglm_static.a; path = ../../../../../usr/local/include/glm/libglm_static.a; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@ -32,17 +52,43 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
92B75C5221C2CCC700DA2DF9 /* libfreetype.6.dylib in Frameworks */,
|
||||||
|
92B75C4A21C2514200DA2DF9 /* OpenGL.framework in Frameworks */,
|
||||||
|
92B75C5921C2D21E00DA2DF9 /* libglm_static.a in Frameworks */,
|
||||||
|
92B75C4821C2513C00DA2DF9 /* GLUT.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
9227913021D2660B009DB236 /* unix */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
92B75C3F21C24AB600DA2DF9 /* main.cpp */,
|
||||||
|
);
|
||||||
|
path = unix;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
9227913121D26676009DB236 /* include */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
92B75C4F21C2B69100DA2DF9 /* fields.hpp */,
|
||||||
|
92B75C4B21C2602000DA2DF9 /* graphs.hpp */,
|
||||||
|
9227913221D266DE009DB236 /* wav.hpp */,
|
||||||
|
9227913521D269C1009DB236 /* type.hpp */,
|
||||||
|
);
|
||||||
|
path = include;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
92B75C3321C24AB600DA2DF9 = {
|
92B75C3321C24AB600DA2DF9 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
92B75C3E21C24AB600DA2DF9 /* Fields */,
|
9227913121D26676009DB236 /* include */,
|
||||||
|
9227913021D2660B009DB236 /* unix */,
|
||||||
|
92B75C3E21C24AB600DA2DF9 /* src */,
|
||||||
92B75C3D21C24AB600DA2DF9 /* Products */,
|
92B75C3D21C24AB600DA2DF9 /* Products */,
|
||||||
|
92B75C4621C2513C00DA2DF9 /* Frameworks */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@ -54,12 +100,26 @@
|
|||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
92B75C3E21C24AB600DA2DF9 /* Fields */ = {
|
92B75C3E21C24AB600DA2DF9 /* src */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
92B75C3F21C24AB600DA2DF9 /* main.cpp */,
|
9227913321D266F2009DB236 /* wav.cpp */,
|
||||||
|
92B75C4E21C2B69100DA2DF9 /* fields.cpp */,
|
||||||
|
92B75C4C21C2602000DA2DF9 /* graphs.cpp */,
|
||||||
);
|
);
|
||||||
path = Fields;
|
path = src;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
92B75C4621C2513C00DA2DF9 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
92B75C5821C2D21E00DA2DF9 /* libglm_static.a */,
|
||||||
|
92B75C5621C2D1E500DA2DF9 /* libglm_shared.dylib */,
|
||||||
|
92B75C5121C2CCC700DA2DF9 /* libfreetype.6.dylib */,
|
||||||
|
92B75C4921C2514200DA2DF9 /* OpenGL.framework */,
|
||||||
|
92B75C4721C2513C00DA2DF9 /* GLUT.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
@ -71,7 +131,7 @@
|
|||||||
buildPhases = (
|
buildPhases = (
|
||||||
92B75C3821C24AB600DA2DF9 /* Sources */,
|
92B75C3821C24AB600DA2DF9 /* Sources */,
|
||||||
92B75C3921C24AB600DA2DF9 /* Frameworks */,
|
92B75C3921C24AB600DA2DF9 /* Frameworks */,
|
||||||
92B75C3A21C24AB600DA2DF9 /* CopyFiles */,
|
92B75C3A21C24AB600DA2DF9 /* Copy Files */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@ -118,7 +178,10 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
92B75C4D21C2602000DA2DF9 /* graphs.cpp in Sources */,
|
||||||
92B75C4021C24AB600DA2DF9 /* main.cpp in Sources */,
|
92B75C4021C24AB600DA2DF9 /* main.cpp in Sources */,
|
||||||
|
9227913421D266F2009DB236 /* wav.cpp in Sources */,
|
||||||
|
92B75C5021C2B69100DA2DF9 /* fields.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -240,6 +303,22 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"/usr/local/include/freetype2/**",
|
||||||
|
"/usr/local/include/glm/**",
|
||||||
|
"/usr/local/Cellar/glew/2.1.0/**",
|
||||||
|
"/usr/local/Cellar/glfw/3.2.1/**",
|
||||||
|
"\"$(SRCROOT)/include\"",
|
||||||
|
);
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/usr/local/lib,
|
||||||
|
/usr/local/include/glm,
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"$(OTHER_CFLAGS)",
|
||||||
|
"-Wno-deprecated-declarations",
|
||||||
|
"-v",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -248,6 +327,22 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"/usr/local/include/freetype2/**",
|
||||||
|
"/usr/local/include/glm/**",
|
||||||
|
"/usr/local/Cellar/glew/2.1.0/**",
|
||||||
|
"/usr/local/Cellar/glfw/3.2.1/**",
|
||||||
|
"\"$(SRCROOT)/include\"",
|
||||||
|
);
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/usr/local/lib,
|
||||||
|
/usr/local/include/glm,
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"$(OTHER_CFLAGS)",
|
||||||
|
"-Wno-deprecated-declarations",
|
||||||
|
"-v",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
//
|
|
||||||
// main.cpp
|
|
||||||
// Fields
|
|
||||||
//
|
|
||||||
// Created by 胡一兵 on 2018/12/13.
|
|
||||||
// Copyright © 2018年 Bakantu. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
int main(int argc, const char * argv[]) {
|
|
||||||
// insert code here...
|
|
||||||
std::cout << "Hello, World!\n";
|
|
||||||
return 0;
|
|
||||||
}
|
|
19
include/fields.hpp
Normal file
19
include/fields.hpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef fields_hpp
|
||||||
|
#define fields_hpp
|
||||||
|
|
||||||
|
#include <type.hpp>
|
||||||
|
#include <graphs.hpp>
|
||||||
|
|
||||||
|
class Field:public Shape{
|
||||||
|
|
||||||
|
public:
|
||||||
|
double people;
|
||||||
|
Field():people(0),Shape(){
|
||||||
|
setRetangle({{0,0,0},{0,0,0}});
|
||||||
|
}
|
||||||
|
Field(pair<Point3,Point3> pos){
|
||||||
|
setRetangle(pos);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* fields_hpp */
|
228
include/graphs.hpp
Normal file
228
include/graphs.hpp
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
#ifndef graphs_h
|
||||||
|
#define graphs_h
|
||||||
|
|
||||||
|
#include <type.hpp>
|
||||||
|
|
||||||
|
#define DRAW_TIMER 1
|
||||||
|
#define FRESH_TIMER 20
|
||||||
|
|
||||||
|
typedef std::pair<double, double> Size;
|
||||||
|
typedef std::pair<double, double> Point;
|
||||||
|
typedef std::vector<double> Point3;
|
||||||
|
typedef std::vector<double> RawColor;
|
||||||
|
|
||||||
|
using std::string;
|
||||||
|
using std::vector;
|
||||||
|
using std::list;
|
||||||
|
using std::pair;
|
||||||
|
using std::map;
|
||||||
|
|
||||||
|
class Field;
|
||||||
|
|
||||||
|
unsigned long fresh_screen(int signal);
|
||||||
|
void draw_fields(int signal);
|
||||||
|
|
||||||
|
class Color{
|
||||||
|
public:
|
||||||
|
double red, green, blue;
|
||||||
|
Color():red(1.0),blue(1.0),green(1.0){
|
||||||
|
}
|
||||||
|
Color(RawColor color){
|
||||||
|
red = color[0]/255;
|
||||||
|
blue = color[1]/255;
|
||||||
|
green = color[2]/255;
|
||||||
|
}
|
||||||
|
Color(const Color &color){
|
||||||
|
red = color.red;
|
||||||
|
blue = color.blue;
|
||||||
|
green = color.green;
|
||||||
|
}
|
||||||
|
void setColor(RawColor color){
|
||||||
|
red = color[0]/255;
|
||||||
|
green = color[1]/255;
|
||||||
|
blue = color[2]/255;
|
||||||
|
}
|
||||||
|
void setColor(Color color){
|
||||||
|
red = color.red;
|
||||||
|
blue = color.blue;
|
||||||
|
green = color.green;
|
||||||
|
}
|
||||||
|
void brighter(void){
|
||||||
|
red = sqrt(red);
|
||||||
|
blue = sqrt(blue);
|
||||||
|
green = sqrt(green);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Shape{
|
||||||
|
public:
|
||||||
|
GLenum type;
|
||||||
|
GLfloat point_size, line_size;
|
||||||
|
vector<Point3> points;
|
||||||
|
Color color;
|
||||||
|
void flesh(void){
|
||||||
|
if(point_size != 1.0f)
|
||||||
|
glPointSize(point_size);
|
||||||
|
else if(line_size != 1.0f)
|
||||||
|
glLineWidth(line_size);
|
||||||
|
glColor3f(color.red, color.blue, color.green);
|
||||||
|
}
|
||||||
|
void setColor(RawColor color){
|
||||||
|
this->color.setColor(color);
|
||||||
|
}
|
||||||
|
void setColor(Color color){
|
||||||
|
this->color.setColor(color);
|
||||||
|
}
|
||||||
|
Shape():type(GL_POINTS),point_size(2.0f),line_size(2.0f),color({255,255,255}){
|
||||||
|
}
|
||||||
|
|
||||||
|
void setRetangle(const pair<Point3,Point3> pos){
|
||||||
|
double fx = pos.first[0],fy = pos.first[1];
|
||||||
|
double sx = pos.second[0], sy = pos.second[1];
|
||||||
|
setPolygon({{fx,fy,0},{sx,fy,0},{sx,sy,0},{fx,sy,0}});
|
||||||
|
}
|
||||||
|
|
||||||
|
void setPolygon(const vector<Point3> pos){
|
||||||
|
type = GL_POLYGON;
|
||||||
|
for(auto i = pos.begin(); i != pos.end(); i++){
|
||||||
|
points.push_back(*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class View2D {
|
||||||
|
public:
|
||||||
|
Point pos;
|
||||||
|
vector<Shape> shapes;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Bar:public View2D {
|
||||||
|
public:
|
||||||
|
Bar(Point, GLint width){
|
||||||
|
Shape *p_shape = new Shape();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Window {
|
||||||
|
|
||||||
|
public:
|
||||||
|
static list<Shape *> shapes;
|
||||||
|
static map<string,View2D *> menus;
|
||||||
|
Window(int argc, char **argv){
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
}
|
||||||
|
void playMode(int Mode){
|
||||||
|
glutInitDisplayMode(Mode);
|
||||||
|
}
|
||||||
|
void size(Size sizexy){
|
||||||
|
glutInitWindowSize(static_cast<int>(sizexy.first), static_cast<int>(sizexy.second));
|
||||||
|
}
|
||||||
|
void position(Point positionxy){
|
||||||
|
glutPositionWindow(positionxy.first, positionxy.second);
|
||||||
|
}
|
||||||
|
void create(string name = "No Name",void (*func)() = Window::displayEngine){
|
||||||
|
glutCreateWindow(name.data());
|
||||||
|
glutDisplayFunc(func);
|
||||||
|
glutMouseFunc(mouseListener);
|
||||||
|
glutTimerFunc(DRAW_TIMER, draw_fields, 1);
|
||||||
|
glutTimerFunc(FRESH_TIMER, rendEngine, 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
void setColor(Color color){
|
||||||
|
glClearColor(color.red, color.blue, color.green, 1.0f);
|
||||||
|
}
|
||||||
|
void show(void){
|
||||||
|
glutMainLoop();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rendShape(Shape *shape){
|
||||||
|
if(shape->point_size != 1.0f)
|
||||||
|
glPointSize(shape->point_size);
|
||||||
|
else if(shape->line_size != 1.0f)
|
||||||
|
glLineWidth(shape->line_size);
|
||||||
|
glColor3f(shape->color.red, shape->color.blue, shape->color.green);
|
||||||
|
glBegin(shape->type);
|
||||||
|
for(auto k = shape->points.begin(); k != shape->points.end();k++){
|
||||||
|
glVertex3f((*k)[0],(*k)[1],(*k)[2]);
|
||||||
|
}
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void displayEngine(void){
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
for(auto i = shapes.begin(); i != shapes.end(); i++)
|
||||||
|
rendShape(*i);
|
||||||
|
//for(auto i = menus.begin(); i != menus.end(); i++)
|
||||||
|
//rendShape((*i).second);
|
||||||
|
glutSwapBuffers();
|
||||||
|
}
|
||||||
|
static void mouseListener(int button,int state,int x,int y){
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rendEngine(int value){
|
||||||
|
unsigned long ms = fresh_screen(0);
|
||||||
|
unsigned int now_fresh = (unsigned int)(FRESH_TIMER - ms);
|
||||||
|
if(now_fresh < 0 || now_fresh > FRESH_TIMER) now_fresh = 0;
|
||||||
|
glutTimerFunc(now_fresh, rendEngine, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_triangle(vector<Point3> pos, RawColor color={255, 255, 255}){
|
||||||
|
Shape *p_shape = new Shape;
|
||||||
|
p_shape->type = GL_TRIANGLES;
|
||||||
|
p_shape->setColor(color);
|
||||||
|
for(auto i = pos.begin(); i != pos.end(); i++){
|
||||||
|
p_shape->points.push_back(*i);
|
||||||
|
}
|
||||||
|
draw_shape(p_shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_point(Point3 pos, GLfloat size = 1.0f, RawColor color={255, 255, 255}){
|
||||||
|
Shape *p_shape = new Shape;
|
||||||
|
p_shape->type = GL_POINTS;
|
||||||
|
p_shape->point_size = size;
|
||||||
|
p_shape->setColor(color);
|
||||||
|
p_shape->points.push_back(pos);
|
||||||
|
draw_shape(p_shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_polygon(vector<Point3> pos, RawColor color={255,255,255}){
|
||||||
|
Shape *p_shape = new Shape;
|
||||||
|
p_shape->type = GL_POLYGON;
|
||||||
|
p_shape->setColor(color);
|
||||||
|
p_shape->setPolygon(pos);
|
||||||
|
draw_shape(p_shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_line(pair<Point3,Point3> pos, GLfloat size = 1.0f, RawColor color={255,255,255}){
|
||||||
|
Shape *p_shape = new Shape;
|
||||||
|
p_shape->type = GL_LINES;
|
||||||
|
p_shape->line_size = size;
|
||||||
|
p_shape->setColor(color);
|
||||||
|
p_shape->points.push_back(pos.first);
|
||||||
|
p_shape->points.push_back(pos.second);
|
||||||
|
draw_shape(p_shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_retangle(pair<Point3,Point3> pos, RawColor color={255,255,255}){
|
||||||
|
double fx = pos.first[0],fy = pos.first[1];
|
||||||
|
double sx = pos.second[0], sy = pos.second[1];
|
||||||
|
draw_polygon({{fx,fy},{sx,fy},{sx,sy},{fx,sy}},color);
|
||||||
|
}
|
||||||
|
|
||||||
|
void draw_shape(Shape *shape){
|
||||||
|
shapes.insert(shapes.end(),shape);
|
||||||
|
}
|
||||||
|
|
||||||
|
void add_menu(string name, View2D *view){
|
||||||
|
menus.insert({name,view});
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* graphs_h */
|
21
include/type.hpp
Normal file
21
include/type.hpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef type_h
|
||||||
|
#define type_h
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <cmath>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#include <OpenGL/OpenGL.h>
|
||||||
|
#include <GLUT/GLUT.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <list>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
#endif /* type_h */
|
9
src/fields.cpp
Normal file
9
src/fields.cpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
//
|
||||||
|
// fields.cpp
|
||||||
|
// Fields
|
||||||
|
//
|
||||||
|
// Created by 胡一兵 on 2018/12/13.
|
||||||
|
// Copyright © 2018年 Bakantu. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <fields.hpp>
|
10
src/wav.cpp
Normal file
10
src/wav.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include <wav.hpp>
|
||||||
|
|
||||||
|
FILE * readWAVInfo(void){
|
||||||
|
FILE *fp = NULL;
|
||||||
|
struct WAV_Format wav;
|
||||||
|
fp = fopen("test.wav", "rb");
|
||||||
|
fread(&wav, 1, sizeof(struct WAV_Format), fp);
|
||||||
|
|
||||||
|
return fp;
|
||||||
|
}
|
47
unix/main.cpp
Normal file
47
unix/main.cpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
//
|
||||||
|
// main.cpp
|
||||||
|
// Fields
|
||||||
|
//
|
||||||
|
// Created by 胡一兵 on 2018/12/13.
|
||||||
|
// Copyright © 2018年 Bakantu. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <type.hpp>
|
||||||
|
#include <graphs.hpp>
|
||||||
|
#include <fields.hpp>
|
||||||
|
#include <wav.hpp>
|
||||||
|
|
||||||
|
int if_fresh = 1, if_draw = 0;
|
||||||
|
list<Shape *> Window::shapes = {};
|
||||||
|
map<string,View2D *> Window::menus = {};
|
||||||
|
vector<Field*> fields;
|
||||||
|
Window *p_nwd = NULL;
|
||||||
|
WAV twav("test.wav");
|
||||||
|
Shape *p_avg = new Shape();
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
Window nwd(argc,argv);
|
||||||
|
p_nwd = &nwd;
|
||||||
|
|
||||||
|
nwd.playMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
|
||||||
|
nwd.size({700,700});
|
||||||
|
nwd.position({200,100});
|
||||||
|
twav.getInfo();
|
||||||
|
twav.setTimer(20);
|
||||||
|
int hw = sqrt(twav.m_pss.step);
|
||||||
|
nwd.create("Fields");
|
||||||
|
p_avg->setRetangle({{0.98,-0.98},{0.85,-0.85}});
|
||||||
|
nwd.draw_shape(p_avg);
|
||||||
|
for(int y = 0; y < hw; y++){
|
||||||
|
for(int x = 0; x < hw; x++){
|
||||||
|
double dx = x/16.8, dy = y/16.8;
|
||||||
|
Field *p_field = new Field({{-0.9+dx,0.9-dy,0},{-(0.848)+dx,(0.848)-dy,0}});
|
||||||
|
nwd.draw_shape(p_field);
|
||||||
|
fields.push_back(p_field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fields[0]->color.setColor({0,0,0});
|
||||||
|
nwd.show();
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user