mirror of
https://github.com/allemangD/toddcox-visualize.git
synced 2025-11-10 12:02:47 -05:00
fix orientation
This commit is contained in:
@@ -241,12 +241,11 @@ struct GeomGen {
|
|||||||
int start = sub_simps.size();
|
int start = sub_simps.size();
|
||||||
sub_simps = tile(g_gens, sg_gens, sub_simps);
|
sub_simps = tile(g_gens, sg_gens, sub_simps);
|
||||||
for (int l = start; l < sub_simps.size(); l+=S.dim) {
|
for (int l = start; l < sub_simps.size(); l+=S.dim) {
|
||||||
S.vals.push_back(0);
|
|
||||||
for (int m = l; m < l+S.dim; m++) {
|
for (int m = l; m < l+S.dim; m++) {
|
||||||
S.vals.push_back(sub_simps.vals[m]);
|
S.vals.push_back(sub_simps.vals[m]);
|
||||||
}
|
}
|
||||||
|
S.vals.push_back(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return S;
|
return S;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
#version 430
|
#version 430
|
||||||
|
|
||||||
|
layout(location=0) uniform mat4 proj;
|
||||||
layout(location=1) uniform mat4 view;
|
layout(location=1) uniform mat4 view;
|
||||||
|
|
||||||
layout(location=0) in vec4 pos;
|
layout(location=0) in vec4 pos;
|
||||||
|
|
||||||
out vec4 gpos;
|
out vec4 vpos;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
gpos = view * pos;
|
vpos = view * pos;
|
||||||
|
gl_Position = proj * vec4(vpos.xyz / (1), 1);
|
||||||
gl_PointSize = 5;
|
gl_PointSize = 5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ float floatmod(float x, float m) {
|
|||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
//region init window
|
//region init window
|
||||||
|
|
||||||
if (!glfwInit()) {
|
if (!glfwInit()) {
|
||||||
std::cerr << "Failed to initialize GLFW" << std::endl;
|
std::cerr << "Failed to initialize GLFW" << std::endl;
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
@@ -47,7 +46,6 @@ int main(int argc, char *argv[]) {
|
|||||||
glfwMakeContextCurrent(window);
|
glfwMakeContextCurrent(window);
|
||||||
gladLoadGLLoader((GLADloadproc) glfwGetProcAddress);
|
gladLoadGLLoader((GLADloadproc) glfwGetProcAddress);
|
||||||
glfwSwapInterval(0);
|
glfwSwapInterval(0);
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
std::cout << utilInfo();
|
std::cout << utilInfo();
|
||||||
@@ -66,7 +64,7 @@ int main(int argc, char *argv[]) {
|
|||||||
utilCompileFiles(GL_VERTEX_SHADER, {"shaders/stereo-proper.vs.glsl"}),
|
utilCompileFiles(GL_VERTEX_SHADER, {"shaders/stereo-proper.vs.glsl"}),
|
||||||
// utilCompileFiles(GL_VERTEX_SHADER, {"shaders/ortho.vs.glsl"}),
|
// utilCompileFiles(GL_VERTEX_SHADER, {"shaders/ortho.vs.glsl"}),
|
||||||
// utilCompileFiles(GL_VERTEX_SHADER, {"shaders/stereo.vs.glsl"}),
|
// utilCompileFiles(GL_VERTEX_SHADER, {"shaders/stereo.vs.glsl"}),
|
||||||
utilCompileFiles(GL_GEOMETRY_SHADER, {"shaders/stereo-proper.gm.glsl"}),
|
// utilCompileFiles(GL_GEOMETRY_SHADER, {"shaders/stereo-proper.gm.glsl"}),
|
||||||
utilCompileFiles(GL_FRAGMENT_SHADER, {"shaders/one-color.fs.glsl"}),
|
utilCompileFiles(GL_FRAGMENT_SHADER, {"shaders/one-color.fs.glsl"}),
|
||||||
// utilCompileFiles(GL_FRAGMENT_SHADER, {"shaders/w-axis-hue.fs.glsl"})
|
// utilCompileFiles(GL_FRAGMENT_SHADER, {"shaders/w-axis-hue.fs.glsl"})
|
||||||
});
|
});
|
||||||
@@ -76,7 +74,7 @@ int main(int argc, char *argv[]) {
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto group = tc::group::H(4);
|
auto group = tc::group::H(3);
|
||||||
// auto group = tc::group::B(5);
|
// auto group = tc::group::B(5);
|
||||||
// auto group = tc::group::A(5);
|
// auto group = tc::group::A(5);
|
||||||
GeomGen gg(group);
|
GeomGen gg(group);
|
||||||
@@ -101,8 +99,10 @@ int main(int argc, char *argv[]) {
|
|||||||
std::vector<GLuint> edge_ibo;
|
std::vector<GLuint> edge_ibo;
|
||||||
auto g_gens = gg.group_gens();
|
auto g_gens = gg.group_gens();
|
||||||
|
|
||||||
for (const auto i : g_gens) {
|
GLenum mode = GL_TRIANGLES;
|
||||||
std::vector<int> sg_gens = {i};
|
|
||||||
|
{
|
||||||
|
std::vector<int> sg_gens = {0, 1};
|
||||||
const auto data = gg.tile(g_gens, sg_gens, gg.triangulate(sg_gens)).vals;
|
const auto data = gg.tile(g_gens, sg_gens, gg.triangulate(sg_gens)).vals;
|
||||||
edge_count.push_back(data.size());
|
edge_count.push_back(data.size());
|
||||||
|
|
||||||
@@ -147,6 +147,8 @@ int main(int argc, char *argv[]) {
|
|||||||
glEnable(GL_PROGRAM_POINT_SIZE);
|
glEnable(GL_PROGRAM_POINT_SIZE);
|
||||||
glEnable(GL_POINT_SMOOTH);
|
glEnable(GL_POINT_SMOOTH);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
glEnable(GL_CULL_FACE);
|
||||||
|
glCullFace(GL_BACK);
|
||||||
|
|
||||||
//region uniforms
|
//region uniforms
|
||||||
auto aspect = (float) width / (float) height;
|
auto aspect = (float) width / (float) height;
|
||||||
@@ -171,15 +173,15 @@ int main(int argc, char *argv[]) {
|
|||||||
auto view = glm::identity<glm::mat4>();
|
auto view = glm::identity<glm::mat4>();
|
||||||
view *= utilRotate(0, 1, st * ts[0]);
|
view *= utilRotate(0, 1, st * ts[0]);
|
||||||
view *= utilRotate(0, 2, st * ts[1]);
|
view *= utilRotate(0, 2, st * ts[1]);
|
||||||
view *= utilRotate(0, 3, st * ts[2]);
|
// view *= utilRotate(0, 3, st * ts[2]);
|
||||||
view *= utilRotate(1, 2, st * ts[3]);
|
view *= utilRotate(1, 2, st * ts[3]);
|
||||||
view *= utilRotate(1, 3, st * ts[4]);
|
// view *= utilRotate(1, 3, st * ts[4]);
|
||||||
view *= utilRotate(2, 3, st * ts[5]);
|
// view *= utilRotate(2, 3, st * ts[5]);
|
||||||
glUniformMatrix4fv(1, 1, false, glm::value_ptr(view));
|
glUniformMatrix4fv(1, 1, false, glm::value_ptr(view));
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
glUniform3f(2, 1.0f, 1.0f, 1.0f);
|
glUniform3f(2, 1.0f, 1.0f, 1.0f);
|
||||||
glDrawArrays(GL_POINTS, 0, points.size());
|
// glDrawArrays(GL_POINTS, 0, points.size());
|
||||||
|
|
||||||
glUniform3f(2, 1.0f, 1.0f, 1.0f);
|
glUniform3f(2, 1.0f, 1.0f, 1.0f);
|
||||||
for (int i = 0; i < group.ngens; ++i) {
|
for (int i = 0; i < group.ngens; ++i) {
|
||||||
@@ -187,7 +189,7 @@ int main(int argc, char *argv[]) {
|
|||||||
auto count = edge_count[i];
|
auto count = edge_count[i];
|
||||||
|
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
|
||||||
glDrawElements(GL_LINES, count, GL_UNSIGNED_INT, nullptr);
|
glDrawElements(mode, count, GL_UNSIGNED_INT, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
glfwSwapBuffers(window);
|
glfwSwapBuffers(window);
|
||||||
|
|||||||
Reference in New Issue
Block a user