Kenneth van Ewijk пре 9 година
родитељ
комит
876ec56780
29 измењених фајлова са 884 додато и 79 уклоњено
  1. 9 2
      CrystalPoint.vcxproj
  2. 30 9
      CrystalPoint.vcxproj.filters
  3. 2 0
      Header.h
  4. 12 0
      InitState.cpp
  5. 11 0
      InitState.h
  6. 2 1
      LoadingState.h
  7. 21 5
      Main.cpp
  8. 3 3
      MenuState.h
  9. 70 10
      Model.cpp
  10. 6 2
      Model.h
  11. 12 0
      ModelHandler.cpp
  12. 8 0
      ModelHandler.h
  13. 10 0
      ModelInstance.cpp
  14. 16 0
      ModelInstance.h
  15. 0 32
      ModelLoader.cpp
  16. 0 10
      ModelLoader.h
  17. 1 1
      Player.cpp
  18. 1 1
      Player.h
  19. 12 0
      SettingsState.cpp
  20. 11 0
      SettingsState.h
  21. 28 0
      State.cpp
  22. 16 0
      State.h
  23. 22 2
      StateHandler.cpp
  24. 9 0
      StateHandler.h
  25. 2 1
      WorldState.h
  26. BIN
      models/HANDVAT.png
  27. 134 0
      models/TextureZwaard.mtl
  28. 436 0
      models/TextureZwaard.obj
  29. BIN
      models/ZWAARD.png

+ 9 - 2
CrystalPoint.vcxproj

@@ -23,6 +23,7 @@
     <Keyword>Win32Proj</Keyword>
     <RootNamespace>CrystalPoint</RootNamespace>
     <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+    <ProjectName>CrystalPoint</ProjectName>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -153,13 +154,16 @@
     <ClInclude Include="Controller.h" />
     <ClInclude Include="Enemy.h" />
     <ClInclude Include="Header.h" />
+    <ClInclude Include="InitState.h" />
     <ClInclude Include="Keyboard.h" />
     <ClInclude Include="LoadingState.h" />
     <ClInclude Include="MenuState.h" />
     <ClInclude Include="Model.h" />
-    <ClInclude Include="ModelLoader.h" />
+    <ClInclude Include="ModelHandler.h" />
+    <ClInclude Include="ModelInstance.h" />
     <ClInclude Include="Mouse.h" />
     <ClInclude Include="Player.h" />
+    <ClInclude Include="SettingsState.h" />
     <ClInclude Include="State.h" />
     <ClInclude Include="StateHandler.h" />
     <ClInclude Include="Vector.h" />
@@ -170,14 +174,17 @@
   <ItemGroup>
     <ClCompile Include="Controller.cpp" />
     <ClCompile Include="Enemy.cpp" />
+    <ClCompile Include="InitState.cpp" />
     <ClCompile Include="Keyboard.cpp" />
     <ClCompile Include="LoadingState.cpp" />
     <ClCompile Include="Main.cpp" />
     <ClCompile Include="MenuState.cpp" />
     <ClCompile Include="Model.cpp" />
-    <ClCompile Include="ModelLoader.cpp" />
+    <ClCompile Include="ModelHandler.cpp" />
+    <ClCompile Include="ModelInstance.cpp" />
     <ClCompile Include="Mouse.cpp" />
     <ClCompile Include="Player.cpp" />
+    <ClCompile Include="SettingsState.cpp" />
     <ClCompile Include="State.cpp" />
     <ClCompile Include="StateHandler.cpp" />
     <ClCompile Include="Vector.cpp" />

+ 30 - 9
CrystalPoint.vcxproj.filters

@@ -25,14 +25,14 @@
     <Filter Include="Source Files\Model\Enemy">
       <UniqueIdentifier>{1be14b84-6fa7-4cfb-94b9-666f3ee14198}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Source Files\Handler">
+      <UniqueIdentifier>{1b39afb7-b64b-458a-bba3-755631986211}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="Model.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="ModelLoader.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="Header.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -75,14 +75,23 @@
     <ClInclude Include="Vector.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="ModelInstance.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ModelHandler.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="SettingsState.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="InitState.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Main.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="StateHandler.cpp">
-      <Filter>Source Files\State</Filter>
-    </ClCompile>
     <ClCompile Include="State.cpp">
       <Filter>Source Files\State</Filter>
     </ClCompile>
@@ -104,9 +113,6 @@
     <ClCompile Include="Model.cpp">
       <Filter>Source Files\Model</Filter>
     </ClCompile>
-    <ClCompile Include="ModelLoader.cpp">
-      <Filter>Source Files\Model</Filter>
-    </ClCompile>
     <ClCompile Include="WorldModel.cpp">
       <Filter>Source Files\Model</Filter>
     </ClCompile>
@@ -125,5 +131,20 @@
     <ClCompile Include="Vector.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="ModelInstance.cpp">
