Separating projects into separate workspaces

--HG--
rename : KREngine/3rdparty/forsyth/forsyth.cpp => 3rdparty/forsyth/forsyth.cpp
rename : KREngine/3rdparty/forsyth/forsyth.h => 3rdparty/forsyth/forsyth.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTArray.h => 3rdparty/pvrtexlib/include/PVRTArray.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTDecompress.h => 3rdparty/pvrtexlib/include/PVRTDecompress.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTError.h => 3rdparty/pvrtexlib/include/PVRTError.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTGlobal.h => 3rdparty/pvrtexlib/include/PVRTGlobal.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTMap.h => 3rdparty/pvrtexlib/include/PVRTMap.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTString.h => 3rdparty/pvrtexlib/include/PVRTString.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTTexture.h => 3rdparty/pvrtexlib/include/PVRTTexture.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTexture.h => 3rdparty/pvrtexlib/include/PVRTexture.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTextureDefines.h => 3rdparty/pvrtexlib/include/PVRTextureDefines.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTextureFormat.h => 3rdparty/pvrtexlib/include/PVRTextureFormat.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTextureHeader.h => 3rdparty/pvrtexlib/include/PVRTextureHeader.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTextureUtilities.h => 3rdparty/pvrtexlib/include/PVRTextureUtilities.h
rename : KREngine/3rdparty/pvrtexlib/include/PVRTextureVersion.h => 3rdparty/pvrtexlib/include/PVRTextureVersion.h
rename : KREngine/3rdparty/pvrtexlib/static_osx/libPVRTexLib.a => 3rdparty/pvrtexlib/static_osx/libPVRTexLib.a
rename : KREngine/3rdparty/tinyxml2/tinyxml2.cpp => 3rdparty/tinyxml2/tinyxml2.cpp
rename : KREngine/3rdparty/tinyxml2/tinyxml2.h => 3rdparty/tinyxml2/tinyxml2.h
rename : KREngine/3rdparty/tinyxml2/tinyxml2_readme.txt => 3rdparty/tinyxml2/tinyxml2_readme.txt
rename : KREngine/Kraken.xcodeproj/project.pbxproj => Kraken.xcodeproj/project.pbxproj
rename : KREngine/Kraken.xcodeproj/project.xcworkspace/contents.xcworkspacedata => Kraken.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename : KREngine/kraken/KRAABB.cpp => kraken/KRAABB.cpp
rename : KREngine/kraken/KRAABB.h => kraken/KRAABB.h
rename : KREngine/kraken/KRAmbientZone.cpp => kraken/KRAmbientZone.cpp
rename : KREngine/kraken/KRAmbientZone.h => kraken/KRAmbientZone.h
rename : KREngine/kraken/KRAnimation.cpp => kraken/KRAnimation.cpp
rename : KREngine/kraken/KRAnimation.h => kraken/KRAnimation.h
rename : KREngine/kraken/KRAnimationAttribute.cpp => kraken/KRAnimationAttribute.cpp
rename : KREngine/kraken/KRAnimationAttribute.h => kraken/KRAnimationAttribute.h
rename : KREngine/kraken/KRAnimationCurve.cpp => kraken/KRAnimationCurve.cpp
rename : KREngine/kraken/KRAnimationCurve.h => kraken/KRAnimationCurve.h
rename : KREngine/kraken/KRAnimationCurveManager.cpp => kraken/KRAnimationCurveManager.cpp
rename : KREngine/kraken/KRAnimationCurveManager.h => kraken/KRAnimationCurveManager.h
rename : KREngine/kraken/KRAnimationLayer.cpp => kraken/KRAnimationLayer.cpp
rename : KREngine/kraken/KRAnimationLayer.h => kraken/KRAnimationLayer.h
rename : KREngine/kraken/KRAnimationManager.cpp => kraken/KRAnimationManager.cpp
rename : KREngine/kraken/KRAnimationManager.h => kraken/KRAnimationManager.h
rename : KREngine/kraken/KRAudioBuffer.cpp => kraken/KRAudioBuffer.cpp
rename : KREngine/kraken/KRAudioBuffer.h => kraken/KRAudioBuffer.h
rename : KREngine/kraken/KRAudioManager.cpp => kraken/KRAudioManager.cpp
rename : KREngine/kraken/KRAudioManager.h => kraken/KRAudioManager.h
rename : KREngine/kraken/KRAudioSample.cpp => kraken/KRAudioSample.cpp
rename : KREngine/kraken/KRAudioSample.h => kraken/KRAudioSample.h
rename : KREngine/kraken/KRAudioSource.cpp => kraken/KRAudioSource.cpp
rename : KREngine/kraken/KRAudioSource.h => kraken/KRAudioSource.h
rename : KREngine/kraken/KRBehavior.cpp => kraken/KRBehavior.cpp
rename : KREngine/kraken/KRBehavior.h => kraken/KRBehavior.h
rename : KREngine/kraken/KRBone.cpp => kraken/KRBone.cpp
rename : KREngine/kraken/KRBone.h => kraken/KRBone.h
rename : KREngine/kraken/KRBundle.cpp => kraken/KRBundle.cpp
rename : KREngine/kraken/KRBundle.h => kraken/KRBundle.h
rename : KREngine/kraken/KRBundleManager.cpp => kraken/KRBundleManager.cpp
rename : KREngine/kraken/KRBundleManager.h => kraken/KRBundleManager.h
rename : KREngine/kraken/KRCamera.cpp => kraken/KRCamera.cpp
rename : KREngine/kraken/KRCamera.h => kraken/KRCamera.h
rename : KREngine/kraken/KRCollider.cpp => kraken/KRCollider.cpp
rename : KREngine/kraken/KRCollider.h => kraken/KRCollider.h
rename : KREngine/kraken/KRContext.cpp => kraken/KRContext.cpp
rename : KREngine/kraken/KRContext.h => kraken/KRContext.h
rename : KREngine/kraken/KRContextObject.cpp => kraken/KRContextObject.cpp
rename : KREngine/kraken/KRContextObject.h => kraken/KRContextObject.h
rename : KREngine/kraken/KRDataBlock.cpp => kraken/KRDataBlock.cpp
rename : KREngine/kraken/KRDataBlock.h => kraken/KRDataBlock.h
rename : KREngine/kraken/KRDirectionalLight.cpp => kraken/KRDirectionalLight.cpp
rename : KREngine/kraken/KRDirectionalLight.h => kraken/KRDirectionalLight.h
rename : KREngine/kraken/KREngine-common.h => kraken/KREngine-common.h
rename : KREngine/kraken/KREngine.h => kraken/KREngine.h
rename : KREngine/kraken/KREngine.mm => kraken/KREngine.mm
rename : KREngine/kraken/KRFloat.cpp => kraken/KRFloat.cpp
rename : KREngine/kraken/KRFloat.h => kraken/KRFloat.h
rename : KREngine/kraken/KRHitInfo.cpp => kraken/KRHitInfo.cpp
rename : KREngine/kraken/KRHitInfo.h => kraken/KRHitInfo.h
rename : KREngine/kraken/KRLODGroup.cpp => kraken/KRLODGroup.cpp
rename : KREngine/kraken/KRLODGroup.h => kraken/KRLODGroup.h
rename : KREngine/kraken/KRLODSet.cpp => kraken/KRLODSet.cpp
rename : KREngine/kraken/KRLODSet.h => kraken/KRLODSet.h
rename : KREngine/kraken/KRLight.cpp => kraken/KRLight.cpp
rename : KREngine/kraken/KRLight.h => kraken/KRLight.h
rename : KREngine/kraken/KRLocator.cpp => kraken/KRLocator.cpp
rename : KREngine/kraken/KRLocator.h => kraken/KRLocator.h
rename : KREngine/kraken/KRMat4.cpp => kraken/KRMat4.cpp
rename : KREngine/kraken/KRMat4.h => kraken/KRMat4.h
rename : KREngine/kraken/KRMaterial.cpp => kraken/KRMaterial.cpp
rename : KREngine/kraken/KRMaterial.h => kraken/KRMaterial.h
rename : KREngine/kraken/KRMaterialManager.cpp => kraken/KRMaterialManager.cpp
rename : KREngine/kraken/KRMaterialManager.h => kraken/KRMaterialManager.h
rename : KREngine/kraken/KRMesh.cpp => kraken/KRMesh.cpp
rename : KREngine/kraken/KRMesh.h => kraken/KRMesh.h
rename : KREngine/kraken/KRMeshCube.cpp => kraken/KRMeshCube.cpp
rename : KREngine/kraken/KRMeshCube.h => kraken/KRMeshCube.h
rename : KREngine/kraken/KRMeshManager.cpp => kraken/KRMeshManager.cpp
rename : KREngine/kraken/KRMeshManager.h => kraken/KRMeshManager.h
rename : KREngine/kraken/KRMeshQuad.cpp => kraken/KRMeshQuad.cpp
rename : KREngine/kraken/KRMeshQuad.h => kraken/KRMeshQuad.h
rename : KREngine/kraken/KRMeshSphere.cpp => kraken/KRMeshSphere.cpp
rename : KREngine/kraken/KRMeshSphere.h => kraken/KRMeshSphere.h
rename : KREngine/kraken/KRMeshStreamer.mm => kraken/KRMeshStreamer.mm
rename : KREngine/kraken/KRModel.cpp => kraken/KRModel.cpp
rename : KREngine/kraken/KRModel.h => kraken/KRModel.h
rename : KREngine/kraken/KRNode.cpp => kraken/KRNode.cpp
rename : KREngine/kraken/KRNode.h => kraken/KRNode.h
rename : KREngine/kraken/KROctree.cpp => kraken/KROctree.cpp
rename : KREngine/kraken/KROctree.h => kraken/KROctree.h
rename : KREngine/kraken/KROctreeNode.cpp => kraken/KROctreeNode.cpp
rename : KREngine/kraken/KROctreeNode.h => kraken/KROctreeNode.h
rename : KREngine/kraken/KRParticleSystem.cpp => kraken/KRParticleSystem.cpp
rename : KREngine/kraken/KRParticleSystem.h => kraken/KRParticleSystem.h
rename : KREngine/kraken/KRParticleSystemNewtonian.cpp => kraken/KRParticleSystemNewtonian.cpp
rename : KREngine/kraken/KRParticleSystemNewtonian.h => kraken/KRParticleSystemNewtonian.h
rename : KREngine/kraken/KRPointLight.cpp => kraken/KRPointLight.cpp
rename : KREngine/kraken/KRPointLight.h => kraken/KRPointLight.h
rename : KREngine/kraken/KRQuaternion.cpp => kraken/KRQuaternion.cpp
rename : KREngine/kraken/KRQuaternion.h => kraken/KRQuaternion.h
rename : KREngine/kraken/KRRenderSettings.cpp => kraken/KRRenderSettings.cpp
rename : KREngine/kraken/KRRenderSettings.h => kraken/KRRenderSettings.h
rename : KREngine/kraken/KRResource+blend.cpp => kraken/KRResource+blend.cpp
rename : KREngine/kraken/KRResource+blend.h => kraken/KRResource+blend.h
rename : KREngine/kraken/KRResource+fbx.cpp => kraken/KRResource+fbx.cpp
rename : KREngine/kraken/KRResource+obj.cpp => kraken/KRResource+obj.cpp
rename : KREngine/kraken/KRResource.cpp => kraken/KRResource.cpp
rename : KREngine/kraken/KRResource.h => kraken/KRResource.h
rename : KREngine/kraken/KRReverbZone.cpp => kraken/KRReverbZone.cpp
rename : KREngine/kraken/KRReverbZone.h => kraken/KRReverbZone.h
rename : KREngine/kraken/KRScene.cpp => kraken/KRScene.cpp
rename : KREngine/kraken/KRScene.h => kraken/KRScene.h
rename : KREngine/kraken/KRSceneManager.cpp => kraken/KRSceneManager.cpp
rename : KREngine/kraken/KRSceneManager.h => kraken/KRSceneManager.h
rename : KREngine/kraken/KRShader.cpp => kraken/KRShader.cpp
rename : KREngine/kraken/KRShader.h => kraken/KRShader.h
rename : KREngine/kraken/KRShaderManager.cpp => kraken/KRShaderManager.cpp
rename : KREngine/kraken/KRShaderManager.h => kraken/KRShaderManager.h
rename : KREngine/kraken/KRSpotLight.cpp => kraken/KRSpotLight.cpp
rename : KREngine/kraken/KRSpotLight.h => kraken/KRSpotLight.h
rename : KREngine/kraken/KRSprite.cpp => kraken/KRSprite.cpp
rename : KREngine/kraken/KRSprite.h => kraken/KRSprite.h
rename : KREngine/kraken/KRStockGeometry.h => kraken/KRStockGeometry.h
rename : KREngine/kraken/KRStreamer.h => kraken/KRStreamer.h
rename : KREngine/kraken/KRStreamer.mm => kraken/KRStreamer.mm
rename : KREngine/kraken/KRTexture.cpp => kraken/KRTexture.cpp
rename : KREngine/kraken/KRTexture.h => kraken/KRTexture.h
rename : KREngine/kraken/KRTexture2D.cpp => kraken/KRTexture2D.cpp
rename : KREngine/kraken/KRTexture2D.h => kraken/KRTexture2D.h
rename : KREngine/kraken/KRTextureAnimated.cpp => kraken/KRTextureAnimated.cpp
rename : KREngine/kraken/KRTextureAnimated.h => kraken/KRTextureAnimated.h
rename : KREngine/kraken/KRTextureCube.cpp => kraken/KRTextureCube.cpp
rename : KREngine/kraken/KRTextureCube.h => kraken/KRTextureCube.h
rename : KREngine/kraken/KRTextureKTX.cpp => kraken/KRTextureKTX.cpp
rename : KREngine/kraken/KRTextureKTX.h => kraken/KRTextureKTX.h
rename : KREngine/kraken/KRTextureManager.cpp => kraken/KRTextureManager.cpp
rename : KREngine/kraken/KRTextureManager.h => kraken/KRTextureManager.h
rename : KREngine/kraken/KRTexturePVR.cpp => kraken/KRTexturePVR.cpp
rename : KREngine/kraken/KRTexturePVR.h => kraken/KRTexturePVR.h
rename : KREngine/kraken/KRTextureStreamer.mm => kraken/KRTextureStreamer.mm
rename : KREngine/kraken/KRTextureTGA.cpp => kraken/KRTextureTGA.cpp
rename : KREngine/kraken/KRTextureTGA.h => kraken/KRTextureTGA.h
rename : KREngine/kraken/KRTriangle3.cpp => kraken/KRTriangle3.cpp
rename : KREngine/kraken/KRTriangle3.h => kraken/KRTriangle3.h
rename : KREngine/kraken/KRUnknown.cpp => kraken/KRUnknown.cpp
rename : KREngine/kraken/KRUnknown.h => kraken/KRUnknown.h
rename : KREngine/kraken/KRUnknownManager.cpp => kraken/KRUnknownManager.cpp
rename : KREngine/kraken/KRUnknownManager.h => kraken/KRUnknownManager.h
rename : KREngine/kraken/KRVector2.cpp => kraken/KRVector2.cpp
rename : KREngine/kraken/KRVector2.h => kraken/KRVector2.h
rename : KREngine/kraken/KRVector3.cpp => kraken/KRVector3.cpp
rename : KREngine/kraken/KRVector3.h => kraken/KRVector3.h
rename : KREngine/kraken/KRVector4.cpp => kraken/KRVector4.cpp
rename : KREngine/kraken/KRVector4.h => kraken/KRVector4.h
rename : KREngine/kraken/KRViewport.cpp => kraken/KRViewport.cpp
rename : KREngine/kraken/KRViewport.h => kraken/KRViewport.h
rename : KREngine/kraken_ios/Kraken-Prefix.pch => kraken_ios/Kraken-Prefix.pch
rename : KREngine/kraken_osx/Kraken-Info.plist => kraken_osx/Kraken-Info.plist
rename : KRWorldBuilder/KRWorldBuilder/en.lproj/InfoPlist.strings => kraken_osx/en.lproj/InfoPlist.strings
rename : KREngine/kraken_osx/kraken-prefix.pch => kraken_osx/kraken-prefix.pch
rename : KREngine/kraken_osx/krengine_osx.h => kraken_osx/krengine_osx.h
rename : KREngine/kraken_osx/krengine_osx.mm => kraken_osx/krengine_osx.mm
rename : KREngine/kraken_standard_assets/hrtf_kemar.krbundle => kraken_standard_assets/hrtf_kemar.krbundle
rename : KREngine/kraken_standard_assets_osx/Resources-Info.plist => kraken_standard_assets_ios/Resources-Info.plist
rename : KREngine/kraken_standard_assets_ios/Shaders/ObjectShader.fsh => kraken_standard_assets_ios/Shaders/ObjectShader.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/ObjectShader.vsh => kraken_standard_assets_ios/Shaders/ObjectShader.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/PostShader.fsh => kraken_standard_assets_ios/Shaders/PostShader.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/PostShader_osx.vsh => kraken_standard_assets_ios/Shaders/PostShader.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/ShadowShader_osx.fsh => kraken_standard_assets_ios/Shaders/ShadowShader.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/ShadowShader.vsh => kraken_standard_assets_ios/Shaders/ShadowShader.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/debug_font.fsh => kraken_standard_assets_ios/Shaders/debug_font.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/debug_font_osx.vsh => kraken_standard_assets_ios/Shaders/debug_font.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/dust_particle.fsh => kraken_standard_assets_ios/Shaders/dust_particle.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/dust_particle_osx.vsh => kraken_standard_assets_ios/Shaders/dust_particle.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/flare.fsh => kraken_standard_assets_ios/Shaders/flare.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/flare.vsh => kraken_standard_assets_ios/Shaders/flare.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_directional_osx.fsh => kraken_standard_assets_ios/Shaders/light_directional.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.vsh => kraken_standard_assets_ios/Shaders/light_directional.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_osx.fsh => kraken_standard_assets_ios/Shaders/light_point.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_osx.vsh => kraken_standard_assets_ios/Shaders/light_point.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.fsh => kraken_standard_assets_ios/Shaders/light_point_inside.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.vsh => kraken_standard_assets_ios/Shaders/light_point_inside.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/occlusion_test.fsh => kraken_standard_assets_ios/Shaders/occlusion_test.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/occlusion_test.vsh => kraken_standard_assets_ios/Shaders/occlusion_test.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/simple_blit_osx.fsh => kraken_standard_assets_ios/Shaders/simple_blit.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/simple_blit.vsh => kraken_standard_assets_ios/Shaders/simple_blit.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/sky_box.fsh => kraken_standard_assets_ios/Shaders/sky_box.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/sky_box.vsh => kraken_standard_assets_ios/Shaders/sky_box.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/sprite_osx.fsh => kraken_standard_assets_ios/Shaders/sprite.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/sprite_osx.vsh => kraken_standard_assets_ios/Shaders/sprite.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/visualize_overlay_osx.fsh => kraken_standard_assets_ios/Shaders/visualize_overlay.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/visualize_overlay.vsh => kraken_standard_assets_ios/Shaders/visualize_overlay.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/volumetric_fog.fsh => kraken_standard_assets_ios/Shaders/volumetric_fog.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/volumetric_fog_osx.vsh => kraken_standard_assets_ios/Shaders/volumetric_fog.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/volumetric_fog_downsampled.fsh => kraken_standard_assets_ios/Shaders/volumetric_fog_downsampled.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/volumetric_fog_downsampled.vsh => kraken_standard_assets_ios/Shaders/volumetric_fog_downsampled.vsh
rename : KREngine/kraken_standard_assets_ios/font.pvr => kraken_standard_assets_ios/font.pvr
rename : KREngine/kraken_standard_assets_osx/Resources-Info.plist => kraken_standard_assets_osx/Resources-Info.plist
rename : KREngine/kraken_standard_assets_osx/Shaders/ObjectShader_osx.fsh => kraken_standard_assets_osx/Shaders/ObjectShader_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/ObjectShader.vsh => kraken_standard_assets_osx/Shaders/ObjectShader_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/PostShader_osx.fsh => kraken_standard_assets_osx/Shaders/PostShader_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/PostShader_osx.vsh => kraken_standard_assets_osx/Shaders/PostShader_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/ShadowShader_osx.fsh => kraken_standard_assets_osx/Shaders/ShadowShader_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/ShadowShader.vsh => kraken_standard_assets_osx/Shaders/ShadowShader_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/debug_font_osx.fsh => kraken_standard_assets_osx/Shaders/debug_font_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/debug_font_osx.vsh => kraken_standard_assets_osx/Shaders/debug_font_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/dust_particle_osx.fsh => kraken_standard_assets_osx/Shaders/dust_particle_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/dust_particle_osx.vsh => kraken_standard_assets_osx/Shaders/dust_particle_osx.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/flare.fsh => kraken_standard_assets_osx/Shaders/flare_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/flare_osx.vsh => kraken_standard_assets_osx/Shaders/flare_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_directional_osx.fsh => kraken_standard_assets_osx/Shaders/light_directional_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.vsh => kraken_standard_assets_osx/Shaders/light_directional_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.fsh => kraken_standard_assets_osx/Shaders/light_point_inside_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_inside_osx.vsh => kraken_standard_assets_osx/Shaders/light_point_inside_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_osx.fsh => kraken_standard_assets_osx/Shaders/light_point_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/light_point_osx.vsh => kraken_standard_assets_osx/Shaders/light_point_osx.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/occlusion_test.fsh => kraken_standard_assets_osx/Shaders/occlusion_test_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/occlusion_test.vsh => kraken_standard_assets_osx/Shaders/occlusion_test_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/simple_blit_osx.fsh => kraken_standard_assets_osx/Shaders/simple_blit_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/simple_blit.vsh => kraken_standard_assets_osx/Shaders/simple_blit_osx.vsh
rename : KREngine/kraken_standard_assets_ios/Shaders/sky_box.fsh => kraken_standard_assets_osx/Shaders/sky_box_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/sky_box_osx.vsh => kraken_standard_assets_osx/Shaders/sky_box_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/sprite_osx.fsh => kraken_standard_assets_osx/Shaders/sprite_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/sprite_osx.vsh => kraken_standard_assets_osx/Shaders/sprite_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/visualize_overlay_osx.fsh => kraken_standard_assets_osx/Shaders/visualize_overlay_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/visualize_overlay.vsh => kraken_standard_assets_osx/Shaders/visualize_overlay_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/volumetric_fog_downsampled_osx.fsh => kraken_standard_assets_osx/Shaders/volumetric_fog_downsampled_osx.fsh
rename : KREngine/kraken_standard_assets_ios/Shaders/volumetric_fog_downsampled.vsh => kraken_standard_assets_osx/Shaders/volumetric_fog_downsampled_osx.vsh
rename : KREngine/kraken_standard_assets_osx/Shaders/volumetric_fog_osx.fsh => kraken_standard_assets_osx/Shaders/volumetric_fog_osx.fsh
rename : KREngine/kraken_standard_assets_osx/Shaders/volumetric_fog_osx.vsh => kraken_standard_assets_osx/Shaders/volumetric_fog_osx.vsh
rename : KREngine/kraken_standard_assets_osx/font.tga => kraken_standard_assets_osx/font.tga
This commit is contained in:
2014-09-10 22:25:39 -07:00
parent 8c965c8f0d
commit 1afe308047
313 changed files with 0 additions and 12817 deletions

