Commits

Ilija Boshkov committed 8a20e14

Some refactoring. Prepared code for release. Better directory structure.

  • Participants
  • Parent commits 1f77a5a

Comments (0)

Files changed (61)

Demos/Character/OgreApp12.vcxproj

   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <IntDir>obj\$(Configuration)\</IntDir>
-    <OutDir>bin\$(Configuration)\</OutDir>
+    <OutDir>../bin/$(Configuration)/</OutDir>
     <LinkIncremental>false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

Demos/Character/include/DemoCharacterController.h

 			mWorld->addEntity( mCharRigidBody->m_character );
 			// Add the renderable to synchronize the 
 			// body with the graphical representation
-			HkOgre::hkRenderable* rend = new HkOgre::hkRenderable(mRootSceneNode, mCharRigidBody->m_character, mWorld);
+			HkOgre::Renderable* rend = new HkOgre::Renderable(mRootSceneNode, mCharRigidBody->m_character, mWorld);
 		}
 
 		// Create the Character state machine and context
 					input.m_characterGravity.setMul4( -16.0f, up );
 					input.m_velocity = mCharRigidBody->getRigidBody()->getLinearVelocity();
 					input.m_position = mCharRigidBody->getRigidBody()->getPosition();
-
 					{	
 						mCharRigidBody->checkSupport( stepInfo, input.m_surfaceInfo );
 
 		mBodyNode->setScale(Ogre::Vector3(0.25));
 		mBodyEnt = sceneMgr->createEntity("SinbadBody", "Sinbad.mesh");
 		mBodyNode->attachObject(mBodyEnt);
-		mHeight = mBodyEnt->getBoundingBox().getHalfSize().y;
-		mBodyNode->translate(Vector3::UNIT_Y * (mHeight * mBodyNode->getScale()));
+		mHeight = mBodyEnt->getBoundingBox().getHalfSize().y - Ogre::MeshManager::getSingleton().getBoundsPaddingFactor();
+		mBodyNode->translate(Vector3::UNIT_Y * (mHeight * mBodyNode->getScale() - 0.54));
 
 		// create swords and attach to sheath
 		LogManager::getSingleton().logMessage("Creating swords");

Demos/Character/include/HkOgreCharacterDemo.h

     virtual ~HkOgreCharacterDemo(void);
 
 protected:
-    virtual void createScene(void);
+    virtual void createScene(bool createLevel = true);
 	virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
 	virtual bool keyPressed( const OIS::KeyEvent &evt );
 	virtual bool keyReleased( const OIS::KeyEvent &evt );

Demos/Character/src/HkOgreCharacterDemo.cpp

 {
 }
 //-------------------------------------------------------------------------------------
-void HkOgreCharacterDemo::createScene(void)
+void HkOgreCharacterDemo::createScene(bool createLevel)
 {
 	// Create the default level.
 	BaseApplication::createScene();
 //-------------------------------------------------------------------------------------
 bool HkOgreCharacterDemo::mousePressed( const OIS::MouseEvent &evt, OIS::MouseButtonID id )
 {
+	// Ignore the default ball-shooting behavior.
 	mCharCtrl->injectMouseDown(evt, id);
-	return BaseApplication::mousePressed(evt, id);
+	return true;
 }
 //-------------------------------------------------------------------------------------
 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32

Demos/Framework/BaseApplication.cpp

 Filename:    BaseApplication.cpp
 -----------------------------------------------------------------------------
 
+This file is part of the HkOgre Demos. License info as follows:
 
-This source file is generated by the
-   ___                   _              __    __ _                  _ 
-  /___\__ _ _ __ ___    /_\  _ __  _ __/ / /\ \ (_)______ _ _ __ __| |
- //  // _` | '__/ _ \  //_\\| '_ \| '_ \ \/  \/ / |_  / _` | '__/ _` |
-/ \_// (_| | | |  __/ /  _  \ |_) | |_) \  /\  /| |/ / (_| | | | (_| |
-\___/ \__, |_|  \___| \_/ \_/ .__/| .__/ \/  \/ |_/___\__,_|_|  \__,_|
-      |___/                 |_|   |_|                                 
-      Ogre 1.7.x Application Wizard for VC10 (July 2011)
-      http://code.google.com/p/ogreappwizards/
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
 -----------------------------------------------------------------------------
 */
 #include "BaseApplication.h"
     {
         // If returned true, user clicked OK so initialise
         // Here we choose to let the system create a default rendering window by passing 'true'
-        mWindow = mRoot->initialise(true, "HkOgreVehicleDemo Render Window");
+        mWindow = mRoot->initialise(true, "HkOgre - Terrain Demo");
 
         // Let's add a nice window icon
 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
     mCamera = mSceneMgr->createCamera("PlayerCam");
 
     // Position it at 500 in Z direction
-    mCamera->setPosition(Ogre::Vector3(-770,143,1897));
+    mCamera->setPosition(Ogre::Vector3(0,0,0));
     // Look back along -Z
     mCamera->lookAt(Ogre::Vector3(0,0,-300));
     mCamera->setNearClipDistance(0.5);
 			hkpWorldCinfo worldInfo;
 			worldInfo.m_collisionTolerance = 0.1f;
 			worldInfo.m_contactPointGeneration = hkpWorldCinfo::CONTACT_POINT_ACCEPT_ALWAYS;
-			worldInfo.setBroadPhaseWorldSize(10000);
+			worldInfo.setBroadPhaseWorldSize(50000);
 
 			// Set the simulation type of the world to multi-threaded.
 			worldInfo.m_simulationType = hkpWorldCinfo::SIMULATION_TYPE_MULTITHREADED;
 	return true;
 };
 //-------------------------------------------------------------------------------------
-void BaseApplication::createScene()
+void BaseApplication::createScene(bool createLevel)
 {
 	// Setup the scenery - lighting and skybox.
 	{
 		mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox");
 
-		Ogre::Light* light = mSceneMgr->createLight("tstLight");
+		Ogre::Light* light = mSceneMgr->createLight("sunLight");
 		light->setType(Ogre::Light::LT_DIRECTIONAL);
 		light->setDirection(Ogre::Vector3( 0, -1, 1 ));
 
 		mSceneMgr->setAmbientLight(Ogre::ColourValue(0.2, 0.2, 0.25));
 	}
 
-	// Create the level, as it's a static mesh that won't move
+	// If it's required - create the level, as it's a static mesh that won't move
 	// we can create it using static geometry to optimize performance.
+	if (createLevel)
 	{
 		Ogre::Entity* ground = mSceneMgr->createEntity("ground", "Level.mesh");
 		Ogre::StaticGeometry *sg = mSceneMgr->createStaticGeometry("City");
 	Ogre::SceneNode* sphereNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
 	sphereNode->attachObject(mSceneMgr->createEntity("defSphere.mesh"));
 
-	HkOgre::hkRenderable* rend = new HkOgre::hkRenderable(sphereNode, sphereRigidBody, mWorld);
+	HkOgre::Renderable* rend = new HkOgre::Renderable(sphereNode, sphereRigidBody, mWorld);
 
 	sphereRigidBody->setLinearVelocity(HkOgre::Convert::ogreVec3ToHk(mCamera->getRealDirection() * 30));
 

Demos/Framework/BaseApplication.h

 Filename:    BaseApplication.h
 -----------------------------------------------------------------------------
 
+This file is part of the HkOgre Demos. License info as follows:
 
-This source file is generated by the
-   ___                   _              __    __ _                  _ 
-  /___\__ _ _ __ ___    /_\  _ __  _ __/ / /\ \ (_)______ _ _ __ __| |
- //  // _` | '__/ _ \  //_\\| '_ \| '_ \ \/  \/ / |_  / _` | '__/ _` |
-/ \_// (_| | | |  __/ /  _  \ |_) | |_) \  /\  /| |/ / (_| | | | (_| |
-\___/ \__, |_|  \___| \_/ \_/ .__/| .__/ \/  \/ |_/___\__,_|_|  \__,_|
-      |___/                 |_|   |_|                                 
-      Ogre 1.7.x Application Wizard for VC10 (July 2011)
-      http://code.google.com/p/ogreappwizards/
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
 -----------------------------------------------------------------------------
 */
 #ifndef __BaseApplication_h_
     virtual void chooseSceneManager(void);
     virtual void createCamera(void);
     virtual void createFrameListener(void);
-    virtual void createScene(void);
+    virtual void createScene(bool createLevel = true);
     virtual void destroyScene(void);
     virtual void createViewports(void);
     virtual void setupResources(void);
 	hkJobQueue*			mJobQueue;
 	hkJobThreadPool*	mThreadPool;
 
-	std::vector<HkOgre::hkRenderable*>	mRenderables;
+	std::vector<HkOgre::Renderable*>	mRenderables;
 
 	bool				isHavokInitialized;
 

Demos/Terrain/HkOgreTerrainDemo.sln

+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HkOgreTerrainDemo", "HkOgreTerrainDemo.vcxproj", "{847A765C-ADE9-457A-B663-D05940A68376}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{847A765C-ADE9-457A-B663-D05940A68376}.Debug|Win32.ActiveCfg = Debug|Win32
+		{847A765C-ADE9-457A-B663-D05940A68376}.Debug|Win32.Build.0 = Debug|Win32
+		{847A765C-ADE9-457A-B663-D05940A68376}.Release|Win32.ActiveCfg = Release|Win32
+		{847A765C-ADE9-457A-B663-D05940A68376}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

Demos/Terrain/HkOgreTerrainDemo.vcxproj

+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.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>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{847A765C-ADE9-457A-B663-D05940A68376}</ProjectGuid>
+    <RootNamespace>HkOgreTerrainDemo</RootNamespace>
+    <ProjectName>HkOgreTerrainDemo</ProjectName>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </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>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <IntDir>obj\$(Configuration)\</IntDir>
+    <OutDir>../bin/$(Configuration)/</OutDir>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <IntDir>obj\$(Configuration)\</IntDir>
+    <OutDir>../bin/$(Configuration)\</OutDir>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <MinimalRebuild>true</MinimalRebuild>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <ExceptionHandling>Sync</ExceptionHandling>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <FloatingPointModel>Fast</FloatingPointModel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>include;$(OGRE_HOME)\include;$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;$(OGRE_HOME)\include\OGRE\Terrain;$(OGRE_HOME)\include\OGRE\Paging;$(OGRE_HOME)\Samples\Common\include;$(OGRE_HOME)\boost;D:\Libraries\havok\Source;../../HkOgre;../../HkOgre/Utilities;../Framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(OutDir)/HkOgreTerrainDemo.pdb</ProgramDatabaseFile>
+      <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
+      <TargetMachine>MachineX86</TargetMachine>
+      <AdditionalLibraryDirectories>$(OGRE_HOME)\lib\debug;$(OGRE_HOME)\boost\lib;D:\Libraries\havok\Lib\win32_vs2010_noSimd\debug_multithreaded_dll;$(BOOST_ROOT)\stage\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>OgreMain_d.lib;OgrePaging_d.lib;OgreTerrain_d.lib;OIS_d.lib;hctCommon.lib;
+    </Link>
+    <PostBuildEvent>
+      <Message>Copying exe to samples bin directory ...</Message>
+      <Command>copy "$(OutDir)\$(TargetFileName)" "$(OGRE_HOME)\Bin\$(Configuration)"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <ExceptionHandling>Sync</ExceptionHandling>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>true</MinimalRebuild>
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <OmitFramePointers>true</OmitFramePointers>
+      <StringPooling>true</StringPooling>
+      <BufferSecurityCheck>false</BufferSecurityCheck>
+      <FloatingPointModel>Fast</FloatingPointModel>
+      <AdditionalIncludeDirectories>include;$(OGRE_HOME)\include;$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;$(OGRE_HOME)\include\OGRE\Terrain;$(OGRE_HOME)\include\OGRE\Paging;$(OGRE_HOME)\Samples\Common\include;$(OGRE_HOME)\boost;D:\Libraries\havok\Source;../../HkOgre;../../HkOgre/Utilities;../Framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>false</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
+      <AdditionalLibraryDirectories>$(OGRE_HOME)\lib\release;$(OGRE_HOME)\boost\lib;D:\Libraries\havok\Lib\win32_vs2010_noSimd\release_multithreaded_dll;$(BOOST_ROOT)\stage\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>OgreMain.lib;OgrePaging.lib;OgreTerrain.lib;OIS.lib;hctCommon.lib;
+    </Link>
+    <PostBuildEvent>
+      <Message>Copying exe to samples bin directory ...</Message>
+      <Command>copy "$(OutDir)\$(TargetFileName)" "$(OGRE_HOME)\Bin\$(Configuration)"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\HkOgre\hkOgreCooker.h" />
+    <ClInclude Include="..\..\HkOgre\hkOgreDebugDisplayHandler.h" />
+    <ClInclude Include="..\..\HkOgre\HkOgreHeightfield.h" />
+    <ClInclude Include="..\..\HkOgre\hkOgreMath.h" />
+    <ClInclude Include="..\..\HkOgre\hkOgrePrerequisites.h" />
+    <ClInclude Include="..\..\HkOgre\hkOgreRenderable.h" />
+    <ClInclude Include="..\Framework\BaseApplication.h" />
+    <ClInclude Include="include\HkOgreTerrainDemo.h" />
+    <ClInclude Include="res\Resource.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\HkOgre\HkOgrePrerequisites.cpp" />
+    <ClCompile Include="..\Framework\BaseApplication.cpp" />
+    <ClCompile Include="src\HkOgreTerrainDemo.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="res\HkOgreTerrainDemo.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\HkOgreTerrainDemo.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

Demos/Terrain/HkOgreTerrainDemo.vcxproj.filters

+<?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;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="HkOgre">
+      <UniqueIdentifier>{6c276feb-6638-4546-b266-9b423f588d49}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="include\HkOgreTerrainDemo.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\hkOgreCooker.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\hkOgreMath.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\hkOgrePrerequisites.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\hkOgreRenderable.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\HkOgreHeightfield.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\HkOgre\hkOgreDebugDisplayHandler.h">
+      <Filter>HkOgre</Filter>
+    </ClInclude>
+    <ClInclude Include="res\Resource.h">
+      <Filter>Resource Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Framework\BaseApplication.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="src\HkOgreTerrainDemo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\HkOgre\HkOgrePrerequisites.cpp">
+      <Filter>HkOgre</Filter>
+    </ClCompile>
+    <ClCompile Include="..\Framework\BaseApplication.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="res\HkOgreTerrainDemo.ico">
+      <Filter>Resource Files</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="res\HkOgreTerrainDemo.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>

Demos/Terrain/include/HkOgreTerrainDemo.h

+/*
+-----------------------------------------------------------------------------
+Filename:    HkOgreTerrainDemo.h
+-----------------------------------------------------------------------------
+
+This file is part of the HkOgre Demos. License info as follows:
+
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
+-----------------------------------------------------------------------------
+*/
+#ifndef __HkOgreTerrainDemo_h_
+#define __HkOgreTerrainDemo_h_
+
+#include "BaseApplication.h"
+#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
+#include "../res/resource.h"
+#endif
+
+#define TERRAIN_PAGE_MIN_X 0
+#define TERRAIN_PAGE_MIN_Y 0
+#define TERRAIN_PAGE_MAX_X 0
+#define TERRAIN_PAGE_MAX_Y 0
+
+#include "OgreTerrain.h"
+#include "OgreTerrainGroup.h"
+#include "OgreTerrainQuadTreeNode.h"
+#include "OgreTerrainMaterialGeneratorA.h"
+#include "OgreTerrainPaging.h"
+
+#include "HkOgreHeightfield.h"
+
+class HkOgreTerrainDemo : public BaseApplication
+{
+public:
+    HkOgreTerrainDemo(void);
+    virtual ~HkOgreTerrainDemo(void);
+
+protected:
+	// Parameter ignored in the demo implementation, only for base appliaction.
+    virtual void createScene(bool createLevel = true);
+	virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
+	virtual bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id );
+
+private:
+	void getTerrainImage(bool flipX, bool flipY, Ogre::Image& img);
+	void defineTerrain(long x, long y);
+	void initBlendMaps(Ogre::Terrain* terrain);
+	void configureTerrainDefaults(Ogre::Light* light);
+
+private:
+	Ogre::TerrainGlobalOptions* mTerrainGlobals;
+	Ogre::TerrainGroup* mTerrainGroup;
+	bool mTerrainsImported;
+
+	hkUint16*			mHeightData;
+};
+
+#endif

Demos/Terrain/res/HkOgreTerrainDemo.ico

Binary file added.

Demos/Terrain/res/HkOgreTerrainDemo.rc

+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "winresrc.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Danish resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DAN)
+#ifdef _WIN32
+LANGUAGE LANG_DANISH, SUBLANG_DEFAULT
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_APPICON               ICON                    "HkOgreTerrainDemo.ico"
+#endif    // Danish resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+    "#include ""winresrc.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE
+BEGIN
+    IDS_APP_TITLE           "HkOgreTerrainDemo"
+END
+
+IDI_APPICON             ICON                    "HkOgreTerrainDemo.ico"
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+

Demos/Terrain/res/Resource.h

+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by HkOgreTerrainDemo.rc
+//
+#define IDI_APPICON                       101
+#define IDS_APP_TITLE                   103
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        102
+#define _APS_NEXT_COMMAND_VALUE         40001
+#define _APS_NEXT_CONTROL_VALUE         1000
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif

Demos/Terrain/src/HkOgreTerrainDemo.cpp

+/*
+-----------------------------------------------------------------------------
+Filename:    HkOgreTerrainDemo.cpp
+-----------------------------------------------------------------------------
+
+This file is part of the HkOgre Demos. License info as follows:
+
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
+-----------------------------------------------------------------------------
+*/
+#include "HkOgreTerrainDemo.h"
+
+//-------------------------------------------------------------------------------------
+HkOgreTerrainDemo::HkOgreTerrainDemo(void)
+{
+}
+//-------------------------------------------------------------------------------------
+HkOgreTerrainDemo::~HkOgreTerrainDemo(void)
+{
+}
+//-------------------------------------------------------------------------------------
+bool HkOgreTerrainDemo::frameRenderingQueued(const Ogre::FrameEvent& evt)
+{
+	return BaseApplication::frameRenderingQueued(evt);
+}
+//-------------------------------------------------------------------------------------
+void HkOgreTerrainDemo::initBlendMaps(Ogre::Terrain* terrain)
+{
+	Ogre::TerrainLayerBlendMap* blendMap0 = terrain->getLayerBlendMap(1);
+	Ogre::TerrainLayerBlendMap* blendMap1 = terrain->getLayerBlendMap(2);
+	Ogre::Real minHeight0 = 70;
+	Ogre::Real fadeDist0 = 40;
+	Ogre::Real minHeight1 = 70;
+	Ogre::Real fadeDist1 = 15;
+	float* pBlend0 = blendMap0->getBlendPointer();
+	float* pBlend1 = blendMap1->getBlendPointer();
+	for (Ogre::uint16 y = 0; y < terrain->getLayerBlendMapSize(); ++y)
+	{
+		for (Ogre::uint16 x = 0; x < terrain->getLayerBlendMapSize(); ++x)
+		{
+			Ogre::Real tx, ty;
+
+			blendMap0->convertImageToTerrainSpace(x, y, &tx, &ty);
+			Ogre::Real height = terrain->getHeightAtTerrainPosition(tx, ty);
+			Ogre::Real val = (height - minHeight0) / fadeDist0;
+			val = Ogre::Math::Clamp(val, (Ogre::Real)0, (Ogre::Real)1);
+			*pBlend0++ = val;
+
+			val = (height - minHeight1) / fadeDist1;
+			val = Ogre::Math::Clamp(val, (Ogre::Real)0, (Ogre::Real)1);
+			*pBlend1++ = val;
+		}
+	}
+	blendMap0->dirty();
+	blendMap1->dirty();
+	blendMap0->update();
+	blendMap1->update();
+}
+//-------------------------------------------------------------------------------------
+void HkOgreTerrainDemo::getTerrainImage(bool flipX, bool flipY, Ogre::Image& img)
+{
+	img.load("terrain.png", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
+	if (flipX)
+		img.flipAroundY();
+	if (flipY)
+		img.flipAroundX();
+}
+//-------------------------------------------------------------------------------------
+void HkOgreTerrainDemo::defineTerrain(long x, long y)
+{
+	Ogre::String filename = mTerrainGroup->generateFilename(x, y);
+	if (Ogre::ResourceGroupManager::getSingleton().resourceExists(mTerrainGroup->getResourceGroup(), filename))
+	{
+		mTerrainGroup->defineTerrain(x, y);
+	}
+	else
+	{
+		Ogre::Image img;
+		getTerrainImage(x % 2 != 0, y % 2 != 0, img);
+		mTerrainGroup->defineTerrain(x, y, &img);
+		mTerrainsImported = true;
+	}
+
+}
+//-------------------------------------------------------------------------------------
+void HkOgreTerrainDemo::configureTerrainDefaults(Ogre::Light* light)
+{
+	// Configure global
+	mTerrainGlobals->setMaxPixelError(8);
+	// testing composite map
+	mTerrainGlobals->setCompositeMapDistance(3000);
+
+	// Important to set these so that the terrain knows what to use for derived (non-realtime) data
+	mTerrainGlobals->setLightMapDirection(light->getDerivedDirection());
+	mTerrainGlobals->setCompositeMapAmbient(mSceneMgr->getAmbientLight());
+	mTerrainGlobals->setCompositeMapDiffuse(light->getDiffuseColour());
+
+	// Configure default import settings for if we use imported image
+	Ogre::Terrain::ImportData& defaultimp = mTerrainGroup->getDefaultImportSettings();
+	defaultimp.terrainSize = 513;
+	defaultimp.worldSize = 12000.0f;
+	defaultimp.inputScale = 600; // due terrain.png is 8 bpp
+	defaultimp.minBatchSize = 33;
+	defaultimp.maxBatchSize = 65;
+
+	// textures
+	defaultimp.layerList.resize(3);
+	defaultimp.layerList[0].worldSize = 100;
+	defaultimp.layerList[0].textureNames.push_back("dirt_grayrocky_diffusespecular.dds");
+	defaultimp.layerList[0].textureNames.push_back("dirt_grayrocky_normalheight.dds");
+	defaultimp.layerList[1].worldSize = 30;
+	defaultimp.layerList[1].textureNames.push_back("grass_green-01_diffusespecular.dds");
+	defaultimp.layerList[1].textureNames.push_back("grass_green-01_normalheight.dds");
+	defaultimp.layerList[2].worldSize = 200;
+	defaultimp.layerList[2].textureNames.push_back("growth_weirdfungus-03_diffusespecular.dds");
+	defaultimp.layerList[2].textureNames.push_back("growth_weirdfungus-03_normalheight.dds");
+
+}
+//-------------------------------------------------------------------------------------
+void HkOgreTerrainDemo::createScene(bool createLevel)
+{
+	BaseApplication::createScene(false);
+	// TERRAIN
+	mTerrainGlobals = OGRE_NEW Ogre::TerrainGlobalOptions();
+	mTerrainGroup = OGRE_NEW Ogre::TerrainGroup(mSceneMgr, Ogre::Terrain::ALIGN_X_Z, 513, 12000.0f);
+	mTerrainGroup->setFilenameConvention(Ogre::String("BasicTutorial3Terrain"), Ogre::String("dat"));
+	mTerrainGroup->setOrigin(Ogre::Vector3::ZERO);
+	// The light sunlight is created with the above call to the
+	// Base Application's createScene(bool createLevel) function.
+	configureTerrainDefaults(mSceneMgr->getLight("sunLight"));
+
+	for (long x = 0; x <= 0; ++x)
+		for (long y = 0; y <= 0; ++y)
+			defineTerrain(x, y);
+
+	// sync load since we want everything in place when we start
+	mTerrainGroup->loadAllTerrains(true);
+
+	if (mTerrainsImported)
+	{
+		Ogre::TerrainGroup::TerrainIterator ti = mTerrainGroup->getTerrainIterator();
+		while(ti.hasMoreElements())
+		{
+			Ogre::Terrain* t = ti.getNext()->instance;
+			initBlendMaps(t);
+		}
+	}
+	
+	mTerrainGroup->freeTemporaryResources();
+
+
+	mWorld->markForWrite();
+	// 	HkOgre::Heightfield::SampledHeightfieldConfig cfg = HkOgre::Heightfield::SampledHeightfieldConfig(img);
+	// 	HkOgre::Heightfield::SampledHeightfield* heightfield = new HkOgre::Heightfield::SampledHeightfield(cfg);
+
+	// Create the collision shape and rigid body of our level.
+	hkpBvTreeShape* heightfield = HkOgre::Heightfield::processOgreTerranGroup(mTerrainGroup);
+	hkpRigidBodyCinfo ci;
+	ci.m_shape = heightfield;
+	ci.m_motionType = hkpMotion::MOTION_FIXED;
+	ci.m_position = hkVector4( 0.0f, 0.0f, 0.0f );
+	ci.m_qualityType = HK_COLLIDABLE_QUALITY_FIXED;
+	hkpRigidBody* groundBody = new hkpRigidBody(ci);
+
+	mWorld->addEntity(groundBody);
+	mWorld->unmarkForWrite();
+}
+//-------------------------------------------------------------------------------------
+bool HkOgreTerrainDemo::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
+{
+	return BaseApplication::mousePressed(arg, id);
+}
+//-------------------------------------------------------------------------------------
+#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
+#define WIN32_LEAN_AND_MEAN
+#include "windows.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
+    int main(int argc, char *argv[])//INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
+#else
+    int main(int argc, char *argv[])
+#endif
+    {
+        // Create application object
+        HkOgreTerrainDemo app;
+
+        try {
+            app.go();
+        } catch( Ogre::Exception& e ) {
+#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
+            MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
+#else
+            std::cerr << "An exception has occured: " <<
+                e.getFullDescription().c_str() << std::endl;
+#endif
+        }
+
+        return 0;
+    }
+
+#ifdef __cplusplus
+}
+#endif

Demos/Vehicle/HkOgreVehicleDemo.vcxproj

   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <IntDir>obj\$(Configuration)\</IntDir>
-    <OutDir>bin\$(Configuration)\</OutDir>
+    <OutDir>../bin/$(Configuration)</OutDir>
     <LinkIncremental>true</LinkIncremental>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <IntDir>obj\$(Configuration)\</IntDir>
-    <OutDir>bin\$(Configuration)\</OutDir>
+    <OutDir>../bin/$(Configuration)\</OutDir>
     <LinkIncremental>false</LinkIncremental>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
       <FloatingPointModel>Fast</FloatingPointModel>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>include;$(OGRE_HOME)\include;$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;$(OGRE_HOME)\Samples\Common\include;$(OGRE_HOME)\boost;D:\Libraries\havok\Source;../../HkOgre;../../HkOgre/Utilities;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>include;$(OGRE_HOME)\include;$(OGRE_HOME)\include\OIS;$(OGRE_HOME)\include\OGRE;$(OGRE_HOME)\Samples\Common\include;$(OGRE_HOME)\boost;D:\Libraries\havok\Source;../../HkOgre;../../HkOgre/Utilities;../Framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>

Demos/Vehicle/include/HkOgreVehicleDemo.h

 Filename:    HkOgreVehicleDemo.h
 -----------------------------------------------------------------------------
 
+This file is part of the HkOgre Demos. License info as follows:
 
-This source file is generated by the
-   ___                   _              __    __ _                  _ 
-  /___\__ _ _ __ ___    /_\  _ __  _ __/ / /\ \ (_)______ _ _ __ __| |
- //  // _` | '__/ _ \  //_\\| '_ \| '_ \ \/  \/ / |_  / _` | '__/ _` |
-/ \_// (_| | | |  __/ /  _  \ |_) | |_) \  /\  /| |/ / (_| | | | (_| |
-\___/ \__, |_|  \___| \_/ \_/ .__/| .__/ \/  \/ |_/___\__,_|_|  \__,_|
-      |___/                 |_|   |_|                                 
-      Ogre 1.7.x Application Wizard for VC10 (July 2011)
-      http://code.google.com/p/ogreappwizards/
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
 -----------------------------------------------------------------------------
 */
 #ifndef __HkOgreVehicleDemo_h_
     virtual ~HkOgreVehicleDemo(void);
 
 protected:
-    virtual void createScene(void);
+    virtual void createScene(bool createLevel = true);
 	// This function actually "builds" the vehicle from a set of bodies and a hardcoded 
 	// list of parameters (stored in the VehicleSetup object).
 	void createVehicle(hkpRigidBody* chassis);

Demos/Vehicle/src/HkOgreVehicleDemo.cpp

 Filename:    HkOgreVehicleDemo.cpp
 -----------------------------------------------------------------------------
 
+This file is part of the HkOgre Demos. License info as follows:
 
-This source file is generated by the
-   ___                   _              __    __ _                  _ 
-  /___\__ _ _ __ ___    /_\  _ __  _ __/ / /\ \ (_)______ _ _ __ __| |
- //  // _` | '__/ _ \  //_\\| '_ \| '_ \ \/  \/ / |_  / _` | '__/ _` |
-/ \_// (_| | | |  __/ /  _  \ |_) | |_) \  /\  /| |/ / (_| | | | (_| |
-\___/ \__, |_|  \___| \_/ \_/ .__/| .__/ \/  \/ |_/___\__,_|_|  \__,_|
-      |___/                 |_|   |_|                                 
-      Ogre 1.7.x Application Wizard for VC10 (July 2011)
-      http://code.google.com/p/ogreappwizards/
+			DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+					Version 2, December 2004 
+
+	Copyright (C) 2012 Ilija Boshkov <mindcalamity@gmail.com>
+
+	Everyone is permitted to copy and distribute verbatim or modified 
+	copies of this license document, and changing it is allowed as long 
+	as the name is changed. 
+
+	DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 
+	TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+
+	0. You just DO WHAT THE FUCK YOU WANT TO
+
 -----------------------------------------------------------------------------
 */
 
 {
 }
 //-------------------------------------------------------------------------------------
-void HkOgreVehicleDemo::createScene(void)
+void HkOgreVehicleDemo::createScene(bool createLevel)
 {	
 	// Create the default level.
 	BaseApplication::createScene();
 		mWorld->markForWrite();
 			createVehicle( chassisRigidBody );
 
-			// Create a HkOgre::hkRenderable so that the graphical
+			// Create a HkOgre::Renderable so that the graphical
 			// representation is synchronized with the physical one.
-			HkOgre::hkRenderable* carRend = new HkOgre::hkRenderable(carNode, chassisRigidBody, mWorld); 
+			HkOgre::Renderable* carRend = new HkOgre::Renderable(carNode, chassisRigidBody, mWorld); 
 
 			// No longer need references to these as the vehicle now has them
 			chassisShape->removeReference();

Demos/bin/data/character/README.txt

+-----------------------------
+About: Sinbad Character Model
+-----------------------------
+
+Artist: Zi Ye
+Date: 2009-2010
+E-mail: omniter@gmail.com
+
+This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.
+To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a
+letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
+
+This character is a gift to the OGRE community (http://www.ogre3d.org).
+You do not need to give credit to the artist, but it would be appreciated. =)
+
+This license applies to the following files:
+- Sinbad.mesh
+- Sinbad.skeleton
+- Sinbad.blend
+- sinbad_body.tga
+- sinbad_clothes.tga
+- sinbad_sword.tga
+- Sword.mesh

Demos/bin/data/character/Sinbad.material

+material Sinbad/Body
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			
+			texture_unit
+			{
+				texture sinbad_body.tga
+			}
+		}
+	}
+}
+material Sinbad/Gold
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 0.8 0.8 0.8 1
+			specular 0.3 0.3 0.2 5.5
+			
+			texture_unit
+			{
+				texture sinbad_clothes.tga
+			}
+		}
+	}
+}
+material Sinbad/Sheaths
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.2 0.1 0.1 1.0 50.0
+			
+			texture_unit
+			{
+				texture sinbad_sword.tga
+			}
+		}
+	}
+}
+material Sinbad/Clothes
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.05 0.05 0.05 12.5
+			
+			texture_unit
+			{
+				texture sinbad_clothes.tga
+			}
+		}
+	}
+}
+material Sinbad/Teeth
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.25 0.25 0.25 10.5
+			
+			texture_unit
+			{
+				texture sinbad_body.tga
+			}
+		}
+	}
+}
+material Sinbad/Eyes
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.75 0.75 0.75 55.5
+			
+			texture_unit
+			{
+				texture sinbad_body.tga
+			}
+		}
+	}
+}
+material Sinbad/Spikes
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.75 0.75 0.75 20.5
+			
+			texture_unit
+			{
+				texture sinbad_clothes.tga
+			}
+		}
+	}
+}
+material Sinbad/Blade
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 1 1 1 10.5
+			
+			texture_unit
+			{
+				texture sinbad_sword.tga
+			}
+		}
+	}
+}
+material Sinbad/Ruby
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.75 0.75 0.75 20.5
+			
+			texture_unit
+			{
+				texture sinbad_sword.tga
+			}
+		}
+	}
+}
+material Sinbad/Hilt
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 0.8 0.8 0.8 1
+			specular 0.3 0.3 0.2 5.5
+			
+			texture_unit
+			{
+				texture sinbad_sword.tga
+			}
+		}
+	}
+}
+material Sinbad/Handle
+{
+	receive_shadows on
+	technique
+	{
+		pass
+		{
+			ambient 0.75 0.75 0.75
+			diffuse 1 1 1 1
+			specular 0.05 0.05 0.05 12.5
+			
+			texture_unit
+			{
+				texture sinbad_sword.tga
+			}
+		}
+	}
+}