+      <Filter>Source Files\Model</Filter>
+    </ClCompile>
+    <ClCompile Include="StateHandler.cpp">
+      <Filter>Source Files\Handler</Filter>
+    </ClCompile>
+    <ClCompile Include="ModelHandler.cpp">
+      <Filter>Source Files\Handler</Filter>
+    </ClCompile>
+    <ClCompile Include="SettingsState.cpp">
+      <Filter>Source Files\State</Filter>
+    </ClCompile>
+    <ClCompile Include="InitState.cpp">
+      <Filter>Source Files\State</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>

+ 2 - 0
Header.h

@@ -17,4 +17,6 @@
 #include <windows.h>
 #include <gl/GL.h>
 
+#include "Vector.h"
+
 using namespace std;

+ 12 - 0
InitState.cpp

@@ -0,0 +1,12 @@
+#include "InitState.h"
+
+
+
+InitState::InitState()
+{
+}
+
+
+InitState::~InitState()
+{
+}

+ 11 - 0
InitState.h

@@ -0,0 +1,11 @@
+#pragma once
+#include "Header.h"
+#include "State.h"
+
+class InitState : public State
+{
+public:
+	InitState();
+	~InitState();
+};
+

+ 2 - 1
LoadingState.h

@@ -1,7 +1,8 @@
 #pragma once
 #include "Header.h"
+#include "State.h"
 
-class LoadingState
+class LoadingState : public State
 {
 public:
 	LoadingState();

+ 21 - 5
Main.cpp

@@ -1,6 +1,8 @@
 #include "Header.h"
 #include "Model.h"
 #include "Player.h"
+#include "StateHandler.h"
+#include "State.h"
 
 //Prototypes
 void bindFuncOpenGL(void);
@@ -17,6 +19,7 @@ bool keys[255];
 //int currentModel = 0;
 
 Player *player;
+StateHandler *statehandler;
 
 void display()
 {
@@ -29,6 +32,7 @@ void display()
 
 	glMatrixMode(GL_MODELVIEW);
 	glLoadIdentity();
+
 	/*glRotatef(player.eyes.rotX, 1, 0, 0);
 	glRotatef(player.eyes.rotY, 0, 1, 0);
 	glTranslatef(player.eyes.posX, player.eyes.posY, player.eyes.posZ);
@@ -42,7 +46,10 @@ void display()
 	glPopMatrix();*/
 
 	//Draw here	
-	player->Draw_Player();
+
+	statehandler->GetCurrentState()->Display();
+
+	player->Display();
 	
 	glutSolidCube(10.0);
 
@@ -67,6 +74,9 @@ void idle()
 	float deltaTime = frameTime - lastFrameTime;
 	lastFrameTime = frameTime;
 
+	statehandler->GetCurrentState()->Keyboard(keys);
+	statehandler->GetCurrentState()->Idle(deltaTime);
+
 	float speed = 10;
 
 	if (keys['a']) move(0, deltaTime*speed, false);
@@ -85,12 +95,16 @@ void mousemotion(int x, int y)
 	int dy = y - Height / 2;
 	if ((dx != 0 || dy != 0) && abs(dx) < 400 && abs(dy) < 400)
 	{
-		player->eyes.rotY += dx / 10.0f;
-		player->eyes.rotX += dy / 10.0f;
+		statehandler->GetCurrentState()->MouseMove(x, y, dx, dy);
 		glutWarpPointer(Width / 2, Height / 2);
 	}
 }
 
+void mouse(int button, int type, int x, int y)
+{
+	statehandler->GetCurrentState()->MouseClick(button, type, x, y);
+}
+
 void keyboard(unsigned char key, int, int)
 {
 	if (key == 27)
@@ -132,10 +146,9 @@ void bindFuncOpenGL()
 	//Keyboard
 	glutKeyboardFunc(keyboard);
 	glutKeyboardUpFunc(keyboardup);
-	//glutMouseFunc(mousefunc);
 
 	//Mouse
-	//glutMouseFunc(mouse);
+	glutMouseFunc(mouse);
 	glutPassiveMotionFunc(mousemotion);
 	
 }
@@ -186,5 +199,8 @@ void configureOpenGL()
 void loadModels() 
 {
 	player = new Player();
+	statehandler = new StateHandler();
+
+	statehandler->Navigate(statehandler->WORLD_STATE);
 	//models.push_back(new Model("models/weapons/ZwaardMetTextures/TextureZwaard.obj"));
 }

+ 3 - 3
MenuState.h

@@ -1,10 +1,10 @@
 #pragma once
 #include "Header.h"
+#include "State.h"
 
-class MenuState
+class MenuState : public State
 {
 public:
 	MenuState();
 	~MenuState();
-};
-
+};

+ 70 - 10
Model.cpp

@@ -3,6 +3,11 @@
 #define STB_IMAGE_IMPLEMENTATION
 #include "stb_image.h"
 
+//Prototypes
+vector<string> split(string str, string sep);
+string replace(string str, string toReplace, string replacement);
+string toLower(string data);
+
 Model::Model(string fileName)
 {
 	std::string dirName = fileName;
@@ -112,13 +117,19 @@ Model::Model(string fileName)
 	groups.push_back(currentGroup);
 }
 
+Model::Model(void)
+{
+	Model("models/TextureZwaard.obj");
+}
 
 Model::~Model(void)
 {
 }
 