340
kraken/KRResource+obj.cpp Normal file
View File

@@ -0,0 +1,340 @@
//
// KRResource_obj.cpp
// KREngine
//
// Created by Kearwood Gilbert on 12-03-22.
// Copyright (c) 2012 Kearwood Software. All rights reserved.
//
#include "KREngine-common.h"
#include "KRResource.h"
#include "KRMesh.h"
std::vector<KRResource *> KRResource::LoadObj(KRContext &context, const std::string& path)
{
std::vector<KRResource *> resources;
KRMesh *new_mesh = new KRMesh(context, KRResource::GetFileBase(path));
resources.push_back(new_mesh);
KRMesh::mesh_info mi;
std::vector<std::string> material_names_t;
KRDataBlock data;
char szSymbol[500][256];
int *pFaces = NULL;
vector<KRMesh::pack_material *> m_materials;
if(data.load(path)) {
// -----=====----- Get counts -----=====-----
int cVertexData = 0;
int cFaces = 1;
int cMaterialFaceStart = 1;
char *pScan = (char *)data.getStart();
char *pEnd = (char *)data.getEnd();
while(pScan < pEnd) {
// Scan through whitespace
while(pScan < pEnd && (*pScan == ' ' || *pScan == '\t' || *pScan == '\r' || *pScan == '\n')) {
pScan++;
}
if(*pScan == '#') {
// Line is a comment line
// Scan to the end of the line
while(pScan < pEnd && *pScan != '\r' && *pScan != '\n') {
pScan++;
}
} else {
int cSymbols = 0;
while(pScan < pEnd && *pScan != '\n' && *pScan != '\r') {
char *pDest = szSymbol[cSymbols++];
while(pScan < pEnd && *pScan != ' ' && *pScan != '\n' && *pScan != '\r') {
*pDest++ = *pScan++;
}
*pDest = '\0';
// Scan through whitespace, but don't advance to next line
while(pScan < pEnd && (*pScan == ' ' || *pScan == '\t')) {
pScan++;
}
}
if(strcmp(szSymbol[0], "v") == 0) {
// Vertex (v)
} else if(strcmp(szSymbol[0], "vt") == 0) {
// Vertex Texture UV Coordinate (vt)
} else if(strcmp(szSymbol[0], "vn") == 0) {
// Vertex Normal (vn)
} else if(strcmp(szSymbol[0], "f") == 0) {
// Face (f)
int cFaceVertexes = (cSymbols - 3) * 3; // 3 vertexes per triangle. Triangles have 4 symbols. Quads have 5 symbols and generate two triangles.
cVertexData += cFaceVertexes;
cFaces += cFaceVertexes * 3 + 1; // Allocate space for count of vertices, Vertex Index, Texture Coordinate Index, and Normal Index
} else if(strcmp(szSymbol[0], "usemtl") == 0) {
// Use Material (usemtl)
if(cMaterialFaceStart - cFaces > 0) {
cFaces++;
}
material_names_t.push_back(std::string(szSymbol[1]));
}
}
}
// -----=====----- Populate vertexes and faces -----=====-----
int *pFaces = (int *)malloc(sizeof(int *) * (cFaces + 1));
assert(pFaces != NULL);
std::vector<KRVector3> indexed_vertices;
std::vector<KRVector2> indexed_uva;
std::vector<KRVector3> indexed_normals;
int *pFace = pFaces;
int *pMaterialFaces = pFace++;
*pMaterialFaces = 0;
// --------
pScan = (char *)data.getStart();
while(pScan < pEnd) {
// Scan through whitespace
while(pScan < pEnd && (*pScan == ' ' || *pScan == '\t' || *pScan == '\r' || *pScan == '\n')) {
pScan++;
}
if(*pScan == '#') {
// Line is a comment line
// Scan to the end of the line
while(pScan < pEnd && *pScan != '\r' && *pScan != '\n') {
pScan++;
}
} else {
int cSymbols = 0;
while(pScan < pEnd && *pScan != '\n' && *pScan != '\r') {
char *pDest = szSymbol[cSymbols++];
while(pScan < pEnd && *pScan != ' ' && *pScan != '\n' && *pScan != '\r') {
*pDest++ = *pScan++;
}
*pDest = '\0';
// Scan through whitespace, but don't advance to next line
while(pScan < pEnd && (*pScan == ' ' || *pScan == '\t')) {
pScan++;
}
}
if(strcmp(szSymbol[0], "v") == 0) {
// Vertex (v)
float x, y, z;
char *pChar = szSymbol[1];
x = strtof(pChar, &pChar);
pChar = szSymbol[2];
y = strtof(pChar, &pChar);
pChar = szSymbol[3];
z = strtof(pChar, &pChar);
indexed_vertices.push_back(KRVector3(x,y,z));
} else if(strcmp(szSymbol[0], "vt") == 0) {
// Vertex Texture UV Coordinate (vt)
char *pChar = szSymbol[1];
float u,v;
u = strtof(pChar, &pChar);
pChar = szSymbol[2];
v = strtof(pChar, &pChar);
indexed_uva.push_back(KRVector2(u,v));
} else if(strcmp(szSymbol[0], "vn") == 0) {
// Vertex Normal (vn)
float x,y,z;
char *pChar = szSymbol[1];
x = strtof(pChar, &pChar);
pChar = szSymbol[2];
y = strtof(pChar, &pChar);
pChar = szSymbol[3];
z = strtof(pChar, &pChar);
indexed_normals.push_back(KRVector3(x,y,z));
} else if(strcmp(szSymbol[0], "f") == 0) {
// Face (f)
int cFaceVertices = cSymbols - 1;
*pFace++ = cFaceVertices;
for(int iSymbol=1; iSymbol < cSymbols; iSymbol++) {
char *pChar = szSymbol[iSymbol];
if(*pChar == '.' || (*pChar >= '0' && *pChar <= '9')) {
*pFace++ = strtol(pChar, &pChar, 10) - 1; // Vertex Index
if(*pChar == '/') {
pChar++;
if(*pChar == '/') {
*pFace++ = -1;
} else {
*pFace++ = strtol(pChar, &pChar, 10) - 1; // Texture Coordinate Index
}
} else {
*pFace++ = -1;
}
if(*pChar == '/') {
pChar++;
if(*pChar == '/') {
*pFace++ = -1;
} else {
*pFace++ = strtol(pChar, &pChar, 10) - 1; // Normal Index
}
} else {
*pFace++ = -1;
}
while(*pChar == '/') {
pChar++;
strtol(pChar, &pChar, 10);
}
}
}
} else if(strcmp(szSymbol[0], "usemtl") == 0) {
// Use Material (usemtl)
if(pFace - pMaterialFaces > 1) {
*pMaterialFaces = pFace - pMaterialFaces - 1;
pMaterialFaces = pFace++;
}
}
}
}
*pMaterialFaces = pFace - pMaterialFaces - 1;
*pFace++ = 0;
int iVertex = 0;
std::vector<std::string>::iterator material_itr = material_names_t.begin();
KRMesh::pack_material *pMaterial = new KRMesh::pack_material();
pMaterial->start_vertex = iVertex;
pMaterial->vertex_count = 0;
memset(pMaterial->szName, 256, 0);
if(material_itr < material_names_t.end()) {
strncpy(pMaterial->szName, (*material_itr++).c_str(), 256);
}
m_materials.push_back(pMaterial);
pFace = pFaces;
while(*pFace != 0 && iVertex < cVertexData) {
pMaterial->start_vertex = iVertex;
int *pMaterialEndFace = pFace + *pFace++;
while(pFace < pMaterialEndFace && iVertex < cVertexData) {
int cFaceVertexes = *pFace;
KRVector3 firstFaceVertex;
KRVector3 prevFaceVertex;
KRVector3 firstFaceNormal;
KRVector3 prevFaceNormal;
KRVector2 firstFaceUva;
KRVector2 prevFaceUva;
for(int iFaceVertex=0; iFaceVertex < cFaceVertexes; iFaceVertex++) {
if(iFaceVertex > 2) {
// There have already been 3 vertices. Now we need to split the quad into a second triangle composed of the 1st, 3rd, and 4th vertices
iVertex+=2;
mi.vertices.push_back(firstFaceVertex);
mi.uva.push_back(firstFaceUva);
mi.normals.push_back(firstFaceNormal);
mi.vertices.push_back(prevFaceVertex);
mi.uva.push_back(prevFaceUva);
mi.normals.push_back(prevFaceNormal);
}
KRVector3 vertex = indexed_vertices[pFace[iFaceVertex*3+1]];
KRVector2 new_uva;
if(pFace[iFaceVertex*3+2] >= 0) {
new_uva = indexed_uva[pFace[iFaceVertex*3+2]];
}
KRVector3 normal;
if(pFace[iFaceVertex*3+3] >= 0){
KRVector3 normal = indexed_normals[pFace[iFaceVertex*3+3]];
}
mi.vertices.push_back(vertex);
mi.uva.push_back(new_uva);
mi.normals.push_back(normal);
if(iFaceVertex==0) {
firstFaceVertex = vertex;
firstFaceUva = new_uva;
firstFaceNormal = normal;
}
prevFaceVertex = vertex;
prevFaceUva = new_uva;
prevFaceNormal = normal;
iVertex++;
}
pFace += cFaceVertexes * 3 + 1;
}
pMaterial->vertex_count = iVertex - pMaterial->start_vertex;
if(*pFace != 0) {
pMaterial = new KRMesh::pack_material();
pMaterial->start_vertex = iVertex;
pMaterial->vertex_count = 0;
memset(pMaterial->szName, 256, 0);
if(material_itr < material_names_t.end()) {
strncpy(pMaterial->szName, (*material_itr++).c_str(), 256);
}
m_materials.push_back(pMaterial);
}
}
for(int iMaterial=0; iMaterial < m_materials.size(); iMaterial++) {
KRMesh::pack_material *pNewMaterial = m_materials[iMaterial];
if(pNewMaterial->vertex_count > 0) {
mi.material_names.push_back(std::string(pNewMaterial->szName));
mi.submesh_starts.push_back(pNewMaterial->start_vertex);
mi.submesh_lengths.push_back(pNewMaterial->vertex_count);
}
delete pNewMaterial;
}
// TODO: Bones not yet supported for OBJ
// std::vector<std::string> bone_names;
// std::vector<KRMat4> bone_bind_poses;
// std::vector<std::vector<int> > bone_indexes;
// std::vector<std::vector<float> > bone_weights;
//
// std::vector<__uint16_t> vertex_indexes;
// std::vector<std::pair<int, int> > vertex_index_bases;
mi.format = KRMesh::KRENGINE_MODEL_FORMAT_TRIANGLES;
new_mesh->LoadData(mi, true, false);
}
if(pFaces) {
free(pFaces);
}
return resources;
}