Demos/bin/data/character/Sinbad.mesh

Binary file added.

Demos/bin/data/character/Sinbad.skeleton

Binary file added.

Demos/bin/data/character/Sword.mesh

Binary file added.

Demos/bin/data/character/sinbad_body.tga

Binary file added.

Demos/bin/data/character/sinbad_clothes.tga

Binary file added.

Demos/bin/data/character/sinbad_sword.tga

Binary file added.

Demos/bin/data/common/Character Test.material

+
+material _missing_material_ 
+{
+    receive_shadows off
+    technique
+    {
+        pass
+        {
+            ambient 0.1 0.1 0.1 1.0
+            diffuse 0.8 0.0 0.0 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.3 0.3 0.3 1.0
+        }
+    }
+}
+
+
+// blender material: Grass
+material Grass 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.896
+    {
+        pass b2ogre_1342907272.896
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 0.7105263471603394 0.7105263471603394 0.7105263471603394 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+            texture_unit b2ogre_1342907272.896
+            {
+                texture grass.jpg
+                tex_address_mode wrap
+                scale 0.02 0.02
+                colour_op replace
+            }
+        }
+    }
+}
+
+// blender material: Red
+material Red 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.896
+    {
+        pass b2ogre_1342907272.896
+        {
+            ambient 0.800000011920929 0.2370370477437973 0.25130635499954224 1.0
+            diffuse 0.800000011920929 0.2370370477437973 0.25130635499954224 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+        }
+    }
+}
+
+// blender material: Green
+material Green 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.897
+    {
+        pass b2ogre_1342907272.897
+        {
+            ambient 0.406000018119812 0.699999988079071 0.11200001835823059 1.0
+            diffuse 0.406000018119812 0.699999988079071 0.11200001835823059 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+        }
+    }
+}
+
+// blender material: Wall
+material Wall 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.897
+    {
+        pass b2ogre_1342907272.897
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+        }
+    }
+}
+
+// blender material: Blue
+material Blue 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.897
+    {
+        pass b2ogre_1342907272.897
+        {
+            ambient 0.37333330512046814 0.5378140807151794 0.800000011920929 1.0
+            diffuse 0.37333330512046814 0.5378140807151794 0.800000011920929 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+        }
+    }
+}
+
+// blender material: Concrete
+material Concrete 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.898
+    {
+        pass b2ogre_1342907272.898
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 0.07189542055130005 0.07189542055130005 0.07189542055130005 1.0 0.25
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+            texture_unit b2ogre_1342907272.898
+            {
+                texture ConcretePlates0128_13_S.jpg
+                tex_address_mode wrap
+                scale 1.0 1.0
+                colour_op replace
+            }
+        }
+    }
+}
+
+// blender material: Road
+material Road 
+{
+    receive_shadows on
+    technique b2ogre_1342907272.899
+    {
+        pass b2ogre_1342907272.899
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+            texture_unit b2ogre_1342907272.899
+            {
+                texture Roads0059_4_S.jpg
+                tex_address_mode wrap
+                scale 1.0 1.0
+                colour_op replace
+            }
+        }
+    }
+}