-
-
+void Model::AddInstance(ModelInstance* inst)
+{
+	instances.push_back(inst);
+}
 
 void Model::draw()
 {
@@ -152,17 +163,30 @@ void Model::draw()
 			}
 		}
 
-		glBegin(GL_TRIANGLES);
-		for (auto &f : g->faces)
+		for (auto &instance : instances)
 		{
-			for (auto &v : f.vertices)
+
+			glBegin(GL_TRIANGLES);
+			for (auto &f : g->faces)
 			{
-				glNormal3f(normals[v.normal].x, normals[v.normal].y, normals[v.normal].z);
-				glTexCoord2f(texcoords[v.texcoord].x, texcoords[v.texcoord].y);
-				glVertex3f(vertices[v.position].x, vertices[v.position].y, vertices[v.position].z);
+				for (auto &v : f.vertices)
+				{
+					glPushMatrix();
+
+					glTranslatef(instance->translation.x, instance->translation.y, instance->translation.z);
+					glRotatef(instance->rotation.x, 1, 0, 0);
+					glRotatef(instance->rotation.y, 0, 1, 0);
+					glRotatef(instance->rotation.z, 0, 0, 1);
+					glScalef(instance->scale.x, instance->scale.y, instance->scale.z);
+
+					glNormal3f(normals[v.normal].x, normals[v.normal].y, normals[v.normal].z);
+					glTexCoord2f(texcoords[v.texcoord].x, texcoords[v.texcoord].y);
+					glVertex3f(vertices[v.position].x, vertices[v.position].y, vertices[v.position].z);
+				}
 			}
+			glEnd();
+
 		}
-		glEnd();
 	}
 }
 
@@ -270,4 +294,40 @@ Model::Texture::Texture(const std::string & fileName)
 void Model::Texture::bind()
 {
 	glBindTexture(GL_TEXTURE_2D, index);
-}
+}
+
+string replace(string str, string toReplace, string replacement)
+{
+	size_t index = 0;
+	while (true)
+	{
+		index = str.find(toReplace, index);
+		if (index == std::string::npos)
+			break;
+		str.replace(index, toReplace.length(), replacement);
+		++index;
+	}
+	return str;
+}
+
+vector<string> split(string str, string sep)
+{
+	std::vector<std::string> ret;
+	size_t index;
+	while (true)
+	{
+		index = str.find(sep);
+		if (index == std::string::npos)
+			break;
+		ret.push_back(str.substr(0, index));
+		str = str.substr(index + 1);
+	}
+	ret.push_back(str);
+	return ret;
+}
+
+inline string toLower(string data)
+{
+	std::transform(data.begin(), data.end(), data.begin(), ::tolower);
+	return data;
+}

+ 6 - 2
Model.h

@@ -1,7 +1,6 @@
 #pragma once
 #include "Header.h"
-#include "ModelLoader.h"
-#include "Vector.h"
+#include "ModelInstance.h"
 
 class Model
 {
@@ -59,10 +58,15 @@ private:
 	std::vector<ObjGroup*> groups;
 	std::vector<MaterialInfo*> materials;
 
+	std::vector<ModelInstance*> instances;
+
 	void loadMaterialFile(std::string fileName, std::string dirName);
 public:
 	Model(std::string filename);
+	Model(void);
 	~Model(void);
 
+	void AddInstance(ModelInstance* inst);
+
 	void draw();
 };

+ 12 - 0
ModelHandler.cpp

@@ -0,0 +1,12 @@
+#include "ModelHandler.h"
+
+
+
+ModelHandler::ModelHandler()
+{
+}
+
+
+ModelHandler::~ModelHandler()
+{
+}

+ 8 - 0
ModelHandler.h

@@ -0,0 +1,8 @@
+#pragma once
+class ModelHandler
+{
+public:
+	ModelHandler();
+	~ModelHandler();
+};
+

+ 10 - 0
ModelInstance.cpp

@@ -0,0 +1,10 @@
+#include "ModelInstance.h"
+
+ModelInstance::ModelInstance()
+{
+}
+
+
+ModelInstance::~ModelInstance()
+{
+}

+ 16 - 0
ModelInstance.h

@@ -0,0 +1,16 @@
+#pragma once
+#include "Header.h"
+
+class ModelInstance
+{
+private:
+public:
+	ModelInstance();
+	~ModelInstance();
+
+	Vec3f translation;
+	Vec3f rotation;
+	Vec3f scale;
+
+};
+

+ 0 - 32
ModelLoader.cpp

@@ -1,32 +0,0 @@
-#include "Header.h"
-#include "ModelLoader.h"
-
-string replace(string str, string toReplace, string replacement)
-{
-	size_t index = 0;
-	while (true)
-	{
-		index = str.find(toReplace, index);
-		if (index == std::string::npos)
-			break;
-		str.replace(index, toReplace.length(), replacement);
-		++index;
-	}
-	return str;
-}
-
-vector<string> split(string str, string sep)
-{
-	std::vector<std::string> ret;
-	size_t index;
-	while (true)
-	{
-		index = str.find(sep);
-		if (index == std::string::npos)
-			break;
-		ret.push_back(str.substr(0, index));
-		str = str.substr(index + 1);
-	}
-	ret.push_back(str);
-	return ret;
-}

