diff --git a/Kraken.xcodeproj/project.pbxproj b/Kraken.xcodeproj/project.pbxproj index e7d8483..e389bb9 100755 --- a/Kraken.xcodeproj/project.pbxproj +++ b/Kraken.xcodeproj/project.pbxproj @@ -96,7 +96,7 @@ E4159B8419C5760800622D1E /* KRDataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E46F4A0A155E002100CCF8B8 /* KRDataBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4159B8519C5760800622D1E /* KREngine-common.h in Headers */ = {isa = PBXBuildFile; fileRef = E46DBE841512B9E200D59F86 /* KREngine-common.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4159B8619C5760800622D1E /* KREngine.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017213C99BDC0098455B /* KREngine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4159B8719C5760800622D1E /* KRHitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* KRHitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4159B8719C5760800622D1E /* HitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* HitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4159B8819C5760800622D1E /* KROctree.h in Headers */ = {isa = PBXBuildFile; fileRef = E4924C2515EE95E800B965C6 /* KROctree.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4159B8919C5760800622D1E /* KROctreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4924C2A15EE96AA00B965C6 /* KROctreeNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4159B8A19C5760900622D1E /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -170,7 +170,7 @@ E4159BCE19C5762F00622D1E /* KRContextObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43B0AD415DDCA0C00A5CB9F /* KRContextObject.cpp */; }; E4159BCF19C5762F00622D1E /* KRDataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46F4A0D155E003000CCF8B8 /* KRDataBlock.cpp */; }; E4159BD019C5762F00622D1E /* KREngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = E491016F13C99BDC0098455B /* KREngine.mm */; }; - E4159BD119C5762F00622D1E /* KRHitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* KRHitInfo.cpp */; }; + E4159BD119C5762F00622D1E /* HitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* HitInfo.cpp */; }; E4159BD219C5762F00622D1E /* KROctree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4924C2415EE95E700B965C6 /* KROctree.cpp */; }; E4159BD319C5762F00622D1E /* KROctreeNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4924C2915EE96AA00B965C6 /* KROctreeNode.cpp */; }; E4159BD419C5762F00622D1E /* KRRenderSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E44F38271683B24400399B5D /* KRRenderSettings.cpp */; }; @@ -251,7 +251,7 @@ E423D6D11BEDEE2D0021812E /* KRContextObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E43B0AD415DDCA0C00A5CB9F /* KRContextObject.cpp */; }; E423D6D21BEDEE2D0021812E /* KRDataBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E46F4A0D155E003000CCF8B8 /* KRDataBlock.cpp */; }; E423D6D31BEDEE2D0021812E /* KREngine.mm in Sources */ = {isa = PBXBuildFile; fileRef = E491016F13C99BDC0098455B /* KREngine.mm */; }; - E423D6D41BEDEE2D0021812E /* KRHitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* KRHitInfo.cpp */; }; + E423D6D41BEDEE2D0021812E /* HitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* HitInfo.cpp */; }; E423D6D51BEDEE2D0021812E /* KROctree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4924C2415EE95E700B965C6 /* KROctree.cpp */; }; E423D6D61BEDEE2D0021812E /* KROctreeNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4924C2915EE96AA00B965C6 /* KROctreeNode.cpp */; }; E423D6D71BEDEE2D0021812E /* KRRenderSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E44F38271683B24400399B5D /* KRRenderSettings.cpp */; }; @@ -330,7 +330,7 @@ E423D7231BEDEE2D0021812E /* KRDataBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = E46F4A0A155E002100CCF8B8 /* KRDataBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; E423D7241BEDEE2D0021812E /* KREngine-common.h in Headers */ = {isa = PBXBuildFile; fileRef = E46DBE841512B9E200D59F86 /* KREngine-common.h */; settings = {ATTRIBUTES = (Public, ); }; }; E423D7251BEDEE2D0021812E /* KREngine.h in Headers */ = {isa = PBXBuildFile; fileRef = E491017213C99BDC0098455B /* KREngine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E423D7261BEDEE2D0021812E /* KRHitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* KRHitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E423D7261BEDEE2D0021812E /* HitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* HitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; E423D7271BEDEE2D0021812E /* KROctree.h in Headers */ = {isa = PBXBuildFile; fileRef = E4924C2515EE95E800B965C6 /* KROctree.h */; settings = {ATTRIBUTES = (Public, ); }; }; E423D7281BEDEE2D0021812E /* KROctreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = E4924C2A15EE96AA00B965C6 /* KROctreeNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; E423D7291BEDEE2D0021812E /* KRRenderSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = E44F38231683B22C00399B5D /* KRRenderSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -516,8 +516,8 @@ E4C454B0167BB8FC003586CD /* KRMeshCube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454AE167BB8FC003586CD /* KRMeshCube.cpp */; }; E4C454B3167BC04C003586CD /* KRMeshSphere.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B1167BC04B003586CD /* KRMeshSphere.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4C454B6167BC05C003586CD /* KRMeshSphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454B4167BC05C003586CD /* KRMeshSphere.cpp */; }; - E4C454B9167BD236003586CD /* KRHitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* KRHitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E4C454BC167BD248003586CD /* KRHitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* KRHitInfo.cpp */; }; + E4C454B9167BD236003586CD /* HitInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C454B7167BD235003586CD /* HitInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E4C454BC167BD248003586CD /* HitInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4C454BA167BD248003586CD /* HitInfo.cpp */; }; E4CA10E61637BD0A005D9400 /* KRTexturePVR.h in Headers */ = {isa = PBXBuildFile; fileRef = E4CA10E41637BD0A005D9400 /* KRTexturePVR.h */; settings = {ATTRIBUTES = (Public, ); }; }; E4CA10EA1637BD2B005D9400 /* KRTexturePVR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4CA10E81637BD2B005D9400 /* KRTexturePVR.cpp */; }; E4CA10ED1637BD47005D9400 /* KRTextureTGA.h in Headers */ = {isa = PBXBuildFile; fileRef = E4CA10EB1637BD47005D9400 /* KRTextureTGA.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -828,8 +828,8 @@ E4C454AE167BB8FC003586CD /* KRMeshCube.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRMeshCube.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; E4C454B1167BC04B003586CD /* KRMeshSphere.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = KRMeshSphere.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; E4C454B4167BC05C003586CD /* KRMeshSphere.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = KRMeshSphere.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; - E4C454B7167BD235003586CD /* KRHitInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KRHitInfo.h; sourceTree = ""; }; - E4C454BA167BD248003586CD /* KRHitInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KRHitInfo.cpp; sourceTree = ""; }; + E4C454B7167BD235003586CD /* HitInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HitInfo.h; sourceTree = ""; }; + E4C454BA167BD248003586CD /* HitInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitInfo.cpp; sourceTree = ""; }; E4C8E4E416B9B2D50031DDCB /* kraken_standard_assets_ios.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kraken_standard_assets_ios.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; E4C8E4E816B9B2D50031DDCB /* Resources-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Resources-Info.plist"; sourceTree = ""; }; E4C8E4F416B9B2E20031DDCB /* kraken_standard_assets_osx.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kraken_standard_assets_osx.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1459,8 +1459,8 @@ E46DBE841512B9E200D59F86 /* KREngine-common.h */, E491017213C99BDC0098455B /* KREngine.h */, E491016F13C99BDC0098455B /* KREngine.mm */, - E4C454BA167BD248003586CD /* KRHitInfo.cpp */, - E4C454B7167BD235003586CD /* KRHitInfo.h */, + E4C454BA167BD248003586CD /* HitInfo.cpp */, + E4C454B7167BD235003586CD /* HitInfo.h */, E4924C2415EE95E700B965C6 /* KROctree.cpp */, E4924C2515EE95E800B965C6 /* KROctree.h */, E4924C2915EE96AA00B965C6 /* KROctreeNode.cpp */, @@ -1698,7 +1698,7 @@ E423D7231BEDEE2D0021812E /* KRDataBlock.h in Headers */, E423D7241BEDEE2D0021812E /* KREngine-common.h in Headers */, E423D7251BEDEE2D0021812E /* KREngine.h in Headers */, - E423D7261BEDEE2D0021812E /* KRHitInfo.h in Headers */, + E423D7261BEDEE2D0021812E /* HitInfo.h in Headers */, E423D7271BEDEE2D0021812E /* KROctree.h in Headers */, E423D7281BEDEE2D0021812E /* KROctreeNode.h in Headers */, E423D7291BEDEE2D0021812E /* KRRenderSettings.h in Headers */, @@ -1781,7 +1781,7 @@ E4159B8419C5760800622D1E /* KRDataBlock.h in Headers */, E4159B8519C5760800622D1E /* KREngine-common.h in Headers */, E4159B8619C5760800622D1E /* KREngine.h in Headers */, - E4159B8719C5760800622D1E /* KRHitInfo.h in Headers */, + E4159B8719C5760800622D1E /* HitInfo.h in Headers */, E4159B8819C5760800622D1E /* KROctree.h in Headers */, E4159B8919C5760800622D1E /* KROctreeNode.h in Headers */, E4159B8A19C5760900622D1E /* KRRenderSettings.h in Headers */, @@ -1845,7 +1845,7 @@ E4CA11751639CBD6005D9400 /* KRViewport.h in Headers */, E461A15D152E563100F2044A /* KRDirectionalLight.h in Headers */, E461A169152E570700F2044A /* KRSpotLight.h in Headers */, - E4C454B9167BD236003586CD /* KRHitInfo.h in Headers */, + E4C454B9167BD236003586CD /* HitInfo.h in Headers */, E4324BA516444C0D0043185B /* KRParticleSystem.h in Headers */, E4324BAC16444DEF0043185B /* KRParticleSystemNewtonian.h in Headers */, E4C454AD167BB8EC003586CD /* KRMeshCube.h in Headers */, @@ -2262,7 +2262,7 @@ E423D6D11BEDEE2D0021812E /* KRContextObject.cpp in Sources */, E423D6D21BEDEE2D0021812E /* KRDataBlock.cpp in Sources */, E423D6D31BEDEE2D0021812E /* KREngine.mm in Sources */, - E423D6D41BEDEE2D0021812E /* KRHitInfo.cpp in Sources */, + E423D6D41BEDEE2D0021812E /* HitInfo.cpp in Sources */, E423D6D51BEDEE2D0021812E /* KROctree.cpp in Sources */, E423D6D61BEDEE2D0021812E /* KROctreeNode.cpp in Sources */, E423D6D71BEDEE2D0021812E /* KRRenderSettings.cpp in Sources */, @@ -2346,7 +2346,7 @@ E48A54FB1EFBB61C00C12516 /* KRDSP_vDSP.cpp in Sources */, E4159BCF19C5762F00622D1E /* KRDataBlock.cpp in Sources */, E4159BD019C5762F00622D1E /* KREngine.mm in Sources */, - E4159BD119C5762F00622D1E /* KRHitInfo.cpp in Sources */, + E4159BD119C5762F00622D1E /* HitInfo.cpp in Sources */, E4159BD219C5762F00622D1E /* KROctree.cpp in Sources */, E4159BD319C5762F00622D1E /* KROctreeNode.cpp in Sources */, E4159BD419C5762F00622D1E /* KRRenderSettings.cpp in Sources */, @@ -2431,7 +2431,7 @@ E43F70E61824D9AB00136169 /* KRStreamer.mm in Sources */, E4C454B0167BB8FC003586CD /* KRMeshCube.cpp in Sources */, E4C454B6167BC05C003586CD /* KRMeshSphere.cpp in Sources */, - E4C454BC167BD248003586CD /* KRHitInfo.cpp in Sources */, + E4C454BC167BD248003586CD /* HitInfo.cpp in Sources */, E44F38291683B24800399B5D /* KRRenderSettings.cpp in Sources */, E414F9A71694D977000B3D58 /* KRUnknownManager.cpp in Sources */, E414F9AD1694DA37000B3D58 /* KRUnknown.cpp in Sources */, diff --git a/kraken/CMakeLists.txt b/kraken/CMakeLists.txt index 05d0a68..3f62459 100644 --- a/kraken/CMakeLists.txt +++ b/kraken/CMakeLists.txt @@ -13,4 +13,13 @@ add_sources(aabb.cpp) add_sources(hitinfo.cpp) # Private Implementation +add_sources(KRAmbientZone.cpp) +add_sources(KRAnimation.cpp) +add_sources(KRAnimationAttribute.cpp) +add_sources(KRAnimationCurve.cpp) +add_sources(KRAnimationCurveManager.cpp) +add_sources(KRAnimationLayer.cpp) +add_sources(KRAnimationManager.cpp) +add_sources(KRAudioBuffer.cpp) +add_sources(KRAudioManager.cpp) add_sources(KRDataBlock.cpp) diff --git a/kraken/KRAnimationAttribute.cpp b/kraken/KRAnimationAttribute.cpp index f2ecebe..3ae0952 100755 --- a/kraken/KRAnimationAttribute.cpp +++ b/kraken/KRAnimationAttribute.cpp @@ -140,6 +140,9 @@ tinyxml2::XMLElement *KRAnimationAttribute::saveXML( tinyxml2::XMLNode *parent) case KRNode::KRENGINE_NODE_SCALE_OFFSET_Z: szAttribute = "scale_offset_z"; break; + case KRNode::KRENGINE_NODE_ATTRIBUTE_COUNT: + // Suppress warning + break; } e->SetAttribute("attribute", szAttribute); diff --git a/kraken/KRAudioManager.cpp b/kraken/KRAudioManager.cpp index 879bcbd..8634529 100755 --- a/kraken/KRAudioManager.cpp +++ b/kraken/KRAudioManager.cpp @@ -144,8 +144,8 @@ void KRAudioManager::setListenerScene(KRScene *scene) void KRAudioManager::renderAudio(UInt32 inNumberFrames, AudioBufferList *ioData) { // uint64_t start_time = mach_absolute_time(); - AudioUnitSampleType *outA = (AudioUnitSampleType *)ioData->mBuffers[0].mData; - AudioUnitSampleType *outB = (AudioUnitSampleType *)ioData->mBuffers[1].mData; // Non-Interleaved only + Float32 *outA = (Float32 *)ioData->mBuffers[0].mData; + Float32 *outB = (Float32 *)ioData->mBuffers[1].mData; // Non-Interleaved only int output_frame = 0; @@ -168,16 +168,6 @@ void KRAudioManager::renderAudio(UInt32 inNumberFrames, AudioBufferList *ioData) float right_channel = block_data[m_output_sample * KRENGINE_MAX_OUTPUT_CHANNELS + 1]; m_output_sample++; -#if CA_PREFER_FIXED_POINT - // Interleaved - // outA[i*2] = (SInt16)(left_channel * 32767.0f); - // outA[i*2 + 1] = (SInt16)(right_channel * 32767.0f); - - // Non-Interleaved - outA[output_frame] = (SInt32)(left_channel * 0x1000000f); - outB[output_frame] = (SInt32)(right_channel * 0x1000000f); -#else - // Interleaved // outA[i*2] = (Float32)left_channel; // outA[i*2 + 1] = (Float32)right_channel; @@ -185,7 +175,6 @@ void KRAudioManager::renderAudio(UInt32 inNumberFrames, AudioBufferList *ioData) // Non-Interleaved outA[output_frame] = (Float32)left_channel; outB[output_frame] = (Float32)right_channel; -#endif output_frame++; } } @@ -417,18 +406,14 @@ OSStatus KRAudioManager::renderInput(void *inRefCon, AudioUnitRenderActionFlags void KRSetAUCanonical(AudioStreamBasicDescription &desc, UInt32 nChannels, bool interleaved) { desc.mFormatID = kAudioFormatLinearPCM; -#if CA_PREFER_FIXED_POINT - desc.mFormatFlags = kAudioFormatFlagsCanonical | (kAudioUnitSampleFractionBits << kLinearPCMFormatFlagsSampleFractionShift); -#else - desc.mFormatFlags = kAudioFormatFlagsCanonical; -#endif + desc.mFormatFlags = kAudioFormatFlagsNativeFloatPacked; desc.mChannelsPerFrame = nChannels; desc.mFramesPerPacket = 1; - desc.mBitsPerChannel = 8 * sizeof(AudioUnitSampleType); + desc.mBitsPerChannel = 8 * sizeof(Float32); if (interleaved) - desc.mBytesPerPacket = desc.mBytesPerFrame = nChannels * sizeof(AudioUnitSampleType); + desc.mBytesPerPacket = desc.mBytesPerFrame = nChannels * sizeof(Float32); else { - desc.mBytesPerPacket = desc.mBytesPerFrame = sizeof(AudioUnitSampleType); + desc.mBytesPerPacket = desc.mBytesPerFrame = sizeof(Float32); desc.mFormatFlags |= kAudioFormatFlagIsNonInterleaved; } } @@ -1128,8 +1113,6 @@ void KRAudioManager::initAudio() &size)); // ---- - // AUCanonical on the iPhone is the 8.24 integer format that is native to the iPhone. - KRSetAUCanonical(desc, 2, false); desc.mSampleRate = 44100.0f; @@ -1487,7 +1470,7 @@ void KRAudioManager::startFrame(float deltaTime) if(source->getEnableOcclusion() && /* FINDME!! DISABLES CODE */ (false)) { - KRHitInfo hitinfo; + HitInfo hitinfo; if(source->getScene().lineCast(m_listener_position, source_world_position, hitinfo, KRAKEN_COLLIDER_AUDIO)) { gain = 0.0f; } @@ -1709,23 +1692,13 @@ void KRAudioManager::renderITD() // Get a pointer to the dataBuffer of the AudioBufferList - AudioUnitSampleType *outA = (AudioUnitSampleType *)ioData->mBuffers[0].mData; - AudioUnitSampleType *outB = (AudioUnitSampleType *)ioData->mBuffers[1].mData; // Non-Interleaved only + Float32 *outA = (Float32 *)ioData->mBuffers[0].mData; + Float32 *outB = (Float32 *)ioData->mBuffers[1].mData; // Non-Interleaved only // ----====---- Zero out accumulation / output buffer ----====---- for (UInt32 i = 0; i < inNumberFrames; ++i) { - #if CA_PREFER_FIXED_POINT - // Interleaved - // outA[i*2] = (SInt16)(left_channel * 32767.0f); - // outA[i*2 + 1] = (SInt16)(right_channel * 32767.0f); - - // Non-Interleaved - outA[i] = (SInt32)(0x1000000f); - outB[i] = (SInt32)(0x1000000f); - #else - // Interleaved // outA[i*2] = (Float32)left_channel; // outA[i*2 + 1] = (Float32)right_channel; @@ -1733,7 +1706,6 @@ void KRAudioManager::renderITD() // Non-Interleaved outA[i] = (Float32)0.0f; outB[i] = (Float32)0.0f; - #endif } // ----====---- Render direct / HRTF audio ----====---- @@ -1768,16 +1740,6 @@ void KRAudioManager::renderITD() // left_channel = 0.0f; // right_channel = 0.0f; - #if CA_PREFER_FIXED_POINT - // Interleaved - // outA[i*2] = (SInt16)(left_channel * 32767.0f); - // outA[i*2 + 1] = (SInt16)(right_channel * 32767.0f); - - // Non-Interleaved - outA[i] += (SInt32)(left_channel * 0x1000000f); - outB[i] += (SInt32)(right_channel * 0x1000000f); - #else - // Interleaved // outA[i*2] = (Float32)left_channel; // outA[i*2 + 1] = (Float32)right_channel; @@ -1785,7 +1747,6 @@ void KRAudioManager::renderITD() // Non-Interleaved outA[i] += (Float32)left_channel; outB[i] += (Float32)right_channel; - #endif sample_frame++; } } diff --git a/kraken/KRCollider.cpp b/kraken/KRCollider.cpp index db28abe..bebcd70 100755 --- a/kraken/KRCollider.cpp +++ b/kraken/KRCollider.cpp @@ -92,7 +92,7 @@ AABB KRCollider::getBounds() { } } -bool KRCollider::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRCollider::lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask) { if(layer_mask & m_layer_mask ) { // Only test if layer masks have a common bit set loadModel(); @@ -100,15 +100,15 @@ bool KRCollider::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitin if(getBounds().intersectsLine(v0, v1)) { Vector3 v0_model_space = Matrix4::Dot(getInverseModelMatrix(), v0); Vector3 v1_model_space = Matrix4::Dot(getInverseModelMatrix(), v1); - KRHitInfo hitinfo_model_space; + HitInfo hitinfo_model_space; if(hitinfo.didHit()) { Vector3 hit_position_model_space = Matrix4::Dot(getInverseModelMatrix(), hitinfo.getPosition()); - hitinfo_model_space = KRHitInfo(hit_position_model_space, Matrix4::DotNoTranslate(getInverseModelMatrix(), hitinfo.getNormal()), (hit_position_model_space - v0_model_space).magnitude(), hitinfo.getNode()); + hitinfo_model_space = HitInfo(hit_position_model_space, Matrix4::DotNoTranslate(getInverseModelMatrix(), hitinfo.getNormal()), (hit_position_model_space - v0_model_space).magnitude(), hitinfo.getNode()); } if(m_models[0]->lineCast(v0_model_space, v1_model_space, hitinfo_model_space)) { Vector3 hit_position_world_space = Matrix4::Dot(getModelMatrix(), hitinfo_model_space.getPosition()); - hitinfo = KRHitInfo(hit_position_world_space, Vector3::Normalize(Matrix4::DotNoTranslate(getModelMatrix(), hitinfo_model_space.getNormal())), (hit_position_world_space - v0).magnitude(), this); + hitinfo = HitInfo(hit_position_world_space, Vector3::Normalize(Matrix4::DotNoTranslate(getModelMatrix(), hitinfo_model_space.getNormal())), (hit_position_world_space - v0).magnitude(), this); return true; } } @@ -117,7 +117,7 @@ bool KRCollider::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitin return false; } -bool KRCollider::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRCollider::rayCast(const Vector3 &v0, const Vector3 &dir, HitInfo &hitinfo, unsigned int layer_mask) { if(layer_mask & m_layer_mask) { // Only test if layer masks have a common bit set loadModel(); @@ -125,15 +125,15 @@ bool KRCollider::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitin if(getBounds().intersectsRay(v0, dir)) { Vector3 v0_model_space = Matrix4::Dot(getInverseModelMatrix(), v0); Vector3 dir_model_space = Vector3::Normalize(Matrix4::DotNoTranslate(getInverseModelMatrix(), dir)); - KRHitInfo hitinfo_model_space; + HitInfo hitinfo_model_space; if(hitinfo.didHit()) { Vector3 hit_position_model_space = Matrix4::Dot(getInverseModelMatrix(), hitinfo.getPosition()); - hitinfo_model_space = KRHitInfo(hit_position_model_space, Vector3::Normalize(Matrix4::DotNoTranslate(getInverseModelMatrix(), hitinfo.getNormal())), (hit_position_model_space - v0_model_space).magnitude(), hitinfo.getNode()); + hitinfo_model_space = HitInfo(hit_position_model_space, Vector3::Normalize(Matrix4::DotNoTranslate(getInverseModelMatrix(), hitinfo.getNormal())), (hit_position_model_space - v0_model_space).magnitude(), hitinfo.getNode()); } if(m_models[0]->rayCast(v0_model_space, dir_model_space, hitinfo_model_space)) { Vector3 hit_position_world_space = Matrix4::Dot(getModelMatrix(), hitinfo_model_space.getPosition()); - hitinfo = KRHitInfo(hit_position_world_space, Vector3::Normalize(Matrix4::DotNoTranslate(getModelMatrix(), hitinfo_model_space.getNormal())), (hit_position_world_space - v0).magnitude(), this); + hitinfo = HitInfo(hit_position_world_space, Vector3::Normalize(Matrix4::DotNoTranslate(getModelMatrix(), hitinfo_model_space.getNormal())), (hit_position_world_space - v0).magnitude(), this); return true; } } @@ -142,7 +142,7 @@ bool KRCollider::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitin return false; } -bool KRCollider::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRCollider::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo, unsigned int layer_mask) { if(layer_mask & m_layer_mask) { // Only test if layer masks have a common bit set loadModel(); @@ -154,7 +154,7 @@ bool KRCollider::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, if(getBounds().intersects(sphereCastBounds)) { if(m_models[0]->sphereCast(getModelMatrix(), v0, v1, radius, hitinfo)) { - hitinfo = KRHitInfo(hitinfo.getPosition(), hitinfo.getNormal(), hitinfo.getDistance(), this); + hitinfo = HitInfo(hitinfo.getPosition(), hitinfo.getNormal(), hitinfo.getDistance(), this); return true; } } diff --git a/kraken/KRCollider.h b/kraken/KRCollider.h index 835f630..0292ff1 100755 --- a/kraken/KRCollider.h +++ b/kraken/KRCollider.h @@ -57,9 +57,9 @@ public: virtual void loadXML(tinyxml2::XMLElement *e); virtual AABB getBounds(); - bool lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask); - bool rayCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask); - bool sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo, unsigned int layer_mask); + bool lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask); + bool rayCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask); + bool sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo, unsigned int layer_mask); unsigned int getLayerMask(); void setLayerMask(unsigned int layer_mask); diff --git a/kraken/KRMesh.cpp b/kraken/KRMesh.cpp index 6a0a398..3ba28bc 100755 --- a/kraken/KRMesh.cpp +++ b/kraken/KRMesh.cpp @@ -1104,7 +1104,7 @@ KRMesh::model_format_t KRMesh::getModelFormat() const return f; } -bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, const Triangle3 &tri, const Vector3 &tri_n0, const Vector3 &tri_n1, const Vector3 &tri_n2, KRHitInfo &hitinfo) +bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, const Triangle3 &tri, const Vector3 &tri_n0, const Vector3 &tri_n1, const Vector3 &tri_n2, HitInfo &hitinfo) { Vector3 hit_point; if(tri.rayCast(start, dir, hit_point)) { @@ -1124,7 +1124,7 @@ bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, const Triangle3 & distance_v2 /= distance_total; Vector3 normal = Vector3::Normalize(tri_n0 * (1.0 - distance_v0) + tri_n1 * (1.0 - distance_v1) + tri_n2 * (1.0 - distance_v2)); - hitinfo = KRHitInfo(hit_point, normal, new_hit_distance); + hitinfo = HitInfo(hit_point, normal, new_hit_distance); return true; } else { return false; // The hit was farther than an existing hit @@ -1138,7 +1138,7 @@ bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, const Triangle3 & } -bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, KRHitInfo &hitinfo) const +bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, HitInfo &hitinfo) const { m_pData->lock(); bool hit_found = false; @@ -1184,7 +1184,7 @@ bool KRMesh::rayCast(const Vector3 &start, const Vector3 &dir, KRHitInfo &hitinf } -bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo) const +bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo) const { m_pData->lock(); @@ -1236,7 +1236,7 @@ bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const return hit_found; } -bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const Vector3 &v1, float radius, const Triangle3 &tri, KRHitInfo &hitinfo) +bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const Vector3 &v1, float radius, const Triangle3 &tri, HitInfo &hitinfo) { Vector3 dir = Vector3::Normalize(v1 - v0); @@ -1261,7 +1261,7 @@ bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const distance_v2 /= distance_total; Vector3 normal = Vector3::Normalize(Matrix4::DotNoTranslate(model_to_world, (tri_n0 * (1.0 - distance_v0) + tri_n1 * (1.0 - distance_v1) + tri_n2 * (1.0 - distance_v2)))); */ - hitinfo = KRHitInfo(new_hit_point, world_tri.calculateNormal(), new_hit_distance); + hitinfo = HitInfo(new_hit_point, world_tri.calculateNormal(), new_hit_distance); return true; } } @@ -1269,10 +1269,10 @@ bool KRMesh::sphereCast(const Matrix4 &model_to_world, const Vector3 &v0, const return false; } -bool KRMesh::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo) const +bool KRMesh::lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo) const { m_pData->lock(); - KRHitInfo new_hitinfo; + HitInfo new_hitinfo; Vector3 dir = Vector3::Normalize(v1 - v0); if(rayCast(v0, dir, new_hitinfo)) { if((new_hitinfo.getPosition() - v0).sqrMagnitude() <= (v1 - v0).sqrMagnitude()) { diff --git a/kraken/KROctree.cpp b/kraken/KROctree.cpp index 8d95449..8d0c65b 100755 --- a/kraken/KROctree.cpp +++ b/kraken/KROctree.cpp @@ -8,7 +8,7 @@ #include "KROctree.h" #include "KRNode.h" -#include "KRHitInfo.h" +#include "HitInfo.h" #include "KRCollider.h" KROctree::KROctree() @@ -97,7 +97,7 @@ std::set &KROctree::getOuterSceneNodes() } -bool KROctree::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctree::lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; std::vector outer_colliders; @@ -118,7 +118,7 @@ bool KROctree::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo return hit_found; } -bool KROctree::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctree::rayCast(const Vector3 &v0, const Vector3 &dir, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; for(std::set::iterator outer_nodes_itr=m_outerSceneNodes.begin(); outer_nodes_itr != m_outerSceneNodes.end(); outer_nodes_itr++) { @@ -133,7 +133,7 @@ bool KROctree::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitinfo return hit_found; } -bool KROctree::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctree::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; std::vector outer_colliders; diff --git a/kraken/KROctreeNode.cpp b/kraken/KROctreeNode.cpp index 03a8e80..915834e 100755 --- a/kraken/KROctreeNode.cpp +++ b/kraken/KROctreeNode.cpp @@ -196,7 +196,7 @@ std::set &KROctreeNode::getSceneNodes() } -bool KROctreeNode::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctreeNode::lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; if(hitinfo.didHit() && v1 != hitinfo.getPosition()) { @@ -224,7 +224,7 @@ bool KROctreeNode::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hit return hit_found; } -bool KROctreeNode::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctreeNode::rayCast(const Vector3 &v0, const Vector3 &dir, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; if(hitinfo.didHit()) { @@ -252,7 +252,7 @@ bool KROctreeNode::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hit return hit_found; } -bool KROctreeNode::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KROctreeNode::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo, unsigned int layer_mask) { bool hit_found = false; /* diff --git a/kraken/KRScene.cpp b/kraken/KRScene.cpp index 0872ccf..0d9c37c 100755 --- a/kraken/KRScene.cpp +++ b/kraken/KRScene.cpp @@ -579,17 +579,17 @@ AABB KRScene::getRootOctreeBounds() } -bool KRScene::lineCast(const Vector3 &v0, const Vector3 &v1, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRScene::lineCast(const Vector3 &v0, const Vector3 &v1, HitInfo &hitinfo, unsigned int layer_mask) { return m_nodeTree.lineCast(v0, v1, hitinfo, layer_mask); } -bool KRScene::rayCast(const Vector3 &v0, const Vector3 &dir, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRScene::rayCast(const Vector3 &v0, const Vector3 &dir, HitInfo &hitinfo, unsigned int layer_mask) { return m_nodeTree.rayCast(v0, dir, hitinfo, layer_mask); } -bool KRScene::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, KRHitInfo &hitinfo, unsigned int layer_mask) +bool KRScene::sphereCast(const Vector3 &v0, const Vector3 &v1, float radius, HitInfo &hitinfo, unsigned int layer_mask) { return m_nodeTree.sphereCast(v0, v1, radius, hitinfo, layer_mask); } diff --git a/kraken/public/hitinfo.h b/kraken/public/hitinfo.h index 1565900..91f7785 100755 --- a/kraken/public/hitinfo.h +++ b/kraken/public/hitinfo.h @@ -1,5 +1,5 @@ // -// KRHitInfo.h +// hitinfo.h // KREngine // // Copyright 2012 Kearwood Gilbert. All rights reserved. diff --git a/kraken_win/kraken.vcxproj b/kraken_win/kraken.vcxproj index 6e7707d..68277c8 100755 --- a/kraken_win/kraken.vcxproj +++ b/kraken_win/kraken.vcxproj @@ -151,7 +151,7 @@ - + @@ -229,7 +229,7 @@ - + diff --git a/kraken_win/kraken.vcxproj.filters b/kraken_win/kraken.vcxproj.filters index 8974a5f..2b83751 100755 --- a/kraken_win/kraken.vcxproj.filters +++ b/kraken_win/kraken.vcxproj.filters @@ -102,7 +102,7 @@ Source Files - + Source Files @@ -335,7 +335,7 @@ Header Files - + Header Files