Demos/bin/data/common/ConcretePlates0128_13_S.jpg

Added
New image

Demos/bin/data/common/Level.mesh

Binary file added.

Demos/bin/data/common/Roads0059_4_S.jpg

Added
New image

Demos/bin/data/common/SdkTrays.zip

Binary file added.

Demos/bin/data/common/Skymaps.material

+material Examples/BeachStones
+{
+	technique
+	{
+		pass
+		{
+			ambient 0.1 0.1 0.1
+
+			texture_unit
+			{
+				texture BeachStones.jpg
+			}
+		}
+	}
+}
+
+material Examples/TrippySkyBox
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture nm.png separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/SpaceSkyBox
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture stevecube.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/SceneSkyBox1
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture cubemap_fr.jpg cubemap_bk.jpg cubemap_lf.jpg cubemap_rt.jpg cubemap_up.jpg cubemap_dn.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/SceneCubeMap1
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+
+			texture_unit
+			{
+				cubic_texture cubemap.jpg combinedUVW
+				tex_address_mode clamp
+				env_map cubic_reflection
+			}
+		}
+	}
+}
+
+material Examples/SceneSkyBox2
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture cubescene_fr.jpg cubescene_bk.jpg cubescene_lf.jpg cubescene_rt.jpg cubescene_up.jpg cubescene_dn.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/SceneCubeMap2
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+
+			texture_unit
+			{
+				cubic_texture cubescene.jpg combinedUVW
+				tex_address_mode clamp
+				env_map cubic_reflection
+			}
+		}
+	}
+}
+
+material Examples/CloudyNoonSkyBox
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture cloudy_noon.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/StormySkyBox
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture stormy.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
+
+material Examples/EarlyMorningSkyBox
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture early_morning.jpg separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}

