about summary refs log tree commit diff
path: root/src/Models.cpp
diff options
context:
space:
mode:
authorNguyễn Gia Phong <cnx@loang.net>2023-11-19 04:11:46 +0900
committerNguyễn Gia Phong <cnx@loang.net>2023-11-19 04:11:46 +0900
commitdb730f01951231196cac36630d043c7a3676d446 (patch)
treef1f8cd2c2e2d8d24235a64fd5d9aa577ca73f4bc /src/Models.cpp
parentae0810b2d4cdd31cd05f5746c6411da9d458eead (diff)
downloadblackshades-db730f01951231196cac36630d043c7a3676d446.tar.gz
Finish porting model handling to Zig
Diffstat (limited to 'src/Models.cpp')
-rw-r--r--src/Models.cpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/Models.cpp b/src/Models.cpp
deleted file mode 100644
index bc0b4d2..0000000
--- a/src/Models.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#include <algorithm>
-#include <cmath>
-
-#include "Models.h"
-#include "misc.h"
-
-extern bool visions;
-
-void Model::CalculateNormals()
-{
-	for (int i = 0; i < TriangleNum; ++i)
-		normals[i] = normalize(crossProduct(vertex[Triangles[i].vertex[1]]
-			- vertex[Triangles[i].vertex[0]],
-			vertex[Triangles[i].vertex[2]]
-			- vertex[Triangles[i].vertex[0]]));
-
-	for (int i = 0; i < TriangleNum; ++i) {
-		vArray[i*27+0]=vertex[Triangles[i].vertex[0]].x;
-		vArray[i*27+1]=vertex[Triangles[i].vertex[0]].y;
-		vArray[i*27+2]=vertex[Triangles[i].vertex[0]].z;
-		vArray[i*27+3]=normals[i].x;
-		vArray[i*27+4]=normals[i].y;
-		vArray[i*27+5]=normals[i].z;
-		vArray[i*27+6]=Triangles[i].r;
-		vArray[i*27+7]=Triangles[i].g;
-		vArray[i*27+8]=Triangles[i].b;
-
-		vArray[i*27+9]=vertex[Triangles[i].vertex[1]].x;
-		vArray[i*27+10]=vertex[Triangles[i].vertex[1]].y;
-		vArray[i*27+11]=vertex[Triangles[i].vertex[1]].z;
-		vArray[i*27+12]=normals[i].x;
-		vArray[i*27+13]=normals[i].y;
-		vArray[i*27+14]=normals[i].z;
-		vArray[i*27+15]=Triangles[i].r;
-		vArray[i*27+16]=Triangles[i].g;
-		vArray[i*27+17]=Triangles[i].b;
-
-		vArray[i*27+18]=vertex[Triangles[i].vertex[2]].x;
-		vArray[i*27+19]=vertex[Triangles[i].vertex[2]].y;
-		vArray[i*27+20]=vertex[Triangles[i].vertex[2]].z;
-		vArray[i*27+21]=normals[i].x;
-		vArray[i*27+22]=normals[i].y;
-		vArray[i*27+23]=normals[i].z;
-		vArray[i*27+24]=Triangles[i].r;
-		vArray[i*27+25]=Triangles[i].g;
-		vArray[i*27+26]=Triangles[i].b;
-	}
-
-	this->center = {};
-	for (int i = 0; i < vertexNum; ++i)
-		this->center += vertex[i];
-	this->center /= vertexNum;
-
-	this->radius = 0;
-	for (int i = 0; i < vertexNum; ++i)
-		this->radius = std::max(this->radius,
-			sqrlen(this->center - vertex[i]));
-	this->radius = sqrt(this->radius);
-}
-
-void Model::load(const char* path)
-{
-	auto model = loadModel(path);
-	vertexNum = model.vertices.len;
-	for (short i = 0; i < vertexNum; ++i) {
-		vertex[i].x = model.vertices.ptr[i].x;
-		vertex[i].y = model.vertices.ptr[i].y;
-		vertex[i].z = model.vertices.ptr[i].z;
-	}
-	free(model.vertices.ptr);
-
-	TriangleNum = model.faces.len;
-	for (short i = 0; i < TriangleNum; ++i) {
-		Triangles[i].vertex[0] = model.faces.ptr[i].v[0];
-		Triangles[i].vertex[1] = model.faces.ptr[i].v[1];
-		Triangles[i].vertex[2] = model.faces.ptr[i].v[2];
-		Triangles[i].r = model.faces.ptr[i].r;
-		Triangles[i].g = model.faces.ptr[i].g;
-		Triangles[i].b = model.faces.ptr[i].b;
-	}
-	free(model.faces.ptr);
-	CalculateNormals();
-}
-
-void Model::draw()
-{
-	glEnableClientState(GL_VERTEX_ARRAY);
-	glEnableClientState(GL_NORMAL_ARRAY);
-	glEnableClientState(GL_COLOR_ARRAY);
-	glVertexPointer(3, GL_FLOAT, 9*sizeof(GLfloat),&vArray[0]);
-	glNormalPointer(GL_FLOAT, 9*sizeof(GLfloat),&vArray[3]);
-	if (visions)
-		glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
-	else
-		glColorPointer(3, GL_FLOAT, 9*sizeof(GLfloat), &vArray[6]);
-	glDrawArrays(GL_TRIANGLES, 0, TriangleNum*3);
-}
-
-void Model::draw(float r, float g, float b)
-{
-	glEnableClientState(GL_VERTEX_ARRAY);
-	glEnableClientState(GL_NORMAL_ARRAY);
-	glDisableClientState(GL_COLOR_ARRAY);
-	glVertexPointer(3, GL_FLOAT, 9*sizeof(GLfloat),&vArray[0]);
-	glNormalPointer(GL_FLOAT, 9*sizeof(GLfloat),&vArray[3]);
-	glColor4f(r, g, b, 1.0f);
-	glDrawArrays(GL_TRIANGLES, 0, TriangleNum*3);
-}