Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a38a6d3c5f | ||
|
|
876ec56780 | ||
|
|
5df4a1d8d0 | ||
|
|
d7f74212f0 | ||
|
|
3a4d11d46d | ||
|
|
e5664e207d | ||
|
|
cda6e2c822 | ||
|
|
3d97ade42e | ||
|
|
1693c74a6a | ||
|
|
11f07b154b | ||
|
|
049fb28ffc | ||
|
|
9769b88156 | ||
|
|
d032021cde | ||
|
|
77ac841b8b |
@@ -48,7 +48,6 @@ artifacts/
|
|||||||
*_i.h
|
*_i.h
|
||||||
*.ilk
|
*.ilk
|
||||||
*.meta
|
*.meta
|
||||||
*.obj
|
|
||||||
*.pch
|
*.pch
|
||||||
*.pdb
|
*.pdb
|
||||||
*.pgc
|
*.pgc
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "Controller.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Controller::Controller()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Controller::~Controller()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class Controller
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Controller();
|
||||||
|
~Controller();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 14
|
||||||
|
VisualStudioVersion = 14.0.24720.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CrystalPoint", "CrystalPoint.vcxproj", "{4986BEC0-4362-46E4-A18D-65587FA97967}"
|
||||||
|
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
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{4986BEC0-4362-46E4-A18D-65587FA97967}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
@@ -0,0 +1,198 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="14.0" 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">
|
||||||
|
<ProjectGuid>{4986BEC0-4362-46E4-A18D-65587FA97967}</ProjectGuid>
|
||||||
|
<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">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v140</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|Win32'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<LinkIncremental>true</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>freeglut/include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>freeglut/lib</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>freeglut/include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>freeglut/lib</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>freeglut/include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>freeglut/lib</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>freeglut/include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Console</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<AdditionalLibraryDirectories>freeglut/lib</AdditionalLibraryDirectories>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<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="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" />
|
||||||
|
<ClInclude Include="Weapon.h" />
|
||||||
|
<ClInclude Include="WorldModel.h" />
|
||||||
|
<ClInclude Include="WorldState.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<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="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" />
|
||||||
|
<ClCompile Include="Weapon.cpp" />
|
||||||
|
<ClCompile Include="WorldModel.cpp" />
|
||||||
|
<ClCompile Include="WorldState.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<?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;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;hm;inl;inc;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>
|
||||||
|
<Filter Include="Source Files\State">
|
||||||
|
<UniqueIdentifier>{6c99658e-2c17-469b-a3d1-2c4d3d61d440}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Source Files\Control">
|
||||||
|
<UniqueIdentifier>{e444364a-17f6-4464-a98c-6bd34d3e6263}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Source Files\Model">
|
||||||
|
<UniqueIdentifier>{842778c9-ff0f-4a6d-9c86-0a178ad40fcc}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<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="Header.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="StateHandler.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="State.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="MenuState.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="LoadingState.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Keyboard.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Mouse.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Controller.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="WorldModel.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="WorldState.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Enemy.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Player.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Weapon.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<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="State.cpp">
|
||||||
|
<Filter>Source Files\State</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="MenuState.cpp">
|
||||||
|
<Filter>Source Files\State</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Keyboard.cpp">
|
||||||
|
<Filter>Source Files\Control</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Mouse.cpp">
|
||||||
|
<Filter>Source Files\Control</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Controller.cpp">
|
||||||
|
<Filter>Source Files\Control</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="LoadingState.cpp">
|
||||||
|
<Filter>Source Files\State</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Model.cpp">
|
||||||
|
<Filter>Source Files\Model</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="WorldModel.cpp">
|
||||||
|
<Filter>Source Files\Model</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="WorldState.cpp">
|
||||||
|
<Filter>Source Files\State</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Enemy.cpp">
|
||||||
|
<Filter>Source Files\Model\Enemy</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Player.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="Weapon.cpp">
|
||||||
|
<Filter>Source Files\Model</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<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>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class Enemy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Enemy();
|
||||||
|
~Enemy();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <GL/freeglut.h>
|
||||||
|
|
||||||
|
#define _USE_MATH_DEFINES
|
||||||
|
#include <cmath>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <list>
|
||||||
|
#include <fstream>
|
||||||
|
#include <iostream>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
#include <gl/GL.h>
|
||||||
|
|
||||||
|
#include "Vector.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "InitState.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
InitState::InitState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
InitState::~InitState()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
class InitState : public State
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
InitState();
|
||||||
|
~InitState();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "Keyboard.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Keyboard::Keyboard()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Keyboard::~Keyboard()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class Keyboard
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Keyboard();
|
||||||
|
~Keyboard();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "LoadingState.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
LoadingState::LoadingState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LoadingState::~LoadingState()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
class LoadingState : public State
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LoadingState();
|
||||||
|
~LoadingState();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,187 @@
|
|||||||
|
#include "Header.h"
|
||||||
|
#include "Model.h"
|
||||||
|
#include "Player.h"
|
||||||
|
#include "StateHandler.h"
|
||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
//Prototypes
|
||||||
|
void bindFuncOpenGL(void);
|
||||||
|
void configureOpenGL(void);
|
||||||
|
void loadModels(void);
|
||||||
|
|
||||||
|
static int Width;
|
||||||
|
static int Height;
|
||||||
|
|
||||||
|
float lastFrameTime = 0;
|
||||||
|
bool keys[255];
|
||||||
|
|
||||||
|
//vector<Model*> models;
|
||||||
|
//int currentModel = 0;
|
||||||
|
|
||||||
|
|
||||||
|
StateHandler *statehandler;
|
||||||
|
|
||||||
|
void display()
|
||||||
|
{
|
||||||
|
glClearColor(0.6f, 0.6f, 1, 1);
|
||||||
|
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
gluPerspective(60.0f, (float)Width / Height, 0.5, 300);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
glPushMatrix();
|
||||||
|
glScalef(0.5f, 0.5f, 0.5f);
|
||||||
|
glRotatef(180, 1, 0, 0);
|
||||||
|
glRotatef(45, 0, 0, 1);
|
||||||
|
glRotatef(90, 0, 1, 0);
|
||||||
|
models[currentModel]->draw();
|
||||||
|
glPopMatrix();*/
|
||||||
|
|
||||||
|
//Draw here
|
||||||
|
|
||||||
|
statehandler->GetCurrentState()->Display();
|
||||||
|
|
||||||
|
//player->Display();
|
||||||
|
|
||||||
|
//glutSolidCube(10.0);
|
||||||
|
|
||||||
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
glutSwapBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void idle()
|
||||||
|
{
|
||||||
|
float frameTime = glutGet(GLUT_ELAPSED_TIME) / 1000.0f;
|
||||||
|
float deltaTime = frameTime - lastFrameTime;
|
||||||
|
lastFrameTime = frameTime;
|
||||||
|
|
||||||
|
statehandler->GetCurrentState()->Keyboard(keys,deltaTime);
|
||||||
|
statehandler->GetCurrentState()->Idle(deltaTime);
|
||||||
|
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
void mousemotion(int x, int y)
|
||||||
|
{
|
||||||
|
int dx = x - Width / 2;
|
||||||
|
int dy = y - Height / 2;
|
||||||
|
if ((dx != 0 || dy != 0) && abs(dx) < 400 && abs(dy) < 400)
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
exit(0);
|
||||||
|
//std::cout << key << std::endl;
|
||||||
|
keys[key] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void keyboardup(unsigned char key, int, int)
|
||||||
|
{
|
||||||
|
keys[key] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
//Init GLUT
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
|
||||||
|
//Configre OpenGL and FreeGLut
|
||||||
|
configureOpenGL();
|
||||||
|
|
||||||
|
//Bind functions
|
||||||
|
bindFuncOpenGL();
|
||||||
|
|
||||||
|
//Init models
|
||||||
|
loadModels();
|
||||||
|
|
||||||
|
//Start the main loop
|
||||||
|
glutMainLoop();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void bindFuncOpenGL()
|
||||||
|
{
|
||||||
|
glutDisplayFunc(display);
|
||||||
|
glutIdleFunc(idle);
|
||||||
|
glutReshapeFunc([](int w, int h) { Width = w; Height= h; glViewport(0, 0, w, h); });
|
||||||
|
|
||||||
|
//Keyboard
|
||||||
|
glutKeyboardFunc(keyboard);
|
||||||
|
glutKeyboardUpFunc(keyboardup);
|
||||||
|
|
||||||
|
//Mouse
|
||||||
|
glutMouseFunc(mouse);
|
||||||
|
glutPassiveMotionFunc(mousemotion);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void configureOpenGL()
|
||||||
|
{
|
||||||
|
//Init window and glut display mode
|
||||||
|
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
|
||||||
|
glutInitWindowSize(800, 600);
|
||||||
|
glutCreateWindow("Crystal Point");
|
||||||
|
glutFullScreen();
|
||||||
|
//glutPositionWindow((glutGet(GLUT_SCREEN_WIDTH) / 2) - (glutGet(GLUT_WINDOW_WIDTH) / 2), (glutGet(GLUT_SCREEN_HEIGHT) / 2) - (glutGet(GLUT_WINDOW_HEIGHT) / 2));
|
||||||
|
|
||||||
|
//Depth testing
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
//Alpha blending
|
||||||
|
glEnable(GL_BLEND);
|
||||||
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
|
//Alpha testing
|
||||||
|
glEnable(GL_ALPHA_TEST);
|
||||||
|
glAlphaFunc(GL_GREATER, 0.01f);
|
||||||
|
|
||||||
|
//Lighting
|
||||||
|
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
|
||||||
|
GLfloat mat_shininess[] = { 20.0 };
|
||||||
|
GLfloat light_position[] = { 30.0, 30.0, 30.0, 1.0 };
|
||||||
|
GLfloat light_diffuse[] = { 2.0, 2.0, 2.0, 1.0 };
|
||||||
|
GLfloat light_ambient[] = { 2.0, 2.0, 2.0, 1.0 };
|
||||||
|
glClearColor(0.0, 0.0, 0.0, 0.0);
|
||||||
|
glShadeModel(GL_SMOOTH);
|
||||||
|
|
||||||
|
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
|
||||||
|
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
|
||||||
|
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
|
||||||
|
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
|
||||||
|
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
|
||||||
|
|
||||||
|
glEnable(GL_LIGHTING);
|
||||||
|
glEnable(GL_LIGHT0);
|
||||||
|
|
||||||
|
//Cursor
|
||||||
|
glutWarpPointer(Width / 2, Height / 2);
|
||||||
|
glutSetCursor(GLUT_CURSOR_CROSSHAIR);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loadModels()
|
||||||
|
{
|
||||||
|
statehandler = new StateHandler();
|
||||||
|
|
||||||
|
statehandler->Navigate(statehandler->WORLD_STATE);
|
||||||
|
//models.push_back(new Model("models/weapons/ZwaardMetTextures/TextureZwaard.obj"));
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "MenuState.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
MenuState::MenuState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MenuState::~MenuState()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
class MenuState : public State
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MenuState();
|
||||||
|
~MenuState();
|
||||||
|
};
|
||||||
@@ -0,0 +1,332 @@
|
|||||||
|
#include "Model.h"
|
||||||
|
|
||||||
|
#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;
|
||||||
|
if (dirName.rfind("/") != std::string::npos)
|
||||||
|
dirName = dirName.substr(0, dirName.rfind("/"));
|
||||||
|
if (dirName.rfind("\\") != std::string::npos)
|
||||||
|
dirName = dirName.substr(0, dirName.rfind("\\"));
|
||||||
|
if (fileName == dirName)
|
||||||
|
dirName = "";
|
||||||
|
|
||||||
|
|
||||||
|
std::ifstream pFile(fileName.c_str());
|
||||||
|
|
||||||
|
if (!pFile.is_open())
|
||||||
|
{
|
||||||
|
std::cout << "Could not open file " << fileName << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ObjGroup* currentGroup = new ObjGroup();
|
||||||
|
currentGroup->materialIndex = -1;
|
||||||
|
|
||||||
|
|
||||||
|
while (!pFile.eof())
|
||||||
|
{
|
||||||
|
std::string line;
|
||||||
|
std::getline(pFile, line);
|
||||||
|
|
||||||
|
line = replace(line, "\t", " ");
|
||||||
|
while (line.find(" ") != std::string::npos)
|
||||||
|
line = replace(line, " ", " ");
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[0] == ' ')
|
||||||
|
line = line.substr(1);
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[line.length() - 1] == ' ')
|
||||||
|
line = line.substr(0, line.length() - 1);
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[0] == '#')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
std::vector<std::string> params = split(line, " ");
|
||||||
|
params[0] = toLower(params[0]);
|
||||||
|
|
||||||
|
if (params[0] == "v")
|
||||||
|
vertices.push_back(Vec3f((float)atof(params[1].c_str()), (float)atof(params[2].c_str()), (float)atof(params[3].c_str())));
|
||||||
|
else if (params[0] == "vn")
|
||||||
|
normals.push_back(Vec3f((float)atof(params[1].c_str()), (float)atof(params[2].c_str()), (float)atof(params[3].c_str())));
|
||||||
|
else if (params[0] == "vt")
|
||||||
|
texcoords.push_back(Vec2f((float)atof(params[1].c_str()), (float)atof(params[2].c_str())));
|
||||||
|
else if (params[0] == "f")
|
||||||
|
{
|
||||||
|
for (size_t ii = 4; ii <= params.size(); ii++)
|
||||||
|
{
|
||||||
|
Face face;
|
||||||
|
|
||||||
|
for (size_t i = ii - 3; i < ii; i++) //magische forlus om van quads triangles te maken ;)
|
||||||
|
{
|
||||||
|
Vertex vertex;
|
||||||
|
std::vector<std::string> indices = split(params[i == (ii - 3) ? 1 : i], "/");
|
||||||
|
if (indices.size() >= 1) //er is een positie
|
||||||
|
vertex.position = atoi(indices[0].c_str()) - 1;
|
||||||
|
if (indices.size() == 2) //alleen texture
|
||||||
|
vertex.texcoord = atoi(indices[1].c_str()) - 1;
|
||||||
|
if (indices.size() == 3) //v/t/n of v//n
|
||||||
|
{
|
||||||
|
if (indices[1] != "")
|
||||||
|
vertex.texcoord = atoi(indices[1].c_str()) - 1;
|
||||||
|
vertex.normal = atoi(indices[2].c_str()) - 1;
|
||||||
|
}
|
||||||
|
face.vertices.push_back(vertex);
|
||||||
|
}
|
||||||
|
currentGroup->faces.push_back(face);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (params[0] == "s")
|
||||||
|
{//smoothing
|
||||||
|
}
|
||||||
|
else if (params[0] == "mtllib")
|
||||||
|
{
|
||||||
|
loadMaterialFile(dirName + "/" + params[1], dirName);
|
||||||
|
}
|
||||||
|
else if (params[0] == "usemtl")
|
||||||
|
{
|
||||||
|
if (currentGroup->faces.size() != 0)
|
||||||
|
groups.push_back(currentGroup);
|
||||||
|
currentGroup = new ObjGroup();
|
||||||
|
currentGroup->materialIndex = -1;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < materials.size(); i++)
|
||||||
|
{
|
||||||
|
MaterialInfo* info = materials[i];
|
||||||
|
if (info->name == params[1])
|
||||||
|
{
|
||||||
|
currentGroup->materialIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (currentGroup->materialIndex == -1)
|
||||||
|
std::cout << "Could not find material name " << params[1] << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
for (auto &g : groups)
|
||||||
|
{
|
||||||
|
if (materials[g->materialIndex]->hasTexture)
|
||||||
|
{
|
||||||
|
glEnable(GL_TEXTURE_2D);
|
||||||
|
materials[g->materialIndex]->texture->bind();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
float color[4] = { 1, 0, 0, 1 };
|
||||||
|
|
||||||
|
if (materials[g->materialIndex]->hasDiffuse)
|
||||||
|
{
|
||||||
|
memcpy(color, materials[g->materialIndex]->diffuseColor.v, 3 * sizeof(float));
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color);
|
||||||
|
}
|
||||||
|
else if (materials[g->materialIndex]->hasAmbient)
|
||||||
|
{
|
||||||
|
memcpy(color, materials[g->materialIndex]->ambientColor.v, 3 * sizeof(float));
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, color);
|
||||||
|
}
|
||||||
|
else if (materials[g->materialIndex]->hasSpecular)
|
||||||
|
{
|
||||||
|
memcpy(color, materials[g->materialIndex]->specularColor.v, 3 * sizeof(float));
|
||||||
|
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto &instance : instances)
|
||||||
|
{
|
||||||
|
|
||||||
|
glBegin(GL_TRIANGLES);
|
||||||
|
for (auto &f : g->faces)
|
||||||
|
{
|
||||||
|
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();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Model::loadMaterialFile(std::string fileName, std::string dirName)
|
||||||
|
{
|
||||||
|
std::ifstream pFile(fileName.c_str());
|
||||||
|
if (!pFile.is_open())
|
||||||
|
{
|
||||||
|
std::cout << "Could not open file " << fileName << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MaterialInfo* currentMaterial = NULL;
|
||||||
|
|
||||||
|
while (!pFile.eof())
|
||||||
|
{
|
||||||
|
std::string line;
|
||||||
|
std::getline(pFile, line);
|
||||||
|
|
||||||
|
line = replace(line, "\t", " ");
|
||||||
|
while (line.find(" ") != std::string::npos)
|
||||||
|
line = replace(line, " ", " ");
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[0] == ' ')
|
||||||
|
line = line.substr(1);
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[line.length() - 1] == ' ')
|
||||||
|
line = line.substr(0, line.length() - 1);
|
||||||
|
if (line == "")
|
||||||
|
continue;
|
||||||
|
if (line[0] == '#')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
std::vector<std::string> params = split(line, " ");
|
||||||
|
params[0] = toLower(params[0]);
|
||||||
|
|
||||||
|
if (params[0] == "newmtl")
|
||||||
|
{
|
||||||
|
if (currentMaterial != NULL)
|
||||||
|
{
|
||||||
|
materials.push_back(currentMaterial);
|
||||||
|
}
|
||||||
|
currentMaterial = new MaterialInfo();
|
||||||
|
currentMaterial->name = params[1];
|
||||||
|
}
|
||||||
|
else if (params[0] == "map_kd")
|
||||||
|
{
|
||||||
|
currentMaterial->hasTexture = true;
|
||||||
|
currentMaterial->texture = new Texture(dirName + "/" + params[1]);
|
||||||
|
}
|
||||||
|
else if (params[0] == "kd")
|
||||||
|
{
|
||||||
|
currentMaterial->hasDiffuse = true;
|
||||||
|
currentMaterial->diffuseColor = Vec3f(atof(params[1].c_str()), atof(params[2].c_str()), atof(params[3].c_str()));
|
||||||
|
}
|
||||||
|
else if (params[0] == "ka")
|
||||||
|
{
|
||||||
|
currentMaterial->hasAmbient = true;
|
||||||
|
currentMaterial->ambientColor = Vec3f(atof(params[1].c_str()), atof(params[2].c_str()), atof(params[3].c_str()));
|
||||||
|
}
|
||||||
|
else if (params[0] == "ks")
|
||||||
|
{
|
||||||
|
currentMaterial->hasSpecular = true;
|
||||||
|
currentMaterial->specularColor = Vec3f(atof(params[1].c_str()), atof(params[2].c_str()), atof(params[3].c_str()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
std::cout << "Didn't parse " << params[0] << " in material file" << std::endl;
|
||||||
|
}
|
||||||
|
if (currentMaterial != NULL)
|
||||||
|
materials.push_back(currentMaterial);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Model::MaterialInfo::MaterialInfo()
|
||||||
|
{
|
||||||
|
hasTexture = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Model::Texture::Texture(const std::string & fileName)
|
||||||
|
{
|
||||||
|
int width, height, bpp;
|
||||||
|
stbi_set_flip_vertically_on_load(true);
|
||||||
|
unsigned char* imgData = stbi_load(fileName.c_str(), &width, &height, &bpp, 4);
|
||||||
|
|
||||||
|
glGenTextures(1, &index);
|
||||||
|
glBindTexture(GL_TEXTURE_2D, index);
|
||||||
|
|
||||||
|
glTexImage2D(GL_TEXTURE_2D,
|
||||||
|
0, //level
|
||||||
|
GL_RGBA, //internal format
|
||||||
|
width, //width
|
||||||
|
height, //height
|
||||||
|
0, //border
|
||||||
|
GL_RGBA, //data format
|
||||||
|
GL_UNSIGNED_BYTE, //data type
|
||||||
|
imgData); //data
|
||||||
|
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
|
stbi_image_free(imgData);
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "ModelInstance.h"
|
||||||
|
|
||||||
|
class Model
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
class Vertex
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int position;
|
||||||
|
int normal;
|
||||||
|
int texcoord;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Face
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
list<Vertex> vertices;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Texture
|
||||||
|
{
|
||||||
|
GLuint index;
|
||||||
|
public:
|
||||||
|
Texture(const std::string &fileName);
|
||||||
|
void bind();
|
||||||
|
};
|
||||||
|
|
||||||
|
class MaterialInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MaterialInfo();
|
||||||
|
std::string name;
|
||||||
|
Texture* texture;
|
||||||
|
bool hasTexture;
|
||||||
|
|
||||||
|
bool hasDiffuse;
|
||||||
|
Vec3f diffuseColor;
|
||||||
|
bool hasAmbient;
|
||||||
|
Vec3f ambientColor;
|
||||||
|
bool hasSpecular;
|
||||||
|
Vec3f specularColor;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class ObjGroup
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::string name;
|
||||||
|
int materialIndex;
|
||||||
|
list<Face> faces;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<Vec3f> vertices;
|
||||||
|
std::vector<Vec3f> normals;
|
||||||
|
std::vector<Vec2f> texcoords;
|
||||||
|
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();
|
||||||
|
};
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "ModelHandler.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ModelHandler::ModelHandler()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ModelHandler::~ModelHandler()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#pragma once
|
||||||
|
class ModelHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ModelHandler();
|
||||||
|
~ModelHandler();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#include "ModelInstance.h"
|
||||||
|
|
||||||
|
ModelInstance::ModelInstance()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ModelInstance::~ModelInstance()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class ModelInstance
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
public:
|
||||||
|
ModelInstance();
|
||||||
|
~ModelInstance();
|
||||||
|
|
||||||
|
Vec3f translation;
|
||||||
|
Vec3f rotation;
|
||||||
|
Vec3f scale;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class Mouse
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Mouse();
|
||||||
|
~Mouse();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
#include "Player.h"
|
||||||
|
|
||||||
|
Player::Player()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Player::~Player()
|
||||||
|
{
|
||||||
|
if(right != nullptr)
|
||||||
|
delete right;
|
||||||
|
if(left != nullptr)
|
||||||
|
delete left;
|
||||||
|
/*if (player != nullptr)
|
||||||
|
delete player;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void Player::Display(void)
|
||||||
|
{
|
||||||
|
if (right != nullptr)
|
||||||
|
{
|
||||||
|
right->draw_weapon();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (left != nullptr)
|
||||||
|
{
|
||||||
|
left->draw_weapon();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*glRotatef(player->eyes.rotX, 1, 0, 0);
|
||||||
|
glRotatef(player->eyes.rotY, 0, 1, 0);
|
||||||
|
glTranslatef(player->eyes.posX, player->eyes.posY, player->eyes.posZ);*/
|
||||||
|
glRotatef(eyes.rotX, 1, 0, 0);
|
||||||
|
glRotatef(eyes.rotY, 0, 1, 0);
|
||||||
|
glTranslatef(eyes.posX, eyes.posY, eyes.posZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
Player & Player::GetInstance(void)
|
||||||
|
{
|
||||||
|
static Player instance;
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Player * Player::GetInstance(void)
|
||||||
|
//{
|
||||||
|
// if (player == nullptr)
|
||||||
|
// player = new Player();
|
||||||
|
// return player;
|
||||||
|
//}
|
||||||
|
|
||||||
|
void Player::PlayerMoveEyes(float angle, float fac, bool heigth)
|
||||||
|
{
|
||||||
|
//player movement
|
||||||
|
|
||||||
|
/*if (heigth)
|
||||||
|
player->eyes.posY += angle*fac;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->eyes.posX += (float)cos((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
player->eyes.posZ += (float)sin((player->eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
}*/
|
||||||
|
if (heigth)
|
||||||
|
eyes.posY += angle*fac;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eyes.posX += (float)cos((eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
eyes.posZ += (float)sin((eyes.rotY + angle) / 180 * M_PI) * fac;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Player::PlayerRotateEyes(int dx, int dy)
|
||||||
|
{
|
||||||
|
eyes.rotY += dx / 10.0f;
|
||||||
|
eyes.rotX += dy / 10.0f;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "Weapon.h"
|
||||||
|
|
||||||
|
class Player
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
~Player();
|
||||||
|
|
||||||
|
struct Eyes
|
||||||
|
{
|
||||||
|
float posX = 0;
|
||||||
|
float posY = 0;
|
||||||
|
float posZ = 0;
|
||||||
|
float rotX = 0;
|
||||||
|
float rotY = 0;
|
||||||
|
} eyes;
|
||||||
|
|
||||||
|
void Display(void);
|
||||||
|
//static Player* GetInstance(void);
|
||||||
|
static Player& GetInstance(void);
|
||||||
|
|
||||||
|
|
||||||
|
void PlayerMoveEyes(const float angle, const float fac, const bool heigth);
|
||||||
|
void PlayerRotateEyes(const int dx, const int dy);
|
||||||
|
private:
|
||||||
|
int level;
|
||||||
|
int xp;
|
||||||
|
Weapon* right = nullptr;
|
||||||
|
Weapon* left = nullptr;
|
||||||
|
vector<Weapon> weapons;
|
||||||
|
Player();
|
||||||
|
Player(Player const&);
|
||||||
|
void operator=(Player const&);
|
||||||
|
|
||||||
|
//static Player* player;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "SettingsState.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SettingsState::SettingsState()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SettingsState::~SettingsState()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
class SettingsState : public State
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SettingsState();
|
||||||
|
~SettingsState();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#include "State.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
State::State()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
State::~State()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::Entry()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::Exit()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::Idle(float delta)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::Display()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::Keyboard(bool keys[255],float deltaTime)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::MouseMove(int x, int y, int dx, int dy)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void State::MouseClick(int button, int type, int x, int y)
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
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],float deltaTime);
|
||||||
|
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"
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
#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;
|
||||||
|
CurrentState = WORLD_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);
|
||||||
|
}
|
||||||
@@ -0,0 +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;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#include "Vector.h"
|
||||||
|
|
||||||
|
Vec3f::Vec3f(float x, float y, float z)
|
||||||
|
{
|
||||||
|
this->x = x;
|
||||||
|
this->y = y;
|
||||||
|
this->z = z;
|
||||||
|
}
|
||||||
|
Vec3f::Vec3f()
|
||||||
|
{
|
||||||
|
this->x = 0;
|
||||||
|
this->y = 0;
|
||||||
|
this->z = 0;
|
||||||
|
}
|
||||||
|
Vec3f::Vec3f(Vec3f &other)
|
||||||
|
{
|
||||||
|
this->x = other.x;
|
||||||
|
this->y = other.y;
|
||||||
|
this->z = other.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
float& Vec3f::operator [](int index)
|
||||||
|
{
|
||||||
|
return v[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Vec2f::Vec2f(float x, float y)
|
||||||
|
{
|
||||||
|
this->x = x;
|
||||||
|
this->y = y;
|
||||||
|
}
|
||||||
|
Vec2f::Vec2f()
|
||||||
|
{
|
||||||
|
this->x = 0;
|
||||||
|
this->y = 0;
|
||||||
|
}
|
||||||
|
Vec2f::Vec2f(Vec2f &other)
|
||||||
|
{
|
||||||
|
this->x = other.x;
|
||||||
|
this->y = other.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
float& Vec2f::operator [](int index)
|
||||||
|
{
|
||||||
|
return v[index];
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class Vec3f
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
float x, y, z;
|
||||||
|
};
|
||||||
|
float v[3];
|
||||||
|
};
|
||||||
|
Vec3f();
|
||||||
|
Vec3f(Vec3f &other);
|
||||||
|
Vec3f(float x, float y, float z);
|
||||||
|
float& operator [](int);
|
||||||
|
};
|
||||||
|
|
||||||
|
class Vec2f
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
float x, y;
|
||||||
|
};
|
||||||
|
float v[2];
|
||||||
|
};
|
||||||
|
Vec2f();
|
||||||
|
Vec2f(float x, float y);
|
||||||
|
Vec2f(Vec2f &other);
|
||||||
|
float& operator [](int);
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
#include "Weapon.h"
|
||||||
|
|
||||||
|
Weapon::Weapon(const string &filename)
|
||||||
|
{
|
||||||
|
weaponModel = new Model(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
Weapon::Weapon()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Weapon::~Weapon()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Weapon::draw_weapon(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (weaponModel != nullptr)
|
||||||
|
{
|
||||||
|
glScalef(scale,scale,scale);
|
||||||
|
glRotatef(135, 1, 0, 0);
|
||||||
|
weaponModel->draw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "Model.h"
|
||||||
|
|
||||||
|
class Weapon
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Weapon(const string &filename);
|
||||||
|
Weapon();
|
||||||
|
~Weapon();
|
||||||
|
void draw_weapon(void);
|
||||||
|
private:
|
||||||
|
Model *weaponModel = nullptr;
|
||||||
|
float scale = 0.5f;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#include "WorldModel.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
WorldModel::WorldModel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WorldModel::~WorldModel()
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
|
||||||
|
class WorldModel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
WorldModel();
|
||||||
|
~WorldModel();
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#include "WorldState.h"
|
||||||
|
#include "Player.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
WorldState::WorldState()
|
||||||
|
{
|
||||||
|
/*player = Player::GetInstance();*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
WorldState::~WorldState()
|
||||||
|
{
|
||||||
|
//if (player != nullptr)
|
||||||
|
//delete player;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldState::Keyboard(bool keys[255],float deltaTime)
|
||||||
|
{
|
||||||
|
float speed = 10;
|
||||||
|
std::cout << "Keyboard doet het in de world state" << std::endl;
|
||||||
|
/*if (keys['a']) player->PlayerMoveEyes(0, deltaTime*speed, false);
|
||||||
|
if (keys['d']) player->PlayerMoveEyes(180, deltaTime*speed, false);
|
||||||
|
if (keys['w']) player->PlayerMoveEyes(90, deltaTime*speed, false);
|
||||||
|
if (keys['s']) player->PlayerMoveEyes(270, deltaTime*speed, false);
|
||||||
|
if (keys['q']) player->PlayerMoveEyes(1, deltaTime*speed, true);
|
||||||
|
if (keys['e']) player->PlayerMoveEyes(-1, deltaTime*speed, true); */
|
||||||
|
|
||||||
|
if (keys['a']) Player::GetInstance().PlayerMoveEyes(0, deltaTime*speed, false);
|
||||||
|
if (keys['d']) Player::GetInstance().PlayerMoveEyes(180, deltaTime*speed, false);
|
||||||
|
if (keys['w']) Player::GetInstance().PlayerMoveEyes(90, deltaTime*speed, false);
|
||||||
|
if (keys['s']) Player::GetInstance().PlayerMoveEyes(270, deltaTime*speed, false);
|
||||||
|
if (keys['q']) Player::GetInstance().PlayerMoveEyes(1, deltaTime*speed, true);
|
||||||
|
if (keys['e']) Player::GetInstance().PlayerMoveEyes(-1, deltaTime*speed, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldState::MouseMove(int x, int y, int dx, int dy)
|
||||||
|
{
|
||||||
|
//player->PlayerRotateEyes(dx, dy);
|
||||||
|
Player::GetInstance().PlayerRotateEyes(dx, dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldState::Display()
|
||||||
|
{
|
||||||
|
Player::GetInstance().Display();
|
||||||
|
|
||||||
|
glutSolidCube(10.0);
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Header.h"
|
||||||
|
#include "State.h"
|
||||||
|
#include "Player.h"
|
||||||
|
|
||||||
|
class WorldState : public State
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
WorldState();
|
||||||
|
~WorldState();
|
||||||
|
|
||||||
|
void Keyboard(bool keys[255],float deltaTime);
|
||||||
|
void MouseMove(int x, int y, int dx, int dy);
|
||||||
|
void Display();
|
||||||
|
private:
|
||||||
|
//Player* player;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
Freeglut Copyright
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Freeglut code without an explicit copyright is covered by the following
|
||||||
|
copyright:
|
||||||
|
|
||||||
|
Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
Except as contained in this notice, the name of Pawel W. Olszta shall not be
|
||||||
|
used in advertising or otherwise to promote the sale, use or other dealings
|
||||||
|
in this Software without prior written authorization from Pawel W. Olszta.
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
freeglut 3.0.0-1.mp for MSVC
|
||||||
|
|
||||||
|
This package contains freeglut import libraries, headers, and Windows DLLs.
|
||||||
|
These allow 32 and 64 bit GLUT applications to be compiled on Windows using
|
||||||
|
Microsoft Visual C++.
|
||||||
|
|
||||||
|
For more information on freeglut, visit http://freeglut.sourceforge.net/.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
Create a folder on your PC which is readable by all users, for example
|
||||||
|
“C:\Program Files\Common Files\MSVC\freeglut\” on a typical Windows system. Copy
|
||||||
|
the “lib\” and “include\” folders from this zip archive to that location.
|
||||||
|
|
||||||
|
The appropriate freeglut DLL can either be placed in the same folder as your
|
||||||
|
application, or can be installed in a system-wide folder which appears in your
|
||||||
|
%PATH% environment variable. Be careful not to mix the 32 bit DLL up with the 64
|
||||||
|
bit DLL, as they are not interchangeable.
|
||||||
|
|
||||||
|
|
||||||
|
Compiling 32 bit Applications
|
||||||
|
|
||||||
|
To create a 32 bit freeglut application, create a new Win32 C++ project in MSVC.
|
||||||
|
From the “Win32 Application Wizard”, choose a “Windows application”, check the
|
||||||
|
“Empty project” box, and submit.
|
||||||
|
|
||||||
|
You’ll now need to configure the compiler and linker settings. Open up the
|
||||||
|
project properties, and select “All Configurations” (this is necessary to ensure
|
||||||
|
our changes are applied for both debug and release builds). Open up the
|
||||||
|
“general” section under “C/C++”, and configure the “include\” folder you created
|
||||||
|
above as an “Additional Include Directory”. If you have more than one GLUT
|
||||||
|
package which contains a “glut.h” file, it’s important to ensure that the
|
||||||
|
freeglut include folder appears above all other GLUT include folders.
|
||||||
|
|
||||||
|
Now open up the “general” section under “Linker”, and configure the “lib\”
|
||||||
|
folder you created above as an “Additional Library Directory”. A freeglut
|
||||||
|
application depends on the import libraries “freeglut.lib” and “opengl32.lib”,
|
||||||
|
which can be configured under the “Input” section. However, it shouldn’t be
|
||||||
|
necessary to explicitly state these dependencies, since the freeglut headers
|
||||||
|
handle this for you. Now open the “Advanced” section, and enter “mainCRTStartup”
|
||||||
|
as the “Entry Point” for your application. This is necessary because GLUT
|
||||||
|
applications use “main” as the application entry point, not “WinMain”—without it
|
||||||
|
you’ll get an undefined reference when you try to link your application.
|
||||||
|
|
||||||
|
That’s all of your project properties configured, so you can now add source
|
||||||
|
files to your project and build the application. If you want your application to
|
||||||
|
be compatible with GLUT, you should “#include <GL/glut.h>”. If you want to use
|
||||||
|
freeglut specific extensions, you should “#include <GL/freeglut.h>” instead.
|
||||||
|
|
||||||
|
Don’t forget to either include the freeglut DLL when distributing applications,
|
||||||
|
or provide your users with some method of obtaining it if they don’t already
|
||||||
|
have it!
|
||||||
|
|
||||||
|
|
||||||
|
Compiling 64 bit Applications
|
||||||
|
|
||||||
|
Building 64 bit applications is almost identical to building 32 bit applications.
|
||||||
|
When you use the configuration manager to add the x64 platform, it’s easiest to
|
||||||
|
copy the settings from the Win32 platform. If you do so, it’s then only necessary
|
||||||
|
to change the “Additional Library Directories” configuration so that it
|
||||||
|
references the directory containing the 64 bit import library rather
|
||||||
|
than the 32 bit one.
|
||||||
|
|
||||||
|
|
||||||
|
Problems?
|
||||||
|
|
||||||
|
If you have problems using this package (compiler / linker errors etc.), please
|
||||||
|
check that you have followed all of the steps in this readme file correctly.
|
||||||
|
Almost all of the problems which are reported with these packages are due to
|
||||||
|
missing a step or not doing it correctly, for example trying to build a 32 bit
|
||||||
|
app against the 64 bit import library. If you have followed all of the steps
|
||||||
|
correctly but your application still fails to build, try building a very simple
|
||||||
|
but functional program (the example at
|
||||||
|
http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/ works fine
|
||||||
|
with MSVC). A lot of people try to build very complex applications after
|
||||||
|
installing these packages, and often the error is with the application code or
|
||||||
|
other library dependencies rather than freeglut.
|
||||||
|
|
||||||
|
If you still can’t get it working after trying to compile a simple application,
|
||||||
|
then please get in touch via http://www.transmissionzero.co.uk/contact/,
|
||||||
|
providing as much detail as you can. Please don’t complain to the freeglut guys
|
||||||
|
unless you’re sure it’s a freeglut bug, and have reproduced the issue after
|
||||||
|
compiling freeglut from the latest SVN version—if that’s still the case, I’m
|
||||||
|
sure they would appreciate a bug report or a patch.
|
||||||
|
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
|
||||||
|
2015–07–22: Release 3.0.0-2.mp
|
||||||
|
|
||||||
|
• Modified the freeglut_std.h file so that it doesn’t try to link against the
|
||||||
|
freeglutd.lib import library.
|
||||||
|
|
||||||
|
2015–03–15: Release 3.0.0-1.mp
|
||||||
|
|
||||||
|
• First 3.0.0 MSVC release. I’ve built the package using Visual Studio 2013,
|
||||||
|
and the only change I’ve made is to the DLL version resource—I’ve changed
|
||||||
|
the description so that my MinGW and MSVC builds are distinguishable from
|
||||||
|
each other (and other builds) using Windows Explorer.
|
||||||
|
|
||||||
|
|
||||||
|
Transmission Zero
|
||||||
|
2015–07–22
|
||||||
|
|
||||||
|
http://www.transmissionzero.co.uk/
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
#ifndef __FREEGLUT_H__
|
||||||
|
#define __FREEGLUT_H__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* freeglut.h
|
||||||
|
*
|
||||||
|
* The freeglut library include file
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "freeglut_std.h"
|
||||||
|
#include "freeglut_ext.h"
|
||||||
|
|
||||||
|
/*** END OF FILE ***/
|
||||||
|
|
||||||
|
#endif /* __FREEGLUT_H__ */
|
||||||
@@ -0,0 +1,271 @@
|
|||||||
|
#ifndef __FREEGLUT_EXT_H__
|
||||||
|
#define __FREEGLUT_EXT_H__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* freeglut_ext.h
|
||||||
|
*
|
||||||
|
* The non-GLUT-compatible extensions to the freeglut library include file
|
||||||
|
*
|
||||||
|
* Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
|
||||||
|
* Written by Pawel W. Olszta, <olszta@sourceforge.net>
|
||||||
|
* Creation date: Thu Dec 2 1999
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
* in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Additional GLUT Key definitions for the Special key function
|
||||||
|
*/
|
||||||
|
#define GLUT_KEY_NUM_LOCK 0x006D
|
||||||
|
#define GLUT_KEY_BEGIN 0x006E
|
||||||
|
#define GLUT_KEY_DELETE 0x006F
|
||||||
|
#define GLUT_KEY_SHIFT_L 0x0070
|
||||||
|
#define GLUT_KEY_SHIFT_R 0x0071
|
||||||
|
#define GLUT_KEY_CTRL_L 0x0072
|
||||||
|
#define GLUT_KEY_CTRL_R 0x0073
|
||||||
|
#define GLUT_KEY_ALT_L 0x0074
|
||||||
|
#define GLUT_KEY_ALT_R 0x0075
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window
|
||||||
|
*/
|
||||||
|
#define GLUT_ACTION_EXIT 0
|
||||||
|
#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1
|
||||||
|
#define GLUT_ACTION_CONTINUE_EXECUTION 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create a new rendering context when the user opens a new window?
|
||||||
|
*/
|
||||||
|
#define GLUT_CREATE_NEW_CONTEXT 0
|
||||||
|
#define GLUT_USE_CURRENT_CONTEXT 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Direct/Indirect rendering context options (has meaning only in Unix/X11)
|
||||||
|
*/
|
||||||
|
#define GLUT_FORCE_INDIRECT_CONTEXT 0
|
||||||
|
#define GLUT_ALLOW_DIRECT_CONTEXT 1
|
||||||
|
#define GLUT_TRY_DIRECT_CONTEXT 2
|
||||||
|
#define GLUT_FORCE_DIRECT_CONTEXT 3
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API Extension macro definitions -- the glutGet parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_INIT_STATE 0x007C
|
||||||
|
|
||||||
|
#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9
|
||||||
|
|
||||||
|
#define GLUT_WINDOW_BORDER_WIDTH 0x01FA
|
||||||
|
#define GLUT_WINDOW_BORDER_HEIGHT 0x01FB
|
||||||
|
#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB /* Docs say it should always have been GLUT_WINDOW_BORDER_HEIGHT, keep this for backward compatibility */
|
||||||
|
|
||||||
|
#define GLUT_VERSION 0x01FC
|
||||||
|
|
||||||
|
#define GLUT_RENDERING_CONTEXT 0x01FD
|
||||||
|
#define GLUT_DIRECT_RENDERING 0x01FE
|
||||||
|
|
||||||
|
#define GLUT_FULL_SCREEN 0x01FF
|
||||||
|
|
||||||
|
#define GLUT_SKIP_STALE_MOTION_EVENTS 0x0204
|
||||||
|
|
||||||
|
#define GLUT_GEOMETRY_VISUALIZE_NORMALS 0x0205
|
||||||
|
|
||||||
|
#define GLUT_STROKE_FONT_DRAW_JOIN_DOTS 0x0206 /* Draw dots between line segments of stroke fonts? */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* New tokens for glutInitDisplayMode.
|
||||||
|
* Only one GLUT_AUXn bit may be used at a time.
|
||||||
|
* Value 0x0400 is defined in OpenGLUT.
|
||||||
|
*/
|
||||||
|
#define GLUT_AUX 0x1000
|
||||||
|
|
||||||
|
#define GLUT_AUX1 0x1000
|
||||||
|
#define GLUT_AUX2 0x2000
|
||||||
|
#define GLUT_AUX3 0x4000
|
||||||
|
#define GLUT_AUX4 0x8000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Context-related flags, see fg_state.c
|
||||||
|
* Set the requested OpenGL version
|
||||||
|
*/
|
||||||
|
#define GLUT_INIT_MAJOR_VERSION 0x0200
|
||||||
|
#define GLUT_INIT_MINOR_VERSION 0x0201
|
||||||
|
#define GLUT_INIT_FLAGS 0x0202
|
||||||
|
#define GLUT_INIT_PROFILE 0x0203
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags for glutInitContextFlags, see fg_init.c
|
||||||
|
*/
|
||||||
|
#define GLUT_DEBUG 0x0001
|
||||||
|
#define GLUT_FORWARD_COMPATIBLE 0x0002
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags for glutInitContextProfile, see fg_init.c
|
||||||
|
*/
|
||||||
|
#define GLUT_CORE_PROFILE 0x0001
|
||||||
|
#define GLUT_COMPATIBILITY_PROFILE 0x0002
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Process loop function, see fg_main.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutMainLoopEvent( void );
|
||||||
|
FGAPI void FGAPIENTRY glutLeaveMainLoop( void );
|
||||||
|
FGAPI void FGAPIENTRY glutExit ( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Window management functions, see fg_window.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutFullScreenToggle( void );
|
||||||
|
FGAPI void FGAPIENTRY glutLeaveFullScreen( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Menu functions
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutSetMenuFont( int menuID, void* font );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Window-specific callback functions, see fg_callbacks.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutPositionFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) );
|
||||||
|
FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) );
|
||||||
|
/* And also a destruction callback for menus */
|
||||||
|
FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* State setting and retrieval functions, see fg_state.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value );
|
||||||
|
FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size);
|
||||||
|
/* A.Donev: User-data manipulation */
|
||||||
|
FGAPI void* FGAPIENTRY glutGetWindowData( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSetWindowData(void* data);
|
||||||
|
FGAPI void* FGAPIENTRY glutGetMenuData( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSetMenuData(void* data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Font stuff, see fg_font.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutBitmapHeight( void* font );
|
||||||
|
FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font );
|
||||||
|
FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string );
|
||||||
|
FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Geometry functions, see fg_geometry.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, double offset[3], double scale );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, double offset[3], double scale );
|
||||||
|
FGAPI void FGAPIENTRY glutWireCylinder( double radius, double height, GLint slices, GLint stacks);
|
||||||
|
FGAPI void FGAPIENTRY glutSolidCylinder( double radius, double height, GLint slices, GLint stacks);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Rest of functions for rendering Newell's teaset, found in fg_teapot.c
|
||||||
|
* NB: front facing polygons have clockwise winding, not counter clockwise
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutWireTeacup( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidTeacup( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutWireTeaspoon( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidTeaspoon( double size );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extension functions, see fg_ext.c
|
||||||
|
*/
|
||||||
|
typedef void (*GLUTproc)();
|
||||||
|
FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Multi-touch/multi-pointer extensions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GLUT_HAS_MULTI 1
|
||||||
|
|
||||||
|
/* TODO: add device_id parameter,
|
||||||
|
cf. http://sourceforge.net/mailarchive/forum.php?thread_name=20120518071314.GA28061%40perso.beuc.net&forum_name=freeglut-developer */
|
||||||
|
FGAPI void FGAPIENTRY glutMultiEntryFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMultiButtonFunc( void (* callback)( int, int, int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMultiMotionFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMultiPassiveFunc( void (* callback)( int, int, int ) );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Joystick functions, see fg_joystick.c
|
||||||
|
*/
|
||||||
|
/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */
|
||||||
|
/* If you have a serious need for these functions in your application, please either
|
||||||
|
* contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net,
|
||||||
|
* switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's
|
||||||
|
* "js" library.
|
||||||
|
*/
|
||||||
|
int glutJoystickGetNumAxes( int ident );
|
||||||
|
int glutJoystickGetNumButtons( int ident );
|
||||||
|
int glutJoystickNotWorking( int ident );
|
||||||
|
float glutJoystickGetDeadBand( int ident, int axis );
|
||||||
|
void glutJoystickSetDeadBand( int ident, int axis, float db );
|
||||||
|
float glutJoystickGetSaturation( int ident, int axis );
|
||||||
|
void glutJoystickSetSaturation( int ident, int axis, float st );
|
||||||
|
void glutJoystickSetMinRange( int ident, float *axes );
|
||||||
|
void glutJoystickSetMaxRange( int ident, float *axes );
|
||||||
|
void glutJoystickSetCenter( int ident, float *axes );
|
||||||
|
void glutJoystickGetMinRange( int ident, float *axes );
|
||||||
|
void glutJoystickGetMaxRange( int ident, float *axes );
|
||||||
|
void glutJoystickGetCenter( int ident, float *axes );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialization functions, see fg_init.c
|
||||||
|
*/
|
||||||
|
/* to get the typedef for va_list */
|
||||||
|
#include <stdarg.h>
|
||||||
|
FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion );
|
||||||
|
FGAPI void FGAPIENTRY glutInitContextFlags( int flags );
|
||||||
|
FGAPI void FGAPIENTRY glutInitContextProfile( int profile );
|
||||||
|
FGAPI void FGAPIENTRY glutInitErrorFunc( void (* callback)( const char *fmt, va_list ap ) );
|
||||||
|
FGAPI void FGAPIENTRY glutInitWarningFunc( void (* callback)( const char *fmt, va_list ap ) );
|
||||||
|
|
||||||
|
/* OpenGL >= 2.0 support */
|
||||||
|
FGAPI void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib);
|
||||||
|
FGAPI void FGAPIENTRY glutSetVertexAttribNormal(GLint attrib);
|
||||||
|
FGAPI void FGAPIENTRY glutSetVertexAttribTexCoord2(GLint attrib);
|
||||||
|
|
||||||
|
/* Mobile platforms lifecycle */
|
||||||
|
FGAPI void FGAPIENTRY glutInitContextFunc(void (* callback)());
|
||||||
|
FGAPI void FGAPIENTRY glutAppStatusFunc(void (* callback)(int));
|
||||||
|
/* state flags that can be passed to callback set by glutAppStatusFunc */
|
||||||
|
#define GLUT_APPSTATUS_PAUSE 0x0001
|
||||||
|
#define GLUT_APPSTATUS_RESUME 0x0002
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the display mode definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_CAPTIONLESS 0x0400
|
||||||
|
#define GLUT_BORDERLESS 0x0800
|
||||||
|
#define GLUT_SRGB 0x1000
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*** END OF FILE ***/
|
||||||
|
|
||||||
|
#endif /* __FREEGLUT_EXT_H__ */
|
||||||
@@ -0,0 +1,638 @@
|
|||||||
|
#ifndef __FREEGLUT_STD_H__
|
||||||
|
#define __FREEGLUT_STD_H__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* freeglut_std.h
|
||||||
|
*
|
||||||
|
* The GLUT-compatible part of the freeglut library include file
|
||||||
|
*
|
||||||
|
* Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
|
||||||
|
* Written by Pawel W. Olszta, <olszta@sourceforge.net>
|
||||||
|
* Creation date: Thu Dec 2 1999
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included
|
||||||
|
* in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Under windows, we have to differentiate between static and dynamic libraries
|
||||||
|
*/
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* #pragma may not be supported by some compilers.
|
||||||
|
* Discussion by FreeGLUT developers suggests that
|
||||||
|
* Visual C++ specific code involving pragmas may
|
||||||
|
* need to move to a separate header. 24th Dec 2003
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library
|
||||||
|
* pragmas or to 0 to exclude library pragmas.
|
||||||
|
* The default behavior depends on the compiler/platform.
|
||||||
|
*/
|
||||||
|
# ifndef FREEGLUT_LIB_PRAGMAS
|
||||||
|
# if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE)
|
||||||
|
# define FREEGLUT_LIB_PRAGMAS 1
|
||||||
|
# else
|
||||||
|
# define FREEGLUT_LIB_PRAGMAS 0
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
# define WIN32_LEAN_AND_MEAN 1
|
||||||
|
# endif
|
||||||
|
# ifndef NOMINMAX
|
||||||
|
# define NOMINMAX
|
||||||
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
|
|
||||||
|
/* Windows static library */
|
||||||
|
# ifdef FREEGLUT_STATIC
|
||||||
|
|
||||||
|
#error Static linking is not supported with this build. Please remove the FREEGLUT_STATIC preprocessor directive, or download the source code from http://freeglut.sf.net/ and build against that.
|
||||||
|
|
||||||
|
/* Windows shared library (DLL) */
|
||||||
|
# else
|
||||||
|
|
||||||
|
# define FGAPIENTRY __stdcall
|
||||||
|
# if defined(FREEGLUT_EXPORTS)
|
||||||
|
# define FGAPI __declspec(dllexport)
|
||||||
|
# else
|
||||||
|
# define FGAPI __declspec(dllimport)
|
||||||
|
|
||||||
|
/* Link with Win32 shared freeglut lib */
|
||||||
|
# if FREEGLUT_LIB_PRAGMAS
|
||||||
|
# pragma comment (lib, "freeglut.lib")
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Drag in other Windows libraries as required by FreeGLUT */
|
||||||
|
# if FREEGLUT_LIB_PRAGMAS
|
||||||
|
# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */
|
||||||
|
# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */
|
||||||
|
# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */
|
||||||
|
# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */
|
||||||
|
# pragma comment (lib, "user32.lib") /* link Windows user lib */
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Non-Windows definition of FGAPI and FGAPIENTRY */
|
||||||
|
# define FGAPI
|
||||||
|
# define FGAPIENTRY
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The freeglut and GLUT API versions
|
||||||
|
*/
|
||||||
|
#define FREEGLUT 1
|
||||||
|
#define GLUT_API_VERSION 4
|
||||||
|
#define GLUT_XLIB_IMPLEMENTATION 13
|
||||||
|
/* Deprecated:
|
||||||
|
cf. http://sourceforge.net/mailarchive/forum.php?thread_name=CABcAi1hw7cr4xtigckaGXB5X8wddLfMcbA_rZ3NAuwMrX_zmsw%40mail.gmail.com&forum_name=freeglut-developer */
|
||||||
|
#define FREEGLUT_VERSION_2_0 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Always include OpenGL and GLU headers
|
||||||
|
*/
|
||||||
|
/* Note: FREEGLUT_GLES is only used to cleanly bootstrap headers
|
||||||
|
inclusion here; use GLES constants directly
|
||||||
|
(e.g. GL_ES_VERSION_2_0) for all other needs */
|
||||||
|
#ifdef FREEGLUT_GLES
|
||||||
|
# include <EGL/egl.h>
|
||||||
|
# include <GLES/gl.h>
|
||||||
|
# include <GLES2/gl2.h>
|
||||||
|
#elif __APPLE__
|
||||||
|
# include <OpenGL/gl.h>
|
||||||
|
# include <OpenGL/glu.h>
|
||||||
|
#else
|
||||||
|
# include <GL/gl.h>
|
||||||
|
# include <GL/glu.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the special key codes:
|
||||||
|
*/
|
||||||
|
#define GLUT_KEY_F1 0x0001
|
||||||
|
#define GLUT_KEY_F2 0x0002
|
||||||
|
#define GLUT_KEY_F3 0x0003
|
||||||
|
#define GLUT_KEY_F4 0x0004
|
||||||
|
#define GLUT_KEY_F5 0x0005
|
||||||
|
#define GLUT_KEY_F6 0x0006
|
||||||
|
#define GLUT_KEY_F7 0x0007
|
||||||
|
#define GLUT_KEY_F8 0x0008
|
||||||
|
#define GLUT_KEY_F9 0x0009
|
||||||
|
#define GLUT_KEY_F10 0x000A
|
||||||
|
#define GLUT_KEY_F11 0x000B
|
||||||
|
#define GLUT_KEY_F12 0x000C
|
||||||
|
#define GLUT_KEY_LEFT 0x0064
|
||||||
|
#define GLUT_KEY_UP 0x0065
|
||||||
|
#define GLUT_KEY_RIGHT 0x0066
|
||||||
|
#define GLUT_KEY_DOWN 0x0067
|
||||||
|
#define GLUT_KEY_PAGE_UP 0x0068
|
||||||
|
#define GLUT_KEY_PAGE_DOWN 0x0069
|
||||||
|
#define GLUT_KEY_HOME 0x006A
|
||||||
|
#define GLUT_KEY_END 0x006B
|
||||||
|
#define GLUT_KEY_INSERT 0x006C
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- mouse state definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_LEFT_BUTTON 0x0000
|
||||||
|
#define GLUT_MIDDLE_BUTTON 0x0001
|
||||||
|
#define GLUT_RIGHT_BUTTON 0x0002
|
||||||
|
#define GLUT_DOWN 0x0000
|
||||||
|
#define GLUT_UP 0x0001
|
||||||
|
#define GLUT_LEFT 0x0000
|
||||||
|
#define GLUT_ENTERED 0x0001
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the display mode definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_RGB 0x0000
|
||||||
|
#define GLUT_RGBA 0x0000
|
||||||
|
#define GLUT_INDEX 0x0001
|
||||||
|
#define GLUT_SINGLE 0x0000
|
||||||
|
#define GLUT_DOUBLE 0x0002
|
||||||
|
#define GLUT_ACCUM 0x0004
|
||||||
|
#define GLUT_ALPHA 0x0008
|
||||||
|
#define GLUT_DEPTH 0x0010
|
||||||
|
#define GLUT_STENCIL 0x0020
|
||||||
|
#define GLUT_MULTISAMPLE 0x0080
|
||||||
|
#define GLUT_STEREO 0x0100
|
||||||
|
#define GLUT_LUMINANCE 0x0200
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- windows and menu related definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_MENU_NOT_IN_USE 0x0000
|
||||||
|
#define GLUT_MENU_IN_USE 0x0001
|
||||||
|
#define GLUT_NOT_VISIBLE 0x0000
|
||||||
|
#define GLUT_VISIBLE 0x0001
|
||||||
|
#define GLUT_HIDDEN 0x0000
|
||||||
|
#define GLUT_FULLY_RETAINED 0x0001
|
||||||
|
#define GLUT_PARTIALLY_RETAINED 0x0002
|
||||||
|
#define GLUT_FULLY_COVERED 0x0003
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- fonts definitions
|
||||||
|
*
|
||||||
|
* Steve Baker suggested to make it binary compatible with GLUT:
|
||||||
|
*/
|
||||||
|
#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__)
|
||||||
|
# define GLUT_STROKE_ROMAN ((void *)0x0000)
|
||||||
|
# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001)
|
||||||
|
# define GLUT_BITMAP_9_BY_15 ((void *)0x0002)
|
||||||
|
# define GLUT_BITMAP_8_BY_13 ((void *)0x0003)
|
||||||
|
# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004)
|
||||||
|
# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008)
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
* I don't really know if it's a good idea... But here it goes:
|
||||||
|
*/
|
||||||
|
extern void* glutStrokeRoman;
|
||||||
|
extern void* glutStrokeMonoRoman;
|
||||||
|
extern void* glutBitmap9By15;
|
||||||
|
extern void* glutBitmap8By13;
|
||||||
|
extern void* glutBitmapTimesRoman10;
|
||||||
|
extern void* glutBitmapTimesRoman24;
|
||||||
|
extern void* glutBitmapHelvetica10;
|
||||||
|
extern void* glutBitmapHelvetica12;
|
||||||
|
extern void* glutBitmapHelvetica18;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Those pointers will be used by following definitions:
|
||||||
|
*/
|
||||||
|
# define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman)
|
||||||
|
# define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman)
|
||||||
|
# define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15)
|
||||||
|
# define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13)
|
||||||
|
# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10)
|
||||||
|
# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12)
|
||||||
|
# define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutGet parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_WINDOW_X 0x0064
|
||||||
|
#define GLUT_WINDOW_Y 0x0065
|
||||||
|
#define GLUT_WINDOW_WIDTH 0x0066
|
||||||
|
#define GLUT_WINDOW_HEIGHT 0x0067
|
||||||
|
#define GLUT_WINDOW_BUFFER_SIZE 0x0068
|
||||||
|
#define GLUT_WINDOW_STENCIL_SIZE 0x0069
|
||||||
|
#define GLUT_WINDOW_DEPTH_SIZE 0x006A
|
||||||
|
#define GLUT_WINDOW_RED_SIZE 0x006B
|
||||||
|
#define GLUT_WINDOW_GREEN_SIZE 0x006C
|
||||||
|
#define GLUT_WINDOW_BLUE_SIZE 0x006D
|
||||||
|
#define GLUT_WINDOW_ALPHA_SIZE 0x006E
|
||||||
|
#define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F
|
||||||
|
#define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070
|
||||||
|
#define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071
|
||||||
|
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072
|
||||||
|
#define GLUT_WINDOW_DOUBLEBUFFER 0x0073
|
||||||
|
#define GLUT_WINDOW_RGBA 0x0074
|
||||||
|
#define GLUT_WINDOW_PARENT 0x0075
|
||||||
|
#define GLUT_WINDOW_NUM_CHILDREN 0x0076
|
||||||
|
#define GLUT_WINDOW_COLORMAP_SIZE 0x0077
|
||||||
|
#define GLUT_WINDOW_NUM_SAMPLES 0x0078
|
||||||
|
#define GLUT_WINDOW_STEREO 0x0079
|
||||||
|
#define GLUT_WINDOW_CURSOR 0x007A
|
||||||
|
|
||||||
|
#define GLUT_SCREEN_WIDTH 0x00C8
|
||||||
|
#define GLUT_SCREEN_HEIGHT 0x00C9
|
||||||
|
#define GLUT_SCREEN_WIDTH_MM 0x00CA
|
||||||
|
#define GLUT_SCREEN_HEIGHT_MM 0x00CB
|
||||||
|
#define GLUT_MENU_NUM_ITEMS 0x012C
|
||||||
|
#define GLUT_DISPLAY_MODE_POSSIBLE 0x0190
|
||||||
|
#define GLUT_INIT_WINDOW_X 0x01F4
|
||||||
|
#define GLUT_INIT_WINDOW_Y 0x01F5
|
||||||
|
#define GLUT_INIT_WINDOW_WIDTH 0x01F6
|
||||||
|
#define GLUT_INIT_WINDOW_HEIGHT 0x01F7
|
||||||
|
#define GLUT_INIT_DISPLAY_MODE 0x01F8
|
||||||
|
#define GLUT_ELAPSED_TIME 0x02BC
|
||||||
|
#define GLUT_WINDOW_FORMAT_ID 0x007B
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutDeviceGet parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_HAS_KEYBOARD 0x0258
|
||||||
|
#define GLUT_HAS_MOUSE 0x0259
|
||||||
|
#define GLUT_HAS_SPACEBALL 0x025A
|
||||||
|
#define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B
|
||||||
|
#define GLUT_HAS_TABLET 0x025C
|
||||||
|
#define GLUT_NUM_MOUSE_BUTTONS 0x025D
|
||||||
|
#define GLUT_NUM_SPACEBALL_BUTTONS 0x025E
|
||||||
|
#define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F
|
||||||
|
#define GLUT_NUM_DIALS 0x0260
|
||||||
|
#define GLUT_NUM_TABLET_BUTTONS 0x0261
|
||||||
|
#define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262
|
||||||
|
#define GLUT_DEVICE_KEY_REPEAT 0x0263
|
||||||
|
#define GLUT_HAS_JOYSTICK 0x0264
|
||||||
|
#define GLUT_OWNS_JOYSTICK 0x0265
|
||||||
|
#define GLUT_JOYSTICK_BUTTONS 0x0266
|
||||||
|
#define GLUT_JOYSTICK_AXES 0x0267
|
||||||
|
#define GLUT_JOYSTICK_POLL_RATE 0x0268
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutLayerGet parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_OVERLAY_POSSIBLE 0x0320
|
||||||
|
#define GLUT_LAYER_IN_USE 0x0321
|
||||||
|
#define GLUT_HAS_OVERLAY 0x0322
|
||||||
|
#define GLUT_TRANSPARENT_INDEX 0x0323
|
||||||
|
#define GLUT_NORMAL_DAMAGED 0x0324
|
||||||
|
#define GLUT_OVERLAY_DAMAGED 0x0325
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutVideoResizeGet parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384
|
||||||
|
#define GLUT_VIDEO_RESIZE_IN_USE 0x0385
|
||||||
|
#define GLUT_VIDEO_RESIZE_X_DELTA 0x0386
|
||||||
|
#define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387
|
||||||
|
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388
|
||||||
|
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389
|
||||||
|
#define GLUT_VIDEO_RESIZE_X 0x038A
|
||||||
|
#define GLUT_VIDEO_RESIZE_Y 0x038B
|
||||||
|
#define GLUT_VIDEO_RESIZE_WIDTH 0x038C
|
||||||
|
#define GLUT_VIDEO_RESIZE_HEIGHT 0x038D
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutUseLayer parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_NORMAL 0x0000
|
||||||
|
#define GLUT_OVERLAY 0x0001
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutGetModifiers parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_ACTIVE_SHIFT 0x0001
|
||||||
|
#define GLUT_ACTIVE_CTRL 0x0002
|
||||||
|
#define GLUT_ACTIVE_ALT 0x0004
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- the glutSetCursor parameters
|
||||||
|
*/
|
||||||
|
#define GLUT_CURSOR_RIGHT_ARROW 0x0000
|
||||||
|
#define GLUT_CURSOR_LEFT_ARROW 0x0001
|
||||||
|
#define GLUT_CURSOR_INFO 0x0002
|
||||||
|
#define GLUT_CURSOR_DESTROY 0x0003
|
||||||
|
#define GLUT_CURSOR_HELP 0x0004
|
||||||
|
#define GLUT_CURSOR_CYCLE 0x0005
|
||||||
|
#define GLUT_CURSOR_SPRAY 0x0006
|
||||||
|
#define GLUT_CURSOR_WAIT 0x0007
|
||||||
|
#define GLUT_CURSOR_TEXT 0x0008
|
||||||
|
#define GLUT_CURSOR_CROSSHAIR 0x0009
|
||||||
|
#define GLUT_CURSOR_UP_DOWN 0x000A
|
||||||
|
#define GLUT_CURSOR_LEFT_RIGHT 0x000B
|
||||||
|
#define GLUT_CURSOR_TOP_SIDE 0x000C
|
||||||
|
#define GLUT_CURSOR_BOTTOM_SIDE 0x000D
|
||||||
|
#define GLUT_CURSOR_LEFT_SIDE 0x000E
|
||||||
|
#define GLUT_CURSOR_RIGHT_SIDE 0x000F
|
||||||
|
#define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010
|
||||||
|
#define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011
|
||||||
|
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012
|
||||||
|
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013
|
||||||
|
#define GLUT_CURSOR_INHERIT 0x0064
|
||||||
|
#define GLUT_CURSOR_NONE 0x0065
|
||||||
|
#define GLUT_CURSOR_FULL_CROSSHAIR 0x0066
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- RGB color component specification definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_RED 0x0000
|
||||||
|
#define GLUT_GREEN 0x0001
|
||||||
|
#define GLUT_BLUE 0x0002
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- additional keyboard and joystick definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_KEY_REPEAT_OFF 0x0000
|
||||||
|
#define GLUT_KEY_REPEAT_ON 0x0001
|
||||||
|
#define GLUT_KEY_REPEAT_DEFAULT 0x0002
|
||||||
|
|
||||||
|
#define GLUT_JOYSTICK_BUTTON_A 0x0001
|
||||||
|
#define GLUT_JOYSTICK_BUTTON_B 0x0002
|
||||||
|
#define GLUT_JOYSTICK_BUTTON_C 0x0004
|
||||||
|
#define GLUT_JOYSTICK_BUTTON_D 0x0008
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GLUT API macro definitions -- game mode definitions
|
||||||
|
*/
|
||||||
|
#define GLUT_GAME_MODE_ACTIVE 0x0000
|
||||||
|
#define GLUT_GAME_MODE_POSSIBLE 0x0001
|
||||||
|
#define GLUT_GAME_MODE_WIDTH 0x0002
|
||||||
|
#define GLUT_GAME_MODE_HEIGHT 0x0003
|
||||||
|
#define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004
|
||||||
|
#define GLUT_GAME_MODE_REFRESH_RATE 0x0005
|
||||||
|
#define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialization functions, see fglut_init.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv );
|
||||||
|
FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y );
|
||||||
|
FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height );
|
||||||
|
FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode );
|
||||||
|
FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Process loop function, see fg_main.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutMainLoop( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Window management functions, see fg_window.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutCreateWindow( const char* title );
|
||||||
|
FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height );
|
||||||
|
FGAPI void FGAPIENTRY glutDestroyWindow( int window );
|
||||||
|
FGAPI void FGAPIENTRY glutSetWindow( int window );
|
||||||
|
FGAPI int FGAPIENTRY glutGetWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title );
|
||||||
|
FGAPI void FGAPIENTRY glutSetIconTitle( const char* title );
|
||||||
|
FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height );
|
||||||
|
FGAPI void FGAPIENTRY glutPositionWindow( int x, int y );
|
||||||
|
FGAPI void FGAPIENTRY glutShowWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutHideWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutIconifyWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutPushWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutPopWindow( void );
|
||||||
|
FGAPI void FGAPIENTRY glutFullScreen( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Display-related functions, see fg_display.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window );
|
||||||
|
FGAPI void FGAPIENTRY glutPostRedisplay( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSwapBuffers( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mouse cursor functions, see fg_cursor.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutWarpPointer( int x, int y );
|
||||||
|
FGAPI void FGAPIENTRY glutSetCursor( int cursor );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Overlay stuff, see fg_overlay.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutEstablishOverlay( void );
|
||||||
|
FGAPI void FGAPIENTRY glutRemoveOverlay( void );
|
||||||
|
FGAPI void FGAPIENTRY glutUseLayer( GLenum layer );
|
||||||
|
FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void );
|
||||||
|
FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window );
|
||||||
|
FGAPI void FGAPIENTRY glutShowOverlay( void );
|
||||||
|
FGAPI void FGAPIENTRY glutHideOverlay( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Menu stuff, see fg_menu.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) );
|
||||||
|
FGAPI void FGAPIENTRY glutDestroyMenu( int menu );
|
||||||
|
FGAPI int FGAPIENTRY glutGetMenu( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSetMenu( int menu );
|
||||||
|
FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value );
|
||||||
|
FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu );
|
||||||
|
FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value );
|
||||||
|
FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value );
|
||||||
|
FGAPI void FGAPIENTRY glutRemoveMenuItem( int item );
|
||||||
|
FGAPI void FGAPIENTRY glutAttachMenu( int button );
|
||||||
|
FGAPI void FGAPIENTRY glutDetachMenu( int button );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Global callback functions, see fg_callbacks.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value );
|
||||||
|
FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Window-specific callback functions, see fg_callbacks.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) );
|
||||||
|
|
||||||
|
FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval );
|
||||||
|
FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) );
|
||||||
|
FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) );
|
||||||
|
|
||||||
|
FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) );
|
||||||
|
FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* State setting and retrieval functions, see fg_state.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutGet( GLenum query );
|
||||||
|
FGAPI int FGAPIENTRY glutDeviceGet( GLenum query );
|
||||||
|
FGAPI int FGAPIENTRY glutGetModifiers( void );
|
||||||
|
FGAPI int FGAPIENTRY glutLayerGet( GLenum query );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Font stuff, see fg_font.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character );
|
||||||
|
FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character );
|
||||||
|
FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character );
|
||||||
|
FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character );
|
||||||
|
FGAPI GLfloat FGAPIENTRY glutStrokeWidthf( void* font, int character ); /* GLUT 3.8 */
|
||||||
|
FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string );
|
||||||
|
FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string );
|
||||||
|
FGAPI GLfloat FGAPIENTRY glutStrokeLengthf( void* font, const unsigned char *string ); /* GLUT 3.8 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Geometry functions, see fg_geometry.c
|
||||||
|
*/
|
||||||
|
|
||||||
|
FGAPI void FGAPIENTRY glutWireCube( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidCube( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );
|
||||||
|
FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );
|
||||||
|
FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
||||||
|
FGAPI void FGAPIENTRY glutWireDodecahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidDodecahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutWireOctahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidOctahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutWireTetrahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidTetrahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutWireIcosahedron( void );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidIcosahedron( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Teapot rendering functions, found in fg_teapot.c
|
||||||
|
* NB: front facing polygons have clockwise winding, not counter clockwise
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutWireTeapot( double size );
|
||||||
|
FGAPI void FGAPIENTRY glutSolidTeapot( double size );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Game mode functions, see fg_gamemode.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutGameModeString( const char* string );
|
||||||
|
FGAPI int FGAPIENTRY glutEnterGameMode( void );
|
||||||
|
FGAPI void FGAPIENTRY glutLeaveGameMode( void );
|
||||||
|
FGAPI int FGAPIENTRY glutGameModeGet( GLenum query );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Video resize functions, see fg_videoresize.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query );
|
||||||
|
FGAPI void FGAPIENTRY glutSetupVideoResizing( void );
|
||||||
|
FGAPI void FGAPIENTRY glutStopVideoResizing( void );
|
||||||
|
FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height );
|
||||||
|
FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Colormap functions, see fg_misc.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue );
|
||||||
|
FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component );
|
||||||
|
FGAPI void FGAPIENTRY glutCopyColormap( int window );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Misc keyboard and joystick functions, see fg_misc.c
|
||||||
|
*/
|
||||||
|
FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore );
|
||||||
|
FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode );
|
||||||
|
FGAPI void FGAPIENTRY glutForceJoystickFunc( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Misc functions, see fg_misc.c
|
||||||
|
*/
|
||||||
|
FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension );
|
||||||
|
FGAPI void FGAPIENTRY glutReportErrors( void );
|
||||||
|
|
||||||
|
/* Comment from glut.h of classic GLUT:
|
||||||
|
|
||||||
|
Win32 has an annoying issue where there are multiple C run-time
|
||||||
|
libraries (CRTs). If the executable is linked with a different CRT
|
||||||
|
from the GLUT DLL, the GLUT DLL will not share the same CRT static
|
||||||
|
data seen by the executable. In particular, atexit callbacks registered
|
||||||
|
in the executable will not be called if GLUT calls its (different)
|
||||||
|
exit routine). GLUT is typically built with the
|
||||||
|
"/MD" option (the CRT with multithreading DLL support), but the Visual
|
||||||
|
C++ linker default is "/ML" (the single threaded CRT).
|
||||||
|
|
||||||
|
One workaround to this issue is requiring users to always link with
|
||||||
|
the same CRT as GLUT is compiled with. That requires users supply a
|
||||||
|
non-standard option. GLUT 3.7 has its own built-in workaround where
|
||||||
|
the executable's "exit" function pointer is covertly passed to GLUT.
|
||||||
|
GLUT then calls the executable's exit function pointer to ensure that
|
||||||
|
any "atexit" calls registered by the application are called if GLUT
|
||||||
|
needs to exit.
|
||||||
|
|
||||||
|
Note that the __glut*WithExit routines should NEVER be called directly.
|
||||||
|
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
|
||||||
|
|
||||||
|
/* to get the prototype for exit() */
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__)
|
||||||
|
FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
|
||||||
|
FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
|
||||||
|
FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int));
|
||||||
|
#ifndef FREEGLUT_BUILDING_LIB
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
#define FGUNUSED __attribute__((unused))
|
||||||
|
#else
|
||||||
|
#define FGUNUSED
|
||||||
|
#endif
|
||||||
|
static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
|
||||||
|
#define glutInit glutInit_ATEXIT_HACK
|
||||||
|
static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
|
||||||
|
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
|
||||||
|
static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); }
|
||||||
|
#define glutCreateMenu glutCreateMenu_ATEXIT_HACK
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*** END OF FILE ***/
|
||||||
|
|
||||||
|
#endif /* __FREEGLUT_STD_H__ */
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef __GLUT_H__
|
||||||
|
#define __GLUT_H__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* glut.h
|
||||||
|
*
|
||||||
|
* The freeglut library include file
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "freeglut_std.h"
|
||||||
|
|
||||||
|
/*** END OF FILE ***/
|
||||||
|
|
||||||
|
#endif /* __GLUT_H__ */
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -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
|
||||||
@@ -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
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 58 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -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
|
||||||
|
After Width: | Height: | Size: 3.0 MiB |
@@ -0,0 +1,18 @@
|
|||||||
|
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
|
||||||
|
# File Created: 04.05.2010 13:43:14
|
||||||
|
|
||||||
|
newmtl shipA_mat
|
||||||
|
Ns 10.0000
|
||||||
|
Ni 1.5000
|
||||||
|
d 1.0000
|
||||||
|
Tr 0.0000
|
||||||
|
Tf 1.0000 1.0000 1.0000
|
||||||
|
illum 2
|
||||||
|
Ka 0.0000 0.0000 0.0000
|
||||||
|
Kd 0.5880 0.5880 0.5880
|
||||||
|
Ks 0.0000 0.0000 0.0000
|
||||||
|
Ke 0.0000 0.0000 0.0000
|
||||||
|
map_Ka s_1024_C.tga
|
||||||
|
map_Kd s_1024_C.tga
|
||||||
|
map_Ke s_1024_I.tga
|
||||||
|
map_bump s_1024_N.tga
|
||||||
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
@@ -0,0 +1,49 @@
|
|||||||
|
#
|
||||||
|
# Wavefront material file
|
||||||
|
# Converted by the DEEP Exploration 3.5.10.1242
|
||||||
|
# Right Hemisphere, LTD
|
||||||
|
# http://www.righthemisphere.com/
|
||||||
|
#
|
||||||
|
|
||||||
|
newmtl hand
|
||||||
|
Ka 0.502 0.502 0.502
|
||||||
|
Kd 0.8824 0.8824 0.8824
|
||||||
|
Ks 0 0 0
|
||||||
|
illum 2
|
||||||
|
Ns 19.6983
|
||||||
|
map_Kd Hide1.jpg
|
||||||
|
map_bump Line2.jpg
|
||||||
|
bump Line2.jpg
|
||||||
|
|
||||||
|
newmtl garda
|
||||||
|
Ka 0.156863 0.156863 0.156863
|
||||||
|
Kd 0.160784 0.160784 0.160784
|
||||||
|
Ks 1 1 1
|
||||||
|
illum 2
|
||||||
|
Ns 1024
|
||||||
|
refl Reflectmed.jpg
|
||||||
|
|
||||||
|
newmtl end
|
||||||
|
Ka 0.156863 0.156863 0.156863
|
||||||
|
Kd 0.156863 0.156863 0.156863
|
||||||
|
Ks 1 1 1
|
||||||
|
illum 2
|
||||||
|
Ns 1024
|
||||||
|
refl Reflectmed.jpg
|
||||||
|
|
||||||
|
newmtl sharik
|
||||||
|
Ka 0.160784 0.160784 0.160784
|
||||||
|
Kd 0.160784 0.160784 0.160784
|
||||||
|
Ks 1 1 1
|
||||||
|
illum 2
|
||||||
|
Ns 1024
|
||||||
|
d 0.4
|
||||||
|
refl Reflectmed.jpg
|
||||||
|
|
||||||
|
newmtl blade
|
||||||
|
Ka 0.752941 0.752941 0.752941
|
||||||
|
Kd 0.752941 0.752941 0.752941
|
||||||
|
Ks 1 1 1
|
||||||
|
illum 2
|
||||||
|
Ns 1024
|
||||||
|
refl Reflectmed.jpg
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -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
|
||||||
@@ -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
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,132 @@
|
|||||||
|
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.12 0.12 0.12
|
||||||
|
Ka 0.00 0.00 0.00
|
||||||
|
Tf 1.00 1.00 1.00
|
||||||
|
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.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__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
|
||||||
@@ -0,0 +1,449 @@
|
|||||||
|
# This file uses centimeters as units for non-parametric coordinates.
|
||||||
|
|
||||||
|
mtllib Zwaard.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.191400
|
||||||
|
vt 0.125000 0.191400
|
||||||
|
vt 0.125000 0.175791
|
||||||
|
vt 0.875000 0.175791
|
||||||
|
vt 0.875000 0.191400
|
||||||
|
vt 0.625000 0.191400
|
||||||
|
vt 0.625000 0.175791
|
||||||
|
vt 0.625000 0.250000
|
||||||
|
vt 0.375000 0.250000
|
||||||
|
vt 0.875000 0.250000
|
||||||
|
vt 0.625000 0.500000
|
||||||
|
vt 0.375000 0.500000
|
||||||
|
vt 0.125000 0.250000
|
||||||
|
vt 0.625000 0.558600
|
||||||
|
vt 0.375000 0.558600
|
||||||
|
vt 0.375000 0.000000
|
||||||
|
vt 0.625000 0.000000
|
||||||
|
vt 0.625000 0.102150
|
||||||
|
vt 0.375000 0.102150
|
||||||
|
vt 0.125000 0.000000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.375000 0.750000
|
||||||
|
vt 0.625000 0.750000
|
||||||
|
vt 0.625000 1.000000
|
||||||
|
vt 0.375000 1.000000
|
||||||
|
vt 0.875000 0.000000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.625000 0.647850
|
||||||
|
vt 0.375000 0.647850
|
||||||
|
vt 0.625000 0.147850
|
||||||
|
vt 0.625000 0.250000
|
||||||
|
vt 0.375000 0.250000
|
||||||
|
vt 0.375000 0.147850
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.875000 0.250000
|
||||||
|
vt 0.625000 0.500000
|
||||||
|
vt 0.375000 0.500000
|
||||||
|
vt 0.125000 0.250000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.625000 0.602150
|
||||||
|
vt 0.375000 0.602150
|
||||||
|
vt 0.500000 0.220700
|
||||||
|
vt 0.625000 0.220700
|
||||||
|
vt 0.500000 0.273925
|
||||||
|
vt 0.375000 0.220700
|
||||||
|
vt 0.500000 0.191400
|
||||||
|
vt 0.500000 0.602150
|
||||||
|
vt 0.750000 0.220700
|
||||||
|
vt 0.875000 0.220700
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.750000 0.250000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.750000 0.191400
|
||||||
|
vt 0.500000 0.375000
|
||||||
|
vt 0.625000 0.375000
|
||||||
|
vt 0.500000 0.476075
|
||||||
|
vt 0.375000 0.375000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.250000 0.220700
|
||||||
|
vt 0.250000 0.250000
|
||||||
|
vt 0.125000 0.220700
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.250000 0.191400
|
||||||
|
vt 0.500000 0.529300
|
||||||
|
vt 0.625000 0.529300
|
||||||
|
vt 0.500000 0.558600
|
||||||
|
vt 0.500000 0.647850
|
||||||
|
vt 0.375000 0.529300
|
||||||
|
vt 0.500000 0.051075
|
||||||
|
vt 0.500000 0.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.625000 0.138970
|
||||||
|
vt 0.500000 0.102150
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.250000 0.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.125000 0.183595
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.500000 0.875000
|
||||||
|
vt 0.500000 0.765928
|
||||||
|
vt 0.625000 0.875000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.500000 1.000000
|
||||||
|
vt 0.375000 0.875000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.750000 0.000000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.875000 0.183595
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.500000 0.688710
|
||||||
|
vt 0.625000 0.698925
|
||||||
|
vt 0.375000 0.698925
|
||||||
|
vt 0.437500 0.558600
|
||||||
|
vt 0.437500 0.647850
|
||||||
|
vt 0.562500 0.558600
|
||||||
|
vt 0.562500 0.647850
|
||||||
|
vt 0.500000 0.198925
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.500000 0.268481
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.500000 0.161821
|
||||||
|
vt 0.500000 0.147850
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.625000 0.551075
|
||||||
|
vt 0.750000 0.250000
|
||||||
|
vt 0.625000 0.375000
|
||||||
|
vt 0.625000 0.183595
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.500000 0.375000
|
||||||
|
vt 0.625000 0.375000
|
||||||
|
vt 0.500000 0.484072
|
||||||
|
vt 0.375000 0.375000
|
||||||
|
vt 0.250000 0.250000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.250000 0.250000
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.375000 0.551075
|
||||||
|
vt 0.375000 0.183595
|
||||||
|
vt -1.#IND00 -1.#IND00
|
||||||
|
vt 0.500000 0.561290
|
||||||
|
vt 0.625000 0.551075
|
||||||
|
vt 0.562500 0.191400
|
||||||
|
vt 0.562500 0.602150
|
||||||
|
vt 0.437500 0.191400
|
||||||
|
vt 0.437500 0.602150
|
||||||
|
vt 0.375000 0.551075
|
||||||
|
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 polySurface6
|
||||||
|
usemtl pasted__lambert5SG2
|
||||||
|
f 1/1/1 70/125/2 2/2/3 35/64/4 3/3/5 45/80/6 4/4/7
|
||||||
|
f 5/5/8 52/94/9 6/6/10 29/54/11 7/7/12 64/114/13 8/8/14
|
||||||
|
f 25/47/15 72/129/16 7/7/12 22/44/17 21/43/18
|
||||||
|
f 29/54/11 6/6/10 27/50/19 26/49/20
|
||||||
|
f 32/58/21 10/10/22 23/45/23 30/55/24
|
||||||
|
f 35/64/4 2/2/3 24/46/25 33/60/26
|
||||||
|
f 34/69/27 12/13/28 31/57/29 36/65/30
|
||||||
|
f 42/76/31 13/17/32 39/71/33 38/70/34
|
||||||
|
f 46/82/35 15/21/36 44/78/37 43/77/38
|
||||||
|
f 44/89/37 15/23/36 48/85/39 47/84/40
|
||||||
|
f 40/73/41 14/18/42 49/91/43 50/90/44
|
||||||
|
f 55/102/45 6/29/10 51/97/46 53/96/47
|
||||||
|
f 60/108/48 8/31/14 57/104/49 56/103/50
|
||||||
|
f 64/115/13 7/35/12 62/110/51 61/109/52
|
||||||
|
f 67/119/53 18/33/54 58/105/55 65/116/56
|
||||||
|
f 70/126/2 1/34/1 59/106/57 68/121/58
|
||||||
|
f 69/133/59 20/38/60 66/118/61 71/127/62
|
||||||
|
f 1/1/1 4/20/7 41/74/63 5/5/8 8/31/14 60/107/48
|
||||||
|
f 22/44/17 9/9/64 23/45/23 21/43/18
|
||||||
|
f 23/45/23 10/10/22 24/46/25 21/43/18
|
||||||
|
f 24/46/25 2/2/3 73/131/65 25/47/15 21/43/18
|
||||||
|
f 27/50/19 11/11/66 28/52/67 26/49/20
|
||||||
|
f 28/52/67 9/9/64 22/44/17 26/49/20
|
||||||
|
f 22/44/17 7/7/12 29/54/11 26/49/20
|
||||||
|
f 23/45/23 9/9/64 28/56/67 30/55/24
|
||||||
|
f 28/56/67 11/12/66 31/57/29 30/55/24
|
||||||
|
f 31/57/29 12/13/28 32/58/21 30/55/24
|
||||||
|
f 24/46/25 10/10/22 32/61/21 33/60/26
|
||||||
|
f 32/61/21 12/14/28 34/62/27 33/60/26
|
||||||
|
f 34/62/27 3/3/5 35/64/4 33/60/26
|
||||||
|
f 31/57/29 11/12/66 27/66/19 36/65/30
|
||||||
|
f 27/66/19 6/15/10 55/101/45 37/67/68 36/65/30
|
||||||
|
f 37/67/68 54/99/69 3/16/5 34/69/27 36/65/30
|
||||||
|
f 39/71/33 14/18/42 40/73/41 38/70/34
|
||||||
|
f 40/73/41 5/19/8 41/75/63 38/70/34
|
||||||
|
f 41/75/63 4/20/7 42/76/31 38/70/34
|
||||||
|
f 44/78/37 13/17/32 42/76/31 43/77/38
|
||||||
|
f 42/76/31 4/20/7 45/81/6 43/77/38
|
||||||
|
f 45/81/6 3/22/5 46/82/35 43/77/38
|
||||||
|
f 48/85/39 16/24/70 49/86/43 47/84/40
|
||||||
|
f 49/86/43 14/25/42 39/88/33 47/84/40
|
||||||
|
f 39/88/33 13/26/32 44/89/37 47/84/40
|
||||||
|
f 49/91/43 16/27/70 51/92/46 50/90/44
|
||||||
|
f 51/92/46 6/28/10 52/95/9 50/90/44
|
||||||
|
f 52/95/9 5/19/8 40/73/41 50/90/44
|
||||||
|
f 51/97/46 16/24/70 48/85/39 53/96/47
|
||||||
|
f 48/85/39 15/23/36 46/98/35 53/96/47
|
||||||
|
f 46/98/35 3/30/5 54/100/69 53/96/47
|
||||||
|
f 54/100/69 37/68/68 55/102/45 53/96/47
|
||||||
|
f 57/104/49 17/32/71 58/105/55 56/103/50
|
||||||
|
f 58/105/55 18/33/54 59/106/57 56/103/50
|
||||||
|
f 59/106/57 1/34/1 60/108/48 56/103/50
|
||||||
|
f 62/110/51 19/36/72 63/112/73 61/109/52
|
||||||
|
f 63/112/73 17/32/71 57/104/49 61/109/52
|
||||||
|
f 57/104/49 8/31/14 64/115/13 61/109/52
|
||||||
|
f 58/105/55 17/32/71 63/117/73 65/116/56
|
||||||
|
f 63/117/73 19/37/72 66/118/61 65/116/56
|
||||||
|
f 66/118/61 20/38/60 67/119/53 65/116/56
|
||||||
|
f 59/106/57 18/33/54 67/122/53 68/121/58
|
||||||
|
f 67/122/53 20/39/60 69/123/59 68/121/58
|
||||||
|
f 69/123/59 2/40/3 70/126/2 68/121/58
|
||||||
|
f 66/118/61 19/37/72 62/128/51 71/127/62
|
||||||
|
f 62/128/51 7/41/12 72/130/16 71/127/62
|
||||||
|
f 72/130/16 25/48/15 73/132/65 71/127/62
|
||||||
|
f 73/132/65 2/42/3 69/133/59 71/127/62
|
||||||
|
s 10
|
||||||
|
usemtl pasted__lambert4SG2
|
||||||
|
f 85/134/74 82/135/75 75/136/76 77/137/77
|
||||||
|
s 11
|
||||||
|
f 84/138/78 85/134/79 77/137/80 79/139/81
|
||||||
|
s 12
|
||||||
|
f 83/140/82 84/138/83 79/139/84 81/141/85
|
||||||
|
s 13
|
||||||
|
f 87/142/86 88/143/87 86/144/88
|
||||||
|
s off
|
||||||
|
f 75/136/89 81/145/90 79/146/91 77/137/92
|
||||||
|
f 80/147/93 74/148/94 76/149/95 78/150/96
|
||||||
|
s 13
|
||||||
|
f 80/151/97 86/144/88 88/143/87 74/152/98
|
||||||
|
s 12
|
||||||
|
f 78/153/99 84/138/83 83/140/82 80/151/100
|
||||||
|
s 11
|
||||||
|
f 76/149/101 85/134/79 84/138/78 78/153/102
|
||||||
|
s 10
|
||||||
|
f 74/148/103 82/135/75 85/134/74 76/149/104
|
||||||
|
s 13
|
||||||
|
f 80/151/97 83/140/105 86/144/88
|
||||||
|
f 81/141/106 87/142/86 86/144/88 83/140/105
|
||||||
|
f 75/154/107 87/142/86 81/141/106
|
||||||
|
f 82/155/108 88/143/87 87/142/86 75/154/107
|
||||||
|
f 74/152/98 88/143/87 82/155/108
|
||||||