Demos/bin/data/common/TEXTURE LICENSE INFO.txt

+One or more textures on this 3D-model have been created with images from CGTextures.com. 
+These images may not be redistributed by default. 
+
+Please visit www.cgtextures.com for more information.

Demos/bin/data/common/cubemapsJS.zip

Binary file added.

Demos/bin/data/common/defSphere.mesh

Binary file added.

Demos/bin/data/common/grass.jpg

Added
New image

Demos/bin/data/common/sphere.mesh.material

+
+material _missing_material_ 
+{
+    receive_shadows off
+    technique
+    {
+        pass
+        {
+            ambient 0.1 0.1 0.1 1.0
+            diffuse 0.8 0.0 0.0 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.3 0.3 0.3 1.0
+        }
+    }
+}
+
+
+// blender material: Land
+material Land 
+{
+    receive_shadows on
+    technique b2ogre_1339907957.071
+    {
+        pass b2ogre_1339907957.466
+        {
+            ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
+            diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
+            specular 1.0 1.0 1.0 1.0 3.25
+            emissive 0.0 0.0 0.0 1.0
+            alpha_to_coverage off
+            colour_write on
+            cull_hardware clockwise
+            depth_check on
+            depth_func less_equal
+            depth_write on
+            illumination_stage 
+            light_clip_planes off
+            light_scissor off
+            lighting on
+            normalise_normals off
+            polygon_mode solid
+            scene_blend one zero
+            scene_blend_op add
+            shading gouraud
+            transparent_sorting on
+            texture_unit b2ogre_1339907957.606
+            {
+                texture european_beech_bark_r.png
+                tex_address_mode wrap
+                scale 0.005 0.005
+            }
+        }
+    }
+}

