Saving project that displays an icosphere w/ 240 faces
This commit is contained in:
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
.vs**
|
||||
x64**
|
||||
**.log
|
||||
**.recipe
|
||||
**.ilk
|
||||
**.log
|
||||
**FileListAbsolute.txt
|
||||
**.obj
|
||||
!Icosphere.obj
|
||||
**.idb
|
||||
**.pdb
|
||||
**.exe
|
||||
270
Icosphere.obj
Normal file
270
Icosphere.obj
Normal file
@@ -0,0 +1,270 @@
|
||||
# Blender 4.5.1 LTS
|
||||
# www.blender.org
|
||||
mtllib Iconsphere.mtl
|
||||
o Icosphere
|
||||
v 0.000000 -1.000000 0.000000
|
||||
v 0.723607 -0.447220 0.525725
|
||||
v -0.276388 -0.447220 0.850649
|
||||
v -0.894426 -0.447216 0.000000
|
||||
v -0.276388 -0.447220 -0.850649
|
||||
v 0.723607 -0.447220 -0.525725
|
||||
v 0.276388 0.447220 0.850649
|
||||
v -0.723607 0.447220 0.525725
|
||||
v -0.723607 0.447220 -0.525725
|
||||
v 0.276388 0.447220 -0.850649
|
||||
v 0.894426 0.447216 0.000000
|
||||
v 0.000000 1.000000 0.000000
|
||||
v -0.162456 -0.850654 0.499995
|
||||
v 0.425323 -0.850654 0.309011
|
||||
v 0.262869 -0.525738 0.809012
|
||||
v 0.850648 -0.525736 0.000000
|
||||
v 0.425323 -0.850654 -0.309011
|
||||
v -0.525730 -0.850652 0.000000
|
||||
v -0.688189 -0.525736 0.499997
|
||||
v -0.162456 -0.850654 -0.499995
|
||||
v -0.688189 -0.525736 -0.499997
|
||||
v 0.262869 -0.525738 -0.809012
|
||||
v 0.951058 0.000000 0.309013
|
||||
v 0.951058 0.000000 -0.309013
|
||||
v 0.000000 0.000000 1.000000
|
||||
v 0.587786 0.000000 0.809017
|
||||
v -0.951058 0.000000 0.309013
|
||||
v -0.587786 0.000000 0.809017
|
||||
v -0.587786 0.000000 -0.809017
|
||||
v -0.951058 0.000000 -0.309013
|
||||
v 0.587786 0.000000 -0.809017
|
||||
v 0.000000 0.000000 -1.000000
|
||||
v 0.688189 0.525736 0.499997
|
||||
v -0.262869 0.525738 0.809012
|
||||
v -0.850648 0.525736 0.000000
|
||||
v -0.262869 0.525738 -0.809012
|
||||
v 0.688189 0.525736 -0.499997
|
||||
v 0.162456 0.850654 0.499995
|
||||
v 0.525730 0.850652 0.000000
|
||||
v -0.425323 0.850654 0.309011
|
||||
v -0.425323 0.850654 -0.309011
|
||||
v 0.162456 0.850654 -0.499995
|
||||
vn 0.1024 -0.9435 0.3151
|
||||
vn 0.7002 -0.6617 0.2680
|
||||
vn -0.2680 -0.9435 0.1947
|
||||
vn -0.2680 -0.9435 -0.1947
|
||||
vn 0.1024 -0.9435 -0.3151
|
||||
vn 0.9050 -0.3304 0.2680
|
||||
vn 0.0247 -0.3304 0.9435
|
||||
vn -0.8897 -0.3304 0.3151
|
||||
vn -0.5746 -0.3304 -0.7488
|
||||
vn 0.5346 -0.3304 -0.7779
|
||||
vn 0.8026 -0.1256 0.5831
|
||||
vn -0.3066 -0.1256 0.9435
|
||||
vn -0.9921 -0.1256 -0.0000
|
||||
vn -0.3066 -0.1256 -0.9435
|
||||
vn 0.8026 -0.1256 -0.5831
|
||||
vn 0.4089 0.6617 0.6284
|
||||
vn -0.4713 0.6617 0.5831
|
||||
vn -0.7002 0.6617 -0.2680
|
||||
vn 0.0385 0.6617 -0.7488
|
||||
vn 0.7240 0.6617 -0.1947
|
||||
vn 0.2680 0.9435 -0.1947
|
||||
vn 0.4911 0.7947 -0.3568
|
||||
vn 0.4089 0.6617 -0.6284
|
||||
vn -0.1024 0.9435 -0.3151
|
||||
vn -0.1876 0.7947 -0.5773
|
||||
vn -0.4713 0.6617 -0.5831
|
||||
vn -0.3313 0.9435 -0.0000
|
||||
vn -0.6071 0.7947 -0.0000
|
||||
vn -0.7002 0.6617 0.2680
|
||||
vn -0.1024 0.9435 0.3151
|
||||
vn -0.1876 0.7947 0.5773
|
||||
vn 0.0385 0.6617 0.7488
|
||||
vn 0.2680 0.9435 0.1947
|
||||
vn 0.4911 0.7947 0.3568
|
||||
vn 0.7240 0.6617 0.1947
|
||||
vn 0.8897 0.3304 -0.3151
|
||||
vn 0.7947 0.1876 -0.5773
|
||||
vn 0.5746 0.3304 -0.7488
|
||||
vn -0.0247 0.3304 -0.9435
|
||||
vn -0.3035 0.1876 -0.9342
|
||||
vn -0.5346 0.3304 -0.7779
|
||||
vn -0.9050 0.3304 -0.2680
|
||||
vn -0.9822 0.1876 -0.0000
|
||||
vn -0.9050 0.3304 0.2680
|
||||
vn -0.5346 0.3304 0.7779
|
||||
vn -0.3035 0.1876 0.9342
|
||||
vn -0.0247 0.3304 0.9435
|
||||
vn 0.5746 0.3304 0.7488
|
||||
vn 0.7947 0.1876 0.5773
|
||||
vn 0.8897 0.3304 0.3151
|
||||
vn 0.3066 0.1256 -0.9435
|
||||
vn 0.3035 -0.1876 -0.9342
|
||||
vn 0.0247 -0.3304 -0.9435
|
||||
vn -0.8026 0.1256 -0.5831
|
||||
vn -0.7947 -0.1876 -0.5773
|
||||
vn -0.8897 -0.3304 -0.3151
|
||||
vn -0.8026 0.1256 0.5831
|
||||
vn -0.7947 -0.1876 0.5773
|
||||
vn -0.5746 -0.3304 0.7488
|
||||
vn 0.3066 0.1256 0.9435
|
||||
vn 0.3035 -0.1876 0.9342
|
||||
vn 0.5346 -0.3304 0.7779
|
||||
vn 0.9921 0.1256 -0.0000
|
||||
vn 0.9822 -0.1876 -0.0000
|
||||
vn 0.9050 -0.3304 -0.2680
|
||||
vn 0.4713 -0.6617 -0.5831
|
||||
vn 0.1876 -0.7947 -0.5773
|
||||
vn -0.0385 -0.6617 -0.7488
|
||||
vn -0.4089 -0.6617 -0.6284
|
||||
vn -0.4911 -0.7947 -0.3568
|
||||
vn -0.7240 -0.6617 -0.1947
|
||||
vn -0.7240 -0.6617 0.1947
|
||||
vn -0.4911 -0.7947 0.3568
|
||||
vn -0.4089 -0.6617 0.6284
|
||||
vn 0.7002 -0.6617 -0.2680
|
||||
vn 0.6071 -0.7947 -0.0000
|
||||
vn 0.3313 -0.9435 -0.0000
|
||||
vn -0.0385 -0.6617 0.7488
|
||||
vn 0.1876 -0.7947 0.5773
|
||||
vn 0.4713 -0.6617 0.5831
|
||||
vt 0.181819 0.000000
|
||||
vt 0.227273 0.078731
|
||||
vt 0.136365 0.078731
|
||||
vt 0.272728 0.157461
|
||||
vt 0.318182 0.078731
|
||||
vt 0.363637 0.157461
|
||||
vt 0.909091 0.000000
|
||||
vt 0.954545 0.078731
|
||||
vt 0.863636 0.078731
|
||||
vt 0.727273 0.000000
|
||||
vt 0.772727 0.078731
|
||||
vt 0.681818 0.078731
|
||||
vt 0.545455 0.000000
|
||||
vt 0.590909 0.078731
|
||||
vt 0.500000 0.078731
|
||||
vt 0.318182 0.236191
|
||||
vt 0.090910 0.157461
|
||||
vt 0.181819 0.157461
|
||||
vt 0.136365 0.236191
|
||||
vt 0.818182 0.157461
|
||||
vt 0.909091 0.157461
|
||||
vt 0.863636 0.236191
|
||||
vt 0.636364 0.157461
|
||||
vt 0.727273 0.157461
|
||||
vt 0.681818 0.236191
|
||||
vt 0.454546 0.157461
|
||||
vt 0.545455 0.157461
|
||||
vt 0.500000 0.236191
|
||||
vt 0.227273 0.236191
|
||||
vt 0.045455 0.236191
|
||||
vt 0.772727 0.236191
|
||||
vt 0.590909 0.236191
|
||||
vt 0.409092 0.236191
|
||||
vt 0.181819 0.314921
|
||||
vt 0.272728 0.314921
|
||||
vt 0.227273 0.393651
|
||||
vt 0.000000 0.314921
|
||||
vt 0.090910 0.314921
|
||||
vt 0.045455 0.393651
|
||||
vt 0.727273 0.314921
|
||||
vt 0.818182 0.314921
|
||||
vt 0.772727 0.393651
|
||||
vt 0.545455 0.314921
|
||||
vt 0.636364 0.314921
|
||||
vt 0.590909 0.393651
|
||||
vt 0.363637 0.314921
|
||||
vt 0.454546 0.314921
|
||||
vt 0.409092 0.393651
|
||||
vt 0.500000 0.393651
|
||||
vt 0.454546 0.472382
|
||||
vt 0.681818 0.393651
|
||||
vt 0.636364 0.472382
|
||||
vt 0.863636 0.393651
|
||||
vt 0.818182 0.472382
|
||||
vt 0.909091 0.314921
|
||||
vt 0.136365 0.393651
|
||||
vt 0.090910 0.472382
|
||||
vt 0.318182 0.393651
|
||||
vt 0.272728 0.472382
|
||||
vt 0.954545 0.236191
|
||||
vt 1.000000 0.157461
|
||||
vt 0.409092 0.078731
|
||||
vt 0.363637 0.000000
|
||||
s 0
|
||||
f 1/1/1 14/2/1 13/3/1
|
||||
f 2/4/2 14/5/2 16/6/2
|
||||
f 1/7/3 13/8/3 18/9/3
|
||||
f 1/10/4 18/11/4 20/12/4
|
||||
f 1/13/5 20/14/5 17/15/5
|
||||
f 2/4/6 16/6/6 23/16/6
|
||||
f 3/17/7 15/18/7 25/19/7
|
||||
f 4/20/8 19/21/8 27/22/8
|
||||
f 5/23/9 21/24/9 29/25/9
|
||||
f 6/26/10 22/27/10 31/28/10
|
||||
f 2/4/11 23/16/11 26/29/11
|
||||
f 3/17/12 25/19/12 28/30/12
|
||||
f 4/20/13 27/22/13 30/31/13
|
||||
f 5/23/14 29/25/14 32/32/14
|
||||
f 6/26/15 31/28/15 24/33/15
|
||||
f 7/34/16 33/35/16 38/36/16
|
||||
f 8/37/17 34/38/17 40/39/17
|
||||
f 9/40/18 35/41/18 41/42/18
|
||||
f 10/43/19 36/44/19 42/45/19
|
||||
f 11/46/20 37/47/20 39/48/20
|
||||
f 39/48/21 42/49/21 12/50/21
|
||||
f 39/48/22 37/47/22 42/49/22
|
||||
f 37/47/23 10/43/23 42/49/23
|
||||
f 42/45/24 41/51/24 12/52/24
|
||||
f 42/45/25 36/44/25 41/51/25
|
||||
f 36/44/26 9/40/26 41/51/26
|
||||
f 41/42/27 40/53/27 12/54/27
|
||||
f 41/42/28 35/41/28 40/53/28
|
||||
f 35/41/29 8/55/29 40/53/29
|
||||
f 40/39/30 38/56/30 12/57/30
|
||||
f 40/39/31 34/38/31 38/56/31
|
||||
f 34/38/32 7/34/32 38/56/32
|
||||
f 38/36/33 39/58/33 12/59/33
|
||||
f 38/36/34 33/35/34 39/58/34
|
||||
f 33/35/35 11/46/35 39/58/35
|
||||
f 24/33/36 37/47/36 11/46/36
|
||||
f 24/33/37 31/28/37 37/47/37
|
||||
f 31/28/38 10/43/38 37/47/38
|
||||
f 32/32/39 36/44/39 10/43/39
|
||||
f 32/32/40 29/25/40 36/44/40
|
||||
f 29/25/41 9/40/41 36/44/41
|
||||
f 30/31/42 35/41/42 9/40/42
|
||||
f 30/31/43 27/22/43 35/41/43
|
||||
f 27/22/44 8/55/44 35/41/44
|
||||
f 28/30/45 34/38/45 8/37/45
|
||||
f 28/30/46 25/19/46 34/38/46
|
||||
f 25/19/47 7/34/47 34/38/47
|
||||
f 26/29/48 33/35/48 7/34/48
|
||||
f 26/29/49 23/16/49 33/35/49
|
||||
f 23/16/50 11/46/50 33/35/50
|
||||
f 31/28/51 32/32/51 10/43/51
|
||||
f 31/28/52 22/27/52 32/32/52
|
||||
f 22/27/53 5/23/53 32/32/53
|
||||
f 29/25/54 30/31/54 9/40/54
|
||||
f 29/25/55 21/24/55 30/31/55
|
||||
f 21/24/56 4/20/56 30/31/56
|
||||
f 27/22/57 28/60/57 8/55/57
|
||||
f 27/22/58 19/21/58 28/60/58
|
||||
f 19/21/59 3/61/59 28/60/59
|
||||
f 25/19/60 26/29/60 7/34/60
|
||||
f 25/19/61 15/18/61 26/29/61
|
||||
f 15/18/62 2/4/62 26/29/62
|
||||
f 23/16/63 24/33/63 11/46/63
|
||||
f 23/16/64 16/6/64 24/33/64
|
||||
f 16/6/65 6/26/65 24/33/65
|
||||
f 17/15/66 22/27/66 6/26/66
|
||||
f 17/15/67 20/14/67 22/27/67
|
||||
f 20/14/68 5/23/68 22/27/68
|
||||
f 20/12/69 21/24/69 5/23/69
|
||||
f 20/12/70 18/11/70 21/24/70
|
||||
f 18/11/71 4/20/71 21/24/71
|
||||
f 18/9/72 19/21/72 4/20/72
|
||||
f 18/9/73 13/8/73 19/21/73
|
||||
f 13/8/74 3/61/74 19/21/74
|
||||
f 16/6/75 17/62/75 6/26/75
|
||||
f 16/6/76 14/5/76 17/62/76
|
||||
f 14/5/77 1/63/77 17/62/77
|
||||
f 13/3/78 15/18/78 3/17/78
|
||||
f 13/3/79 14/2/79 15/18/79
|
||||
f 14/2/80 2/4/80 15/18/80
|
||||
28
LivePlotter.sln
Normal file
28
LivePlotter.sln
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.12.35707.178 d17.12
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LivePlotter", "LivePlotter.vcxproj", "{74C0F84F-216F-4A12-9F91-6AFC83CF9257}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Debug|x64.Build.0 = Debug|x64
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Debug|x86.Build.0 = Debug|Win32
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Release|x64.ActiveCfg = Release|x64
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Release|x64.Build.0 = Release|x64
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Release|x86.ActiveCfg = Release|Win32
|
||||
{74C0F84F-216F-4A12-9F91-6AFC83CF9257}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
142
LivePlotter.vcxproj
Normal file
142
LivePlotter.vcxproj
Normal file
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>17.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{74c0f84f-216f-4a12-9f91-6afc83cf9257}</ProjectGuid>
|
||||
<RootNamespace>LivePlotter</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LibraryPath>C:\Users\sethh\Documents\repos\Common\lib\GLFW\Debug\;$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64)</LibraryPath>
|
||||
<IncludePath>C:\Users\sethh\Documents\repos\Common\inc;$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>glfw3.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="glad.c" />
|
||||
<ClCompile Include="main.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
25
LivePlotter.vcxproj.filters
Normal file
25
LivePlotter.vcxproj.filters
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="glad.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="main.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
6
LivePlotter.vcxproj.user
Normal file
6
LivePlotter.vcxproj.user
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
244
main.cpp
Normal file
244
main.cpp
Normal file
@@ -0,0 +1,244 @@
|
||||
#include <glad/glad.h>
|
||||
#include <GLFW/glfw3.h>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <stdio.h>
|
||||
#include <optional>
|
||||
|
||||
using namespace std;
|
||||
|
||||
const char* vertexShaderSource = "#version 330 core\n"
|
||||
"layout (location = 0) in vec3 aPos;\n"
|
||||
"void main()\n"
|
||||
"{\n"
|
||||
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
|
||||
"}\0";
|
||||
|
||||
const char* fragmentShaderSource = "#version 330 core\n"
|
||||
"out vec4 FragColor;\n"
|
||||
"void main()\n"
|
||||
"{\n"
|
||||
" FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);"
|
||||
"} ";
|
||||
|
||||
static GLFWwindow* window;
|
||||
|
||||
template<class T>
|
||||
struct SimpleArray {
|
||||
T* data;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
|
||||
{
|
||||
glViewport(0, 0, width, height);
|
||||
}
|
||||
|
||||
void processInput(GLFWwindow* window)
|
||||
{
|
||||
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
|
||||
glfwSetWindowShouldClose(window, true);
|
||||
}
|
||||
|
||||
bool glfw_window_setup() {
|
||||
glfwInit();
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
|
||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
||||
window = glfwCreateWindow(800, 800, "LearnOpenGL", NULL, NULL);
|
||||
if (window == NULL) {
|
||||
std::cout << "Failed to create GLFW windoww" << std::endl;
|
||||
glfwTerminate();
|
||||
return false;
|
||||
}
|
||||
glfwMakeContextCurrent(window);
|
||||
return true;
|
||||
}
|
||||
|
||||
enum class ParserState {
|
||||
PREFIX,
|
||||
VERTEX,
|
||||
FACE,
|
||||
FACE_SKIP,
|
||||
};
|
||||
optional<pair<SimpleArray<float>, SimpleArray<unsigned int>>> load_iconsphere() {
|
||||
std::FILE* f = NULL;
|
||||
|
||||
if (fopen_s(&f, "Iconsphere.obj", "r")) {
|
||||
return {};
|
||||
}
|
||||
|
||||
// MEMORY LEAK!!! 84 verts currently
|
||||
float* vert_data = (float*)malloc(sizeof(float) * 128);
|
||||
size_t vert_data_size = 0;
|
||||
|
||||
// MEMORY LEAK!!! (I think)
|
||||
unsigned int* indices_data = (unsigned int*)malloc(sizeof(int) * 256);
|
||||
size_t indices_data_size = 0;
|
||||
|
||||
ParserState state = ParserState::PREFIX;
|
||||
|
||||
char ln[128];
|
||||
int len = 0;
|
||||
int start = 0;
|
||||
while ((ln[len] = std::fgetc(f)) != EOF) {
|
||||
switch (state) {
|
||||
case ParserState::PREFIX:
|
||||
if (len > 0 && ln[len - 1] == 'v' && ln[len] == ' ') {
|
||||
state = ParserState::VERTEX;
|
||||
start = len + 1;
|
||||
}
|
||||
else if (len > 0 && ln[len - 1] == 'f' && ln[len] == ' ') {
|
||||
state = ParserState::FACE;
|
||||
start = len + 1;
|
||||
|
||||
}
|
||||
break;
|
||||
case ParserState::VERTEX:
|
||||
if (ln[len] == ' ' || ln[len] == '\n') {
|
||||
vert_data[vert_data_size] = atof(&ln[start]);
|
||||
vert_data_size++;
|
||||
start = len + 1;
|
||||
}
|
||||
case ParserState::FACE:
|
||||
if (ln[len] == '/') {
|
||||
state = ParserState::FACE_SKIP;
|
||||
indices_data[indices_data_size] = atoi(&ln[start]) - 1;
|
||||
indices_data_size++;
|
||||
}
|
||||
break;
|
||||
case ParserState::FACE_SKIP:
|
||||
if (ln[len] == ' ') {
|
||||
state = ParserState::FACE;
|
||||
start = len + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (ln[len] == '\n') {
|
||||
len = 0;
|
||||
state = ParserState::PREFIX;
|
||||
}
|
||||
len++;
|
||||
}
|
||||
|
||||
SimpleArray<float> verts = { vert_data, vert_data_size };
|
||||
SimpleArray<unsigned int> indices = { indices_data, indices_data_size };
|
||||
|
||||
return make_pair(verts, indices);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
if (!glfw_window_setup()) return -1;
|
||||
|
||||
auto data = load_iconsphere();
|
||||
if (!data) {
|
||||
std::cout << "ERROR loading the iconosphere obj file failed" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
auto verts = data.value().first;
|
||||
auto indices = data.value().second;
|
||||
|
||||
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
|
||||
{
|
||||
std::cout << "Failed to initialize GLAD" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
glViewport(0, 0, 800, 800);
|
||||
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
|
||||
|
||||
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
|
||||
glClear(GL_COLOR_BUFFER_BIT); // Write to back buffer
|
||||
|
||||
glfwSwapBuffers(window); // front buffer is now back
|
||||
glClear(GL_COLOR_BUFFER_BIT); // Write to back buffer again (former front buf)
|
||||
|
||||
/*float vertices[] = {
|
||||
-0.5f, -0.5f, 0.0f,
|
||||
0.5f, -0.5f, 0.0f,
|
||||
0.0f, 0.5f, 0.0f
|
||||
};*/
|
||||
|
||||
unsigned int VAO;
|
||||
glGenVertexArrays(1, &VAO);
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
unsigned int VBO;
|
||||
glGenBuffers(1, &VBO);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||
glBufferData(GL_ARRAY_BUFFER, verts.size * sizeof(float), verts.data, GL_STATIC_DRAW);
|
||||
|
||||
unsigned int EBO;
|
||||
glGenBuffers(1, &EBO);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size * sizeof(unsigned int), indices.data, GL_STATIC_DRAW);
|
||||
|
||||
// Vertex shader
|
||||
unsigned int vertexShader;
|
||||
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||
glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
|
||||
glCompileShader(vertexShader);
|
||||
|
||||
// Verify vertex shader compilation
|
||||
int success;
|
||||
char infoLog[512];
|
||||
glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success);
|
||||
if (!success)
|
||||
{
|
||||
glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);
|
||||
std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl;
|
||||
}
|
||||
|
||||
// Fragment shader
|
||||
unsigned int fragmentShader;
|
||||
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||
glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
|
||||
glCompileShader(fragmentShader);
|
||||
|
||||
// Verify fragment shader compilation
|
||||
glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &success);
|
||||
if (!success)
|
||||
{
|
||||
glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);
|
||||
std::cout << "ERROR::SHADER::FRAGMENT::COMPILATION_FAILED\n" << infoLog << std::endl;
|
||||
}
|
||||
|
||||
// Link shader programs together
|
||||
unsigned int shaderProgram;
|
||||
shaderProgram = glCreateProgram();
|
||||
glAttachShader(shaderProgram, vertexShader);
|
||||
glAttachShader(shaderProgram, fragmentShader);
|
||||
glLinkProgram(shaderProgram);
|
||||
glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);
|
||||
if (!success) {
|
||||
glGetProgramInfoLog(shaderProgram, 512, NULL, infoLog);
|
||||
std::cout << "ERROR::SHADER::PROGRAM::LINKING_FAILED\n" << infoLog << std::endl;
|
||||
}
|
||||
glUseProgram(shaderProgram); // Set shaderProgram as active shader
|
||||
|
||||
// Delete shader program parts (like deleting obj files).
|
||||
// We want this memory back
|
||||
glDeleteShader(vertexShader);
|
||||
glDeleteShader(fragmentShader);
|
||||
|
||||
// Tell opengl which attribute our data is for (i.e. location)
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
|
||||
while (!glfwWindowShouldClose(window))
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
glDrawElements(GL_TRIANGLES, indices.size, GL_UNSIGNED_INT, 0);
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
processInput(window);
|
||||
glfwSwapBuffers(window);
|
||||
glfwPollEvents();
|
||||
}
|
||||
glfwTerminate();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user