+ 0 - 10
ModelLoader.h

@@ -1,10 +0,0 @@
-#pragma once
-#include "Header.h"
-
-string replace(string str, string toReplace, string replacement);
-vector<string> split(string str, string sep);
-inline string toLower(string data)
-{
-	std::transform(data.begin(), data.end(), data.begin(), ::tolower);
-	return data;
-}

+ 1 - 1
Player.cpp

@@ -15,7 +15,7 @@ Player::~Player()
 	delete left;
 }
 
-void Player::Draw_Player(void)
+void Player::Display(void)
 {
 	if (right != nullptr)
 	{	

+ 1 - 1
Player.h

@@ -17,7 +17,7 @@ public:
 		float rotY = 0;
 	} eyes;	
 
-	void Draw_Player(void);
+	void Display(void);
 private:
 	int level;
 	int xp;

+ 12 - 0
SettingsState.cpp

@@ -0,0 +1,12 @@
+#include "SettingsState.h"
+
+
+
+SettingsState::SettingsState()
+{
+}
+
+
+SettingsState::~SettingsState()
+{
+}

+ 11 - 0
SettingsState.h

@@ -0,0 +1,11 @@
+#pragma once
+#include "Header.h"
+#include "State.h"
+
+class SettingsState : public State
+{
+public:
+	SettingsState();
+	~SettingsState();
+};
+

+ 28 - 0
State.cpp

@@ -10,3 +10,31 @@ State::State()
 State::~State()
 {
 }
+
+void State::Entry()
+{
+}
+
+void State::Exit()
+{
+}
+
+void State::Idle(float delta)
+{
+}
+
+void State::Display()
+{
+}
+
+void State::Keyboard(bool keys[255])
+{
+}
+
+void State::MouseMove(int x, int y, int dx, int dy)
+{
+}
+
+void State::MouseClick(int button, int type, int x, int y)
+{
+}

+ 16 - 0
State.h

@@ -6,5 +6,21 @@ class State
 public:
 	State();
 	~State();
+
+	virtual void Entry();
+	virtual void Exit();
+
+	virtual void Idle(float delta);
+	virtual void Display();
+
+	virtual void Keyboard(bool keys[255]);
+	virtual void MouseMove(int x, int y, int dx, int dy);
+	virtual void MouseClick(int button, int type, int x, int y);
 };
 
+#include "InitState.h"
+#include "LoadingState.h"
+#include "MenuState.h"
+#include "SettingsState.h"
+#include "WorldState.h"
+

+ 22 - 2
StateHandler.cpp

@@ -1,12 +1,32 @@
 #include "StateHandler.h"
 
-
-
 StateHandler::StateHandler()
 {
+	StateList.push_back(new InitState()); //INIT_STATE
+	StateList.push_back(new LoadingState()); //LOADING_STATE
+	StateList.push_back(new MenuState()); //MENU_STATE
+	StateList.push_back(new SettingsState()); //SETTINGS_STATE
+	StateList.push_back(new WorldState()); //WORLD_STATE
+
+	CurrentState = INIT_STATE;
 }
 
 
 StateHandler::~StateHandler()
 {
 }
+
+void StateHandler::Navigate(EState state)
+{
+	if (CurrentState == state)
+		return;
+
+	StateList.at(CurrentState)->Exit();
+	CurrentState = state;
+	StateList.at(CurrentState)->Entry();
+}
+
+State* StateHandler::GetCurrentState()
+{
+	return StateList.at(CurrentState);
+}

+ 9 - 0
StateHandler.h

@@ -1,10 +1,19 @@
 #pragma once
 #include "Header.h"
+#include "State.h"
 
 class StateHandler
 {
 public:
+	enum EState { INIT_STATE = 0, LOADING_STATE = 1, MENU_STATE = 2, SETTINGS_STATE = 3, WORLD_STATE = 4 };
+
 	StateHandler();
 	~StateHandler();
+
+	void Navigate(EState state);
+	State* GetCurrentState();
+private:
+	EState CurrentState;
+	vector<State*> StateList;
 };
 

+ 2 - 1
WorldState.h

@@ -1,7 +1,8 @@
 #pragma once
 #include "Header.h"
+#include "State.h"
 