Demos/bin/data/terrain/nvidia/TextureUsageAgreement.txt

+The original diffuse textures are from the NVIDIA texture library, with other maps generated from them by Steve Streeting. The following license applies to all textures.
+
+Single Product or Project Use of NVSDK-Art Imagery 
+THIS IS A LEGAL AGREEMENT (the "License Agreement") between you and NVIDIA, Inc. ("Company"). If you do not agree to all the terms and conditions of this License Agreement, immediately delete the NVSDK-Art Imagery from your hard disk. If you proceed to use any of the images (the "Images") contained therein, you thereby signify that you have agreed to all of the terms and conditions set forth below.
+
+You may not use, copy, display, modify or distribute the Images except in strict accordance with this License Agreement. Company hereby grants to you the following worldwide, non-exclusive, non-transferable, non-sublicensable license for the Term below, with respect to its rights in the Images:
+
+You may install the Images on an unlimited number of computers; provided that all such computers are physically located at your place of business located at a single specific street address (or its equivalent). You may use and access the Images only at that one location and only as follows: You may use, copy and modify the Images in the creation and presentation of videogames, animations and renderings; provided that you may neither: (a) separately publish, market, distribute, transfer, sell or sublicense all or any part of the Images except in derivative form from which the original, or a substantially similar version of the original Image can be extracted; (b) output the Images to a print format other than for collateral materials (such as sales literature and illustrations) which support your primary electronic use of the Images. Subject to the foregoing limitations, and the rights, you may copy and distribute your animations and renderings incorporating the Images.
+
+All other rights with respect to the Images and their use are reserved to Company.
+
+The Images are protected by United States copyright laws, international treaty provisions, and other laws.
+
+TERM. You may use the Images for incorporation in a single product or production, or for visualization purposes within a single project of duration not more than three years.
+
+INFRINGEMENT WARRANTY. NVIDIA warrants to you that, to the best of its knowledge, the digital data for the Images do not infringe the rights, including patent, copyright and trade secret rights, of any third party; provided, however, that NVIDIA makes no representation or warranties with respect to infringement of any third party's rights by any image or object depicted by such digital data.
+
+LIMITATION OF LIABILITY AND WARRANTIES. YOU ASSUME THE ENTIRE COST OF ANY DAMAGE, LOSSES OR EXPENSE RESULTING FROM YOUR USE OR EXPLOITATION OF THE IMAGES. YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE IMAGES TO ACHIEVE YOUR INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED FROM THE IMAGES.
+
+TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, COMPANY HEREBY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT (except as provided in the section titled "Infringement Warranty" above), AND FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE IMAGES AND ANY ACCOMPANYING SOFTWARE OR MATERIALS.
+
+This License Agreement is the entire agreement between you and Company with respect to the Images and supersedes any other communications or advertising, whether written or oral, with respect thereto. If any provision of this License Agreement is held invalid or unenforceable, the remainder shall continue in full force and effect, provided that, if any limitation on the grant to you of any right herein is held invalid or unenforceable, such right shall immediately terminate.
+
+No Warranty. THE SOFTWARE AND ANY OTHER MATERIALS PROVIDED BY NVIDIA TO DEVELOPER HEREUNDER ARE PROVIDED "AS IS." NVIDIA DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
+Limitation of Liability. NVIDIA SHALL NOT BE LIABLE TO DEVELOPER, DEVELOPER'S CUSTOMERS, OR ANY OTHER PERSON OR ENTITY CLAIMING THROUGH OR UNDER DEVELOPER FOR ANY LOSS OF PROFITS, INCOME, SAVINGS, OR ANY OTHER CONSEQUENTIAL, INCIDENTAL, SPECIAL, PUNITIVE, DIRECT OR INDIRECT DAMAGES (WHETHER IN AN ACTION IN CONTRACT, TORT OR BASED ON A WARRANTY), EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF THE ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. IN NO EVENT SHALL NVIDIA'S AGGREGATE LIABILITY TO DEVELOPER OR ANY OTHER PERSON OR ENTITY CLAIMING THROUGH OR UNDER DEVELOPER EXCEED THE AMOUNT OF MONEY ACTUALLY PAID BY DEVELOPER TO NVIDIA FOR THE SOFTWARE OR ANY OTHER MATERIALS.
+