-class WorldState
+class WorldState : public State
 {
 public:
 	WorldState();

BIN
models/HANDVAT.png


+ 134 - 0
models/TextureZwaard.mtl

@@ -0,0 +1,134 @@
+newmtl initialShadingGroup
+illum 4
+Kd 0.22 0.22 0.22
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl lambert2SG
+illum 4
+Kd 0.50 0.32 0.25
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl lambert3SG
+illum 4
+Kd 0.45 0.45 0.45
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl lambert4SG
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl lambert5SG
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert3SG
+illum 4
+Kd 0.45 0.45 0.45
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert4SG
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert4SG1
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert4SG2
+illum 4
+Kd 0.00 0.00 0.00
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+map_Kd ZWAARD.png
+Ni 1.00
+newmtl pasted__lambert5SG
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert5SG1
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__lambert5SG2
+illum 4
+Kd 0.00 0.00 0.00
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+map_Kd HANDVAT.png
+Ni 1.00
+newmtl pasted__pasted__lambert4SG
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert4SG1
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert4SG2
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert4SG3
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert5SG
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert5SG1
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert5SG2
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__lambert5SG3
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__pasted__lambert4SG
+illum 4
+Kd 0.12 0.12 0.12
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00
+newmtl pasted__pasted__pasted__lambert5SG
+illum 4
+Kd 0.10 0.05 0.02
+Ka 0.00 0.00 0.00
+Tf 1.00 1.00 1.00
+Ni 1.00

+ 436 - 0
models/TextureZwaard.obj

@@ -0,0 +1,436 @@
+# This file uses centimeters as units for non-parametric coordinates.
+
+mtllib TextureZwaard.mtl
+g default
+v -2.214711 4.435681 -1.922955
+v -2.214711 4.829163 -1.922955
+v -2.214711 4.829163 -2.316437
+v -2.214711 4.435681 -2.316437
+v -1.821229 4.435681 -2.316437
+v -1.821229 4.829163 -2.316437
+v -1.821229 4.829163 -1.922955
+v -1.821229 4.435681 -1.922955
+v -1.908670 5.978167 -2.010395
+v -2.127271 5.978167 -2.010395
+v -1.908670 5.978167 -2.228996
+v -2.127271 5.978167 -2.228996
+v -2.127271 4.523121 -3.000496
+v -1.908670 4.523121 -3.000496
+v -2.127271 4.741723 -2.990724
+v -1.908670 4.741723 -2.990724
+v -1.908670 4.523121 -1.238895
+v -2.127271 4.523121 -1.238895
+v -1.908670 4.741723 -1.248667
+v -2.127271 4.741723 -1.248667
+v -2.017970 5.567809 -1.922955
+v -1.870414 5.567809 -1.972140
+v -2.017970 6.121793 -1.972140
+v -2.165526 5.567809 -1.972140
+v -2.017970 4.829163 -1.922955
+v -1.821229 5.567809 -2.119696
+v -1.870414 5.567809 -2.267251
+v -1.870414 6.121793 -2.119696
+v -1.821229 4.829163 -2.119696
+v -2.017970 6.306454 -2.119696
+v -2.017970 6.121793 -2.267251
+v -2.165526 6.121793 -2.119696
+v -2.214711 5.567809 -2.119696
+v -2.165526 5.567809 -2.267251
+v -2.214711 4.829163 -2.119696
+v -2.017970 5.567809 -2.316437
+v -2.017970 4.829163 -2.316437
+v -2.017970 4.435681 -2.756189
+v -2.017970 4.484866 -3.086004
+v -1.870414 4.484866 -2.756189
+v -2.017970 4.435681 -2.316437
+v -2.165526 4.484866 -2.756189
+v -2.214711 4.632422 -2.756189
+v -2.165526 4.632422 -3.086004
+v -2.214711 4.632422 -2.316437
+v -2.165526 4.779978 -2.734202
+v -2.017970 4.632422 -3.195942
+v -2.017970 4.779978 -3.064016
+v -1.870414 4.632422 -3.086004
+v -1.821229 4.632422 -2.756189
+v -1.870414 4.779978 -2.734202
+v -1.821229 4.632422 -2.316437
+v -2.017970 4.829163 -2.668239
+v -2.116341 4.829163 -2.316437
+v -1.919600 4.829163 -2.316437
+v -2.017970 4.435681 -1.483202
+v -1.870414 4.484866 -1.483202
+v -2.017970 4.484866 -1.153388
+v -2.165526 4.484866 -1.483202
+v -2.017970 4.435681 -1.922955
+v -1.821229 4.632422 -1.483202
+v -1.870414 4.779978 -1.505190
+v -1.870414 4.632422 -1.153388
+v -1.821229 4.632422 -1.922955
+v -2.017970 4.632422 -1.043449
+v -2.017970 4.779978 -1.175375
+v -2.165526 4.632422 -1.153388
+v -2.214711 4.632422 -1.483202
+v -2.165526 4.779978 -1.505190
+v -2.214711 4.632422 -1.922955
+v -2.017970 4.829163 -1.571153
+v -1.919600 4.829163 -1.922955
+v -2.116341 4.829163 -1.922955
+v -2.145140 1.194092 -2.004379
+v -1.894884 1.194092 -2.004379
+v -2.145140 4.476328 -2.004379
+v -1.894884 4.476328 -2.004379
+v -2.145140 4.476328 -2.254635
+v -1.894884 4.476328 -2.254635
+v -2.145140 1.194092 -2.254635
+v -1.894884 1.194092 -2.254635
+v -2.020800 1.194092 -1.837458
+v -2.020800 1.194092 -2.421667
+v -2.020800 4.476328 -2.421667
+v -2.020800 4.476328 -1.837458
+v -2.020800 0.395449 -2.130295
+v -2.020012 0.395449 -2.129507
+v -2.020800 0.395449 -2.128719
+vt 0.375000 0.175791
+vt 0.375000 0.183595
+vt 0.375000 0.191400
+vt 0.250000 0.191400
+vt 0.125000 0.191400
+vt 0.125000 0.183595
+vt 0.125000 0.175791
+vt 0.875000 0.175791
+vt 0.875000 0.183595
+vt 0.875000 0.191400
+vt 0.750000 0.191400
+vt 0.625000 0.191400
+vt 0.625000 0.183595
+vt 0.625000 0.175791
+vt 0.500000 0.191400
+vt 0.562500 0.191400
+vt 0.625000 0.220700
+vt 0.500000 0.220700
+vt 0.875000 0.220700
+vt 0.750000 0.220700
+vt 0.375000 0.375000
+vt 0.375000 0.250000
+vt 0.500000 0.273925
+vt 0.500000 0.375000
+vt 0.375000 0.220700
+vt 0.250000 0.220700
+vt 0.375000 0.529300
+vt 0.375000 0.500000
+vt 0.500000 0.476075
+vt 0.500000 0.529300
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.000000
+vt 0.500000 0.000000
+vt 0.500000 0.051075
+vt -1.#IND00 -1.#IND00
+vt 0.125000 0.000000
+vt 0.250000 0.000000
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.875000
+vt 0.375000 0.750000
+vt 0.500000 0.765928
+vt 0.500000 0.875000
+vt -1.#IND00 -1.#IND00
+vt 0.625000 0.000000
+vt 0.750000 0.000000
+vt -1.#IND00 -1.#IND00
+vt 0.562500 0.647850
+vt 0.625000 0.647850
+vt 0.625000 0.698925
+vt 0.500000 0.688710
+vt 0.500000 0.147850
+vt 0.625000 0.147850
+vt -1.#IND00 -1.#IND00
+vt 0.500000 0.198925
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.375000
+vt 0.375000 0.250000
+vt 0.500000 0.268481
+vt 0.500000 0.375000
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.147850
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.551075
+vt 0.375000 0.500000
+vt 0.500000 0.484072
+vt 0.500000 0.561290
+vt 0.375000 0.102150
+vt 0.625000 0.138970
+vt 0.500000 0.161821
+vt 0.625000 0.250000
+vt 0.437500 0.191400
+vt 0.875000 0.250000
+vt 0.750000 0.250000
+vt 0.625000 0.375000
+vt 0.625000 0.500000
+vt 0.250000 0.250000
+vt 0.125000 0.250000
+vt 0.125000 0.220700
+vt 0.625000 0.529300
+vt 0.625000 0.558600
+vt 0.562500 0.558600
+vt 0.500000 0.558600
+vt 0.437500 0.558600
+vt 0.375000 0.558600
+vt 0.625000 0.102150
+vt 0.500000 0.102150
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt 0.625000 0.750000
+vt 0.625000 0.875000
+vt 0.625000 1.000000
+vt 0.500000 1.000000
+vt 0.375000 1.000000
+vt 0.875000 0.000000
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt 0.375000 0.698925
+vt 0.375000 0.647850
+vt 0.437500 0.647850
+vt 0.500000 0.647850
+vt 0.625000 0.250000
+vt 0.875000 0.250000
+vt 0.750000 0.250000
+vt 0.625000 0.375000
+vt 0.625000 0.500000
+vt 0.250000 0.250000
+vt 0.125000 0.250000
+vt -1.#IND00 -1.#IND00
+vt -1.#IND00 -1.#IND00
+vt 0.625000 0.551075
+vt 0.625000 0.602150
+vt 0.562500 0.602150
+vt 0.500000 0.602150
+vt 0.437500 0.602150
+vt 0.375000 0.602150
+vt 0.499213 0.250000
+vt 0.499213 0.000000
+vt 0.625000 0.000000
+vt 0.625000 0.250000
+vt 0.499213 0.500000
+vt 0.625000 0.500000
+vt 0.499213 0.750000
+vt 0.625000 0.750000
+vt 0.500000 0.875471
+vt 0.499213 0.875361
+vt 0.499213 0.874686
+vt 0.875000 0.000000
+vt 0.875000 0.250000
+vt 0.125000 0.000000
+vt 0.375000 0.000000
+vt 0.375000 0.250000
+vt 0.125000 0.250000
+vt 0.375000 0.750000
+vt 0.375000 1.000000
+vt 0.375000 0.500000
+vt 0.625000 1.000000
+vt 0.499213 1.000000
+vn -0.706849 -0.706849 0.027027
+vn -0.999778 -0.000000 0.021082
+vn -0.916167 0.161747 0.366710
+vn -0.999853 0.017156 0.000000
+vn -0.916167 0.161747 -0.366710
+vn -0.999778 0.000000 -0.021082
+vn -0.706848 -0.706849 -0.027027
+vn 0.706849 -0.706848 -0.027027
+vn 0.999778 -0.000000 -0.021082
+vn 0.916167 0.161747 -0.366710
+vn 0.999853 0.017156 0.000000
+vn 0.916167 0.161747 0.366710
+vn 0.999778 0.000000 0.021082
+vn 0.706849 -0.706848 0.027027
+vn 0.000000 0.296282 0.955101
+vn 0.165279 0.343682 0.924427
+vn 0.705454 0.068331 0.705454
+vn -0.000000 0.059769 0.998212
+vn 0.705454 0.068331 -0.705454
+vn 0.998212 0.059770 0.000000
+vn -0.926131 0.377203 0.000000
+vn -0.699145 0.149633 0.699147
+vn -0.000000 0.377204 0.926130
+vn -0.000000 1.000000 -0.000000
+vn -0.705454 0.068331 0.705454
+vn -0.998212 0.059770 0.000000
+vn -0.705454 0.068331 -0.705454
+vn -0.699146 0.149633 -0.699146
+vn 0.000000 0.377204 -0.926130
+vn -0.000000 0.059769 -0.998212
+vn -0.702552 -0.702552 -0.113318
+vn -0.680278 -0.680278 -0.272843
+vn -0.000000 -0.871334 -0.490690
+vn 0.000000 -0.995011 -0.099770
+vn -0.764530 0.632514 -0.124178
+vn -0.647141 0.717488 -0.257720
+vn -0.867188 0.029145 -0.497127
+vn -0.994694 0.006104 -0.102697
+vn -0.000000 0.901897 -0.431952
+vn 0.000000 0.041614 -0.999134
+vn 0.702553 -0.702552 -0.113318
+vn 0.680279 -0.680278 -0.272842
+vn 0.867188 0.029145 -0.497127
+vn 0.994694 0.006104 -0.102697
+vn 0.165279 0.343682 -0.924427
+vn 0.764531 0.632513 -0.124177
+vn -0.000000 0.994023 -0.109172
+vn 0.000000 -0.999780 0.020984
+vn 0.702552 -0.702552 0.113318
+vn 0.000000 -0.995011 0.099770
+vn 0.764531 0.632513 0.124177
+vn 0.994694 0.006104 0.102697
+vn -0.867188 0.029145 0.497128
+vn -0.680278 -0.680278 0.272843
+vn -0.000000 -0.871334 0.490690
+vn -0.000000 0.041614 0.999134
+vn -0.702552 -0.702552 0.113318
+vn -0.994694 0.006104 0.102697
+vn -0.764530 0.632514 0.124178
+vn -0.647140 0.717488 0.257721
+vn -0.000000 0.901897 0.431952
+vn 0.000000 0.994023 0.109172
+vn 0.000000 -0.999780 -0.020984
+vn 0.699145 0.149633 0.699147
+vn -0.165279 0.343682 0.924427
+vn 0.699146 0.149633 -0.699145
+vn 0.926130 0.377204 -0.000000
+vn -0.000000 0.296282 -0.955101
+vn -0.165279 0.343682 -0.924427
+vn 0.647141 0.717488 -0.257720
+vn 0.680279 -0.680278 0.272842
+vn 0.647141 0.717488 0.257720
+vn 0.867188 0.029145 0.497128
+vn 0.000000 0.000000 1.000000
+vn 0.000000 0.000000 1.000000
+vn 0.798332 0.000000 0.602218
+vn 0.798332 0.000000 0.602218
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn -0.000000 0.000000 -1.000000
+vn -0.000000 0.000000 -1.000000
+vn 0.798524 0.000000 -0.601963
+vn 0.798524 0.000000 -0.601963
+vn 0.967785 -0.251777 0.000042
+vn -0.485721 -0.462486 0.741742
+vn -0.485344 -0.462668 -0.741875
+vn 1.000000 0.000000 0.000000
+vn 1.000000 0.000000 0.000000
+vn 1.000000 0.000000 0.000000
+vn 1.000000 0.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn -0.935019 -0.191988 -0.298128
+vn -0.934995 -0.191995 0.298198
+vn -0.802147 0.000000 -0.597126
+vn -0.802147 0.000000 -0.597126
+vn 0.000000 1.000000 0.000000
+vn 0.000000 1.000000 0.000000
+vn -0.801957 0.000000 0.597382
+vn -0.801957 0.000000 0.597382
+vn 0.003575 -0.342600 -0.939475
+vn 0.932888 -0.193820 -0.303570
+vn 0.932863 -0.193827 0.303641
+vn 0.003576 -0.342485 0.939516
+s 1
+g polySurface10
+usemtl pasted__lambert5SG2
+f 1/1/1 70/2/2 2/3/3 35/4/4 3/5/5 45/6/6 4/7/7
+f 5/8/8 52/9/9 6/10/10 29/11/11 7/12/12 64/13/13 8/14/14
+f 25/15/15 72/16/16 7/12/12 22/17/17 21/18/18
+f 29/11/11 6/10/10 27/19/19 26/20/20
+f 32/21/21 10/22/22 23/23/23 30/24/24
+f 35/4/4 2/3/3 24/25/25 33/26/26
+f 34/27/27 12/28/28 31/29/29 36/30/30
+f 42/31/31 13/32/32 39/33/33 38/34/34
+f 46/35/35 15/36/36 44/37/37 43/38/38
+f 44/39/37 15/40/36 48/41/39 47/42/40
+f 40/43/41 14/44/42 49/45/43 50/46/44
+f 55/47/45 6/48/10 51/49/46 53/50/47
+f 60/51/48 8/52/14 57/53/49 56/54/50
+f 64/55/13 7/56/12 62/57/51 61/58/52
+f 67/59/53 18/60/54 58/61/55 65/62/56
+f 70/63/2 1/64/1 59/65/57 68/66/58
+f 69/67/59 20/68/60 66/69/61 71/70/62
+f 1/1/1 4/71/7 41/72/63 5/8/8 8/52/14 60/73/48
+f 22/17/17 9/74/64 23/23/23 21/18/18
+f 23/23/23 10/22/22 24/25/25 21/18/18
+f 24/25/25 2/3/3 73/75/65 25/15/15 21/18/18
+f 27/19/19 11/76/66 28/77/67 26/20/20
+f 28/77/67 9/74/64 22/17/17 26/20/20
+f 22/17/17 7/12/12 29/11/11 26/20/20
+f 23/23/23 9/74/64 28/78/67 30/24/24
+f 28/78/67 11/79/66 31/29/29 30/24/24
+f 31/29/29 12/28/28 32/21/21 30/24/24
+f 24/25/25 10/22/22 32/80/21 33/26/26
+f 32/80/21 12/81/28 34/82/27 33/26/26
+f 34/82/27 3/5/5 35/4/4 33/26/26
+f 31/29/29 11/79/66 27/83/19 36/30/30
+f 27/83/19 6/84/10 55/85/45 37/86/68 36/30/30
+f 37/86/68 54/87/69 3/88/5 34/27/27 36/30/30
+f 39/33/33 14/44/42 40/43/41 38/34/34
+f 40/43/41 5/89/8 41/90/63 38/34/34
+f 41/90/63 4/71/7 42/31/31 38/34/34
+f 44/37/37 13/32/32 42/31/31 43/38/38
+f 42/31/31 4/71/7 45/91/6 43/38/38
+f 45/91/6 3/92/5 46/35/35 43/38/38
+f 48/41/39 16/93/70 49/94/43 47/42/40
+f 49/94/43 14/95/42 39/96/33 47/42/40
+f 39/96/33 13/97/32 44/39/37 47/42/40
+f 49/45/43 16/98/70 51/99/46 50/46/44
+f 51/99/46 6/100/10 52/101/9 50/46/44
+f 52/101/9 5/89/8 40/43/41 50/46/44
+f 51/49/46 16/93/70 48/41/39 53/50/47
+f 48/41/39 15/40/36 46/102/35 53/50/47
+f 46/102/35 3/103/5 54/104/69 53/50/47
+f 54/104/69 37/105/68 55/47/45 53/50/47
+f 57/53/49 17/106/71 58/61/55 56/54/50
+f 58/61/55 18/60/54 59/65/57 56/54/50
+f 59/65/57 1/64/1 60/51/48 56/54/50
+f 62/57/51 19/107/72 63/108/73 61/58/52
+f 63/108/73 17/106/71 57/53/49 61/58/52
+f 57/53/49 8/52/14 64/55/13 61/58/52
+f 58/61/55 17/106/71 63/109/73 65/62/56
+f 63/109/73 19/110/72 66/69/61 65/62/56
+f 66/69/61 20/68/60 67/59/53 65/62/56
+f 59/65/57 18/60/54 67/111/53 68/66/58
+f 67/111/53 20/112/60 69/113/59 68/66/58
+f 69/113/59 2/114/3 70/63/2 68/66/58
+f 66/69/61 19/110/72 62/115/51 71/70/62
+f 62/115/51 7/116/12 72/117/16 71/70/62
+f 72/117/16 25/118/15 73/119/65 71/70/62
+f 73/119/65 2/120/3 69/67/59 71/70/62
+s 10
+usemtl pasted__lambert4SG2
+f 85/121/74 82/122/75 75/123/76 77/124/77
+s 11
+f 84/125/78 85/121/79 77/124/80 79/126/81
+s 12
+f 83/127/82 84/125/83 79/126/84 81/128/85
+s 13
+f 87/129/86 88/130/87 86/131/88
+s off
+f 75/123/89 81/132/90 79/133/91 77/124/92
+f 80/134/93 74/135/94 76/136/95 78/137/96
+s 13
+f 80/138/97 86/131/88 88/130/87 74/139/98
+s 12
+f 78/140/99 84/125/83 83/127/82 80/138/100
+s 11
+f 76/136/101 85/121/79 84/125/78 78/140/102
+s 10
+f 74/135/103 82/122/75 85/121/74 76/136/104
+s 13
+f 80/138/97 83/127/105 86/131/88
+f 81/128/106 87/129/86 86/131/88 83/127/105
+f 75/141/107 87/129/86 81/128/106
+f 82/142/108 88/130/87 87/129/86 75/141/107
+f 74/139/98 88/130/87 82/142/108

BIN
models/ZWAARD.png