Demos/bin/data/terrain/nvidia/dirt_grayrocky_diffusespecular.dds

Binary file added.

Demos/bin/data/terrain/nvidia/dirt_grayrocky_normalheight.dds

Binary file added.

Demos/bin/data/terrain/nvidia/grass_green-01_diffusespecular.dds

Binary file added.

Demos/bin/data/terrain/nvidia/grass_green-01_normalheight.dds

Binary file added.

Demos/bin/data/terrain/nvidia/growth_weirdfungus-03_diffusespecular.dds

Binary file added.

Demos/bin/data/terrain/nvidia/growth_weirdfungus-03_normalheight.dds

Binary file added.

Demos/bin/data/terrain/terrain.png

Added
New image

Demos/bin/data/vehicle/Evo-Chassis.mesh

Binary file added.

Demos/bin/data/vehicle/Evo-Wheel.mesh

Binary file added.

Demos/bin/data/vehicle/MODEL-LICENSE.txt

+Original high-poly version by: Wojciech Klimas.
+Blendswap URL: http://www.blendswap.com/blends/vehicles/mitsubshi-lancer-evo-9/
+
+Low-Poly remake by: Scrawl.
+Blendswap URL: http://www.blendswap.com/blends/vehicles/lancer-evolution-9-low-poly-2/
+
+Because the CC-BY-SA states so, this OGRE version of the model is distributed under the same license.

Demos/bin/data/vehicle/body_diffuse.png

Added
New image

Demos/bin/data/vehicle/evo_blendswap.material

+
+material _missing_material_ 
+{
+    receive_shadows off
+    technique
+    {
+        pass
+        {
+            ambient 0.1 0.1 0.1 1.0
+            diffuse 0.8 0.0 0.0 1.0
+            specular 0.5 0.5 0.5 1.0 12.5
+            emissive 0.3 0.3 0.3 1.0
+        }
+    }
+}
+