From 93b6c250e2141f8e87543bc8bb763046f26ffbc5 Mon Sep 17 00:00:00 2001 From: Philipp Reist Date: Thu, 23 Feb 2023 12:11:51 +0100 Subject: [PATCH] Blast SDK 5.0.0 - PhysX SDK 5.1.3 (32494398) --- README.md | 2 +- blast/PACKAGE-LICENSES/blast-sdk-LICENSE.md | 2 +- blast/VERSION.md | 2 +- blast/deps/target-deps.packman.xml | 6 - blast/docs/CHANGELOG.md | 13 + .../assetutils/NvBlastExtAssetUtils.h | 10 +- .../authoring/NvBlastExtAuthoring.h | 52 +- .../NvBlastExtAuthoringBondGenerator.h | 2 +- .../NvBlastExtAuthoringBooleanTool.h | 2 +- .../authoring/NvBlastExtAuthoringCutout.h | 2 +- .../NvBlastExtAuthoringFractureTool.h | 2 +- .../NvBlastExtAuthoringMeshCleaner.h | 2 +- .../NvBlastExtAuthoringAccelerator.h | 2 +- .../NvBlastExtAuthoringConvexMeshBuilder.h | 3 +- .../authoringCommon/NvBlastExtAuthoringMesh.h | 2 +- .../NvBlastExtAuthoringPatternGenerator.h | 4 +- .../NvBlastExtAuthoringTypes.h | 2 +- .../serialization/NvBlastExtLlSerialization.h | 12 +- .../serialization/NvBlastExtSerialization.h | 4 +- .../serialization/NvBlastExtTkSerialization.h | 6 +- .../shaders/NvBlastExtDamageShaders.h | 28 +- .../stress/NvBlastExtStressSolver.h | 4 +- blast/include/globals/NvBlastAllocator.h | 7 +- blast/include/globals/NvBlastDebugRender.h | 2 +- blast/include/globals/NvBlastGlobals.h | 182 +- blast/include/globals/NvCMath.h | 2 +- blast/include/lowlevel/NvBlast.h | 130 +- blast/include/lowlevel/NvBlastTypes.h | 4 +- blast/include/shared/NvFoundation/Nv.h | 88 + .../shared/NvFoundation/NvAllocatorCallback.h | 94 + blast/include/shared/NvFoundation/NvAssert.h | 96 + blast/include/shared/NvFoundation/NvBounds3.h | 479 +++ .../NvFoundation}/NvCTypes.h | 12 +- .../NvFoundation/NvErrorCallback.h} | 96 +- blast/include/shared/NvFoundation/NvErrors.h | 92 + blast/include/shared/NvFoundation/NvFlags.h | 374 ++ blast/include/shared/NvFoundation/NvIO.h | 137 + .../shared/NvFoundation/NvIntrinsics.h | 52 + blast/include/shared/NvFoundation/NvMat33.h | 391 ++ blast/include/shared/NvFoundation/NvMat44.h | 375 ++ blast/include/shared/NvFoundation/NvMath.h | 337 ++ blast/include/shared/NvFoundation/NvPlane.h | 144 + .../NvFoundation}/NvPreprocessor.h | 21 +- .../include/shared/NvFoundation/NvProfiler.h | 141 + blast/include/shared/NvFoundation/NvQuat.h | 405 ++ .../shared/NvFoundation/NvSimpleTypes.h | 71 + .../include/shared/NvFoundation/NvTransform.h | 214 + blast/include/shared/NvFoundation/NvVec2.h | 346 ++ blast/include/shared/NvFoundation/NvVec3.h | 392 ++ blast/include/shared/NvFoundation/NvVec4.h | 375 ++ .../platform/unix/NvUnixIntrinsics.h | 173 + .../platform/windows/NvWindowsIntrinsics.h | 187 + blast/include/toolkit/NvBlastTk.h | 2 +- blast/include/toolkit/NvBlastTkActor.h | 2 +- blast/include/toolkit/NvBlastTkAsset.h | 6 +- blast/include/toolkit/NvBlastTkEvent.h | 2 +- blast/include/toolkit/NvBlastTkFamily.h | 2 +- blast/include/toolkit/NvBlastTkFramework.h | 19 +- blast/include/toolkit/NvBlastTkGroup.h | 2 +- .../NvBlastTkGroupTaskManager.h} | 28 +- blast/include/toolkit/NvBlastTkIdentifiable.h | 2 +- blast/include/toolkit/NvBlastTkJoint.h | 6 +- blast/include/toolkit/NvBlastTkObject.h | 2 +- blast/include/toolkit/NvBlastTkType.h | 2 +- blast/premake5.lua | 84 +- blast/repo.toml | 195 - blast/source/sdk/common/NvBlastArray.h | 12 +- blast/source/sdk/common/NvBlastAssert.cpp | 2 +- blast/source/sdk/common/NvBlastAssert.h | 6 +- blast/source/sdk/common/NvBlastAtomic.cpp | 2 +- blast/source/sdk/common/NvBlastAtomic.h | 2 +- blast/source/sdk/common/NvBlastDLink.h | 2 +- blast/source/sdk/common/NvBlastFixedArray.h | 2 +- blast/source/sdk/common/NvBlastFixedBitmap.h | 2 +- .../source/sdk/common/NvBlastFixedBoolArray.h | 2 +- .../sdk/common/NvBlastFixedPriorityQueue.h | 2 +- blast/source/sdk/common/NvBlastFixedQueue.h | 2 +- blast/source/sdk/common/NvBlastGeometry.h | 2 +- blast/source/sdk/common/NvBlastHashMap.h | 10 +- blast/source/sdk/common/NvBlastHashSet.h | 10 +- .../source/sdk/common/NvBlastIncludeWindows.h | 4 +- blast/source/sdk/common/NvBlastIndexFns.h | 2 +- blast/source/sdk/common/NvBlastIteratorBase.h | 2 +- blast/source/sdk/common/NvBlastMath.h | 2 +- blast/source/sdk/common/NvBlastMemory.h | 5 +- ...aredHelpers.h => NvBlastNvSharedHelpers.h} | 149 +- .../sdk/common/NvBlastPreprocessorInternal.h | 2 +- blast/source/sdk/common/NvBlastTime.cpp | 2 +- blast/source/sdk/common/NvBlastTime.h | 2 +- blast/source/sdk/common/NvBlastTimers.cpp | 2 +- .../sdk/common/NvBlastVolumeIntegrals.h | 4 +- .../assetutils/NvBlastExtAssetUtils.cpp | 2 +- .../authoring/NvBlastExtApexSharedParts.cpp | 162 +- .../authoring/NvBlastExtApexSharedParts.h | 22 +- .../authoring/NvBlastExtAuthoring.cpp | 40 +- .../NvBlastExtAuthoringBondGeneratorImpl.cpp | 254 +- .../NvBlastExtAuthoringBondGeneratorImpl.h | 16 +- .../NvBlastExtAuthoringBooleanToolImpl.cpp | 22 +- .../NvBlastExtAuthoringBooleanToolImpl.h | 2 +- ...vBlastExtAuthoringCollisionBuilderImpl.cpp | 70 +- .../NvBlastExtAuthoringCollisionBuilderImpl.h | 2 +- .../NvBlastExtAuthoringCutoutImpl.cpp | 256 +- .../authoring/NvBlastExtAuthoringCutoutImpl.h | 18 +- .../NvBlastExtAuthoringFractureToolImpl.cpp | 170 +- .../NvBlastExtAuthoringFractureToolImpl.h | 2 +- .../NvBlastExtAuthoringMeshCleanerImpl.cpp | 54 +- .../NvBlastExtAuthoringMeshCleanerImpl.h | 2 +- .../NvBlastExtAuthoringMeshNoiser.cpp | 78 +- .../authoring/NvBlastExtAuthoringMeshNoiser.h | 6 +- .../NvBlastExtAuthoringMeshUtils.cpp | 254 +- .../authoring/NvBlastExtAuthoringMeshUtils.h | 24 +- ...vBlastExtAuthoringPatternGeneratorImpl.cpp | 18 +- .../NvBlastExtAuthoringPatternGeneratorImpl.h | 2 +- .../NvBlastExtAuthoringPerlinNoise.h | 36 +- .../NvBlastExtAuthoringTriangulator.cpp | 88 +- .../NvBlastExtAuthoringTriangulator.h | 2 +- .../authoring/NvBlastExtAuthoringVSA.h | 2 +- .../authoring/NvBlastExtTriangleProcessor.cpp | 96 +- .../authoring/NvBlastExtTriangleProcessor.h | 30 +- .../NvBlastExtAuthoringAcceleratorImpl.cpp | 52 +- .../NvBlastExtAuthoringAcceleratorImpl.h | 2 +- .../NvBlastExtAuthoringInternalCommon.h | 50 +- .../NvBlastExtAuthoringMeshImpl.cpp | 18 +- .../NvBlastExtAuthoringMeshImpl.h | 8 +- .../extensions/serialization/DTO/ActorDTO.cpp | 2 +- .../extensions/serialization/DTO/ActorDTO.h | 2 +- .../extensions/serialization/DTO/AssetDTO.cpp | 2 +- .../extensions/serialization/DTO/AssetDTO.h | 2 +- .../extensions/serialization/DTO/DTOMacros.h | 2 +- .../serialization/DTO/FamilyDTO.cpp | 2 +- .../extensions/serialization/DTO/FamilyDTO.h | 2 +- .../serialization/DTO/FamilyGraphDTO.cpp | 2 +- .../serialization/DTO/FamilyGraphDTO.h | 2 +- .../serialization/DTO/NvBlastBondDTO.cpp | 2 +- .../serialization/DTO/NvBlastBondDTO.h | 2 +- .../serialization/DTO/NvBlastChunkDTO.cpp | 2 +- .../serialization/DTO/NvBlastChunkDTO.h | 2 +- .../serialization/DTO/NvBlastIDDTO.cpp | 2 +- .../serialization/DTO/NvBlastIDDTO.h | 2 +- .../serialization/DTO/NvVec3DTO.cpp | 64 + .../extensions/serialization/DTO/NvVec3DTO.h} | 21 +- .../DTO/PxConvexMeshGeometryDTO.cpp | 4 +- .../DTO/PxConvexMeshGeometryDTO.h | 2 +- .../serialization/DTO/PxMeshScaleDTO.cpp | 2 +- .../serialization/DTO/PxMeshScaleDTO.h | 2 +- .../serialization/DTO/PxQuatDTO.cpp | 2 +- .../extensions/serialization/DTO/PxQuatDTO.h | 4 +- .../serialization/DTO/PxTransformDTO.cpp | 2 +- .../serialization/DTO/PxTransformDTO.h | 4 +- .../serialization/DTO/PxVec3DTO.cpp | 2 +- .../extensions/serialization/DTO/PxVec3DTO.h | 4 +- .../serialization/DTO/TkAssetDTO.cpp | 2 +- .../extensions/serialization/DTO/TkAssetDTO.h | 2 +- .../serialization/DTO/TkAssetJointDescDTO.cpp | 10 +- .../serialization/DTO/TkAssetJointDescDTO.h | 2 +- .../serialization/NvBlastExtInputStream.cpp | 2 +- .../serialization/NvBlastExtInputStream.h | 2 +- .../NvBlastExtLlSerialization.cpp | 2 +- .../NvBlastExtLlSerializerCAPN.h | 2 +- .../serialization/NvBlastExtOutputStream.cpp | 2 +- .../serialization/NvBlastExtOutputStream.h | 2 +- .../serialization/NvBlastExtSerialization.cpp | 15 +- .../NvBlastExtSerializationCAPN.h | 2 +- .../NvBlastExtSerializationInternal.h | 4 +- .../NvBlastExtTkSerialization-capn | 4 +- .../NvBlastExtTkSerialization.cpp | 2 +- .../NvBlastExtTkSerializerCAPN.h | 2 +- .../NvBlastExtTkSerializerRAW.cpp | 2 +- .../serialization/NvBlastExtTkSerializerRAW.h | 2 +- .../NvBlastExtTkSerialization-capn.c++ | 34 +- .../NvBlastExtTkSerialization-capn.h | 74 +- .../NvBlastExtDamageAcceleratorAABBTree.cpp | 62 +- .../NvBlastExtDamageAcceleratorAABBTree.h | 26 +- .../NvBlastExtDamageAcceleratorInternal.h | 10 +- .../shaders/NvBlastExtDamageAccelerators.cpp | 2 +- .../shaders/NvBlastExtDamageShaders.cpp | 84 +- .../stress/NvBlastExtStressSolver.cpp | 151 +- blast/source/sdk/globals/NvBlastGlobals.cpp | 66 +- .../NvBlastInternalProfiler.cpp} | 100 +- ...erInternal.h => NvBlastInternalProfiler.h} | 72 +- blast/source/sdk/globals/NvBlastProfiler.cpp | 95 - blast/source/sdk/lowlevel/NvBlastActor.cpp | 2 +- blast/source/sdk/lowlevel/NvBlastActor.h | 2 +- .../NvBlastActorSerializationBlock.cpp | 2 +- .../lowlevel/NvBlastActorSerializationBlock.h | 2 +- blast/source/sdk/lowlevel/NvBlastAsset.cpp | 2 +- blast/source/sdk/lowlevel/NvBlastAsset.h | 4 +- .../sdk/lowlevel/NvBlastAssetHelper.cpp | 2 +- .../sdk/lowlevel/NvBlastChunkHierarchy.h | 2 +- blast/source/sdk/lowlevel/NvBlastFamily.cpp | 2 +- blast/source/sdk/lowlevel/NvBlastFamily.h | 4 +- .../sdk/lowlevel/NvBlastFamilyGraph.cpp | 2 +- .../source/sdk/lowlevel/NvBlastFamilyGraph.h | 2 +- .../source/sdk/lowlevel/NvBlastSupportGraph.h | 2 +- .../source/sdk/toolkit/NvBlastTkActorImpl.cpp | 4 +- blast/source/sdk/toolkit/NvBlastTkActorImpl.h | 6 +- .../source/sdk/toolkit/NvBlastTkAssetImpl.cpp | 4 +- blast/source/sdk/toolkit/NvBlastTkAssetImpl.h | 2 +- blast/source/sdk/toolkit/NvBlastTkCommon.h | 2 +- .../source/sdk/toolkit/NvBlastTkEventQueue.h | 2 +- .../sdk/toolkit/NvBlastTkFamilyImpl.cpp | 12 +- .../source/sdk/toolkit/NvBlastTkFamilyImpl.h | 4 +- .../sdk/toolkit/NvBlastTkFrameworkImpl.cpp | 6 +- .../sdk/toolkit/NvBlastTkFrameworkImpl.h | 4 +- blast/source/sdk/toolkit/NvBlastTkGUID.h | 8 +- .../source/sdk/toolkit/NvBlastTkGroupImpl.cpp | 4 +- blast/source/sdk/toolkit/NvBlastTkGroupImpl.h | 2 +- .../source/sdk/toolkit/NvBlastTkJointImpl.cpp | 2 +- blast/source/sdk/toolkit/NvBlastTkJointImpl.h | 2 +- .../NvBlastTkTask.cpp} | 28 +- .../NvBlastTkTask.h} | 52 +- .../source/sdk/toolkit/NvBlastTkTaskImpl.cpp | 2 +- blast/source/sdk/toolkit/NvBlastTkTaskImpl.h | 2 +- .../sdk/toolkit/NvBlastTkTaskManager.cpp | 580 +++ blast/source/sdk/toolkit/NvBlastTkTypeImpl.h | 2 +- .../NsFileBuffer/include/NsMemoryBuffer.h | 457 +++ .../shared/NsFileBuffer/include/NvFileBuf.h | 338 ++ blast/source/shared/NsFoundation/include/Ns.h | 69 + .../NsFoundation/include/NsAlignedMalloc.h | 86 + .../shared/NsFoundation/include/NsAllocator.h | 311 ++ .../shared/NsFoundation/include/NsAoS.h | 52 + .../shared/NsFoundation/include/NsArray.h | 800 ++++ .../NsFoundation/include/NsBasicTemplates.h | 145 + .../shared/NsFoundation/include/NsBitUtils.h | 108 + .../shared/NsFoundation/include/NsFPU.h | 141 + .../shared/NsFoundation/include/NsGlobals.h | 71 + .../shared/NsFoundation/include/NsHash.h | 161 + .../NsFoundation/include/NsHashInternals.h | 680 ++++ .../shared/NsFoundation/include/NsHashMap.h | 117 + .../shared/NsFoundation/include/NsHashSet.h | 126 + .../NsFoundation/include/NsInlineAllocator.h | 90 + .../shared/NsFoundation/include/NsInlineAoS.h | 54 + .../NsFoundation/include/NsInlineArray.h} | 71 +- .../NsFoundation/include/NsIntrinsics.h | 52 + .../NsFoundation/include/NsUserAllocated.h | 91 + .../shared/NsFoundation/include/NsVecMath.h | 1330 ++++++ .../NsFoundation/include/NsVecMathAoSScalar.h | 234 ++ .../include/NsVecMathAoSScalarInline.h | 2277 +++++++++++ .../shared/NsFoundation/include/NsVecQuat.h | 497 +++ .../shared/NsFoundation/include/NvUnionCast.h | 63 + .../include/platform/unix/NsUnixAoS.h | 47 + .../include/platform/unix/NsUnixFPU.h | 60 + .../include/platform/unix/NsUnixInlineAoS.h | 48 + .../include/platform/unix/NsUnixIntrinsics.h | 149 + .../platform/unix/NsUnixTrigConstants.h | 71 + .../platform/unix/neon/NsUnixNeonAoS.h | 138 + .../platform/unix/neon/NsUnixNeonInlineAoS.h | 3593 +++++++++++++++++ .../platform/unix/sse2/NsUnixSse2AoS.h | 183 + .../platform/unix/sse2/NsUnixSse2InlineAoS.h | 3194 +++++++++++++++ .../include/platform/windows/NsWindowsAoS.h | 139 + .../include/platform/windows/NsWindowsFPU.h | 50 + .../platform/windows/NsWindowsInlineAoS.h | 3244 +++++++++++++++ .../platform/windows/NsWindowsIntrinsics.h | 189 + .../platform/windows/NsWindowsTrigConstants.h | 74 + .../shared/NvTask/include/NvCpuDispatcher.h | 82 + .../shared/NvTask/include/NvGpuDispatcher.h | 269 ++ blast/source/shared/NvTask/include/NvTask.h | 363 ++ .../shared/NvTask/include/NvTaskDefine.h | 35 +- .../shared/NvTask/include/NvTaskManager.h | 235 ++ .../filebuf/include/PsAsciiConversion.h | 99 - .../filebuf/include/PsAsciiConversion.inl | 566 --- .../shared/filebuf/include/PsFileBuffer.h | 250 -- .../shared/filebuf/include/PsIOStream.h | 137 - .../shared/filebuf/include/PsIOStream.inl | 415 -- .../shared/filebuf/include/PsMemoryBuffer.h | 449 -- blast/source/shared/stress_solver/anglin6.h | 2 +- blast/source/shared/stress_solver/bond.h | 2 +- blast/source/shared/stress_solver/buffer.h | 2 +- blast/source/shared/stress_solver/coupling.h | 2 +- blast/source/shared/stress_solver/inertia.h | 2 +- blast/source/shared/stress_solver/math/cgnr.h | 2 +- blast/source/shared/stress_solver/simd/simd.h | 2 +- .../stress_solver/simd/simd_device_query.h | 2 +- .../shared/stress_solver/solver_types.h | 2 +- blast/source/shared/stress_solver/stress.cpp | 2 +- blast/source/shared/stress_solver/stress.h | 2 +- blast/source/shared/task/TaskManager.cpp | 456 --- blast/source/shared/utils/AssetGenerator.cpp | 2 +- blast/source/shared/utils/AssetGenerator.h | 2 +- blast/source/test/src/BlastBaseTest.h | 32 +- blast/source/test/src/TkBaseTest.h | 69 +- .../source/test/src/perf/BlastBasePerfTest.h | 2 +- .../source/test/src/perf/DamagePerfTests.cpp | 14 +- .../source/test/src/perf/SolverPerfTests.cpp | 2 +- blast/source/test/src/unit/APITests.cpp | 2 +- blast/source/test/src/unit/ActorTests.cpp | 2 +- blast/source/test/src/unit/AssetTests.cpp | 2 +- blast/source/test/src/unit/CoreTests.cpp | 2 +- .../source/test/src/unit/FamilyGraphTests.cpp | 2 +- .../test/src/unit/MultithreadingTests.cpp | 2 +- blast/source/test/src/unit/SyncTests.cpp | 2 +- .../source/test/src/unit/TkCompositeTests.cpp | 52 +- blast/source/test/src/unit/TkTests.cpp | 47 +- blast/source/test/src/utils/TaskDispatcher.h | 2 +- blast/source/test/src/utils/TestAssets.cpp | 2 +- blast/source/test/src/utils/TestAssets.h | 2 +- blast/source/test/src/utils/TestProfiler.h | 4 +- physx/CHANGELOG.md | 45 + physx/README.md | 2 +- physx/buildtools/cmake_generate_projects.py | 26 +- physx/buildtools/presets/public/vc17win64.xml | 15 + .../buildtools/templates/boilerplate_bsd.txt | 2 +- physx/compiler/public/CMakeLists.txt | 2 +- physx/dependencies.xml | 12 +- .../platformreadme/windows/README_WINDOWS.md | 2 +- physx/generate_projects.bat | 17 + physx/include/PxActor.h | 2 +- physx/include/PxActorData.h | 2 +- physx/include/PxAggregate.h | 2 +- physx/include/PxArticulationFlag.h | 2 +- .../PxArticulationJointReducedCoordinate.h | 2 +- physx/include/PxArticulationLink.h | 2 +- .../include/PxArticulationReducedCoordinate.h | 2 +- physx/include/PxArticulationTendon.h | 2 +- physx/include/PxArticulationTendonData.h | 2 +- physx/include/PxAttachment.h | 2 +- physx/include/PxBaseMaterial.h | 2 +- physx/include/PxBroadPhase.h | 2 +- physx/include/PxBuffer.h | 2 +- physx/include/PxClient.h | 2 +- physx/include/PxConeLimitedConstraint.h | 2 +- physx/include/PxConstraint.h | 2 +- physx/include/PxConstraintDesc.h | 2 +- physx/include/PxContact.h | 2 +- physx/include/PxContactModifyCallback.h | 2 +- .../PxCustomParticleSystemSolverCallback.h | 2 +- physx/include/PxDeletionListener.h | 2 +- physx/include/PxFEMClothFlags.h | 2 +- physx/include/PxFEMClothMaterial.h | 2 +- physx/include/PxFEMMaterial.h | 2 +- physx/include/PxFEMParameter.h | 2 +- physx/include/PxFEMSoftBodyMaterial.h | 2 +- physx/include/PxFLIPMaterial.h | 2 +- physx/include/PxFiltering.h | 2 +- physx/include/PxForceMode.h | 2 +- physx/include/PxHairSystemFlag.h | 2 +- physx/include/PxImmediateMode.h | 2 +- physx/include/PxLockedData.h | 2 +- physx/include/PxMPMMaterial.h | 2 +- physx/include/PxMaterial.h | 2 +- physx/include/PxNodeIndex.h | 2 +- physx/include/PxPBDMaterial.h | 2 +- physx/include/PxPBDParticleSystem.h | 2 +- physx/include/PxParticleBuffer.h | 2 +- physx/include/PxParticleGpu.h | 2 +- physx/include/PxParticleMaterial.h | 2 +- physx/include/PxParticleSolverType.h | 2 +- physx/include/PxParticleSystem.h | 2 +- physx/include/PxParticleSystemFlag.h | 2 +- physx/include/PxPhysXConfig.h | 2 +- physx/include/PxPhysics.h | 2 +- physx/include/PxPhysicsAPI.h | 2 +- physx/include/PxPhysicsSerialization.h | 2 +- physx/include/PxPruningStructure.h | 2 +- physx/include/PxQueryFiltering.h | 2 +- physx/include/PxQueryReport.h | 2 +- physx/include/PxRigidActor.h | 2 +- physx/include/PxRigidBody.h | 2 +- physx/include/PxRigidDynamic.h | 2 +- physx/include/PxRigidStatic.h | 2 +- physx/include/PxScene.h | 2 +- physx/include/PxSceneDesc.h | 2 +- physx/include/PxSceneLock.h | 2 +- physx/include/PxSceneQueryDesc.h | 2 +- physx/include/PxSceneQuerySystem.h | 2 +- physx/include/PxShape.h | 2 +- physx/include/PxSimulationEventCallback.h | 2 +- physx/include/PxSimulationStatistics.h | 2 +- physx/include/PxSoftBody.h | 2 +- physx/include/PxSoftBodyFlag.h | 2 +- physx/include/PxSparseGridParams.h | 2 +- physx/include/PxVisualizationParameter.h | 2 +- .../characterkinematic/PxBoxController.h | 2 +- .../characterkinematic/PxCapsuleController.h | 2 +- .../include/characterkinematic/PxController.h | 2 +- .../characterkinematic/PxControllerBehavior.h | 2 +- .../characterkinematic/PxControllerManager.h | 2 +- .../PxControllerObstacles.h | 2 +- physx/include/characterkinematic/PxExtended.h | 2 +- physx/include/collision/PxCollisionDefs.h | 2 +- physx/include/common/PxBase.h | 2 +- physx/include/common/PxCollection.h | 2 +- physx/include/common/PxCoreUtilityTypes.h | 2 +- physx/include/common/PxInsertionCallback.h | 2 +- physx/include/common/PxMetaData.h | 2 +- physx/include/common/PxMetaDataFlags.h | 2 +- physx/include/common/PxPhysXCommonConfig.h | 2 +- physx/include/common/PxProfileZone.h | 2 +- physx/include/common/PxRenderBuffer.h | 2 +- physx/include/common/PxRenderOutput.h | 2 +- physx/include/common/PxSerialFramework.h | 2 +- physx/include/common/PxSerializer.h | 2 +- physx/include/common/PxStringTable.h | 2 +- physx/include/common/PxTolerancesScale.h | 2 +- physx/include/common/PxTypeInfo.h | 2 +- .../common/windows/PxWindowsDelayLoadHook.h | 2 +- physx/include/cooking/PxBVH33MidphaseDesc.h | 2 +- physx/include/cooking/PxBVH34MidphaseDesc.h | 2 +- physx/include/cooking/PxBVHDesc.h | 2 +- physx/include/cooking/PxConvexMeshDesc.h | 2 +- physx/include/cooking/PxCooking.h | 2 +- physx/include/cooking/PxCookingInternal.h | 2 +- physx/include/cooking/PxMidphaseDesc.h | 2 +- physx/include/cooking/PxSDFDesc.h | 2 +- physx/include/cooking/PxTetrahedronMeshDesc.h | 2 +- physx/include/cooking/PxTriangleMeshDesc.h | 2 +- physx/include/cooking/Pxc.h | 2 +- physx/include/cudamanager/PxCudaContext.h | 2 +- .../cudamanager/PxCudaContextManager.h | 2 +- physx/include/cudamanager/PxCudaTypes.h | 2 +- physx/include/extensions/PxBinaryConverter.h | 2 +- physx/include/extensions/PxBroadPhaseExt.h | 2 +- physx/include/extensions/PxCollectionExt.h | 2 +- physx/include/extensions/PxConstraintExt.h | 2 +- physx/include/extensions/PxContactJoint.h | 2 +- physx/include/extensions/PxConvexMeshExt.h | 2 +- .../include/extensions/PxCustomGeometryExt.h | 2 +- .../extensions/PxCustomSceneQuerySystem.h | 2 +- physx/include/extensions/PxD6Joint.h | 2 +- physx/include/extensions/PxD6JointCreate.h | 2 +- physx/include/extensions/PxDefaultAllocator.h | 2 +- .../extensions/PxDefaultCpuDispatcher.h | 2 +- .../extensions/PxDefaultErrorCallback.h | 2 +- .../PxDefaultSimulationFilterShader.h | 2 +- physx/include/extensions/PxDefaultStreams.h | 2 +- physx/include/extensions/PxDistanceJoint.h | 2 +- physx/include/extensions/PxExtensionsAPI.h | 2 +- physx/include/extensions/PxFixedJoint.h | 2 +- physx/include/extensions/PxGearJoint.h | 2 +- physx/include/extensions/PxGjkQueryExt.h | 2 +- physx/include/extensions/PxJoint.h | 2 +- physx/include/extensions/PxJointLimit.h | 2 +- physx/include/extensions/PxMassProperties.h | 2 +- .../extensions/PxParticleClothCooker.h | 2 +- physx/include/extensions/PxParticleExt.h | 2 +- physx/include/extensions/PxPrismaticJoint.h | 2 +- .../include/extensions/PxRackAndPinionJoint.h | 2 +- physx/include/extensions/PxRaycastCCD.h | 2 +- physx/include/extensions/PxRemeshingExt.h | 2 +- physx/include/extensions/PxRepXSerializer.h | 2 +- physx/include/extensions/PxRepXSimpleType.h | 2 +- physx/include/extensions/PxRevoluteJoint.h | 2 +- physx/include/extensions/PxRigidActorExt.h | 2 +- physx/include/extensions/PxRigidBodyExt.h | 2 +- physx/include/extensions/PxSamplingExt.h | 11 +- physx/include/extensions/PxSceneQueryExt.h | 2 +- .../extensions/PxSceneQuerySystemExt.h | 2 +- physx/include/extensions/PxSerialization.h | 4 +- physx/include/extensions/PxShapeExt.h | 2 +- physx/include/extensions/PxSimpleFactory.h | 2 +- physx/include/extensions/PxSmoothNormals.h | 2 +- physx/include/extensions/PxSoftBodyExt.h | 2 +- physx/include/extensions/PxSphericalJoint.h | 2 +- physx/include/extensions/PxStringTableExt.h | 2 +- physx/include/extensions/PxTetMakerExt.h | 2 +- .../PxTetrahedronMeshAnalysisResult.h | 2 +- .../include/extensions/PxTetrahedronMeshExt.h | 2 +- .../extensions/PxTriangleMeshAnalysisResult.h | 2 +- physx/include/extensions/PxTriangleMeshExt.h | 2 +- physx/include/filebuf/PxFileBuf.h | 2 +- physx/include/foundation/Px.h | 2 +- physx/include/foundation/PxAlignedMalloc.h | 2 +- physx/include/foundation/PxAlloca.h | 2 +- physx/include/foundation/PxAllocator.h | 2 +- .../include/foundation/PxAllocatorCallback.h | 2 +- physx/include/foundation/PxAoS.h | 2 +- physx/include/foundation/PxArray.h | 2 +- physx/include/foundation/PxAssert.h | 2 +- physx/include/foundation/PxAtomic.h | 2 +- physx/include/foundation/PxBasicTemplates.h | 2 +- physx/include/foundation/PxBitAndData.h | 2 +- physx/include/foundation/PxBitMap.h | 2 +- physx/include/foundation/PxBitUtils.h | 2 +- physx/include/foundation/PxBounds3.h | 2 +- physx/include/foundation/PxBroadcast.h | 2 +- physx/include/foundation/PxErrorCallback.h | 2 +- physx/include/foundation/PxErrors.h | 2 +- physx/include/foundation/PxFPU.h | 2 +- physx/include/foundation/PxFlags.h | 2 +- physx/include/foundation/PxFoundation.h | 2 +- physx/include/foundation/PxFoundationConfig.h | 2 +- physx/include/foundation/PxHash.h | 2 +- physx/include/foundation/PxHashInternals.h | 2 +- physx/include/foundation/PxHashMap.h | 2 +- physx/include/foundation/PxHashSet.h | 2 +- physx/include/foundation/PxIO.h | 2 +- physx/include/foundation/PxInlineAllocator.h | 2 +- physx/include/foundation/PxInlineAoS.h | 2 +- physx/include/foundation/PxInlineArray.h | 2 +- physx/include/foundation/PxIntrinsics.h | 2 +- physx/include/foundation/PxMat33.h | 2 +- physx/include/foundation/PxMat34.h | 2 +- physx/include/foundation/PxMat44.h | 2 +- physx/include/foundation/PxMath.h | 8 +- physx/include/foundation/PxMathIntrinsics.h | 2 +- physx/include/foundation/PxMathUtils.h | 2 +- physx/include/foundation/PxMemory.h | 2 +- physx/include/foundation/PxMutex.h | 2 +- physx/include/foundation/PxPhysicsVersion.h | 4 +- physx/include/foundation/PxPinnedArray.h | 2 +- physx/include/foundation/PxPlane.h | 2 +- physx/include/foundation/PxPool.h | 2 +- physx/include/foundation/PxPreprocessor.h | 2 +- physx/include/foundation/PxProfiler.h | 2 +- physx/include/foundation/PxQuat.h | 2 +- physx/include/foundation/PxSIMDHelpers.h | 2 +- physx/include/foundation/PxSList.h | 2 +- physx/include/foundation/PxSimpleTypes.h | 2 +- physx/include/foundation/PxSocket.h | 2 +- physx/include/foundation/PxSort.h | 2 +- physx/include/foundation/PxSortInternals.h | 2 +- physx/include/foundation/PxStrideIterator.h | 2 +- physx/include/foundation/PxString.h | 2 +- physx/include/foundation/PxSync.h | 2 +- physx/include/foundation/PxTempAllocator.h | 2 +- physx/include/foundation/PxThread.h | 2 +- physx/include/foundation/PxTime.h | 2 +- physx/include/foundation/PxTransform.h | 2 +- physx/include/foundation/PxUnionCast.h | 2 +- physx/include/foundation/PxUserAllocated.h | 2 +- physx/include/foundation/PxUtilities.h | 2 +- physx/include/foundation/PxVec2.h | 2 +- physx/include/foundation/PxVec3.h | 2 +- physx/include/foundation/PxVec4.h | 2 +- physx/include/foundation/PxVecMath.h | 2 +- physx/include/foundation/PxVecMathAoSScalar.h | 2 +- .../foundation/PxVecMathAoSScalarInline.h | 2 +- physx/include/foundation/PxVecMathSSE.h | 2 +- physx/include/foundation/PxVecQuat.h | 2 +- physx/include/foundation/PxVecTransform.h | 2 +- physx/include/foundation/unix/PxUnixAoS.h | 2 +- physx/include/foundation/unix/PxUnixFPU.h | 2 +- .../include/foundation/unix/PxUnixInlineAoS.h | 2 +- .../foundation/unix/PxUnixIntrinsics.h | 2 +- .../foundation/unix/PxUnixMathIntrinsics.h | 2 +- .../foundation/unix/PxUnixTrigConstants.h | 2 +- .../foundation/unix/neon/PxUnixNeonAoS.h | 2 +- .../unix/neon/PxUnixNeonInlineAoS.h | 2 +- .../foundation/unix/sse2/PxUnixSse2AoS.h | 2 +- .../unix/sse2/PxUnixSse2InlineAoS.h | 2 +- .../include/foundation/windows/PxWindowsAoS.h | 2 +- .../include/foundation/windows/PxWindowsFPU.h | 2 +- .../foundation/windows/PxWindowsInclude.h | 2 +- .../foundation/windows/PxWindowsInlineAoS.h | 2 +- .../foundation/windows/PxWindowsIntrinsics.h | 2 +- .../windows/PxWindowsMathIntrinsics.h | 2 +- .../windows/PxWindowsTrigConstants.h | 2 +- physx/include/geometry/PxBVH.h | 2 +- physx/include/geometry/PxBVHBuildStrategy.h | 2 +- physx/include/geometry/PxBoxGeometry.h | 2 +- physx/include/geometry/PxCapsuleGeometry.h | 2 +- physx/include/geometry/PxConvexMesh.h | 2 +- physx/include/geometry/PxConvexMeshGeometry.h | 2 +- physx/include/geometry/PxCustomGeometry.h | 2 +- physx/include/geometry/PxGeometry.h | 2 +- physx/include/geometry/PxGeometryHelpers.h | 2 +- physx/include/geometry/PxGeometryHit.h | 2 +- physx/include/geometry/PxGeometryInternal.h | 2 +- physx/include/geometry/PxGeometryQuery.h | 2 +- .../include/geometry/PxGeometryQueryContext.h | 2 +- physx/include/geometry/PxGeometryQueryFlags.h | 2 +- physx/include/geometry/PxGjkQuery.h | 2 +- physx/include/geometry/PxHairSystemDesc.h | 2 +- physx/include/geometry/PxHairSystemGeometry.h | 2 +- physx/include/geometry/PxHeightField.h | 2 +- physx/include/geometry/PxHeightFieldDesc.h | 2 +- physx/include/geometry/PxHeightFieldFlag.h | 2 +- .../include/geometry/PxHeightFieldGeometry.h | 2 +- physx/include/geometry/PxHeightFieldSample.h | 2 +- physx/include/geometry/PxMeshQuery.h | 2 +- physx/include/geometry/PxMeshScale.h | 2 +- .../geometry/PxParticleSystemGeometry.h | 2 +- physx/include/geometry/PxPlaneGeometry.h | 2 +- physx/include/geometry/PxReportCallback.h | 2 +- physx/include/geometry/PxSimpleTriangleMesh.h | 2 +- physx/include/geometry/PxSphereGeometry.h | 2 +- physx/include/geometry/PxTetrahedron.h | 2 +- physx/include/geometry/PxTetrahedronMesh.h | 2 +- .../geometry/PxTetrahedronMeshGeometry.h | 2 +- physx/include/geometry/PxTriangle.h | 2 +- physx/include/geometry/PxTriangleMesh.h | 2 +- .../include/geometry/PxTriangleMeshGeometry.h | 2 +- physx/include/geomutils/PxContactBuffer.h | 2 +- physx/include/geomutils/PxContactPoint.h | 2 +- physx/include/gpu/PxGpu.h | 2 +- physx/include/omnipvd/PxOmniPvd.h | 2 +- physx/include/pvd/PxPvd.h | 2 +- physx/include/pvd/PxPvdSceneClient.h | 2 +- physx/include/pvd/PxPvdTransport.h | 2 +- physx/include/solver/PxSolverDefs.h | 2 +- physx/include/task/PxCpuDispatcher.h | 2 +- physx/include/task/PxTask.h | 2 +- physx/include/task/PxTaskManager.h | 2 +- physx/include/vehicle/PxVehicleComponents.h | 2 +- physx/include/vehicle/PxVehicleDrive.h | 2 +- physx/include/vehicle/PxVehicleDrive4W.h | 2 +- physx/include/vehicle/PxVehicleDriveNW.h | 2 +- physx/include/vehicle/PxVehicleDriveTank.h | 2 +- physx/include/vehicle/PxVehicleNoDrive.h | 2 +- physx/include/vehicle/PxVehicleSDK.h | 2 +- physx/include/vehicle/PxVehicleShaders.h | 2 +- physx/include/vehicle/PxVehicleTireFriction.h | 2 +- physx/include/vehicle/PxVehicleUpdate.h | 2 +- physx/include/vehicle/PxVehicleUtil.h | 2 +- physx/include/vehicle/PxVehicleUtilControl.h | 2 +- physx/include/vehicle/PxVehicleUtilSetup.h | 2 +- .../include/vehicle/PxVehicleUtilTelemetry.h | 2 +- physx/include/vehicle/PxVehicleWheels.h | 2 +- physx/include/vehicle2/PxVehicleAPI.h | 2 +- physx/include/vehicle2/PxVehicleComponent.h | 2 +- .../vehicle2/PxVehicleComponentSequence.h | 2 +- physx/include/vehicle2/PxVehicleFunctions.h | 2 +- physx/include/vehicle2/PxVehicleLimits.h | 2 +- physx/include/vehicle2/PxVehicleMaths.h | 2 +- physx/include/vehicle2/PxVehicleParams.h | 2 +- .../braking/PxVehicleBrakingFunctions.h | 2 +- .../vehicle2/braking/PxVehicleBrakingParams.h | 2 +- .../commands/PxVehicleCommandHelpers.h | 2 +- .../commands/PxVehicleCommandParams.h | 2 +- .../commands/PxVehicleCommandStates.h | 2 +- .../PxVehicleDrivetrainComponents.h | 2 +- .../drivetrain/PxVehicleDrivetrainFunctions.h | 2 +- .../drivetrain/PxVehicleDrivetrainHelpers.h | 2 +- .../drivetrain/PxVehicleDrivetrainParams.h | 2 +- .../drivetrain/PxVehicleDrivetrainStates.h | 2 +- .../PxVehiclePhysXActorComponents.h | 2 +- .../physxActor/PxVehiclePhysXActorFunctions.h | 2 +- .../physxActor/PxVehiclePhysXActorHelpers.h | 2 +- .../physxActor/PxVehiclePhysXActorStates.h | 2 +- .../PxVehiclePhysXConstraintComponents.h | 2 +- .../PxVehiclePhysXConstraintFunctions.h | 2 +- .../PxVehiclePhysXConstraintHelpers.h | 2 +- .../PxVehiclePhysXConstraintParams.h | 2 +- .../PxVehiclePhysXConstraintStates.h | 2 +- .../PxVehiclePhysXRoadGeometryComponents.h | 2 +- .../PxVehiclePhysXRoadGeometryFunctions.h | 2 +- .../PxVehiclePhysXRoadGeometryHelpers.h | 2 +- .../PxVehiclePhysXRoadGeometryParams.h | 2 +- .../PxVehiclePhysXRoadGeometryState.h | 2 +- .../vehicle2/pvd/PxVehiclePvdComponents.h | 2 +- .../vehicle2/pvd/PxVehiclePvdFunctions.h | 2 +- .../vehicle2/pvd/PxVehiclePvdHelpers.h | 2 +- .../rigidBody/PxVehicleRigidBodyComponents.h | 2 +- .../rigidBody/PxVehicleRigidBodyFunctions.h | 2 +- .../rigidBody/PxVehicleRigidBodyParams.h | 2 +- .../rigidBody/PxVehicleRigidBodyStates.h | 2 +- .../roadGeometry/PxVehicleRoadGeometryState.h | 2 +- .../steering/PxVehicleSteeringFunctions.h | 2 +- .../steering/PxVehicleSteeringParams.h | 2 +- .../PxVehicleSuspensionComponents.h | 2 +- .../suspension/PxVehicleSuspensionFunctions.h | 2 +- .../suspension/PxVehicleSuspensionHelpers.h | 2 +- .../suspension/PxVehicleSuspensionParams.h | 2 +- .../suspension/PxVehicleSuspensionStates.h | 2 +- .../vehicle2/tire/PxVehicleTireComponents.h | 2 +- .../vehicle2/tire/PxVehicleTireFunctions.h | 2 +- .../vehicle2/tire/PxVehicleTireHelpers.h | 2 +- .../vehicle2/tire/PxVehicleTireParams.h | 2 +- .../vehicle2/tire/PxVehicleTireStates.h | 2 +- .../vehicle2/wheel/PxVehicleWheelComponents.h | 2 +- .../vehicle2/wheel/PxVehicleWheelFunctions.h | 2 +- .../vehicle2/wheel/PxVehicleWheelHelpers.h | 2 +- .../vehicle2/wheel/PxVehicleWheelParams.h | 2 +- .../vehicle2/wheel/PxVehicleWheelStates.h | 2 +- .../pvdruntime/compiler/cmake/CMakeLists.txt | 2 +- .../compiler/cmake/PVDRuntime.cmake | 2 +- .../compiler/cmake/linux/CMakeLists.txt | 2 +- .../compiler/cmake/linux/PVDRuntime.cmake | 2 +- .../compiler/cmake/windows/CMakeLists.txt | 2 +- .../compiler/cmake/windows/PVDRuntime.cmake | 2 +- physx/pvdruntime/include/OmniPvdCommands.h | 2 +- physx/pvdruntime/include/OmniPvdDefines.h | 2 +- .../include/OmniPvdFileReadStream.h | 2 +- .../include/OmniPvdFileWriteStream.h | 2 +- .../include/OmniPvdLibraryFunctions.h | 2 +- .../include/OmniPvdLibraryHelpers.h | 2 +- physx/pvdruntime/include/OmniPvdLoader.h | 2 +- .../pvdruntime/include/OmniPvdMemoryStream.h | 2 +- physx/pvdruntime/include/OmniPvdReadStream.h | 2 +- physx/pvdruntime/include/OmniPvdReader.h | 2 +- physx/pvdruntime/include/OmniPvdWriteStream.h | 2 +- physx/pvdruntime/include/OmniPvdWriter.h | 2 +- .../src/OmniPvdFileReadStreamImpl.cpp | 2 +- .../src/OmniPvdFileReadStreamImpl.h | 2 +- .../src/OmniPvdFileWriteStreamImpl.cpp | 2 +- .../src/OmniPvdFileWriteStreamImpl.h | 2 +- physx/pvdruntime/src/OmniPvdHelpers.cpp | 2 +- physx/pvdruntime/src/OmniPvdHelpers.h | 2 +- .../src/OmniPvdLibraryFunctionsImpl.cpp | 2 +- physx/pvdruntime/src/OmniPvdLog.cpp | 2 +- physx/pvdruntime/src/OmniPvdLog.h | 2 +- .../src/OmniPvdMemoryReadStreamImpl.cpp | 2 +- .../src/OmniPvdMemoryReadStreamImpl.h | 2 +- .../src/OmniPvdMemoryStreamImpl.cpp | 2 +- .../pvdruntime/src/OmniPvdMemoryStreamImpl.h | 2 +- .../src/OmniPvdMemoryWriteStreamImpl.cpp | 2 +- .../src/OmniPvdMemoryWriteStreamImpl.h | 2 +- physx/pvdruntime/src/OmniPvdReaderImpl.cpp | 2 +- physx/pvdruntime/src/OmniPvdReaderImpl.h | 2 +- physx/pvdruntime/src/OmniPvdWriterImpl.cpp | 2 +- physx/pvdruntime/src/OmniPvdWriterImpl.h | 2 +- physx/snippets/compiler/cmake/CMakeLists.txt | 4 +- .../compiler/cmake/SnippetRender.cmake | 2 +- .../compiler/cmake/SnippetTemplate.cmake | 2 +- .../compiler/cmake/SnippetUtils.cmake | 2 +- .../cmake/SnippetVehicle2Template.cmake | 2 +- .../compiler/cmake/linux/CMakeLists.txt | 2 +- .../compiler/cmake/linux/SnippetRender.cmake | 2 +- .../cmake/linux/SnippetTemplate.cmake | 2 +- .../compiler/cmake/linux/SnippetUtils.cmake | 2 +- .../cmake/linux/SnippetVehicle2Template.cmake | 2 +- .../compiler/cmake/windows/CMakeLists.txt | 2 +- .../cmake/windows/SnippetRender.cmake | 2 +- .../cmake/windows/SnippetTemplate.cmake | 2 +- .../compiler/cmake/windows/SnippetUtils.cmake | 2 +- .../windows/SnippetVehicle2Template.cmake | 2 +- .../SnippetArticulation.cpp | 2 +- .../SnippetArticulationRender.cpp | 2 +- .../SnippetBVHStructure.cpp | 2 +- physx/snippets/snippetccd/SnippetCCD.cpp | 2 +- .../snippets/snippetccd/SnippetCCDRender.cpp | 2 +- physx/snippets/snippetcommon/ClassicMain.cpp | 2 +- physx/snippets/snippetcommon/SnippetPVD.h | 2 +- physx/snippets/snippetcommon/SnippetPrint.h | 2 +- .../SnippetContactModification.cpp | 2 +- .../SnippetContactModificationRender.cpp | 2 +- .../SnippetContactReport.cpp | 2 +- .../SnippetContactReportRender.cpp | 2 +- .../SnippetContactReportCCD.cpp | 2 +- .../SnippetContactReportCCDRender.cpp | 2 +- .../snippetconvert/SnippetConvert.cpp | 2 +- .../SnippetConvexMeshCreate.cpp | 2 +- .../snippetcustomconvex/CustomConvex.cpp | 2 +- .../snippetcustomconvex/CustomConvex.h | 2 +- .../SnippetCustomConvex.cpp | 2 +- .../SnippetCustomConvexRender.cpp | 2 +- .../SnippetCustomGeometry.cpp | 2 +- .../SnippetCustomGeometryRender.cpp | 2 +- .../snippetcustomgeometry/VoxelMap.cpp | 2 +- .../snippets/snippetcustomgeometry/VoxelMap.h | 2 +- .../SnippetCustomGeometryCollision.cpp | 2 +- .../SnippetCustomGeometryCollisionRender.cpp | 2 +- .../SnippetCustomGeometryQueries.cpp | 2 +- .../SnippetCustomGeometryQueriesRender.cpp | 2 +- .../snippetcustomjoint/PulleyJoint.cpp | 2 +- .../snippets/snippetcustomjoint/PulleyJoint.h | 2 +- .../snippetcustomjoint/SnippetCustomJoint.cpp | 2 +- .../SnippetCustomJointRender.cpp | 2 +- .../SnippetCustomProfiler.cpp | 2 +- .../SnippetCustomProfilerRender.cpp | 2 +- .../SnippetDeformableMesh.cpp | 2 +- .../SnippetDeformableMeshRender.cpp | 2 +- .../SnippetDelayLoadHook.cpp | 2 +- .../SnippetDelayLoadHookRender.cpp | 2 +- .../snippetfixedtendon/SnippetFixedTendon.cpp | 2 +- .../SnippetFixedTendonRender.cpp | 2 +- .../SnippetFrustumQuery.cpp | 2 +- .../SnippetFrustumQueryRender.cpp | 2 +- .../snippetgearjoint/SnippetGearJoint.cpp | 2 +- .../SnippetGearJointRender.cpp | 2 +- .../SnippetGeometryQuery.cpp | 2 +- .../SnippetGeometryQueryRender.cpp | 2 +- .../snippetgyroscopic/SnippetGyroscopic.cpp | 2 +- .../SnippetGyroscopicRender.cpp | 2 +- .../snippethellogrb/SnippetHelloGRB.cpp | 7 +- .../snippethellogrb/SnippetHelloGRBRender.cpp | 2 +- .../snippethelloworld/SnippetHelloWorld.cpp | 2 +- .../SnippetHelloWorldRender.cpp | 2 +- .../SnippetImmediateArticulation.cpp | 2 +- .../SnippetImmediateArticulationRender.cpp | 2 +- .../SnippetImmediateMode.cpp | 2 +- .../SnippetImmediateModeRender.cpp | 2 +- physx/snippets/snippetjoint/SnippetJoint.cpp | 4 +- .../snippetjoint/SnippetJointRender.cpp | 2 +- .../snippetjointdrive/SnippetJointDrive.cpp | 325 ++ .../SnippetJointDriveRender.cpp | 103 + .../SnippetLoadCollection.cpp | 2 +- .../SnippetMassProperties.cpp | 2 +- .../SnippetMassPropertiesRender.cpp | 2 +- physx/snippets/snippetmbp/SnippetMBP.cpp | 2 +- .../snippets/snippetmbp/SnippetMBPRender.cpp | 2 +- .../SnippetMultiPruners.cpp | 2 +- .../SnippetMultiPrunersRender.cpp | 2 +- .../SnippetMultiThreading.cpp | 2 +- .../snippetomnipvd/SnippetOmniPvd.cpp | 2 +- .../snippetomnipvd/SnippetOmniPvdRender.cpp | 2 +- .../snippetpathtracing/SnippetPathTracing.cpp | 2 +- .../SnippetPathTracingRender.cpp | 2 +- .../snippetpbdcloth/SnippetPBDCloth.cpp | 2 +- .../snippetpbdcloth/SnippetPBDClothRender.cpp | 2 +- .../SnippetPBDInflatable.cpp | 2 +- .../SnippetPBDInflatableRender.cpp | 2 +- physx/snippets/snippetpbf/SnippetPBF.cpp | 2 +- .../snippets/snippetpbf/SnippetPBFRender.cpp | 2 +- .../snippetpbfmultimat/SnippetPBFMultiMat.cpp | 2 +- .../SnippetPBFMultiMatRender.cpp | 2 +- .../SnippetPointDistanceQuery.cpp | 2 +- .../SnippetPointDistanceQueryRender.cpp | 2 +- .../SnippetPrunerSerialization.cpp | 2 +- .../SnippetQuerySystemAllQueries.cpp | 2 +- .../SnippetQuerySystemAllQueriesRender.cpp | 2 +- .../SnippetQuerySystemCustomCompound.cpp | 2 +- ...SnippetQuerySystemCustomCompoundRender.cpp | 2 +- .../snippetrackjoint/SnippetRackJoint.cpp | 2 +- .../SnippetRackJointRender.cpp | 2 +- .../snippets/snippetrender/SnippetCamera.cpp | 2 +- physx/snippets/snippetrender/SnippetCamera.h | 2 +- .../snippets/snippetrender/SnippetFontData.h | 2 +- .../snippetrender/SnippetFontRenderer.cpp | 2 +- .../snippetrender/SnippetFontRenderer.h | 2 +- .../snippets/snippetrender/SnippetRender.cpp | 6 +- physx/snippets/snippetrender/SnippetRender.h | 2 +- physx/snippets/snippetsdf/MeshGenerator.h | 2 +- physx/snippets/snippetsdf/SnippetSDF.cpp | 2 +- .../snippets/snippetsdf/SnippetSDFRender.cpp | 2 +- .../SnippetSerialization.cpp | 2 +- .../SnippetSerializationRender.cpp | 2 +- .../snippets/snippetsoftbody/MeshGenerator.h | 2 +- .../snippetsoftbody/SnippetSoftBody.cpp | 2 +- .../snippetsoftbody/SnippetSoftBody.h | 2 +- .../snippetsoftbody/SnippetSoftBodyRender.cpp | 2 +- .../SnippetSoftBodyAttachment.cpp | 2 +- .../SnippetSoftBodyAttachmentRender.cpp | 2 +- .../SnippetSpatialTendon.cpp | 2 +- .../SnippetSpatialTendonRender.cpp | 2 +- .../SnippetSplitFetchResults.cpp | 2 +- .../SnippetSplitFetchResultsRender.cpp | 2 +- .../snippetsplitsim/SnippetSplitSim.cpp | 2 +- .../snippetsplitsim/SnippetSplitSimRender.cpp | 2 +- .../SnippetStandaloneBroadphase.cpp | 2 +- .../SnippetStandaloneBroadphaseRender.cpp | 2 +- .../SnippetStandaloneBVH.cpp | 2 +- .../SnippetStandaloneBVHRender.cpp | 2 +- .../SnippetStandaloneQuerySystem.cpp | 2 +- .../SnippetStandaloneQuerySystemRender.cpp | 2 +- .../snippetstepper/SnippetStepper.cpp | 2 +- .../SnippetToleranceScale.cpp | 2 +- .../SnippetTriangleMeshCreate.cpp | 2 +- .../snippettriggers/SnippetTriggers.cpp | 2 +- .../snippettriggers/SnippetTriggersRender.cpp | 2 +- .../snippets/snippetutils/SnippetImmUtils.cpp | 2 +- physx/snippets/snippetutils/SnippetImmUtils.h | 2 +- physx/snippets/snippetutils/SnippetUtils.cpp | 2 +- physx/snippets/snippetutils/SnippetUtils.h | 2 +- .../SnippetVehicleHelpers.cpp | 2 +- .../SnippetVehicleHelpers.h | 2 +- .../snippetvehicle2common/base/Base.cpp | 2 +- .../snippetvehicle2common/base/Base.h | 2 +- .../directdrivetrain/DirectDrivetrain.cpp | 2 +- .../directdrivetrain/DirectDrivetrain.h | 2 +- .../enginedrivetrain/EngineDrivetrain.cpp | 2 +- .../enginedrivetrain/EngineDrivetrain.h | 2 +- .../physxintegration/PhysXIntegration.cpp | 2 +- .../physxintegration/PhysXIntegration.h | 2 +- .../serialization/BaseSerialization.cpp | 2 +- .../serialization/BaseSerialization.h | 2 +- .../DirectDrivetrainSerialization.cpp | 2 +- .../DirectDrivetrainSerialization.h | 2 +- .../EngineDrivetrainSerialization.cpp | 2 +- .../EngineDrivetrainSerialization.h | 2 +- .../serialization/SerializationCommon.cpp | 2 +- .../serialization/SerializationCommon.h | 2 +- .../CustomSuspension.cpp | 2 +- .../CustomSuspension.h | 2 +- .../SnippetVehicleCustomization.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleDirectDrive.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleFourWheelDrive.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleMultithreading.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleTankDrive.cpp | 2 +- .../SnippetVehicleRender.cpp | 2 +- .../SnippetVehicleTruck.cpp | 2 +- .../include/windows/CmWindowsLoadLibrary.h | 2 +- .../windows/CmWindowsModuleUpdateLoader.h | 2 +- physx/source/common/src/CmBlockArray.h | 2 +- physx/source/common/src/CmCollection.cpp | 2 +- physx/source/common/src/CmCollection.h | 2 +- physx/source/common/src/CmConeLimitHelper.h | 2 +- physx/source/common/src/CmFlushPool.h | 2 +- physx/source/common/src/CmIDPool.h | 2 +- physx/source/common/src/CmMatrix34.h | 2 +- physx/source/common/src/CmPool.h | 2 +- physx/source/common/src/CmPreallocatingPool.h | 2 +- physx/source/common/src/CmPriorityQueue.h | 2 +- physx/source/common/src/CmPtrTable.cpp | 2 +- physx/source/common/src/CmPtrTable.h | 2 +- physx/source/common/src/CmRadixSort.cpp | 2 +- physx/source/common/src/CmRadixSort.h | 2 +- physx/source/common/src/CmRandom.h | 2 +- physx/source/common/src/CmRefCountable.h | 2 +- physx/source/common/src/CmRenderBuffer.h | 2 +- physx/source/common/src/CmScaling.h | 2 +- physx/source/common/src/CmSerialize.cpp | 2 +- physx/source/common/src/CmSerialize.h | 2 +- physx/source/common/src/CmSpatialVector.h | 2 +- physx/source/common/src/CmTask.h | 2 +- physx/source/common/src/CmTransformUtils.h | 2 +- physx/source/common/src/CmUtils.h | 2 +- physx/source/common/src/CmVisualization.cpp | 2 +- physx/source/common/src/CmVisualization.h | 2 +- .../src/windows/CmWindowsDelayLoadHook.cpp | 2 +- .../windows/CmWindowsModuleUpdateLoader.cpp | 2 +- physx/source/compiler/cmake/CMakeLists.txt | 2 +- physx/source/compiler/cmake/FastXml.cmake | 2 +- physx/source/compiler/cmake/LowLevel.cmake | 2 +- .../source/compiler/cmake/LowLevelAABB.cmake | 2 +- .../compiler/cmake/LowLevelDynamics.cmake | 2 +- physx/source/compiler/cmake/PhysX.cmake | 2 +- .../cmake/PhysXCharacterKinematic.cmake | 2 +- physx/source/compiler/cmake/PhysXCommon.cmake | 2 +- .../source/compiler/cmake/PhysXCooking.cmake | 2 +- .../compiler/cmake/PhysXExtensions.cmake | 2 +- .../compiler/cmake/PhysXFoundation.cmake | 2 +- physx/source/compiler/cmake/PhysXPvdSDK.cmake | 2 +- physx/source/compiler/cmake/PhysXTask.cmake | 2 +- .../source/compiler/cmake/PhysXVehicle.cmake | 2 +- .../source/compiler/cmake/PhysXVehicle2.cmake | 2 +- physx/source/compiler/cmake/SceneQuery.cmake | 2 +- .../compiler/cmake/SimulationController.cmake | 2 +- .../compiler/cmake/linux/CMakeLists.txt | 2 +- .../source/compiler/cmake/linux/FastXml.cmake | 2 +- .../compiler/cmake/linux/LowLevel.cmake | 2 +- .../compiler/cmake/linux/LowLevelAABB.cmake | 2 +- .../cmake/linux/LowLevelDynamics.cmake | 2 +- physx/source/compiler/cmake/linux/PhysX.cmake | 2 +- .../cmake/linux/PhysXCharacterKinematic.cmake | 2 +- .../compiler/cmake/linux/PhysXCommon.cmake | 2 +- .../compiler/cmake/linux/PhysXCooking.cmake | 2 +- .../cmake/linux/PhysXExtensions.cmake | 2 +- .../cmake/linux/PhysXFoundation.cmake | 2 +- .../compiler/cmake/linux/PhysXPvdSDK.cmake | 2 +- .../compiler/cmake/linux/PhysXTask.cmake | 2 +- .../compiler/cmake/linux/PhysXVehicle.cmake | 2 +- .../compiler/cmake/linux/PhysXVehicle2.cmake | 2 +- .../compiler/cmake/linux/SceneQuery.cmake | 2 +- .../cmake/linux/SimulationController.cmake | 2 +- .../compiler/cmake/windows/CMakeLists.txt | 2 +- .../compiler/cmake/windows/FastXml.cmake | 2 +- .../compiler/cmake/windows/LowLevel.cmake | 2 +- .../compiler/cmake/windows/LowLevelAABB.cmake | 2 +- .../cmake/windows/LowLevelDynamics.cmake | 2 +- .../source/compiler/cmake/windows/PhysX.cmake | 2 +- .../windows/PhysXCharacterKinematic.cmake | 2 +- .../compiler/cmake/windows/PhysXCommon.cmake | 2 +- .../compiler/cmake/windows/PhysXCooking.cmake | 2 +- .../cmake/windows/PhysXExtensions.cmake | 2 +- .../cmake/windows/PhysXFoundation.cmake | 2 +- .../compiler/cmake/windows/PhysXPvdSDK.cmake | 2 +- .../compiler/cmake/windows/PhysXTask.cmake | 2 +- .../compiler/cmake/windows/PhysXVehicle.cmake | 2 +- .../cmake/windows/PhysXVehicle2.cmake | 2 +- .../compiler/cmake/windows/SceneQuery.cmake | 2 +- .../cmake/windows/SimulationController.cmake | 2 +- physx/source/compiler/resource_x64/resource.h | 2 +- physx/source/compiler/resource_x86/PhysX.rc | 91 - .../compiler/resource_x86/PhysXCommon.rc | 92 - .../compiler/resource_x86/PhysXCooking.rc | 91 - .../compiler/resource_x86/PhysXFoundation.rc | Bin 4448 -> 0 bytes physx/source/fastxml/include/PsFastXml.h | 2 +- physx/source/fastxml/src/PsFastXml.cpp | 2 +- physx/source/filebuf/include/PsFileBuffer.h | 2 +- physx/source/foundation/FdAllocator.cpp | 2 +- physx/source/foundation/FdAssert.cpp | 2 +- physx/source/foundation/FdFoundation.cpp | 2 +- physx/source/foundation/FdFoundation.h | 2 +- physx/source/foundation/FdMathUtils.cpp | 2 +- physx/source/foundation/FdString.cpp | 2 +- physx/source/foundation/FdTempAllocator.cpp | 2 +- physx/source/foundation/unix/FdUnixAtomic.cpp | 2 +- physx/source/foundation/unix/FdUnixFPU.cpp | 2 +- physx/source/foundation/unix/FdUnixMutex.cpp | 2 +- .../foundation/unix/FdUnixPrintString.cpp | 2 +- physx/source/foundation/unix/FdUnixSList.cpp | 2 +- physx/source/foundation/unix/FdUnixSocket.cpp | 2 +- physx/source/foundation/unix/FdUnixSync.cpp | 2 +- physx/source/foundation/unix/FdUnixThread.cpp | 2 +- physx/source/foundation/unix/FdUnixTime.cpp | 2 +- .../foundation/windows/FdWindowsAtomic.cpp | 2 +- .../foundation/windows/FdWindowsFPU.cpp | 2 +- .../foundation/windows/FdWindowsMutex.cpp | 2 +- .../windows/FdWindowsPrintString.cpp | 2 +- .../foundation/windows/FdWindowsSList.cpp | 2 +- .../foundation/windows/FdWindowsSocket.cpp | 2 +- .../foundation/windows/FdWindowsSync.cpp | 2 +- .../foundation/windows/FdWindowsThread.cpp | 2 +- .../foundation/windows/FdWindowsTime.cpp | 2 +- .../geomutils/include/GuActorShapeMap.h | 2 +- physx/source/geomutils/include/GuBounds.h | 2 +- physx/source/geomutils/include/GuBox.h | 2 +- .../source/geomutils/include/GuCachedFuncs.h | 2 +- physx/source/geomutils/include/GuCapsule.h | 2 +- .../geomutils/include/GuCenterExtents.h | 2 +- physx/source/geomutils/include/GuCooking.h | 2 +- .../include/GuDistancePointTetrahedron.h | 2 +- .../include/GuDistancePointTriangle.h | 2 +- .../geomutils/include/GuDistanceSegmentBox.h | 2 +- .../include/GuDistanceSegmentSegment.h | 2 +- physx/source/geomutils/include/GuFactory.h | 2 +- .../geomutils/include/GuIntersectionBoxBox.h | 2 +- .../include/GuIntersectionTetrahedronBox.h | 2 +- .../include/GuIntersectionTriangleBox.h | 2 +- .../include/GuIntersectionTriangleBoxRef.h | 2 +- .../include/GuIntersectionTriangleTriangle.h | 2 +- .../source/geomutils/include/GuOverlapTests.h | 2 +- physx/source/geomutils/include/GuPruner.h | 2 +- .../geomutils/include/GuPrunerMergeData.h | 2 +- .../geomutils/include/GuPrunerPayload.h | 2 +- .../geomutils/include/GuPrunerTypedef.h | 2 +- .../source/geomutils/include/GuQuerySystem.h | 2 +- .../source/geomutils/include/GuRaycastTests.h | 2 +- physx/source/geomutils/include/GuSegment.h | 2 +- physx/source/geomutils/include/GuSphere.h | 2 +- physx/source/geomutils/include/GuSqInternal.h | 2 +- physx/source/geomutils/include/GuSweepTests.h | 2 +- physx/source/geomutils/src/GuAABBPruner.cpp | 2 +- physx/source/geomutils/src/GuAABBPruner.h | 2 +- physx/source/geomutils/src/GuAABBTree.cpp | 2 +- physx/source/geomutils/src/GuAABBTree.h | 2 +- physx/source/geomutils/src/GuAABBTreeBounds.h | 2 +- .../geomutils/src/GuAABBTreeBuildStats.h | 2 +- physx/source/geomutils/src/GuAABBTreeNode.h | 2 +- physx/source/geomutils/src/GuAABBTreeQuery.h | 2 +- .../geomutils/src/GuAABBTreeUpdateMap.cpp | 2 +- .../geomutils/src/GuAABBTreeUpdateMap.h | 2 +- .../source/geomutils/src/GuActorShapeMap.cpp | 2 +- physx/source/geomutils/src/GuBVH.cpp | 2 +- physx/source/geomutils/src/GuBVH.h | 2 +- physx/source/geomutils/src/GuBVHTestsSIMD.h | 2 +- physx/source/geomutils/src/GuBounds.cpp | 2 +- physx/source/geomutils/src/GuBox.cpp | 2 +- physx/source/geomutils/src/GuBucketPruner.cpp | 2 +- physx/source/geomutils/src/GuBucketPruner.h | 2 +- .../source/geomutils/src/GuCCTSweepTests.cpp | 2 +- .../source/geomutils/src/GuCallbackAdapter.h | 2 +- physx/source/geomutils/src/GuCapsule.cpp | 2 +- physx/source/geomutils/src/GuCookingSDF.cpp | 2 +- physx/source/geomutils/src/GuCookingSDF.h | 2 +- .../geomutils/src/GuExtendedBucketPruner.cpp | 2 +- .../geomutils/src/GuExtendedBucketPruner.h | 2 +- physx/source/geomutils/src/GuFactory.cpp | 2 +- physx/source/geomutils/src/GuGeometryChecks.h | 2 +- .../source/geomutils/src/GuGeometryQuery.cpp | 2 +- physx/source/geomutils/src/GuGjkQuery.cpp | 2 +- .../geomutils/src/GuIncrementalAABBPruner.cpp | 2 +- .../geomutils/src/GuIncrementalAABBPruner.h | 2 +- .../src/GuIncrementalAABBPrunerCore.cpp | 2 +- .../src/GuIncrementalAABBPrunerCore.h | 2 +- .../geomutils/src/GuIncrementalAABBTree.cpp | 2 +- .../geomutils/src/GuIncrementalAABBTree.h | 2 +- physx/source/geomutils/src/GuInternal.cpp | 2 +- physx/source/geomutils/src/GuInternal.h | 2 +- physx/source/geomutils/src/GuMTD.cpp | 2 +- physx/source/geomutils/src/GuMTD.h | 2 +- physx/source/geomutils/src/GuMaverickNode.cpp | 2 +- physx/source/geomutils/src/GuMaverickNode.h | 2 +- physx/source/geomutils/src/GuMeshFactory.cpp | 2 +- physx/source/geomutils/src/GuMeshFactory.h | 2 +- physx/source/geomutils/src/GuMetaData.cpp | 2 +- physx/source/geomutils/src/GuOverlapTests.cpp | 2 +- physx/source/geomutils/src/GuPruningPool.cpp | 2 +- physx/source/geomutils/src/GuPruningPool.h | 2 +- physx/source/geomutils/src/GuQuery.h | 2 +- physx/source/geomutils/src/GuQuerySystem.cpp | 2 +- physx/source/geomutils/src/GuRaycastTests.cpp | 2 +- physx/source/geomutils/src/GuSAH.cpp | 2 +- physx/source/geomutils/src/GuSAH.h | 2 +- physx/source/geomutils/src/GuSDF.cpp | 2 +- physx/source/geomutils/src/GuSDF.h | 2 +- .../geomutils/src/GuSecondaryPruner.cpp | 2 +- .../source/geomutils/src/GuSecondaryPruner.h | 2 +- physx/source/geomutils/src/GuSqInternal.cpp | 2 +- physx/source/geomutils/src/GuSweepMTD.cpp | 2 +- physx/source/geomutils/src/GuSweepMTD.h | 2 +- .../geomutils/src/GuSweepSharedTests.cpp | 2 +- .../source/geomutils/src/GuSweepSharedTests.h | 2 +- physx/source/geomutils/src/GuSweepTests.cpp | 2 +- .../source/geomutils/src/GuWindingNumber.cpp | 2 +- physx/source/geomutils/src/GuWindingNumber.h | 2 +- .../geomutils/src/GuWindingNumberCluster.h | 2 +- physx/source/geomutils/src/GuWindingNumberT.h | 2 +- .../src/ccd/GuCCDSweepConvexMesh.cpp | 2 +- .../geomutils/src/ccd/GuCCDSweepConvexMesh.h | 2 +- .../src/ccd/GuCCDSweepPrimitives.cpp | 2 +- .../geomutils/src/common/GuAdjacencies.cpp | 2 +- .../geomutils/src/common/GuAdjacencies.h | 2 +- .../src/common/GuBarycentricCoordinates.cpp | 2 +- .../src/common/GuBarycentricCoordinates.h | 2 +- .../geomutils/src/common/GuBoxConversion.h | 2 +- .../source/geomutils/src/common/GuEdgeCache.h | 2 +- .../geomutils/src/common/GuEdgeList.cpp | 2 +- .../source/geomutils/src/common/GuEdgeList.h | 2 +- .../geomutils/src/common/GuMeshAnalysis.cpp | 2 +- .../geomutils/src/common/GuMeshAnalysis.h | 20 +- .../geomutils/src/common/GuMeshCleaner.cpp | 2 +- .../geomutils/src/common/GuMeshCleaner.h | 2 +- .../geomutils/src/common/GuQuantizer.cpp | 2 +- .../source/geomutils/src/common/GuQuantizer.h | 2 +- .../geomutils/src/common/GuSeparatingAxes.cpp | 2 +- .../geomutils/src/common/GuSeparatingAxes.h | 2 +- .../geomutils/src/common/GuVertexReducer.cpp | 2 +- .../geomutils/src/common/GuVertexReducer.h | 2 +- .../geomutils/src/contact/GuContactBoxBox.cpp | 2 +- .../src/contact/GuContactCapsuleBox.cpp | 2 +- .../src/contact/GuContactCapsuleCapsule.cpp | 2 +- .../src/contact/GuContactCapsuleConvex.cpp | 2 +- .../src/contact/GuContactCapsuleMesh.cpp | 2 +- .../src/contact/GuContactConvexConvex.cpp | 2 +- .../src/contact/GuContactConvexMesh.cpp | 2 +- .../src/contact/GuContactCustomGeometry.cpp | 2 +- .../src/contact/GuContactMethodImpl.h | 2 +- .../src/contact/GuContactPlaneBox.cpp | 2 +- .../src/contact/GuContactPlaneCapsule.cpp | 2 +- .../src/contact/GuContactPlaneConvex.cpp | 2 +- .../src/contact/GuContactPolygonPolygon.cpp | 2 +- .../src/contact/GuContactPolygonPolygon.h | 2 +- .../src/contact/GuContactSphereBox.cpp | 2 +- .../src/contact/GuContactSphereCapsule.cpp | 2 +- .../src/contact/GuContactSphereMesh.cpp | 2 +- .../src/contact/GuContactSpherePlane.cpp | 2 +- .../src/contact/GuContactSphereSphere.cpp | 2 +- .../geomutils/src/contact/GuFeatureCode.cpp | 2 +- .../geomutils/src/contact/GuFeatureCode.h | 2 +- .../geomutils/src/convex/GuBigConvexData.cpp | 2 +- .../geomutils/src/convex/GuBigConvexData.h | 2 +- .../geomutils/src/convex/GuBigConvexData2.h | 2 +- .../geomutils/src/convex/GuConvexEdgeFlags.h | 2 +- .../geomutils/src/convex/GuConvexHelper.cpp | 2 +- .../geomutils/src/convex/GuConvexHelper.h | 2 +- .../geomutils/src/convex/GuConvexMesh.cpp | 2 +- .../geomutils/src/convex/GuConvexMesh.h | 2 +- .../geomutils/src/convex/GuConvexMeshData.h | 2 +- .../src/convex/GuConvexSupportTable.cpp | 2 +- .../src/convex/GuConvexSupportTable.h | 2 +- .../src/convex/GuConvexUtilsInternal.cpp | 2 +- .../src/convex/GuConvexUtilsInternal.h | 2 +- .../source/geomutils/src/convex/GuCubeIndex.h | 2 +- .../geomutils/src/convex/GuHillClimbing.cpp | 2 +- .../geomutils/src/convex/GuHillClimbing.h | 2 +- .../geomutils/src/convex/GuShapeConvex.cpp | 2 +- .../geomutils/src/convex/GuShapeConvex.h | 2 +- .../geomutils/src/cooking/GuCookingBVH.cpp | 2 +- .../cooking/GuCookingBigConvexDataBuilder.cpp | 2 +- .../cooking/GuCookingBigConvexDataBuilder.h | 2 +- .../cooking/GuCookingConvexHullBuilder.cpp | 2 +- .../src/cooking/GuCookingConvexHullBuilder.h | 2 +- .../src/cooking/GuCookingConvexHullLib.cpp | 2 +- .../src/cooking/GuCookingConvexHullLib.h | 2 +- .../src/cooking/GuCookingConvexHullUtils.cpp | 2 +- .../src/cooking/GuCookingConvexHullUtils.h | 2 +- .../src/cooking/GuCookingConvexMesh.cpp | 2 +- .../cooking/GuCookingConvexMeshBuilder.cpp | 2 +- .../src/cooking/GuCookingConvexMeshBuilder.h | 2 +- .../GuCookingConvexPolygonsBuilder.cpp | 2 +- .../cooking/GuCookingConvexPolygonsBuilder.h | 2 +- .../src/cooking/GuCookingGrbTriangleMesh.h | 2 +- .../geomutils/src/cooking/GuCookingHF.cpp | 2 +- .../GuCookingQuickHullConvexHullLib.cpp | 2 +- .../cooking/GuCookingQuickHullConvexHullLib.h | 2 +- .../src/cooking/GuCookingTetrahedronMesh.cpp | 2 +- .../src/cooking/GuCookingTetrahedronMesh.h | 2 +- .../src/cooking/GuCookingTriangleMesh.cpp | 2 +- .../src/cooking/GuCookingTriangleMesh.h | 2 +- .../cooking/GuCookingVolumeIntegration.cpp | 2 +- .../src/cooking/GuCookingVolumeIntegration.h | 2 +- .../geomutils/src/cooking/GuRTreeCooking.cpp | 2 +- .../geomutils/src/cooking/GuRTreeCooking.h | 2 +- .../src/distance/GuDistancePointBox.cpp | 2 +- .../src/distance/GuDistancePointBox.h | 2 +- .../src/distance/GuDistancePointSegment.h | 2 +- .../distance/GuDistancePointTetrahedron.cpp | 2 +- .../src/distance/GuDistancePointTetrahedron.h | 2 +- .../src/distance/GuDistancePointTriangle.cpp | 2 +- .../src/distance/GuDistancePointTriangle.h | 2 +- .../distance/GuDistancePointTriangleSIMD.h | 2 +- .../src/distance/GuDistanceSegmentBox.cpp | 2 +- .../src/distance/GuDistanceSegmentSegment.cpp | 2 +- .../distance/GuDistanceSegmentSegmentSIMD.h | 2 +- .../distance/GuDistanceSegmentTriangle.cpp | 2 +- .../src/distance/GuDistanceSegmentTriangle.h | 2 +- .../distance/GuDistanceSegmentTriangleSIMD.h | 2 +- physx/source/geomutils/src/gjk/GuEPA.cpp | 2 +- physx/source/geomutils/src/gjk/GuEPA.h | 2 +- physx/source/geomutils/src/gjk/GuEPAFacet.h | 2 +- physx/source/geomutils/src/gjk/GuGJK.h | 2 +- .../geomutils/src/gjk/GuGJKPenetration.h | 2 +- physx/source/geomutils/src/gjk/GuGJKRaycast.h | 2 +- .../source/geomutils/src/gjk/GuGJKSimplex.cpp | 2 +- physx/source/geomutils/src/gjk/GuGJKSimplex.h | 2 +- physx/source/geomutils/src/gjk/GuGJKTest.cpp | 2 +- physx/source/geomutils/src/gjk/GuGJKTest.h | 2 +- physx/source/geomutils/src/gjk/GuGJKType.h | 2 +- physx/source/geomutils/src/gjk/GuGJKUtil.h | 2 +- physx/source/geomutils/src/gjk/GuVecBox.h | 2 +- physx/source/geomutils/src/gjk/GuVecCapsule.h | 2 +- physx/source/geomutils/src/gjk/GuVecConvex.h | 2 +- .../geomutils/src/gjk/GuVecConvexHull.h | 2 +- .../src/gjk/GuVecConvexHullNoScale.h | 2 +- physx/source/geomutils/src/gjk/GuVecPlane.h | 2 +- physx/source/geomutils/src/gjk/GuVecSphere.h | 2 +- .../geomutils/src/gjk/GuVecTetrahedron.h | 2 +- .../source/geomutils/src/gjk/GuVecTriangle.h | 2 +- .../source/geomutils/src/hf/GuEntityReport.h | 2 +- .../source/geomutils/src/hf/GuHeightField.cpp | 2 +- physx/source/geomutils/src/hf/GuHeightField.h | 2 +- .../geomutils/src/hf/GuHeightFieldData.h | 2 +- .../geomutils/src/hf/GuHeightFieldUtil.cpp | 2 +- .../geomutils/src/hf/GuHeightFieldUtil.h | 2 +- .../geomutils/src/hf/GuOverlapTestsHF.cpp | 2 +- physx/source/geomutils/src/hf/GuSweepsHF.cpp | 2 +- .../src/intersection/GuIntersectionBoxBox.cpp | 2 +- .../GuIntersectionCapsuleTriangle.cpp | 2 +- .../GuIntersectionCapsuleTriangle.h | 2 +- .../intersection/GuIntersectionEdgeEdge.cpp | 2 +- .../src/intersection/GuIntersectionEdgeEdge.h | 2 +- .../src/intersection/GuIntersectionRay.h | 2 +- .../src/intersection/GuIntersectionRayBox.cpp | 2 +- .../src/intersection/GuIntersectionRayBox.h | 2 +- .../intersection/GuIntersectionRayBoxSIMD.h | 2 +- .../intersection/GuIntersectionRayCapsule.cpp | 2 +- .../intersection/GuIntersectionRayCapsule.h | 2 +- .../src/intersection/GuIntersectionRayPlane.h | 2 +- .../intersection/GuIntersectionRaySphere.cpp | 2 +- .../intersection/GuIntersectionRaySphere.h | 2 +- .../intersection/GuIntersectionRayTriangle.h | 2 +- .../intersection/GuIntersectionSphereBox.cpp | 2 +- .../intersection/GuIntersectionSphereBox.h | 2 +- .../GuIntersectionTetrahedronBox.cpp | 2 +- .../GuIntersectionTriangleBox.cpp | 2 +- .../GuIntersectionTriangleTriangle.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV32.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV32.h | 2 +- .../source/geomutils/src/mesh/GuBV32Build.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV32Build.h | 2 +- physx/source/geomutils/src/mesh/GuBV4.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV4.h | 2 +- .../source/geomutils/src/mesh/GuBV4Build.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV4Build.h | 2 +- .../source/geomutils/src/mesh/GuBV4Settings.h | 2 +- .../src/mesh/GuBV4_AABBAABBSweepTest.h | 2 +- .../geomutils/src/mesh/GuBV4_AABBSweep.cpp | 2 +- .../src/mesh/GuBV4_BoxBoxOverlapTest.h | 2 +- .../geomutils/src/mesh/GuBV4_BoxOverlap.cpp | 2 +- .../src/mesh/GuBV4_BoxOverlap_Internal.h | 2 +- .../src/mesh/GuBV4_BoxSweep_Internal.h | 2 +- .../src/mesh/GuBV4_BoxSweep_Params.h | 2 +- .../geomutils/src/mesh/GuBV4_CapsuleSweep.cpp | 2 +- .../src/mesh/GuBV4_CapsuleSweepAA.cpp | 2 +- .../src/mesh/GuBV4_CapsuleSweep_Internal.h | 2 +- .../source/geomutils/src/mesh/GuBV4_Common.h | 2 +- .../geomutils/src/mesh/GuBV4_Internal.h | 2 +- .../src/mesh/GuBV4_MeshMeshOverlap.cpp | 2 +- .../geomutils/src/mesh/GuBV4_OBBSweep.cpp | 2 +- .../mesh/GuBV4_ProcessStreamNoOrder_OBBOBB.h | 2 +- .../GuBV4_ProcessStreamNoOrder_SegmentAABB.h | 2 +- ...rocessStreamNoOrder_SegmentAABB_Inflated.h | 2 +- .../GuBV4_ProcessStreamNoOrder_SphereAABB.h | 2 +- .../mesh/GuBV4_ProcessStreamOrdered_OBBOBB.h | 2 +- .../GuBV4_ProcessStreamOrdered_SegmentAABB.h | 2 +- ...rocessStreamOrdered_SegmentAABB_Inflated.h | 2 +- .../geomutils/src/mesh/GuBV4_Raycast.cpp | 2 +- physx/source/geomutils/src/mesh/GuBV4_Slabs.h | 2 +- .../src/mesh/GuBV4_Slabs_KajiyaNoOrder.h | 2 +- .../src/mesh/GuBV4_Slabs_KajiyaOrdered.h | 2 +- .../src/mesh/GuBV4_Slabs_SwizzledNoOrder.h | 2 +- .../src/mesh/GuBV4_Slabs_SwizzledOrdered.h | 2 +- .../src/mesh/GuBV4_SphereOverlap.cpp | 2 +- .../geomutils/src/mesh/GuBV4_SphereSweep.cpp | 2 +- .../source/geomutils/src/mesh/GuBVConstants.h | 2 +- physx/source/geomutils/src/mesh/GuMeshData.h | 2 +- .../source/geomutils/src/mesh/GuMeshQuery.cpp | 2 +- .../geomutils/src/mesh/GuMidphaseBV4.cpp | 2 +- .../geomutils/src/mesh/GuMidphaseInterface.h | 2 +- .../geomutils/src/mesh/GuMidphaseRTree.cpp | 2 +- .../geomutils/src/mesh/GuOverlapTestsMesh.cpp | 2 +- physx/source/geomutils/src/mesh/GuRTree.cpp | 2 +- physx/source/geomutils/src/mesh/GuRTree.h | 2 +- .../geomutils/src/mesh/GuRTreeQueries.cpp | 2 +- .../geomutils/src/mesh/GuSweepConvexTri.h | 2 +- physx/source/geomutils/src/mesh/GuSweepMesh.h | 2 +- .../geomutils/src/mesh/GuSweepsMesh.cpp | 2 +- .../source/geomutils/src/mesh/GuTetrahedron.h | 2 +- .../geomutils/src/mesh/GuTetrahedronMesh.cpp | 2 +- .../geomutils/src/mesh/GuTetrahedronMesh.h | 2 +- physx/source/geomutils/src/mesh/GuTriangle.h | 2 +- .../geomutils/src/mesh/GuTriangleCache.h | 2 +- .../geomutils/src/mesh/GuTriangleMesh.cpp | 2 +- .../geomutils/src/mesh/GuTriangleMesh.h | 2 +- .../geomutils/src/mesh/GuTriangleMeshBV4.cpp | 2 +- .../geomutils/src/mesh/GuTriangleMeshBV4.h | 2 +- .../src/mesh/GuTriangleMeshRTree.cpp | 2 +- .../geomutils/src/mesh/GuTriangleMeshRTree.h | 2 +- .../geomutils/src/pcm/GuPCMContactBoxBox.cpp | 2 +- .../src/pcm/GuPCMContactBoxConvex.cpp | 2 +- .../src/pcm/GuPCMContactCapsuleBox.cpp | 2 +- .../src/pcm/GuPCMContactCapsuleCapsule.cpp | 2 +- .../src/pcm/GuPCMContactCapsuleConvex.cpp | 2 +- .../pcm/GuPCMContactCapsuleHeightField.cpp | 2 +- .../src/pcm/GuPCMContactCapsuleMesh.cpp | 2 +- .../src/pcm/GuPCMContactConvexCommon.cpp | 2 +- .../src/pcm/GuPCMContactConvexCommon.h | 2 +- .../src/pcm/GuPCMContactConvexConvex.cpp | 2 +- .../src/pcm/GuPCMContactConvexHeightField.cpp | 2 +- .../src/pcm/GuPCMContactConvexMesh.cpp | 2 +- .../src/pcm/GuPCMContactCustomGeometry.cpp | 2 +- .../geomutils/src/pcm/GuPCMContactGen.h | 2 +- .../src/pcm/GuPCMContactGenBoxConvex.cpp | 2 +- .../src/pcm/GuPCMContactGenSphereCapsule.cpp | 2 +- .../geomutils/src/pcm/GuPCMContactGenUtil.cpp | 2 +- .../geomutils/src/pcm/GuPCMContactGenUtil.h | 2 +- .../src/pcm/GuPCMContactMeshCallback.h | 2 +- .../src/pcm/GuPCMContactPlaneBox.cpp | 2 +- .../src/pcm/GuPCMContactPlaneCapsule.cpp | 2 +- .../src/pcm/GuPCMContactPlaneConvex.cpp | 2 +- .../src/pcm/GuPCMContactSphereBox.cpp | 2 +- .../src/pcm/GuPCMContactSphereCapsule.cpp | 2 +- .../src/pcm/GuPCMContactSphereConvex.cpp | 2 +- .../src/pcm/GuPCMContactSphereHeightField.cpp | 2 +- .../src/pcm/GuPCMContactSphereMesh.cpp | 2 +- .../src/pcm/GuPCMContactSpherePlane.cpp | 2 +- .../src/pcm/GuPCMContactSphereSphere.cpp | 2 +- .../geomutils/src/pcm/GuPCMShapeConvex.cpp | 2 +- .../geomutils/src/pcm/GuPCMShapeConvex.h | 2 +- .../src/pcm/GuPCMTriangleContactGen.cpp | 2 +- .../src/pcm/GuPCMTriangleContactGen.h | 2 +- .../src/pcm/GuPersistentContactManifold.cpp | 2 +- .../src/pcm/GuPersistentContactManifold.h | 2 +- .../geomutils/src/sweep/GuSweepBoxBox.cpp | 2 +- .../geomutils/src/sweep/GuSweepBoxBox.h | 2 +- .../geomutils/src/sweep/GuSweepBoxSphere.cpp | 2 +- .../geomutils/src/sweep/GuSweepBoxSphere.h | 2 +- .../sweep/GuSweepBoxTriangle_FeatureBased.cpp | 2 +- .../sweep/GuSweepBoxTriangle_FeatureBased.h | 2 +- .../src/sweep/GuSweepBoxTriangle_SAT.cpp | 2 +- .../src/sweep/GuSweepBoxTriangle_SAT.h | 2 +- .../geomutils/src/sweep/GuSweepCapsuleBox.cpp | 2 +- .../geomutils/src/sweep/GuSweepCapsuleBox.h | 2 +- .../src/sweep/GuSweepCapsuleCapsule.cpp | 2 +- .../src/sweep/GuSweepCapsuleCapsule.h | 2 +- .../src/sweep/GuSweepCapsuleTriangle.cpp | 2 +- .../src/sweep/GuSweepCapsuleTriangle.h | 2 +- .../src/sweep/GuSweepSphereCapsule.cpp | 2 +- .../src/sweep/GuSweepSphereCapsule.h | 2 +- .../src/sweep/GuSweepSphereSphere.cpp | 2 +- .../geomutils/src/sweep/GuSweepSphereSphere.h | 2 +- .../src/sweep/GuSweepSphereTriangle.cpp | 2 +- .../src/sweep/GuSweepSphereTriangle.h | 2 +- .../src/sweep/GuSweepTriangleUtils.cpp | 2 +- .../src/sweep/GuSweepTriangleUtils.h | 2 +- .../immediatemode/src/NpImmediateMode.cpp | 2 +- .../api/include/PxsFEMClothMaterialCore.h | 2 +- .../api/include/PxsFEMSoftBodyMaterialCore.h | 2 +- .../api/include/PxsFLIPMaterialCore.h | 2 +- .../lowlevel/api/include/PxsMPMMaterialCore.h | 2 +- .../lowlevel/api/include/PxsMaterialCore.h | 2 +- .../lowlevel/api/include/PxsMaterialManager.h | 2 +- .../lowlevel/api/include/PxsMaterialShared.h | 2 +- .../lowlevel/api/include/PxsPBDMaterialCore.h | 2 +- physx/source/lowlevel/api/include/PxvConfig.h | 2 +- .../source/lowlevel/api/include/PxvDynamics.h | 2 +- .../source/lowlevel/api/include/PxvGeometry.h | 2 +- .../source/lowlevel/api/include/PxvGlobals.h | 2 +- .../source/lowlevel/api/include/PxvManager.h | 2 +- .../source/lowlevel/api/include/PxvSimStats.h | 2 +- physx/source/lowlevel/api/src/px_globals.cpp | 2 +- .../include/collision/PxcContactMethodImpl.h | 2 +- .../pipeline/PxcConstraintBlockStream.h | 2 +- .../common/include/pipeline/PxcContactCache.h | 2 +- .../include/pipeline/PxcMaterialMethodImpl.h | 2 +- .../common/include/pipeline/PxcNpBatch.h | 2 +- .../common/include/pipeline/PxcNpCache.h | 2 +- .../include/pipeline/PxcNpCacheStreamPair.h | 2 +- .../include/pipeline/PxcNpContactPrepShared.h | 2 +- .../include/pipeline/PxcNpMemBlockPool.h | 2 +- .../include/pipeline/PxcNpThreadContext.h | 2 +- .../common/include/pipeline/PxcNpWorkUnit.h | 2 +- .../include/utils/PxcScratchAllocator.h | 2 +- .../include/utils/PxcThreadCoherentCache.h | 2 +- .../common/src/pipeline/PxcContactCache.cpp | 2 +- .../src/pipeline/PxcContactMethodImpl.cpp | 2 +- .../src/pipeline/PxcMaterialMethodImpl.cpp | 2 +- .../common/src/pipeline/PxcNpBatch.cpp | 2 +- .../src/pipeline/PxcNpCacheStreamPair.cpp | 2 +- .../src/pipeline/PxcNpContactPrepShared.cpp | 2 +- .../common/src/pipeline/PxcNpMemBlockPool.cpp | 2 +- .../src/pipeline/PxcNpThreadContext.cpp | 2 +- .../source/lowlevel/software/include/PxsCCD.h | 2 +- .../software/include/PxsContactManager.h | 2 +- .../software/include/PxsContactManagerState.h | 2 +- .../lowlevel/software/include/PxsContext.h | 2 +- .../include/PxsDefaultMemoryManager.h | 2 +- .../software/include/PxsHeapMemoryAllocator.h | 2 +- .../PxsIncrementalConstraintPartitioning.h | 2 +- .../software/include/PxsIslandManagerTypes.h | 2 +- .../lowlevel/software/include/PxsIslandSim.h | 2 +- .../software/include/PxsKernelWrangler.h | 2 +- .../software/include/PxsMaterialCombiner.h | 2 +- .../software/include/PxsMemoryManager.h | 2 +- .../software/include/PxsNphaseCommon.h | 2 +- .../include/PxsNphaseImplementationContext.h | 2 +- .../lowlevel/software/include/PxsRigidBody.h | 2 +- .../lowlevel/software/include/PxsShapeSim.h | 2 +- .../software/include/PxsSimpleIslandManager.h | 2 +- .../include/PxsSimulationController.h | 2 +- .../software/include/PxsTransformCache.h | 2 +- .../include/PxvNphaseImplementationContext.h | 2 +- physx/source/lowlevel/software/src/PxsCCD.cpp | 2 +- .../software/src/PxsContactManager.cpp | 2 +- .../lowlevel/software/src/PxsContext.cpp | 2 +- .../software/src/PxsDefaultMemoryManager.cpp | 2 +- .../lowlevel/software/src/PxsIslandSim.cpp | 2 +- .../src/PxsNphaseImplementationContext.cpp | 2 +- .../software/src/PxsSimpleIslandManager.cpp | 2 +- .../lowlevelaabb/include/BpAABBManager.h | 2 +- .../lowlevelaabb/include/BpAABBManagerBase.h | 2 +- .../lowlevelaabb/include/BpAABBManagerTasks.h | 2 +- .../lowlevelaabb/include/BpBroadPhase.h | 2 +- .../lowlevelaabb/include/BpBroadPhaseUpdate.h | 2 +- .../source/lowlevelaabb/include/BpFiltering.h | 2 +- .../lowlevelaabb/include/BpVolumeData.h | 2 +- .../source/lowlevelaabb/src/BpAABBManager.cpp | 2 +- .../lowlevelaabb/src/BpAABBManagerBase.cpp | 2 +- .../source/lowlevelaabb/src/BpBroadPhase.cpp | 2 +- .../lowlevelaabb/src/BpBroadPhaseABP.cpp | 2 +- .../source/lowlevelaabb/src/BpBroadPhaseABP.h | 2 +- .../src/BpBroadPhaseIntegerAABB.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseMBP.cpp | 2 +- .../source/lowlevelaabb/src/BpBroadPhaseMBP.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseMBPCommon.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseSap.cpp | 2 +- .../source/lowlevelaabb/src/BpBroadPhaseSap.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseSapAux.cpp | 2 +- .../lowlevelaabb/src/BpBroadPhaseSapAux.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseShared.cpp | 2 +- .../lowlevelaabb/src/BpBroadPhaseShared.h | 2 +- .../lowlevelaabb/src/BpBroadPhaseUpdate.cpp | 2 +- physx/source/lowlevelaabb/src/BpFiltering.cpp | 2 +- .../include/DyArticulationCore.h | 2 +- .../include/DyArticulationJointCore.h | 2 +- .../include/DyArticulationTendon.h | 2 +- .../lowleveldynamics/include/DyConstraint.h | 2 +- .../include/DyConstraintWriteBack.h | 2 +- .../lowleveldynamics/include/DyContext.h | 2 +- .../lowleveldynamics/include/DyFEMCloth.h | 2 +- .../lowleveldynamics/include/DyFEMClothCore.h | 2 +- .../include/DyFeatherstoneArticulation.h | 2 +- .../DyFeatherstoneArticulationJointData.h | 2 +- .../include/DyFeatherstoneArticulationUtils.h | 2 +- .../lowleveldynamics/include/DyHairSystem.h | 2 +- .../include/DyHairSystemCore.h | 2 +- .../include/DyParticleSystem.h | 2 +- .../include/DyParticleSystemCore.h | 2 +- .../include/DySleepingConfigulation.h | 2 +- .../lowleveldynamics/include/DySoftBody.h | 2 +- .../lowleveldynamics/include/DySoftBodyCore.h | 2 +- .../include/DyThresholdTable.h | 2 +- .../include/DyVArticulation.h | 2 +- .../src/DyArticulationContactPrep.cpp | 2 +- .../src/DyArticulationContactPrep.h | 2 +- .../src/DyArticulationContactPrepPF.cpp | 2 +- .../src/DyArticulationPImpl.h | 2 +- .../src/DyArticulationUtils.h | 2 +- .../src/DyBodyCoreIntegrator.h | 2 +- .../src/DyConstraintPartition.cpp | 2 +- .../src/DyConstraintPartition.h | 2 +- .../lowleveldynamics/src/DyConstraintPrep.h | 2 +- .../src/DyConstraintSetup.cpp | 2 +- .../src/DyConstraintSetupBlock.cpp | 2 +- .../lowleveldynamics/src/DyContactPrep.cpp | 2 +- .../lowleveldynamics/src/DyContactPrep.h | 2 +- .../lowleveldynamics/src/DyContactPrep4.cpp | 2 +- .../lowleveldynamics/src/DyContactPrep4PF.cpp | 2 +- .../lowleveldynamics/src/DyContactPrepPF.cpp | 2 +- .../src/DyContactPrepShared.h | 2 +- .../lowleveldynamics/src/DyContactReduction.h | 2 +- .../src/DyCorrelationBuffer.h | 2 +- .../lowleveldynamics/src/DyDynamics.cpp | 2 +- .../source/lowleveldynamics/src/DyDynamics.h | 2 +- .../src/DyFeatherstoneArticulation.cpp | 2 +- .../src/DyFeatherstoneArticulationLink.h | 2 +- .../src/DyFeatherstoneForwardDynamic.cpp | 2 +- .../src/DyFeatherstoneInverseDynamic.cpp | 2 +- .../src/DyFrictionCorrelation.cpp | 2 +- .../lowleveldynamics/src/DyFrictionPatch.h | 2 +- .../src/DyFrictionPatchStreamPair.h | 2 +- .../src/DyRigidBodyToSolverBody.cpp | 2 +- .../lowleveldynamics/src/DySolverBody.h | 2 +- .../src/DySolverConstraint1D.h | 2 +- .../src/DySolverConstraint1D4.h | 2 +- .../src/DySolverConstraint1DStep.h | 2 +- .../src/DySolverConstraintDesc.h | 2 +- .../src/DySolverConstraintExtShared.h | 2 +- .../src/DySolverConstraintTypes.h | 2 +- .../src/DySolverConstraints.cpp | 2 +- .../src/DySolverConstraintsBlock.cpp | 2 +- .../src/DySolverConstraintsShared.h | 2 +- .../lowleveldynamics/src/DySolverContact.h | 2 +- .../lowleveldynamics/src/DySolverContact4.h | 2 +- .../lowleveldynamics/src/DySolverContactPF.h | 2 +- .../lowleveldynamics/src/DySolverContactPF4.h | 2 +- .../lowleveldynamics/src/DySolverContext.h | 2 +- .../lowleveldynamics/src/DySolverControl.cpp | 2 +- .../lowleveldynamics/src/DySolverControl.h | 2 +- .../src/DySolverControlPF.cpp | 2 +- .../lowleveldynamics/src/DySolverControlPF.h | 2 +- .../lowleveldynamics/src/DySolverCore.h | 2 +- .../source/lowleveldynamics/src/DySolverExt.h | 2 +- .../src/DySolverPFConstraints.cpp | 2 +- .../src/DySolverPFConstraintsBlock.cpp | 2 +- physx/source/lowleveldynamics/src/DySpatial.h | 2 +- .../lowleveldynamics/src/DyTGSContactPrep.cpp | 2 +- .../lowleveldynamics/src/DyTGSContactPrep.h | 2 +- .../src/DyTGSContactPrepBlock.cpp | 2 +- .../lowleveldynamics/src/DyTGSDynamics.cpp | 2 +- .../lowleveldynamics/src/DyTGSDynamics.h | 2 +- .../lowleveldynamics/src/DyThreadContext.cpp | 2 +- .../lowleveldynamics/src/DyThreadContext.h | 2 +- .../lowleveldynamics/src/DyThresholdTable.cpp | 2 +- physx/source/physx/src/NpActor.cpp | 2 +- physx/source/physx/src/NpActor.h | 2 +- physx/source/physx/src/NpActorTemplate.h | 2 +- physx/source/physx/src/NpAggregate.cpp | 2 +- physx/source/physx/src/NpAggregate.h | 2 +- .../NpArticulationJointReducedCoordinate.cpp | 2 +- .../NpArticulationJointReducedCoordinate.h | 2 +- physx/source/physx/src/NpArticulationLink.cpp | 2 +- physx/source/physx/src/NpArticulationLink.h | 2 +- .../src/NpArticulationReducedCoordinate.cpp | 2 +- .../src/NpArticulationReducedCoordinate.h | 2 +- .../source/physx/src/NpArticulationSensor.cpp | 2 +- physx/source/physx/src/NpArticulationSensor.h | 2 +- .../source/physx/src/NpArticulationTendon.cpp | 2 +- physx/source/physx/src/NpArticulationTendon.h | 2 +- physx/source/physx/src/NpBase.h | 2 +- physx/source/physx/src/NpBounds.cpp | 2 +- physx/source/physx/src/NpBounds.h | 2 +- physx/source/physx/src/NpCheck.cpp | 2 +- physx/source/physx/src/NpCheck.h | 2 +- physx/source/physx/src/NpConnector.h | 2 +- physx/source/physx/src/NpConstraint.cpp | 2 +- physx/source/physx/src/NpConstraint.h | 2 +- physx/source/physx/src/NpDebugViz.cpp | 2 +- physx/source/physx/src/NpDebugViz.h | 2 +- physx/source/physx/src/NpFEMCloth.cpp | 2 +- physx/source/physx/src/NpFEMCloth.h | 2 +- physx/source/physx/src/NpFEMClothMaterial.cpp | 2 +- physx/source/physx/src/NpFEMClothMaterial.h | 2 +- .../physx/src/NpFEMSoftBodyMaterial.cpp | 2 +- .../source/physx/src/NpFEMSoftBodyMaterial.h | 2 +- physx/source/physx/src/NpFLIPMaterial.cpp | 2 +- physx/source/physx/src/NpFLIPMaterial.h | 2 +- physx/source/physx/src/NpFactory.cpp | 2 +- physx/source/physx/src/NpFactory.h | 2 +- physx/source/physx/src/NpHairSystem.cpp | 2 +- physx/source/physx/src/NpHairSystem.h | 2 +- physx/source/physx/src/NpMPMMaterial.cpp | 2 +- physx/source/physx/src/NpMPMMaterial.h | 2 +- physx/source/physx/src/NpMaterial.cpp | 2 +- physx/source/physx/src/NpMaterial.h | 2 +- physx/source/physx/src/NpMaterialManager.h | 2 +- physx/source/physx/src/NpMetaData.cpp | 2 +- physx/source/physx/src/NpPBDMaterial.cpp | 2 +- physx/source/physx/src/NpPBDMaterial.h | 2 +- physx/source/physx/src/NpParticleSystem.cpp | 2 +- physx/source/physx/src/NpParticleSystem.h | 2 +- physx/source/physx/src/NpPhysics.cpp | 2 +- physx/source/physx/src/NpPhysics.h | 2 +- .../physx/src/NpPhysicsInsertionCallback.h | 2 +- physx/source/physx/src/NpPruningStructure.cpp | 2 +- physx/source/physx/src/NpPruningStructure.h | 2 +- .../physx/src/NpPtrTableStorageManager.h | 2 +- physx/source/physx/src/NpPvdSceneClient.cpp | 2 +- physx/source/physx/src/NpPvdSceneClient.h | 2 +- .../physx/src/NpPvdSceneQueryCollector.cpp | 2 +- .../physx/src/NpPvdSceneQueryCollector.h | 2 +- physx/source/physx/src/NpRigidActorTemplate.h | 2 +- .../physx/src/NpRigidActorTemplateInternal.h | 2 +- physx/source/physx/src/NpRigidBodyTemplate.h | 2 +- physx/source/physx/src/NpRigidDynamic.cpp | 2 +- physx/source/physx/src/NpRigidDynamic.h | 2 +- physx/source/physx/src/NpRigidStatic.cpp | 2 +- physx/source/physx/src/NpRigidStatic.h | 2 +- physx/source/physx/src/NpScene.cpp | 2 +- physx/source/physx/src/NpScene.h | 2 +- physx/source/physx/src/NpSceneAccessor.h | 2 +- .../source/physx/src/NpSceneFetchResults.cpp | 4 +- physx/source/physx/src/NpSceneQueries.cpp | 2 +- physx/source/physx/src/NpSceneQueries.h | 2 +- .../source/physx/src/NpSerializerAdapter.cpp | 2 +- physx/source/physx/src/NpShape.cpp | 2 +- physx/source/physx/src/NpShape.h | 2 +- physx/source/physx/src/NpShapeManager.cpp | 2 +- physx/source/physx/src/NpShapeManager.h | 2 +- physx/source/physx/src/NpSoftBody.cpp | 2 +- physx/source/physx/src/NpSoftBody.h | 2 +- .../source/physx/src/PvdMetaDataBindingData.h | 2 +- .../physx/src/PvdMetaDataPvdBinding.cpp | 2 +- .../source/physx/src/PvdMetaDataPvdBinding.h | 2 +- physx/source/physx/src/PvdPhysicsClient.cpp | 2 +- physx/source/physx/src/PvdPhysicsClient.h | 2 +- physx/source/physx/src/PvdTypeNames.h | 2 +- .../source/physx/src/device/PhysXIndicator.h | 2 +- .../src/device/linux/PhysXIndicatorLinux.cpp | 2 +- physx/source/physx/src/device/nvPhysXtoDrv.h | 2 +- .../device/windows/PhysXIndicatorWindows.cpp | 2 +- physx/source/physx/src/gpu/PxGpu.cpp | 2 +- .../physx/src/gpu/PxPhysXGpuModuleLoader.cpp | 2 +- physx/source/physx/src/omnipvd/NpOmniPvd.cpp | 2 +- physx/source/physx/src/omnipvd/NpOmniPvd.h | 2 +- .../physx/src/omnipvd/OmniPvdChunkAlloc.cpp | 2 +- .../physx/src/omnipvd/OmniPvdChunkAlloc.h | 2 +- .../physx/src/omnipvd/OmniPvdPxSampler.cpp | 44 +- .../physx/src/omnipvd/OmniPvdPxSampler.h | 4 +- physx/source/physx/src/omnipvd/OmniPvdTypes.h | 2 +- .../src/windows/NpWindowsDelayLoadHook.cpp | 2 +- .../src/CctBoxController.cpp | 2 +- .../src/CctBoxController.h | 2 +- .../src/CctCapsuleController.cpp | 2 +- .../src/CctCapsuleController.h | 2 +- .../src/CctCharacterController.cpp | 2 +- .../src/CctCharacterController.h | 2 +- .../src/CctCharacterControllerCallbacks.cpp | 2 +- .../src/CctCharacterControllerManager.cpp | 2 +- .../src/CctCharacterControllerManager.h | 2 +- .../src/CctController.cpp | 2 +- .../src/CctController.h | 2 +- .../src/CctInternalStructs.h | 2 +- .../src/CctObstacleContext.cpp | 2 +- .../src/CctObstacleContext.h | 2 +- .../src/CctSweptBox.cpp | 2 +- .../physxcharacterkinematic/src/CctSweptBox.h | 2 +- .../src/CctSweptCapsule.cpp | 2 +- .../src/CctSweptCapsule.h | 2 +- .../src/CctSweptVolume.cpp | 2 +- .../src/CctSweptVolume.h | 2 +- .../physxcharacterkinematic/src/CctUtils.h | 2 +- physx/source/physxcooking/src/Cooking.cpp | 2 +- physx/source/physxcooking/src/Cooking.h | 2 +- .../windows/WindowsCookingDelayLoadHook.cpp | 2 +- .../physxextensions/src/ExtBroadPhase.cpp | 2 +- .../physxextensions/src/ExtCollection.cpp | 2 +- .../physxextensions/src/ExtConstraintHelper.h | 2 +- .../physxextensions/src/ExtContactJoint.cpp | 2 +- .../physxextensions/src/ExtContactJoint.h | 2 +- .../physxextensions/src/ExtConvexMeshExt.cpp | 2 +- .../src/ExtCpuWorkerThread.cpp | 2 +- .../physxextensions/src/ExtCpuWorkerThread.h | 2 +- .../src/ExtCustomGeometryExt.cpp | 2 +- .../src/ExtCustomSceneQuerySystem.cpp | 2 +- .../source/physxextensions/src/ExtD6Joint.cpp | 4 +- physx/source/physxextensions/src/ExtD6Joint.h | 2 +- .../physxextensions/src/ExtD6JointCreate.cpp | 2 +- .../src/ExtDefaultCpuDispatcher.cpp | 2 +- .../src/ExtDefaultCpuDispatcher.h | 2 +- .../src/ExtDefaultErrorCallback.cpp | 2 +- .../src/ExtDefaultSimulationFilterShader.cpp | 2 +- .../physxextensions/src/ExtDefaultStreams.cpp | 2 +- .../physxextensions/src/ExtDistanceJoint.cpp | 2 +- .../physxextensions/src/ExtDistanceJoint.h | 2 +- .../physxextensions/src/ExtExtensions.cpp | 2 +- .../physxextensions/src/ExtFixedJoint.cpp | 2 +- .../physxextensions/src/ExtFixedJoint.h | 2 +- .../physxextensions/src/ExtGearJoint.cpp | 2 +- .../source/physxextensions/src/ExtGearJoint.h | 2 +- .../physxextensions/src/ExtGjkQueryExt.cpp | 2 +- .../physxextensions/src/ExtInertiaTensor.h | 2 +- physx/source/physxextensions/src/ExtJoint.cpp | 2 +- physx/source/physxextensions/src/ExtJoint.h | 2 +- .../source/physxextensions/src/ExtJointData.h | 2 +- .../src/ExtJointMetaDataExtensions.h | 2 +- .../physxextensions/src/ExtMetaData.cpp | 2 +- .../src/ExtParticleClothCooker.cpp | 2 +- .../physxextensions/src/ExtParticleExt.cpp | 2 +- .../source/physxextensions/src/ExtPlatform.h | 2 +- .../physxextensions/src/ExtPrismaticJoint.cpp | 2 +- .../physxextensions/src/ExtPrismaticJoint.h | 2 +- physx/source/physxextensions/src/ExtPvd.cpp | 2 +- physx/source/physxextensions/src/ExtPvd.h | 2 +- .../physxextensions/src/ExtPxStringTable.cpp | 2 +- .../src/ExtRackAndPinionJoint.cpp | 2 +- .../src/ExtRackAndPinionJoint.h | 2 +- .../physxextensions/src/ExtRaycastCCD.cpp | 2 +- .../physxextensions/src/ExtRemeshingExt.cpp | 2 +- .../physxextensions/src/ExtRevoluteJoint.cpp | 2 +- .../physxextensions/src/ExtRevoluteJoint.h | 2 +- .../physxextensions/src/ExtRigidActorExt.cpp | 2 +- .../physxextensions/src/ExtRigidBodyExt.cpp | 2 +- .../physxextensions/src/ExtSampling.cpp | 60 +- .../physxextensions/src/ExtSceneQueryExt.cpp | 2 +- .../src/ExtSceneQuerySystem.cpp | 2 +- .../physxextensions/src/ExtSerialization.h | 2 +- .../src/ExtSharedQueueEntryPool.h | 2 +- .../physxextensions/src/ExtSimpleFactory.cpp | 2 +- .../physxextensions/src/ExtSmoothNormals.cpp | 2 +- .../physxextensions/src/ExtSoftBodyExt.cpp | 2 +- .../physxextensions/src/ExtSphericalJoint.cpp | 2 +- .../physxextensions/src/ExtSphericalJoint.h | 2 +- .../physxextensions/src/ExtSqManager.cpp | 2 +- .../source/physxextensions/src/ExtSqManager.h | 2 +- .../source/physxextensions/src/ExtSqQuery.cpp | 2 +- physx/source/physxextensions/src/ExtSqQuery.h | 2 +- .../physxextensions/src/ExtTaskQueueHelper.h | 2 +- .../physxextensions/src/ExtTetMakerExt.cpp | 2 +- .../src/ExtTetrahedronMeshExt.cpp | 2 +- .../src/ExtTriangleMeshExt.cpp | 2 +- .../omnipvd/OmniPvdPxExtensionsSampler.cpp | 2 +- .../src/omnipvd/OmniPvdPxExtensionsSampler.h | 2 +- .../src/omnipvd/OmniPvdPxExtensionsTypes.h | 2 +- .../Binary/SnBinaryDeserialization.cpp | 2 +- .../Binary/SnBinarySerialization.cpp | 2 +- .../src/serialization/Binary/SnConvX.cpp | 2 +- .../src/serialization/Binary/SnConvX.h | 2 +- .../serialization/Binary/SnConvX_Align.cpp | 2 +- .../src/serialization/Binary/SnConvX_Align.h | 2 +- .../src/serialization/Binary/SnConvX_Common.h | 2 +- .../serialization/Binary/SnConvX_Convert.cpp | 2 +- .../serialization/Binary/SnConvX_Error.cpp | 2 +- .../serialization/Binary/SnConvX_MetaData.cpp | 2 +- .../serialization/Binary/SnConvX_MetaData.h | 2 +- .../serialization/Binary/SnConvX_Output.cpp | 2 +- .../src/serialization/Binary/SnConvX_Output.h | 2 +- .../serialization/Binary/SnConvX_Union.cpp | 2 +- .../src/serialization/Binary/SnConvX_Union.h | 2 +- .../Binary/SnSerializationContext.cpp | 2 +- .../Binary/SnSerializationContext.h | 2 +- .../src/serialization/File/SnFile.h | 2 +- .../src/serialization/SnSerialUtils.cpp | 2 +- .../src/serialization/SnSerialUtils.h | 2 +- .../src/serialization/SnSerialization.cpp | 2 +- .../serialization/SnSerializationRegistry.cpp | 2 +- .../serialization/SnSerializationRegistry.h | 2 +- .../Xml/SnJointRepXSerializer.cpp | 2 +- .../serialization/Xml/SnJointRepXSerializer.h | 2 +- .../serialization/Xml/SnPxStreamOperators.h | 2 +- .../src/serialization/Xml/SnRepX1_0Defaults.h | 2 +- .../src/serialization/Xml/SnRepX3_1Defaults.h | 2 +- .../src/serialization/Xml/SnRepX3_2Defaults.h | 2 +- .../src/serialization/Xml/SnRepXCollection.h | 2 +- .../Xml/SnRepXCoreSerializer.cpp | 2 +- .../serialization/Xml/SnRepXCoreSerializer.h | 2 +- .../serialization/Xml/SnRepXSerializerImpl.h | 2 +- .../src/serialization/Xml/SnRepXUpgrader.cpp | 2 +- .../src/serialization/Xml/SnRepXUpgrader.h | 2 +- .../src/serialization/Xml/SnSimpleXmlWriter.h | 2 +- .../src/serialization/Xml/SnXmlDeserializer.h | 2 +- .../src/serialization/Xml/SnXmlImpl.h | 2 +- .../serialization/Xml/SnXmlMemoryAllocator.h | 2 +- .../src/serialization/Xml/SnXmlMemoryPool.h | 2 +- .../Xml/SnXmlMemoryPoolStreams.h | 2 +- .../src/serialization/Xml/SnXmlReader.h | 2 +- .../serialization/Xml/SnXmlSerialization.cpp | 2 +- .../src/serialization/Xml/SnXmlSerializer.h | 2 +- .../serialization/Xml/SnXmlSimpleXmlWriter.h | 2 +- .../src/serialization/Xml/SnXmlStringToType.h | 2 +- .../serialization/Xml/SnXmlVisitorReader.h | 2 +- .../serialization/Xml/SnXmlVisitorWriter.h | 2 +- .../src/serialization/Xml/SnXmlWriter.h | 2 +- .../source/physxextensions/src/tet/ExtBVH.cpp | 2 +- physx/source/physxextensions/src/tet/ExtBVH.h | 2 +- .../src/tet/ExtDelaunayBoundaryInserter.cpp | 9 +- .../src/tet/ExtDelaunayBoundaryInserter.h | 2 +- .../src/tet/ExtDelaunayTetrahedralizer.cpp | 2 +- .../src/tet/ExtDelaunayTetrahedralizer.h | 2 +- .../src/tet/ExtFastWindingNumber.cpp | 2 +- .../src/tet/ExtFastWindingNumber.h | 2 +- .../src/tet/ExtInsideTester.cpp | 2 +- .../physxextensions/src/tet/ExtInsideTester.h | 2 +- .../src/tet/ExtMarchingCubesTable.h | 2 +- .../src/tet/ExtMeshSimplificator.cpp | 2 +- .../src/tet/ExtMeshSimplificator.h | 2 +- .../physxextensions/src/tet/ExtMultiList.h | 2 +- .../src/tet/ExtOctreeTetrahedralizer.cpp | 2 +- .../src/tet/ExtOctreeTetrahedralizer.h | 2 +- .../physxextensions/src/tet/ExtQuadric.h | 2 +- .../src/tet/ExtRandomAccessHeap.h | 2 +- .../physxextensions/src/tet/ExtRemesher.cpp | 2 +- .../physxextensions/src/tet/ExtRemesher.h | 2 +- .../src/tet/ExtTetSplitting.cpp | 2 +- .../physxextensions/src/tet/ExtTetSplitting.h | 2 +- .../src/tet/ExtTetUnionFind.cpp | 2 +- .../physxextensions/src/tet/ExtTetUnionFind.h | 2 +- .../physxextensions/src/tet/ExtUtilities.cpp | 2 +- .../physxextensions/src/tet/ExtUtilities.h | 2 +- .../source/physxextensions/src/tet/ExtVec3.h | 2 +- .../src/tet/ExtVoxelTetrahedralizer.cpp | 2 +- .../src/tet/ExtVoxelTetrahedralizer.h | 2 +- physx/source/physxgpu/include/PxPhysXGpu.h | 2 +- .../include/PvdMetaDataDefineProperties.h | 2 +- .../core/include/PvdMetaDataExtensions.h | 2 +- .../core/include/PvdMetaDataPropertyVisitor.h | 2 +- .../PxAutoGeneratedMetaDataObjectNames.h | 2 +- .../include/PxAutoGeneratedMetaDataObjects.h | 2 +- .../core/include/PxMetaDataCompare.h | 2 +- .../core/include/PxMetaDataCppPrefix.h | 2 +- .../core/include/PxMetaDataObjects.h | 2 +- .../include/RepXMetaDataPropertyVisitor.h | 2 +- .../src/PxAutoGeneratedMetaDataObjects.cpp | 2 +- .../core/src/PxMetaDataObjects.cpp | 2 +- ...xtensionAutoGeneratedMetaDataObjectNames.h | 2 +- .../PxExtensionAutoGeneratedMetaDataObjects.h | 2 +- .../include/PxExtensionMetaDataObjects.h | 2 +- ...xExtensionAutoGeneratedMetaDataObjects.cpp | 2 +- .../physxvehicle/src/PxVehicleComponents.cpp | 2 +- .../physxvehicle/src/PxVehicleDrive.cpp | 2 +- .../physxvehicle/src/PxVehicleDrive4W.cpp | 2 +- .../physxvehicle/src/PxVehicleDriveNW.cpp | 2 +- .../physxvehicle/src/PxVehicleDriveTank.cpp | 2 +- .../physxvehicle/src/PxVehicleLinearMath.h | 2 +- .../physxvehicle/src/PxVehicleMetaData.cpp | 2 +- .../physxvehicle/src/PxVehicleNoDrive.cpp | 2 +- .../source/physxvehicle/src/PxVehicleSDK.cpp | 2 +- .../src/PxVehicleSerialization.cpp | 2 +- .../physxvehicle/src/PxVehicleSerialization.h | 2 +- .../src/PxVehicleSuspLimitConstraintShader.h | 2 +- .../src/PxVehicleSuspWheelTire4.cpp | 2 +- .../src/PxVehicleSuspWheelTire4.h | 2 +- .../src/PxVehicleTireFriction.cpp | 2 +- .../physxvehicle/src/PxVehicleUpdate.cpp | 2 +- .../physxvehicle/src/PxVehicleWheels.cpp | 2 +- .../physxvehicle/src/VehicleUtilControl.cpp | 2 +- .../physxvehicle/src/VehicleUtilSetup.cpp | 2 +- .../physxvehicle/src/VehicleUtilTelemetry.cpp | 2 +- ...xVehicleAutoGeneratedMetaDataObjectNames.h | 2 +- .../PxVehicleAutoGeneratedMetaDataObjects.h | 2 +- .../include/PxVehicleMetaDataObjects.h | 2 +- .../PxVehicleAutoGeneratedMetaDataObjects.cpp | 2 +- .../src/PxVehicleMetaDataObjects.cpp | 2 +- .../src/commands/VhCommandHelpers.cpp | 2 +- .../src/drivetrain/VhDrivetrainFunctions.cpp | 2 +- .../src/drivetrain/VhDrivetrainHelpers.cpp | 2 +- .../src/physxActor/VhPhysXActorFunctions.cpp | 2 +- .../src/physxActor/VhPhysXActorHelpers.cpp | 2 +- .../VhPhysXConstraintFunctions.cpp | 2 +- .../VhPhysXConstraintHelpers.cpp | 2 +- .../VhPhysXRoadGeometryFunctions.cpp | 2 +- .../VhPhysXRoadGeometryHelpers.cpp | 2 +- .../src/pvd/VhPvdAttributeHandles.h | 2 +- .../physxvehicle2/src/pvd/VhPvdFunctions.cpp | 2 +- .../physxvehicle2/src/pvd/VhPvdHelpers.cpp | 2 +- .../src/pvd/VhPvdObjectHandles.h | 2 +- .../physxvehicle2/src/pvd/VhPvdWriter.cpp | 2 +- .../physxvehicle2/src/pvd/VhPvdWriter.h | 2 +- .../src/rigidBody/VhRigidBodyFunctions.cpp | 2 +- .../src/steering/VhSteeringFunctions.cpp | 2 +- .../src/suspension/VhSuspensionFunctions.cpp | 2 +- .../src/suspension/VhSuspensionHelpers.cpp | 2 +- .../src/tire/VhTireFunctions.cpp | 2 +- .../physxvehicle2/src/tire/VhTireHelpers.cpp | 2 +- .../src/wheel/VhWheelFunctions.cpp | 2 +- physx/source/pvd/include/PsPvd.h | 2 +- .../pvd/include/PxProfileAllocatorWrapper.h | 2 +- physx/source/pvd/include/PxPvdClient.h | 2 +- physx/source/pvd/include/PxPvdDataStream.h | 2 +- .../pvd/include/PxPvdDataStreamHelpers.h | 2 +- physx/source/pvd/include/PxPvdErrorCodes.h | 2 +- .../pvd/include/PxPvdObjectModelBaseTypes.h | 2 +- physx/source/pvd/include/PxPvdUserRenderer.h | 2 +- .../source/pvd/src/PxProfileContextProvider.h | 2 +- .../pvd/src/PxProfileContextProviderImpl.h | 2 +- physx/source/pvd/src/PxProfileDataBuffer.h | 2 +- physx/source/pvd/src/PxProfileDataParsing.h | 2 +- physx/source/pvd/src/PxProfileEventBuffer.h | 2 +- .../pvd/src/PxProfileEventBufferAtomic.h | 2 +- .../pvd/src/PxProfileEventBufferClient.h | 2 +- .../src/PxProfileEventBufferClientManager.h | 2 +- physx/source/pvd/src/PxProfileEventId.h | 2 +- physx/source/pvd/src/PxProfileEventImpl.cpp | 2 +- physx/source/pvd/src/PxProfileEventMutex.h | 2 +- physx/source/pvd/src/PxProfileEventNames.h | 2 +- physx/source/pvd/src/PxProfileEventSender.h | 2 +- .../pvd/src/PxProfileEventSerialization.h | 2 +- physx/source/pvd/src/PxProfileEvents.h | 2 +- physx/source/pvd/src/PxProfileMemory.h | 2 +- physx/source/pvd/src/PxProfileMemoryBuffer.h | 2 +- .../pvd/src/PxProfileMemoryEventBuffer.h | 2 +- physx/source/pvd/src/PxProfileMemoryEvents.h | 2 +- physx/source/pvd/src/PxProfileScopedEvent.h | 2 +- .../source/pvd/src/PxProfileScopedMutexLock.h | 2 +- physx/source/pvd/src/PxProfileZoneImpl.h | 2 +- physx/source/pvd/src/PxProfileZoneManager.h | 2 +- .../source/pvd/src/PxProfileZoneManagerImpl.h | 2 +- physx/source/pvd/src/PxPvd.cpp | 2 +- physx/source/pvd/src/PxPvdBits.h | 2 +- physx/source/pvd/src/PxPvdByteStreams.h | 2 +- .../source/pvd/src/PxPvdCommStreamEventSink.h | 2 +- physx/source/pvd/src/PxPvdCommStreamEvents.h | 2 +- physx/source/pvd/src/PxPvdCommStreamTypes.h | 2 +- physx/source/pvd/src/PxPvdDataStream.cpp | 2 +- .../pvd/src/PxPvdDefaultFileTransport.cpp | 2 +- .../pvd/src/PxPvdDefaultFileTransport.h | 2 +- .../pvd/src/PxPvdDefaultSocketTransport.cpp | 2 +- .../pvd/src/PxPvdDefaultSocketTransport.h | 2 +- physx/source/pvd/src/PxPvdFoundation.h | 2 +- physx/source/pvd/src/PxPvdImpl.cpp | 2 +- physx/source/pvd/src/PxPvdImpl.h | 2 +- .../source/pvd/src/PxPvdInternalByteStreams.h | 2 +- physx/source/pvd/src/PxPvdMarshalling.h | 2 +- physx/source/pvd/src/PxPvdMemClient.cpp | 2 +- physx/source/pvd/src/PxPvdMemClient.h | 2 +- .../src/PxPvdObjectModelInternalTypeDefs.h | 2 +- .../pvd/src/PxPvdObjectModelInternalTypes.h | 2 +- .../pvd/src/PxPvdObjectModelMetaData.cpp | 2 +- .../source/pvd/src/PxPvdObjectModelMetaData.h | 2 +- physx/source/pvd/src/PxPvdObjectRegistrar.cpp | 2 +- physx/source/pvd/src/PxPvdObjectRegistrar.h | 2 +- physx/source/pvd/src/PxPvdProfileZone.h | 2 +- .../source/pvd/src/PxPvdProfileZoneClient.cpp | 2 +- physx/source/pvd/src/PxPvdProfileZoneClient.h | 2 +- physx/source/pvd/src/PxPvdUserRenderImpl.h | 2 +- physx/source/pvd/src/PxPvdUserRenderTypes.h | 2 +- physx/source/pvd/src/PxPvdUserRenderer.cpp | 2 +- physx/source/scenequery/include/SqFactory.h | 2 +- physx/source/scenequery/include/SqManager.h | 2 +- physx/source/scenequery/include/SqPruner.h | 2 +- .../source/scenequery/include/SqPrunerData.h | 2 +- physx/source/scenequery/include/SqQuery.h | 2 +- physx/source/scenequery/include/SqTypedef.h | 2 +- .../scenequery/src/SqCompoundPruner.cpp | 2 +- .../source/scenequery/src/SqCompoundPruner.h | 2 +- .../scenequery/src/SqCompoundPruningPool.cpp | 2 +- .../scenequery/src/SqCompoundPruningPool.h | 2 +- physx/source/scenequery/src/SqFactory.cpp | 2 +- physx/source/scenequery/src/SqManager.cpp | 2 +- physx/source/scenequery/src/SqQuery.cpp | 2 +- .../include/ScActorCore.h | 2 +- .../include/ScArticulationAttachmentCore.h | 2 +- .../include/ScArticulationCore.h | 2 +- .../include/ScArticulationJointCore.h | 2 +- .../include/ScArticulationSensor.h | 2 +- .../include/ScArticulationTendonCore.h | 2 +- .../include/ScArticulationTendonJointCore.h | 2 +- .../simulationcontroller/include/ScBodyCore.h | 2 +- .../include/ScConstraintCore.h | 2 +- .../include/ScFEMClothCore.h | 2 +- .../include/ScHairSystemCore.h | 2 +- .../include/ScIterators.h | 21 +- .../include/ScParticleSystemCore.h | 2 +- .../simulationcontroller/include/ScPhysics.h | 2 +- .../include/ScRigidCore.h | 2 +- .../simulationcontroller/include/ScScene.h | 2 +- .../include/ScShapeCore.h | 2 +- .../include/ScSoftBodyCore.h | 2 +- .../include/ScSqBoundsSync.h | 2 +- .../include/ScStaticCore.h | 2 +- .../simulationcontroller/src/ScActorCore.cpp | 2 +- .../simulationcontroller/src/ScActorPair.h | 2 +- .../simulationcontroller/src/ScActorSim.cpp | 2 +- .../simulationcontroller/src/ScActorSim.h | 2 +- .../src/ScArticulationCore.cpp | 2 +- .../src/ScArticulationJointCore.cpp | 2 +- .../src/ScArticulationJointSim.cpp | 2 +- .../src/ScArticulationJointSim.h | 2 +- .../src/ScArticulationSensorSim.cpp | 2 +- .../src/ScArticulationSensorSim.h | 2 +- .../src/ScArticulationSim.cpp | 2 +- .../src/ScArticulationSim.h | 2 +- .../src/ScArticulationTendonCore.cpp | 2 +- .../src/ScArticulationTendonJointCore.cpp | 2 +- .../src/ScArticulationTendonSim.cpp | 2 +- .../src/ScArticulationTendonSim.h | 2 +- .../simulationcontroller/src/ScBodyCore.cpp | 2 +- .../simulationcontroller/src/ScBodySim.cpp | 2 +- .../simulationcontroller/src/ScBodySim.h | 2 +- .../source/simulationcontroller/src/ScCCD.cpp | 2 +- .../src/ScConstraintCore.cpp | 2 +- .../src/ScConstraintGroupNode.cpp | 2 +- .../src/ScConstraintGroupNode.h | 2 +- .../src/ScConstraintInteraction.cpp | 2 +- .../src/ScConstraintInteraction.h | 2 +- .../src/ScConstraintProjectionManager.cpp | 2 +- .../src/ScConstraintProjectionManager.h | 2 +- .../src/ScConstraintProjectionTree.cpp | 2 +- .../src/ScConstraintProjectionTree.h | 2 +- .../src/ScConstraintSim.cpp | 2 +- .../src/ScConstraintSim.h | 2 +- .../src/ScContactReportBuffer.h | 2 +- .../src/ScContactStream.h | 2 +- .../src/ScElementInteractionMarker.cpp | 2 +- .../src/ScElementInteractionMarker.h | 2 +- .../simulationcontroller/src/ScElementSim.cpp | 2 +- .../simulationcontroller/src/ScElementSim.h | 2 +- .../src/ScElementSimInteraction.h | 2 +- .../src/ScFEMClothCore.cpp | 2 +- .../src/ScFEMClothShapeSim.cpp | 2 +- .../src/ScFEMClothShapeSim.h | 2 +- .../src/ScFEMClothSim.cpp | 2 +- .../simulationcontroller/src/ScFEMClothSim.h | 2 +- .../src/ScHairSystemCore.cpp | 2 +- .../src/ScHairSystemShapeCore.cpp | 2 +- .../src/ScHairSystemShapeCore.h | 2 +- .../src/ScHairSystemShapeSim.cpp | 2 +- .../src/ScHairSystemShapeSim.h | 2 +- .../src/ScHairSystemSim.cpp | 2 +- .../src/ScHairSystemSim.h | 2 +- .../src/ScInteraction.cpp | 2 +- .../simulationcontroller/src/ScInteraction.h | 2 +- .../src/ScInteractionFlags.h | 2 +- .../simulationcontroller/src/ScIterators.cpp | 9 +- .../simulationcontroller/src/ScMetaData.cpp | 2 +- .../simulationcontroller/src/ScNPhaseCore.cpp | 12 +- .../simulationcontroller/src/ScNPhaseCore.h | 2 +- .../src/ScObjectIDTracker.h | 2 +- .../src/ScParticleSystemCore.cpp | 2 +- .../src/ScParticleSystemShapeCore.cpp | 2 +- .../src/ScParticleSystemShapeCore.h | 2 +- .../src/ScParticleSystemShapeSim.cpp | 2 +- .../src/ScParticleSystemShapeSim.h | 2 +- .../src/ScParticleSystemSim.cpp | 2 +- .../src/ScParticleSystemSim.h | 2 +- .../simulationcontroller/src/ScPhysics.cpp | 2 +- .../simulationcontroller/src/ScRigidCore.cpp | 2 +- .../simulationcontroller/src/ScRigidSim.cpp | 2 +- .../simulationcontroller/src/ScRigidSim.h | 2 +- .../simulationcontroller/src/ScScene.cpp | 2 +- .../simulationcontroller/src/ScShapeCore.cpp | 2 +- .../src/ScShapeInteraction.cpp | 2 +- .../src/ScShapeInteraction.h | 2 +- .../simulationcontroller/src/ScShapeSim.cpp | 2 +- .../simulationcontroller/src/ScShapeSim.h | 2 +- .../src/ScShapeSimBase.cpp | 2 +- .../simulationcontroller/src/ScShapeSimBase.h | 2 +- .../simulationcontroller/src/ScSimStateData.h | 2 +- .../simulationcontroller/src/ScSimStats.cpp | 2 +- .../simulationcontroller/src/ScSimStats.h | 2 +- .../src/ScSimulationController.cpp | 2 +- .../src/ScSimulationController.h | 2 +- .../src/ScSoftBodyCore.cpp | 2 +- .../src/ScSoftBodyShapeSim.cpp | 2 +- .../src/ScSoftBodyShapeSim.h | 2 +- .../src/ScSoftBodySim.cpp | 2 +- .../simulationcontroller/src/ScSoftBodySim.h | 2 +- .../src/ScSqBoundsManager.cpp | 2 +- .../src/ScSqBoundsManager.h | 2 +- .../simulationcontroller/src/ScStaticCore.cpp | 2 +- .../simulationcontroller/src/ScStaticSim.h | 2 +- .../src/ScTriggerInteraction.cpp | 2 +- .../src/ScTriggerInteraction.h | 2 +- .../simulationcontroller/src/ScTriggerPairs.h | 2 +- physx/source/task/src/TaskManager.cpp | 2 +- .../physxmetadatagenerator/PxBoilerPlate.h | 2 +- .../PxExtensionsCommon.h | 2 +- .../PxPhysicsWithExtensionsAPI.h | 2 +- .../PxVehicleExtensionAPI.h | 2 +- .../generateMetaData.bat | 2 +- .../generateMetaData.py | 2 +- .../generateMetaData.sh | 2 +- physx/tools/physxmetadatagenerator/helper.sh | 2 +- .../physxmetadatagenerator/lib/__init__.py | 2 +- .../physxmetadatagenerator/lib/compare.py | 2 +- .../tools/physxmetadatagenerator/lib/utils.py | 2 +- physx/tools/physxmetadatagenerator/readme.txt | 2 +- physx/version.txt | 2 +- 2055 files changed, 30540 insertions(+), 6965 deletions(-) create mode 100644 blast/include/shared/NvFoundation/Nv.h create mode 100644 blast/include/shared/NvFoundation/NvAllocatorCallback.h create mode 100644 blast/include/shared/NvFoundation/NvAssert.h create mode 100644 blast/include/shared/NvFoundation/NvBounds3.h rename blast/include/{lowlevel => shared/NvFoundation}/NvCTypes.h (92%) rename blast/include/{globals/NvBlastProfiler.h => shared/NvFoundation/NvErrorCallback.h} (54%) create mode 100644 blast/include/shared/NvFoundation/NvErrors.h create mode 100644 blast/include/shared/NvFoundation/NvFlags.h create mode 100644 blast/include/shared/NvFoundation/NvIO.h create mode 100644 blast/include/shared/NvFoundation/NvIntrinsics.h create mode 100644 blast/include/shared/NvFoundation/NvMat33.h create mode 100644 blast/include/shared/NvFoundation/NvMat44.h create mode 100644 blast/include/shared/NvFoundation/NvMath.h create mode 100644 blast/include/shared/NvFoundation/NvPlane.h rename blast/include/{lowlevel => shared/NvFoundation}/NvPreprocessor.h (96%) create mode 100644 blast/include/shared/NvFoundation/NvProfiler.h create mode 100644 blast/include/shared/NvFoundation/NvQuat.h create mode 100644 blast/include/shared/NvFoundation/NvSimpleTypes.h create mode 100644 blast/include/shared/NvFoundation/NvTransform.h create mode 100644 blast/include/shared/NvFoundation/NvVec2.h create mode 100644 blast/include/shared/NvFoundation/NvVec3.h create mode 100644 blast/include/shared/NvFoundation/NvVec4.h create mode 100644 blast/include/shared/NvFoundation/platform/unix/NvUnixIntrinsics.h create mode 100644 blast/include/shared/NvFoundation/platform/windows/NvWindowsIntrinsics.h rename blast/include/{extensions/physx/NvBlastExtPxTask.h => toolkit/NvBlastTkGroupTaskManager.h} (82%) rename blast/source/sdk/common/{NvBlastPxSharedHelpers.h => NvBlastNvSharedHelpers.h} (69%) create mode 100644 blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.cpp rename blast/{include/lowlevel/NvBlastPreprocessor.h => source/sdk/extensions/serialization/DTO/NvVec3DTO.h} (81%) rename blast/source/sdk/{common/NvBlastPxCustomProfiler.h => globals/NvBlastInternalProfiler.cpp} (59%) rename blast/source/sdk/globals/{NvBlastProfilerInternal.h => NvBlastInternalProfiler.h} (58%) delete mode 100644 blast/source/sdk/globals/NvBlastProfiler.cpp rename blast/source/sdk/{extensions/physx/NvBlastExtPxTaskImpl.cpp => toolkit/NvBlastTkTask.cpp} (76%) rename blast/source/sdk/{extensions/physx/NvBlastExtPxTaskImpl.h => toolkit/NvBlastTkTask.h} (78%) create mode 100644 blast/source/sdk/toolkit/NvBlastTkTaskManager.cpp create mode 100644 blast/source/shared/NsFileBuffer/include/NsMemoryBuffer.h create mode 100644 blast/source/shared/NsFileBuffer/include/NvFileBuf.h create mode 100644 blast/source/shared/NsFoundation/include/Ns.h create mode 100644 blast/source/shared/NsFoundation/include/NsAlignedMalloc.h create mode 100644 blast/source/shared/NsFoundation/include/NsAllocator.h create mode 100644 blast/source/shared/NsFoundation/include/NsAoS.h create mode 100644 blast/source/shared/NsFoundation/include/NsArray.h create mode 100644 blast/source/shared/NsFoundation/include/NsBasicTemplates.h create mode 100644 blast/source/shared/NsFoundation/include/NsBitUtils.h create mode 100644 blast/source/shared/NsFoundation/include/NsFPU.h create mode 100644 blast/source/shared/NsFoundation/include/NsGlobals.h create mode 100644 blast/source/shared/NsFoundation/include/NsHash.h create mode 100644 blast/source/shared/NsFoundation/include/NsHashInternals.h create mode 100644 blast/source/shared/NsFoundation/include/NsHashMap.h create mode 100644 blast/source/shared/NsFoundation/include/NsHashSet.h create mode 100644 blast/source/shared/NsFoundation/include/NsInlineAllocator.h create mode 100644 blast/source/shared/NsFoundation/include/NsInlineAoS.h rename blast/source/{sdk/common/NvBlastPxCallbacks.h => shared/NsFoundation/include/NsInlineArray.h} (51%) create mode 100644 blast/source/shared/NsFoundation/include/NsIntrinsics.h create mode 100644 blast/source/shared/NsFoundation/include/NsUserAllocated.h create mode 100644 blast/source/shared/NsFoundation/include/NsVecMath.h create mode 100644 blast/source/shared/NsFoundation/include/NsVecMathAoSScalar.h create mode 100644 blast/source/shared/NsFoundation/include/NsVecMathAoSScalarInline.h create mode 100644 blast/source/shared/NsFoundation/include/NsVecQuat.h create mode 100644 blast/source/shared/NsFoundation/include/NvUnionCast.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/NsUnixAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/NsUnixFPU.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/NsUnixInlineAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/NsUnixIntrinsics.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/NsUnixTrigConstants.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonInlineAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2AoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2InlineAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/windows/NsWindowsAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/windows/NsWindowsFPU.h create mode 100644 blast/source/shared/NsFoundation/include/platform/windows/NsWindowsInlineAoS.h create mode 100644 blast/source/shared/NsFoundation/include/platform/windows/NsWindowsIntrinsics.h create mode 100644 blast/source/shared/NsFoundation/include/platform/windows/NsWindowsTrigConstants.h create mode 100644 blast/source/shared/NvTask/include/NvCpuDispatcher.h create mode 100644 blast/source/shared/NvTask/include/NvGpuDispatcher.h create mode 100644 blast/source/shared/NvTask/include/NvTask.h rename physx/source/compiler/resource_x86/resource.h => blast/source/shared/NvTask/include/NvTaskDefine.h (72%) create mode 100644 blast/source/shared/NvTask/include/NvTaskManager.h delete mode 100644 blast/source/shared/filebuf/include/PsAsciiConversion.h delete mode 100644 blast/source/shared/filebuf/include/PsAsciiConversion.inl delete mode 100644 blast/source/shared/filebuf/include/PsFileBuffer.h delete mode 100644 blast/source/shared/filebuf/include/PsIOStream.h delete mode 100644 blast/source/shared/filebuf/include/PsIOStream.inl delete mode 100644 blast/source/shared/filebuf/include/PsMemoryBuffer.h delete mode 100644 blast/source/shared/task/TaskManager.cpp create mode 100644 physx/buildtools/presets/public/vc17win64.xml create mode 100644 physx/snippets/snippetjointdrive/SnippetJointDrive.cpp create mode 100644 physx/snippets/snippetjointdrive/SnippetJointDriveRender.cpp delete mode 100644 physx/source/compiler/resource_x86/PhysX.rc delete mode 100644 physx/source/compiler/resource_x86/PhysXCommon.rc delete mode 100644 physx/source/compiler/resource_x86/PhysXCooking.rc delete mode 100644 physx/source/compiler/resource_x86/PhysXFoundation.rc diff --git a/README.md b/README.md index f8013e6f4..17ba3d0fd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # NVIDIA PhysX -Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/blast/PACKAGE-LICENSES/blast-sdk-LICENSE.md b/blast/PACKAGE-LICENSES/blast-sdk-LICENSE.md index 9ae5404d1..4056e6a29 100644 --- a/blast/PACKAGE-LICENSES/blast-sdk-LICENSE.md +++ b/blast/PACKAGE-LICENSES/blast-sdk-LICENSE.md @@ -22,4 +22,4 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. diff --git a/blast/VERSION.md b/blast/VERSION.md index 4d54daddb..0062ac971 100644 --- a/blast/VERSION.md +++ b/blast/VERSION.md @@ -1 +1 @@ -4.0.2 +5.0.0 diff --git a/blast/deps/target-deps.packman.xml b/blast/deps/target-deps.packman.xml index 498a8d5bf..d7c8dd122 100644 --- a/blast/deps/target-deps.packman.xml +++ b/blast/deps/target-deps.packman.xml @@ -16,12 +16,6 @@ - - - - - - diff --git a/blast/docs/CHANGELOG.md b/blast/docs/CHANGELOG.md index 804152234..b46a72a81 100644 --- a/blast/docs/CHANGELOG.md +++ b/blast/docs/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [5.0.0] - 23-Jan-2023 + +### Changes +- Removed all PhysX dependencies from code outside of the ExtPx extension +- Replaced Px types with NvShared types +- NvFoundation headers in include/shared/NvFoundation + - Includes NvPreprocessor.h and NvcTypes.h (formerly in include/lowlevel) + - Include basic Nv types, such as NvVec3 (used by the Tk library) +- Consolidated header structure + - include/lowlevel/NvBlastPreprocessor.h is gone + - Previously-defined NVBLAST_API has been renamed NV_C_API and is now defined in NvPreprocessor.h + + ## [4.0.2] - 31-Aug-2022 ### Bugfixes diff --git a/blast/include/extensions/assetutils/NvBlastExtAssetUtils.h b/blast/include/extensions/assetutils/NvBlastExtAssetUtils.h index dce2e7b92..24b1f4324 100644 --- a/blast/include/extensions/assetutils/NvBlastExtAssetUtils.h +++ b/blast/include/extensions/assetutils/NvBlastExtAssetUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -48,7 +48,7 @@ Reauthor the provided asset to create external bonds in the specified support ch \return a new asset with added bonds if successful, NULL otherwise. */ -NVBLAST_API NvBlastAsset* NvBlastExtAssetUtilsAddExternalBonds +NV_C_API NvBlastAsset* NvBlastExtAssetUtilsAddExternalBonds ( const NvBlastAsset* asset, const uint32_t* externalBoundChunks, @@ -85,7 +85,7 @@ NVBLAST_FREE appied to the pointers in the returned NvBlastAssetDesc. \return an asset descriptor that will build an exact duplicate of the input asset. */ -NVBLAST_API NvBlastAssetDesc NvBlastExtAssetUtilsCreateDesc(const NvBlastAsset* asset); +NV_C_API NvBlastAssetDesc NvBlastExtAssetUtilsCreateDesc(const NvBlastAsset* asset); /** @@ -126,7 +126,7 @@ NVBLAST_FREE appied to the pointers in the returned NvBlastAssetDesc. \return an asset descriptor that will build an asset which merges the components, using NvBlastCreateAsset. */ -NVBLAST_API NvBlastAssetDesc NvBlastExtAssetUtilsMergeAssets +NV_C_API NvBlastAssetDesc NvBlastExtAssetUtilsMergeAssets ( const NvBlastAsset** components, const NvcVec3* scales, @@ -151,7 +151,7 @@ Chunk volume and bond area are changed accordingly. \param[in] rotation Pointer to rotation to be applied. Can be nullptr. \param[in] translation Pointer to translation to be applied. Can be nullptr. */ -NVBLAST_API void NvBlastExtAssetTransformInPlace +NV_C_API void NvBlastExtAssetTransformInPlace ( NvBlastAsset* asset, const NvcVec3* scale, diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoring.h b/blast/include/extensions/authoring/NvBlastExtAuthoring.h index d5a003ec8..06244b1d8 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoring.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoring.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -67,7 +67,7 @@ User should call release() after usage. \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr */ -NVBLAST_API Nv::Blast::Mesh* +NV_C_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMesh(const NvcVec3* positions, const NvcVec3* normals, const NvcVec2* uv, uint32_t verticesCount, const uint32_t* indices, uint32_t indicesCount); @@ -84,7 +84,7 @@ User should call Mesh::release() after usage. \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr */ -NVBLAST_API Nv::Blast::Mesh* +NV_C_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMeshOnlyTriangles(const void* vertices, uint32_t verticesCount, uint32_t* indices, uint32_t indexCount, void* materials = nullptr, uint32_t materialStride = 4); @@ -101,7 +101,7 @@ User should call release() after usage. \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr */ -NVBLAST_API Nv::Blast::Mesh* +NV_C_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMeshFromFacets(const void* vertices, const void* edges, const void* facets, uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount); @@ -112,11 +112,11 @@ should be supplied with fracture mesh. \param[in] rnd User supplied random value generator. \return Pointer to VoronoiSitesGenerator. User's code should release it after usage. */ -NVBLAST_API Nv::Blast::VoronoiSitesGenerator* +NV_C_API Nv::Blast::VoronoiSitesGenerator* NvBlastExtAuthoringCreateVoronoiSitesGenerator(Nv::Blast::Mesh* mesh, Nv::Blast::RandomGeneratorBase* rng); /** Instantiates a blank CutoutSet */ -NVBLAST_API Nv::Blast::CutoutSet* NvBlastExtAuthoringCreateCutoutSet(); +NV_C_API Nv::Blast::CutoutSet* NvBlastExtAuthoringCreateCutoutSet(); /** Builds a cutout set (which must have been initially created by createCutoutSet()). @@ -134,7 +134,7 @@ segments may be fudged into alignment. By default set it to 1. \param expandGaps expand cutout regions to gaps or keep it as is */ -NVBLAST_API void +NV_C_API void NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet& cutoutSet, const uint8_t* pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold, bool periodic, bool expandGaps); @@ -143,13 +143,13 @@ NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet& cutoutSet, const uint8_t Create FractureTool object. \return Pointer to create FractureTool. User's code should release it after usage. */ -NVBLAST_API Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool(); +NV_C_API Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool(); /** Create BlastBondGenerator \return Pointer to created BlastBondGenerator. User's code should release it after usage. */ -NVBLAST_API Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator(Nv::Blast::ConvexMeshBuilder* builder); +NV_C_API Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator(Nv::Blast::ConvexMeshBuilder* builder); /** Build convex mesh decomposition. @@ -160,7 +160,7 @@ Build convex mesh decomposition. \return Number of created convex hulls. */ -NVBLAST_API int32_t NvBlastExtAuthoringBuildMeshConvexDecomposition(Nv::Blast::ConvexMeshBuilder* cmb, +NV_C_API int32_t NvBlastExtAuthoringBuildMeshConvexDecomposition(Nv::Blast::ConvexMeshBuilder* cmb, const Nv::Blast::Triangle* mesh, uint32_t triangleCount, const Nv::Blast::ConvexDecompositionParams& params, @@ -179,7 +179,7 @@ NVBLAST_API int32_t NvBlastExtAuthoringBuildMeshConvexDecomposition(Nv::Blast::C \param[in] chunkDepth Array of depth levels of convex hulls corresponding chunks. */ -NVBLAST_API void NvBlastExtAuthoringTrimCollisionGeometry(Nv::Blast::ConvexMeshBuilder* cmb, uint32_t chunksCount, +NV_C_API void NvBlastExtAuthoringTrimCollisionGeometry(Nv::Blast::ConvexMeshBuilder* cmb, uint32_t chunksCount, Nv::Blast::CollisionHull** in, const uint32_t* chunkDepth); @@ -190,7 +190,7 @@ Transforms collision hull in place using scale, rotation, transform. \param[in] rotation Pointer to rotation to be applied. Can be nullptr. \param[in] translation Pointer to translation to be applied. Can be nullptr. */ -NVBLAST_API void NvBlastExtAuthoringTransformCollisionHullInPlace(Nv::Blast::CollisionHull* hull, const NvcVec3* scaling, +NV_C_API void NvBlastExtAuthoringTransformCollisionHullInPlace(Nv::Blast::CollisionHull* hull, const NvcVec3* scaling, const NvcQuat* rotation, const NvcVec3* translation); /** @@ -200,7 +200,7 @@ Transforms collision hull in place using scale, rotation, transform. \param[in] rotation Pointer to rotation to be applied. Can be nullptr. \param[in] translation Pointer to translation to be applied. Can be nullptr. */ -NVBLAST_API Nv::Blast::CollisionHull* +NV_C_API Nv::Blast::CollisionHull* NvBlastExtAuthoringTransformCollisionHull(const Nv::Blast::CollisionHull* hull, const NvcVec3* scaling, const NvcQuat* rotation, const NvcVec3* translation); @@ -215,7 +215,7 @@ Performs pending fractures and generates fractured asset, render and collision g \param[in] collisionParam Parameters of collision hulls generation. \return Authoring result */ -NVBLAST_API Nv::Blast::AuthoringResult* +NV_C_API Nv::Blast::AuthoringResult* NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool& fTool, Nv::Blast::BlastBondGenerator& bondGenerator, Nv::Blast::ConvexMeshBuilder& collisionBuilder, const Nv::Blast::ConvexDecompositionParams& collisionParam, @@ -225,12 +225,12 @@ NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool& fTool, Nv::Blast::Bl /** Releases collision data for AuthoringResult. AuthoringResult should be created by NvBlast. */ -NVBLAST_API void NvBlastExtAuthoringReleaseAuthoringResultCollision(Nv::Blast::ConvexMeshBuilder& collisionBuilder, Nv::Blast::AuthoringResult* ar); +NV_C_API void NvBlastExtAuthoringReleaseAuthoringResultCollision(Nv::Blast::ConvexMeshBuilder& collisionBuilder, Nv::Blast::AuthoringResult* ar); /** Releases AuthoringResult data. AuthoringResult should be created by NvBlast. */ -NVBLAST_API void NvBlastExtAuthoringReleaseAuthoringResult(Nv::Blast::ConvexMeshBuilder& collisionBuilder, Nv::Blast::AuthoringResult* ar); +NV_C_API void NvBlastExtAuthoringReleaseAuthoringResult(Nv::Blast::ConvexMeshBuilder& collisionBuilder, Nv::Blast::AuthoringResult* ar); /** @@ -240,7 +240,7 @@ Updates graphics mesh only \param[out] ares AuthoringResult object which contains chunks, for which rendermeshes will be updated (e.g. to tweak UVs). Initially should be created by NvBlastExtAuthoringProcessFracture. */ -NVBLAST_API void NvBlastExtAuthoringUpdateGraphicsMesh(Nv::Blast::FractureTool& fTool, Nv::Blast::AuthoringResult& ares); +NV_C_API void NvBlastExtAuthoringUpdateGraphicsMesh(Nv::Blast::FractureTool& fTool, Nv::Blast::AuthoringResult& ares); /** Build collision meshes @@ -251,7 +251,7 @@ Parameters of collision hulls generation. \param[in] chunksToProcessCount Number of chunk indices in chunksToProcess memory buffer. \param[in] chunksToProcess Chunk indices for which collision mesh should be built. */ -NVBLAST_API void NvBlastExtAuthoringBuildCollisionMeshes(Nv::Blast::AuthoringResult& ares, +NV_C_API void NvBlastExtAuthoringBuildCollisionMeshes(Nv::Blast::AuthoringResult& ares, Nv::Blast::ConvexMeshBuilder& collisionBuilder, const Nv::Blast::ConvexDecompositionParams& collisionParam, uint32_t chunksToProcessCount, uint32_t* chunksToProcess); @@ -260,7 +260,7 @@ NVBLAST_API void NvBlastExtAuthoringBuildCollisionMeshes(Nv::Blast::AuthoringRes Creates MeshCleaner object \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr */ -NVBLAST_API Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner(); +NV_C_API Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner(); /** Finds bonds connecting chunks in a list of assets @@ -287,7 +287,7 @@ relativeTransforms arrays. \param[in] maxSeparation Maximal distance between chunks which can be connected by bond. \return the number of bonds in newBondDescs */ -NVBLAST_API uint32_t NvBlastExtAuthoringFindAssetConnectingBonds( +NV_C_API uint32_t NvBlastExtAuthoringFindAssetConnectingBonds( const NvBlastAsset** components, const NvcVec3* scales, const NvcQuat* rotations, const NvcVec3* translations, const uint32_t** convexHullOffsets, const Nv::Blast::CollisionHull*** chunkHulls, uint32_t componentCount, NvBlastExtAssetUtilsBondDesc*& newBondDescs, float maxSeparation = 0.0f); @@ -295,31 +295,31 @@ NVBLAST_API uint32_t NvBlastExtAuthoringFindAssetConnectingBonds( /** Returns pattern generator used for generating fracture patterns. */ -NVBLAST_API Nv::Blast::PatternGenerator* NvBlastExtAuthoringCreatePatternGenerator(); +NV_C_API Nv::Blast::PatternGenerator* NvBlastExtAuthoringCreatePatternGenerator(); /** Create spatial grid for mesh. Release using Nv::Blast::SpatialGrid::release() */ -NVBLAST_API Nv::Blast::SpatialGrid* NvBlastExtAuthoringCreateSpatialGrid(uint32_t resolution, const Nv::Blast::Mesh* m); +NV_C_API Nv::Blast::SpatialGrid* NvBlastExtAuthoringCreateSpatialGrid(uint32_t resolution, const Nv::Blast::Mesh* m); /** Create GridAccelerator - SpatialAccelerator which use Grid for faster mesh sampling. Release using Nv::Blast::SpatialAccelerator::release() */ -NVBLAST_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateGridAccelerator(Nv::Blast::SpatialGrid* parent); +NV_C_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateGridAccelerator(Nv::Blast::SpatialGrid* parent); /** Create SweepingAccelerator - SpatialAccelerator which uses a sweep algorithm. Release using Nv::Blast::SpatialAccelerator::release() */ -NVBLAST_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateSweepingAccelerator(const Nv::Blast::Mesh* m); +NV_C_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateSweepingAccelerator(const Nv::Blast::Mesh* m); /** Create BBoxBasedAccelerator - SpatialAccelerator which uses a bbox/grid algorithm. Release using Nv::Blast::SpatialAccelerator::release() */ -NVBLAST_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateBBoxBasedAccelerator(uint32_t resolution, const Nv::Blast::Mesh* m); +NV_C_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateBBoxBasedAccelerator(uint32_t resolution, const Nv::Blast::Mesh* m); #define kBBoxBasedAcceleratorDefaultResolution 10 @@ -327,7 +327,7 @@ NVBLAST_API Nv::Blast::SpatialAccelerator* NvBlastExtAuthoringCreateBBoxBasedAcc Create BooleanTool object. \return Pointer to created BooleanTool. User's code should release it after usage. */ -NVBLAST_API Nv::Blast::BooleanTool* NvBlastExtAuthoringCreateBooleanTool(); +NV_C_API Nv::Blast::BooleanTool* NvBlastExtAuthoringCreateBooleanTool(); #endif // ifndef NVBLASTAUTHORING_H diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoringBondGenerator.h b/blast/include/extensions/authoring/NvBlastExtAuthoringBondGenerator.h index a9fde0211..a908b103e 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoringBondGenerator.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoringBondGenerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoringBooleanTool.h b/blast/include/extensions/authoring/NvBlastExtAuthoringBooleanTool.h index 335a0d62d..6c87ae334 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoringBooleanTool.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoringBooleanTool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2021 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoringCutout.h b/blast/include/extensions/authoring/NvBlastExtAuthoringCutout.h index cf30ab2ab..80bde15ab 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoringCutout.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoringCutout.h @@ -11,7 +11,7 @@ // components in life support devices or systems without express written approval of // NVIDIA Corporation. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoringFractureTool.h b/blast/include/extensions/authoring/NvBlastExtAuthoringFractureTool.h index 351b4c1b0..d79006d9c 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoringFractureTool.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoringFractureTool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoring/NvBlastExtAuthoringMeshCleaner.h b/blast/include/extensions/authoring/NvBlastExtAuthoringMeshCleaner.h index ffcf6db88..4f3252a6d 100644 --- a/blast/include/extensions/authoring/NvBlastExtAuthoringMeshCleaner.h +++ b/blast/include/extensions/authoring/NvBlastExtAuthoringMeshCleaner.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringAccelerator.h b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringAccelerator.h index d6c3b9ad7..73fdd5a1d 100644 --- a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringAccelerator.h +++ b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringAccelerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringConvexMeshBuilder.h b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringConvexMeshBuilder.h index 30620544c..64080d4f7 100644 --- a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringConvexMeshBuilder.h +++ b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringConvexMeshBuilder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -44,7 +44,6 @@ struct CollisionHull; ConvexMeshBuilder provides routine to build collision hulls from array of vertices. Collision hull is built as convex hull of provided point set. If due to some reason building of convex hull is failed, collision hull is built as bounding box of vertex set. - PhysX implementation can be found in NvBlastExtPx. */ class ConvexMeshBuilder { diff --git a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringMesh.h b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringMesh.h index a476302cc..2754f2113 100644 --- a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringMesh.h +++ b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringPatternGenerator.h b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringPatternGenerator.h index e8a68369e..d557e76e6 100644 --- a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringPatternGenerator.h +++ b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringPatternGenerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -119,7 +119,7 @@ namespace Nv virtual void release() = 0; }; - NVBLAST_API void savePatternToObj(DamagePattern* pattern); + NV_C_API void savePatternToObj(DamagePattern* pattern); } // namespace Blast } // namespace Nv diff --git a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringTypes.h b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringTypes.h index f8a637e58..a5c08e1f0 100644 --- a/blast/include/extensions/authoringCommon/NvBlastExtAuthoringTypes.h +++ b/blast/include/extensions/authoringCommon/NvBlastExtAuthoringTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/serialization/NvBlastExtLlSerialization.h b/blast/include/extensions/serialization/NvBlastExtLlSerialization.h index 081907b77..9752ba31a 100644 --- a/blast/include/extensions/serialization/NvBlastExtLlSerialization.h +++ b/blast/include/extensions/serialization/NvBlastExtLlSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -69,8 +69,8 @@ struct LlObjectTypeID /** Load all low-level serializers into the ExtSerialization manager. *N.B.* This is done automatically when the ExtSerialization manager is created via NvBlastExtSerializationCreate(), so currently this public function -is unnecessary. Note also that other modules' serializers (ExtTkSerialization and ExtPxSerialization) are -_not_ loaded automatically, and need to be explicitly loaded by the user using their respective load functions. +is unnecessary. Note also that other modules' serializers (e.g. ExtTkSerialization) are _not_ loaded +automatically, and need to be explicitly loaded by the user using their respective load functions. It does no harm to call this function more than once; serializers already loaded will not be loaded again. @@ -78,7 +78,7 @@ It does no harm to call this function more than once; serializers already loaded \return the number of serializers loaded. */ -NVBLAST_API size_t NvBlastExtLlSerializerLoadSet(Nv::Blast::ExtSerialization& serialization); +NV_C_API size_t NvBlastExtLlSerializerLoadSet(Nv::Blast::ExtSerialization& serialization); /** @@ -95,7 +95,7 @@ Equivalent to: \return the number of bytes serialized into the buffer (zero if unsuccessful). */ -NVBLAST_API uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const NvBlastAsset* asset); +NV_C_API uint64_t NvBlastExtSerializationSerializeAssetIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const NvBlastAsset* asset); /** @@ -112,4 +112,4 @@ Equivalent to: \return the number of bytes serialized into the buffer (zero if unsuccessful). */ -NVBLAST_API uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const NvBlastFamily* family); +NV_C_API uint64_t NvBlastExtSerializationSerializeFamilyIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const NvBlastFamily* family); diff --git a/blast/include/extensions/serialization/NvBlastExtSerialization.h b/blast/include/extensions/serialization/NvBlastExtSerialization.h index 10f574f92..6f0e9e19d 100644 --- a/blast/include/extensions/serialization/NvBlastExtSerialization.h +++ b/blast/include/extensions/serialization/NvBlastExtSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -155,4 +155,4 @@ This uses the global allocator set in NvBlastGlobals.h. \return a new serialization manager. */ -NVBLAST_API Nv::Blast::ExtSerialization* NvBlastExtSerializationCreate(); +NV_C_API Nv::Blast::ExtSerialization* NvBlastExtSerializationCreate(); diff --git a/blast/include/extensions/serialization/NvBlastExtTkSerialization.h b/blast/include/extensions/serialization/NvBlastExtTkSerialization.h index 52aba3fc9..c7d51c720 100644 --- a/blast/include/extensions/serialization/NvBlastExtTkSerialization.h +++ b/blast/include/extensions/serialization/NvBlastExtTkSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -71,7 +71,7 @@ It does no harm to call this function more than once; serializers already loaded \return the number of serializers loaded. */ -NVBLAST_API size_t NvBlastExtTkSerializerLoadSet(Nv::Blast::TkFramework& framework, Nv::Blast::ExtSerialization& serialization); +NV_C_API size_t NvBlastExtTkSerializerLoadSet(Nv::Blast::TkFramework& framework, Nv::Blast::ExtSerialization& serialization); /** @@ -88,4 +88,4 @@ Equivalent to: \return the number of bytes serialized into the buffer (zero if unsuccessful). */ -NVBLAST_API uint64_t NvBlastExtSerializationSerializeTkAssetIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const Nv::Blast::TkAsset* asset); +NV_C_API uint64_t NvBlastExtSerializationSerializeTkAssetIntoBuffer(void*& buffer, Nv::Blast::ExtSerialization& serialization, const Nv::Blast::TkAsset* asset); diff --git a/blast/include/extensions/shaders/NvBlastExtDamageShaders.h b/blast/include/extensions/shaders/NvBlastExtDamageShaders.h index 6ce815a48..f0aa779cd 100644 --- a/blast/include/extensions/shaders/NvBlastExtDamageShaders.h +++ b/blast/include/extensions/shaders/NvBlastExtDamageShaders.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -52,7 +52,7 @@ class NvBlastExtDamageAccelerator virtual Nv::Blast::DebugBuffer fillDebugRender(int depth = -1, bool segments = false) = 0; }; -NVBLAST_API NvBlastExtDamageAccelerator* NvBlastExtDamageAcceleratorCreate(const NvBlastAsset* asset, int type); +NV_C_API NvBlastExtDamageAccelerator* NvBlastExtDamageAcceleratorCreate(const NvBlastAsset* asset, int type); /////////////////////////////////////////////////////////////////////////////// @@ -141,10 +141,10 @@ NOTE: The signature of shader functions are equal to NvBlastGraphShaderFunction They are not expected to be called directly. @see NvBlastGraphShaderFunction, NvBlastSubgraphShaderFunction */ -NVBLAST_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtCutterGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtCutterSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtCutterGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtCutterSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); /////////////////////////////////////////////////////////////////////////////// @@ -173,8 +173,8 @@ NOTE: The signature of shader functions are equal to NvBlastGraphShaderFunction They are not expected to be called directly. @see NvBlastGraphShaderFunction, NvBlastSubgraphShaderFunction */ -NVBLAST_API void NvBlastExtCapsuleFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtCapsuleFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtCapsuleFalloffGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtCapsuleFalloffSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); /////////////////////////////////////////////////////////////////////////////// @@ -202,8 +202,8 @@ NOTE: The signature of shader functions are equal to NvBlastGraphShaderFunction They are not expected to be called directly. @see NvBlastGraphShaderFunction, NvBlastSubgraphShaderFunction */ -NVBLAST_API void NvBlastExtShearGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtShearSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtShearGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtShearSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); /////////////////////////////////////////////////////////////////////////////// @@ -235,8 +235,8 @@ NOTE: The signature of shader functions are equal to NvBlastGraphShaderFunction They are not expected to be called directly. @see NvBlastGraphShaderFunction, NvBlastSubgraphShaderFunction */ -NVBLAST_API void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtTriangleIntersectionSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtTriangleIntersectionSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); /////////////////////////////////////////////////////////////////////////////// @@ -272,8 +272,8 @@ NOTE: The signature of shader functions are equal to NvBlastGraphShaderFunction They are not expected to be called directly. @see NvBlastGraphShaderFunction, NvBlastSubgraphShaderFunction */ -NVBLAST_API void NvBlastExtImpactSpreadGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); -NVBLAST_API void NvBlastExtImpactSpreadSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtImpactSpreadGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastGraphShaderActor* actor, const void* params); +NV_C_API void NvBlastExtImpactSpreadSubgraphShader(NvBlastFractureBuffers* commandBuffers, const NvBlastSubgraphShaderActor* actor, const void* params); #endif // NVBLASTEXTDAMAGESHADERS_H diff --git a/blast/include/extensions/stress/NvBlastExtStressSolver.h b/blast/include/extensions/stress/NvBlastExtStressSolver.h index 72ab52494..003ad1172 100644 --- a/blast/include/extensions/stress/NvBlastExtStressSolver.h +++ b/blast/include/extensions/stress/NvBlastExtStressSolver.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -121,7 +121,7 @@ class NV_DLL_EXPORT ExtStressSolver /** Create a new ExtStressSolver. - \param[in] family The ExtPxFamily instance to calculate stress on. + \param[in] family The NvBlastFamily instance to calculate stress on. \param[in] settings The settings to be set on ExtStressSolver. \return the new ExtStressSolver if successful, NULL otherwise. diff --git a/blast/include/globals/NvBlastAllocator.h b/blast/include/globals/NvBlastAllocator.h index 0e83a2513..c2d1715f4 100644 --- a/blast/include/globals/NvBlastAllocator.h +++ b/blast/include/globals/NvBlastAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -31,10 +31,11 @@ #ifndef NVBLASTALLOCATOR_H #define NVBLASTALLOCATOR_H +#include "NvAllocatorCallback.h" #include "NvBlastGlobals.h" /** -This file contains AllocatorCallback wrappers compatible with PxShared containers. +This file contains nvidia::NvAllocatorCallback wrappers compatible with NvShared containers. */ namespace Nv @@ -43,7 +44,7 @@ namespace Blast { /** -Allocator uses global AllocatorCallback. +Allocator uses global nvidia::NvAllocatorCallback. */ class Allocator { diff --git a/blast/include/globals/NvBlastDebugRender.h b/blast/include/globals/NvBlastDebugRender.h index 16a7f9c57..aa790dc20 100644 --- a/blast/include/globals/NvBlastDebugRender.h +++ b/blast/include/globals/NvBlastDebugRender.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/globals/NvBlastGlobals.h b/blast/include/globals/NvBlastGlobals.h index f5833c4c4..5792164d7 100644 --- a/blast/include/globals/NvBlastGlobals.h +++ b/blast/include/globals/NvBlastGlobals.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTGLOBALS_H @@ -30,155 +30,54 @@ #include #include "NvBlastTypes.h" +#include "NvAllocatorCallback.h" +#include "NvErrorCallback.h" +#include "NvProfiler.h" + //! @file //! //! @brief API for the NvBlastGlobals library -namespace Nv -{ -namespace Blast -{ - - -/** -\brief Abstract base class for an application defined memory allocator that can be used by toolkit (Tk) or any extension (Ext). -*/ -class AllocatorCallback -{ -public: - /** - \brief destructor - */ - virtual ~AllocatorCallback() - { - } - - /** - \brief Allocates size bytes of memory, which must be 16-byte aligned. - - This method should never return NULL. If you run out of memory, then - you should terminate the app or take some other appropriate action. - - \param size Number of bytes to allocate. - \param typeName Name of the datatype that is being allocated - \param filename The source file which allocated the memory - \param line The source line which allocated the memory - \return The allocated block of memory. - */ - virtual void* allocate(size_t size, const char* typeName, const char* filename, int line) = 0; - - /** - \brief Frees memory previously allocated by allocate(). - - \param ptr Memory to free. - */ - virtual void deallocate(void* ptr) = 0; -}; - +//////// Global API to Access Global nvidia::NvAllocatorCallback, nvidia::NvErrorCallback, and nvidia::NvProfilerCallback //////// /** -\brief Error codes - -These error codes are passed to #ErrorCallback - -\note: It's actually the copy of PxErrorCallback's PxErrorCode so it can be easily casted to it. Keep that -in mind if you are going to change this enum. +Retrieve a pointer to the global nvidia::NvAllocatorCallback. Default implementation with std allocator is used if user didn't provide +their own. It always exists, 'nullptr' will never be returned. -@see ErrorCallback +\return the pointer to the global nvidia::NvAllocatorCallback. */ -struct ErrorCode -{ - enum Enum - { - eNO_ERROR = 0, - - //! \brief An informational message. - eDEBUG_INFO = 1, - - //! \brief a warning message for the user to help with debugging - eDEBUG_WARNING = 2, - - //! \brief method called with invalid parameter(s) - eINVALID_PARAMETER = 4, - - //! \brief method was called at a time when an operation is not possible - eINVALID_OPERATION = 8, - - //! \brief method failed to allocate some memory - eOUT_OF_MEMORY = 16, - - /** \brief The library failed for some reason. - Possibly you have passed invalid values like NaNs, which are not checked for. - */ - eINTERNAL_ERROR = 32, - - //! \brief An unrecoverable error, execution should be halted and log output flushed - eABORT = 64, - - //! \brief The SDK has determined that an operation may result in poor performance. - ePERF_WARNING = 128, - - //! \brief A bit mask for including all errors - eMASK_ALL = -1 - }; -}; - +NV_C_API nvidia::NvAllocatorCallback* NvBlastGlobalGetAllocatorCallback(); /** -\brief User defined interface class. Used by the library to emit debug information. - -\note The SDK state should not be modified from within any error reporting functions. +Set global nvidia::NvAllocatorCallback. If 'nullptr' is passed the default nvidia::NvAllocatorCallback with std allocator is set. */ -class ErrorCallback -{ -public: - virtual ~ErrorCallback() - { - } - - /** - \brief Reports an error code. - \param code Error code, see #ErrorCode - \param message Message to display. - \param file File error occured in. - \param line Line number error occured on. - */ - virtual void reportError(ErrorCode::Enum code, const char* message, const char* file, int line) = 0; -}; - - -} // namespace Blast -} // namespace Nv - - -//////// Global API to Access Global AllocatorCallback and ErrorCallback //////// +NV_C_API void NvBlastGlobalSetAllocatorCallback(nvidia::NvAllocatorCallback* allocatorCallback); /** -Retrieve a pointer to the global AllocatorCallback. Default implementation with std allocator is used if user didn't provide -it's own. It always exist, 'nullptr' will never be returned. +Retrieve a pointer to the global nvidia::NvErrorCallback. Default implementation which writes messages to stdout is used if user didn't provide +their own. It always exists, 'nullptr' will never be returned. -\return the pointer to the global AllocatorCallback. +\return the pointer to the global nvidia::NvErrorCallback. */ -NVBLAST_API Nv::Blast::AllocatorCallback* NvBlastGlobalGetAllocatorCallback(); +NV_C_API nvidia::NvErrorCallback* NvBlastGlobalGetErrorCallback(); /** -Set global AllocatorCallback. If 'nullptr' is passed the default AllocatorCallback with std allocator is set. +Set global nvidia::NvErrorCallback. If 'nullptr' is passed the default nvidia::NvErrorCallback that writes messages to stdout is set. */ -NVBLAST_API void NvBlastGlobalSetAllocatorCallback(Nv::Blast::AllocatorCallback* allocatorCallback); +NV_C_API void NvBlastGlobalSetErrorCallback(nvidia::NvErrorCallback* errorCallback); /** -Retrieve a pointer to the global ErrorCallback. Default implementation which writes messages to stdout is used if user didn't provide -it's own. It always exist, 'nullptr' will never be returned. +Retrieve a pointer to the global nvidia::NvProfilerCallback. Returns nullptr if none is set. -\return the pointer to the global ErrorCallback. +\return the pointer to the global nvidia::NvProfilerCallback. */ -NVBLAST_API Nv::Blast::ErrorCallback* NvBlastGlobalGetErrorCallback(); +NV_C_API nvidia::NvProfilerCallback* NvBlastGlobalGetProfilerCallback(); /** -Set global ErrorCallback. If 'nullptr' is passed the default ErrorCallback that writes messages to stdout is set. +Set a custom profiler callback. May be nullptr (the default). */ -NVBLAST_API void NvBlastGlobalSetErrorCallback(Nv::Blast::ErrorCallback* errorCallback); +NV_C_API void NvBlastGlobalSetProfilerCallback(nvidia::NvProfilerCallback* profilerCallback); //////// Helper Global Functions //////// @@ -188,21 +87,20 @@ namespace Nv namespace Blast { - /** Logging wrapper compatible with NvBlastLog. @see NvBlastLog. -Pass this function to LowLevel function calls in order to get logging into global ErrorCallback. +Pass this function to LowLevel function calls in order to get logging into global nvidia::NvErrorCallback. */ NV_INLINE void logLL(int type, const char* msg, const char* file, int line) { - ErrorCode::Enum errorCode = ErrorCode::eNO_ERROR; + nvidia::NvErrorCode::Enum errorCode = nvidia::NvErrorCode::eNO_ERROR; switch (type) { - case NvBlastMessage::Error: errorCode = ErrorCode::eINVALID_OPERATION; break; - case NvBlastMessage::Warning: errorCode = ErrorCode::eDEBUG_WARNING; break; - case NvBlastMessage::Info: errorCode = ErrorCode::eDEBUG_INFO; break; - case NvBlastMessage::Debug: errorCode = ErrorCode::eNO_ERROR; break; + case NvBlastMessage::Error: errorCode = nvidia::NvErrorCode::eINVALID_OPERATION; break; + case NvBlastMessage::Warning: errorCode = nvidia::NvErrorCode::eDEBUG_WARNING; break; + case NvBlastMessage::Info: errorCode = nvidia::NvErrorCode::eDEBUG_INFO; break; + case NvBlastMessage::Debug: errorCode = nvidia::NvErrorCode::eNO_ERROR; break; } NvBlastGlobalGetErrorCallback()->reportError(errorCode, msg, file, line); @@ -217,7 +115,7 @@ NV_INLINE void logLL(int type, const char* msg, const char* file, int line) //////// Allocator macros //////// /** -Alloc/Free macros that use global AllocatorCallback. Thus allocated memory is 16-byte aligned. +Alloc/Free macros that use global nvidia::NvAllocatorCallback. Thus allocated memory is 16-byte aligned. */ #define NVBLAST_ALLOC(_size) NvBlastGlobalGetAllocatorCallback()->allocate(_size, nullptr, __FILE__, __LINE__) #define NVBLAST_ALLOC_NAMED(_size, _name) NvBlastGlobalGetAllocatorCallback()->allocate(_size, _name, __FILE__, __LINE__) @@ -249,16 +147,16 @@ Example: NVBLAST_DELETE(foo, Foo); //////// Log macros //////// /** -Logging macros that use global AllocatorCallback. +Logging macros that use global nvidia::NvAllocatorCallback. */ #define NVBLAST_LOG(_code, _msg) NvBlastGlobalGetErrorCallback()->reportError(_code, _msg, __FILE__, __LINE__) -#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eINVALID_OPERATION, _msg) -#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_WARNING, _msg) -#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eDEBUG_INFO, _msg) -#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(Nv::Blast::ErrorCode::eNO_ERROR, _msg) +#define NVBLAST_LOG_ERROR(_msg) NVBLAST_LOG(nvidia::NvErrorCode::eINVALID_OPERATION, _msg) +#define NVBLAST_LOG_WARNING(_msg) NVBLAST_LOG(nvidia::NvErrorCode::eDEBUG_WARNING, _msg) +#define NVBLAST_LOG_INFO(_msg) NVBLAST_LOG(nvidia::NvErrorCode::eDEBUG_INFO, _msg) +#define NVBLAST_LOG_DEBUG(_msg) NVBLAST_LOG(nvidia::NvErrorCode::eNO_ERROR, _msg) /** -Check macros that use global AllocatorCallback. The idea is that you pass an expression to check, if it fails +Check macros that use global nvidia::NvAllocatorCallback. The idea is that you pass an expression to check, if it fails it logs and calls '_onFail' code you passed. */ #define NVBLAST_CHECK(_code, _expr, _msg, _onFail) \ @@ -270,10 +168,10 @@ it logs and calls '_onFail' code you passed. } \ } -#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail) -#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail) -#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eDEBUG_INFO, _expr, _msg, _onFail) -#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(Nv::Blast::ErrorCode::eNO_ERROR, _expr, _msg, _onFail) +#define NVBLAST_CHECK_ERROR(_expr, _msg, _onFail) NVBLAST_CHECK(nvidia::NvErrorCode::eINVALID_OPERATION, _expr, _msg, _onFail) +#define NVBLAST_CHECK_WARNING(_expr, _msg, _onFail) NVBLAST_CHECK(nvidia::NvErrorCode::eDEBUG_WARNING, _expr, _msg, _onFail) +#define NVBLAST_CHECK_INFO(_expr, _msg, _onFail) NVBLAST_CHECK(nvidia::NvErrorCode::eDEBUG_INFO, _expr, _msg, _onFail) +#define NVBLAST_CHECK_DEBUG(_expr, _msg, _onFail) NVBLAST_CHECK(nvidia::NvErrorCode::eNO_ERROR, _expr, _msg, _onFail) //////// Misc //////// diff --git a/blast/include/globals/NvCMath.h b/blast/include/globals/NvCMath.h index 7663c12d4..81efdff95 100644 --- a/blast/include/globals/NvCMath.h +++ b/blast/include/globals/NvCMath.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/lowlevel/NvBlast.h b/blast/include/lowlevel/NvBlast.h index 25aab4883..edf6f017d 100644 --- a/blast/include/lowlevel/NvBlast.h +++ b/blast/include/lowlevel/NvBlast.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -49,7 +49,7 @@ Use this function when building an asset with NvBlastCreateAsset. \return the memory size (in bytes) required for the asset, or zero if desc is invalid. */ -NVBLAST_API size_t NvBlastGetAssetMemorySize(const NvBlastAssetDesc* desc, NvBlastLog logFn); +NV_C_API size_t NvBlastGetAssetMemorySize(const NvBlastAssetDesc* desc, NvBlastLog logFn); /** Calculates the memory requirements for an asset based upon supplied sized data. @@ -60,7 +60,7 @@ Used primarily with serialization. \return the memory size (in bytes) required for the asset, or zero if data is invalid. */ -NVBLAST_API size_t NvBlastGetAssetMemorySizeFromSizeData(const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); +NV_C_API size_t NvBlastGetAssetMemorySizeFromSizeData(const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); /** Returns the number of bytes of scratch memory that the user must supply to NvBlastCreateAsset, @@ -71,7 +71,7 @@ based upon the descriptor that will be passed into that function. \return the number of bytes of scratch memory required for a call to NvBlastCreateAsset with that descriptor. */ -NVBLAST_API size_t NvBlastGetRequiredScratchForCreateAsset(const NvBlastAssetDesc* desc, NvBlastLog logFn); +NV_C_API size_t NvBlastGetRequiredScratchForCreateAsset(const NvBlastAssetDesc* desc, NvBlastLog logFn); /** @@ -98,7 +98,7 @@ If chunks aren't arranged properly the function fails to create an asset. \return pointer to new NvBlastAsset (will be the same address as mem), or NULL if unsuccessful. */ -NVBLAST_API NvBlastAsset* NvBlastCreateAsset(void* mem, const NvBlastAssetDesc* desc, void* scratch, NvBlastLog logFn); +NV_C_API NvBlastAsset* NvBlastCreateAsset(void* mem, const NvBlastAssetDesc* desc, void* scratch, NvBlastLog logFn); /** @@ -110,7 +110,7 @@ Use this function when building a family with NvBlastAssetCreateFamily. \return the memory size (in bytes) required for the family, or zero if asset is invalid. */ -NVBLAST_API size_t NvBlastAssetGetFamilyMemorySize(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API size_t NvBlastAssetGetFamilyMemorySize(const NvBlastAsset* asset, NvBlastLog logFn); /** Calculates the memory requirements for a family based upon supplied sized data. @@ -121,7 +121,7 @@ Used primarily with serialization. \return the memory size (in bytes) required for the family, or zero if data is invalid. */ -NVBLAST_API size_t NvBlastAssetGetFamilyMemorySizeFromSizeData(const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); +NV_C_API size_t NvBlastAssetGetFamilyMemorySizeFromSizeData(const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); /** @@ -131,7 +131,7 @@ Fill out the size data from the provided asset \return Filled out size data struct. */ -NVBLAST_API NvBlastAssetMemSizeData NvBlastAssetMemSizeDataFromAsset(const NvBlastAsset* asset); +NV_C_API NvBlastAssetMemSizeData NvBlastAssetMemSizeDataFromAsset(const NvBlastAsset* asset); /** Family-building function. @@ -145,7 +145,7 @@ of memory of at least the size given by NvBlastAssetGetFamilyMemorySize(asset, l \return the family. */ -NVBLAST_API NvBlastFamily* NvBlastAssetCreateFamily(void* mem, const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API NvBlastFamily* NvBlastAssetCreateFamily(void* mem, const NvBlastAsset* asset, NvBlastLog logFn); /** Family-building function. @@ -159,7 +159,7 @@ of memory of at least the size given by NvBlastAssetGetFamilyMemorySize(sizeData \return the family. */ -NVBLAST_API NvBlastFamily* NvBlastAssetCreateFamilyFromSizeData(void* mem, const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); +NV_C_API NvBlastFamily* NvBlastAssetCreateFamilyFromSizeData(void* mem, const NvBlastAssetMemSizeData& sizeData, NvBlastLog logFn); /** @@ -170,7 +170,7 @@ Retrieve the asset ID. \return the ID of the asset. */ -NVBLAST_API NvBlastID NvBlastAssetGetID(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API NvBlastID NvBlastAssetGetID(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -182,7 +182,7 @@ Set an asset's ID \return true iff the id is successfully set. */ -NVBLAST_API bool NvBlastAssetSetID(NvBlastAsset* asset, const NvBlastID* id, NvBlastLog logFn); +NV_C_API bool NvBlastAssetSetID(NvBlastAsset* asset, const NvBlastID* id, NvBlastLog logFn); /** @@ -193,7 +193,7 @@ Retrieve the data format version for the given asset \return the data format version (NvBlastAssetDataFormat). */ -NVBLAST_API uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetFormatVersion(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -204,7 +204,7 @@ Retrieve the memory size (in bytes) of the given data asset \return the memory size of the asset (in bytes). */ -NVBLAST_API uint32_t NvBlastAssetGetSize(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetSize(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -215,7 +215,7 @@ Get the number of chunks in the given asset. \return the number of chunks in the asset. */ -NVBLAST_API uint32_t NvBlastAssetGetChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -229,7 +229,7 @@ and this function will return NvBlastSupportGraph::nodeCount - 1. \return the number of chunks in the asset. */ -NVBLAST_API uint32_t NvBlastAssetGetSupportChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetSupportChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -240,7 +240,7 @@ Get the number of leaf chunks in the given asset. \return the number of leaf chunks in the asset. */ -NVBLAST_API uint32_t NvBlastAssetGetLeafChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetLeafChunkCount(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -253,7 +253,7 @@ chunks. \return the first subsupport chunk index in the asset. */ -NVBLAST_API uint32_t NvBlastAssetGetFirstSubsupportChunkIndex(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetFirstSubsupportChunkIndex(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -264,7 +264,7 @@ Get the number of bonds in the given asset. \return the number of bonds in the asset. */ -NVBLAST_API uint32_t NvBlastAssetGetBondCount(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetBondCount(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -275,7 +275,7 @@ Access the support graph for the given asset. \return a struct of support graph for the given asset. */ -NVBLAST_API const NvBlastSupportGraph NvBlastAssetGetSupportGraph(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API const NvBlastSupportGraph NvBlastAssetGetSupportGraph(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -288,7 +288,7 @@ Non-support chunks are mapped to the invalid index 0xFFFFFFFF. \return an array of uint32_t values defining the map, of size NvBlastAssetGetChunkCount(asset, logFn). */ -NVBLAST_API const uint32_t* NvBlastAssetGetChunkToGraphNodeMap(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API const uint32_t* NvBlastAssetGetChunkToGraphNodeMap(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -299,7 +299,7 @@ Access an array of chunks of the given asset. \return a pointer to an array of chunks of the asset. */ -NVBLAST_API const NvBlastChunk* NvBlastAssetGetChunks(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API const NvBlastChunk* NvBlastAssetGetChunks(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -310,7 +310,7 @@ Access an array of bonds of the given asset. \return a pointer to an array of bonds of the asset. */ -NVBLAST_API const NvBlastBond* NvBlastAssetGetBonds(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API const NvBlastBond* NvBlastAssetGetBonds(const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -323,7 +323,7 @@ for actor serialization. \return the required buffer size in bytes. */ -NVBLAST_API uint32_t NvBlastAssetGetActorSerializationSizeUpperBound(const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API uint32_t NvBlastAssetGetActorSerializationSizeUpperBound(const NvBlastAsset* asset, NvBlastLog logFn); ///@} End NvBlastAsset functions @@ -349,7 +349,7 @@ Chunk order depends on support coverage, so this function should be called befor \return true iff coverage was already exact. */ -NVBLAST_API bool NvBlastEnsureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn); +NV_C_API bool NvBlastEnsureAssetExactSupportCoverage(NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn); /** @@ -375,7 +375,7 @@ Iff chunks are already ordered correctly, function returns 'true' and identity c \return true iff the chunks did not require reordering (chunkReorderMap is the identity map). */ -NVBLAST_API bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn); +NV_C_API bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, void* scratch, NvBlastLog logFn); /** @@ -395,7 +395,7 @@ with new indices. Bonds are kept in the same order, but their 'chunkIndices' fie \param[in] keepBondNormalChunkOrder If true, bond normals will be flipped if their chunk index order was reveresed by the reorder map. \param[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL. */ -NVBLAST_API void NvBlastApplyAssetDescChunkReorderMap +NV_C_API void NvBlastApplyAssetDescChunkReorderMap ( NvBlastChunkDesc* reorderedChunkDescs, const NvBlastChunkDesc* chunkDescs, @@ -427,7 +427,7 @@ This overload of function reorders chunks in place. \param[in] scratch User-supplied scratch storage, must point to chunkCount * sizeof(NvBlastChunkDesc) valid bytes of memory. \param[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL. */ -NVBLAST_API void NvBlastApplyAssetDescChunkReorderMapInPlace +NV_C_API void NvBlastApplyAssetDescChunkReorderMapInPlace ( NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, @@ -456,7 +456,7 @@ Function basically calls NvBlastBuildAssetDescChunkReorderMap and NvBlastApplyAs \return true iff the chunks did not require reordering (chunkReorderMap is the identity map). */ -NVBLAST_API bool NvBlastReorderAssetDescChunks +NV_C_API bool NvBlastReorderAssetDescChunks ( NvBlastChunkDesc* chunkDescs, uint32_t chunkCount, @@ -484,7 +484,7 @@ Retrieve the data format version for the given family. \return the family format version. */ -NVBLAST_API uint32_t NvBlastFamilyGetFormatVersion(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t NvBlastFamilyGetFormatVersion(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -495,7 +495,7 @@ Retrieve the asset of the given family. \return pointer to the asset associated with the family. */ -NVBLAST_API const NvBlastAsset* NvBlastFamilyGetAsset(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API const NvBlastAsset* NvBlastFamilyGetAsset(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -505,7 +505,7 @@ Set asset to the family. It should be the same asset as the one family was creat \param[in] asset Asset to instance. \param[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL. */ -NVBLAST_API void NvBlastFamilySetAsset(NvBlastFamily* family, const NvBlastAsset* asset, NvBlastLog logFn); +NV_C_API void NvBlastFamilySetAsset(NvBlastFamily* family, const NvBlastAsset* asset, NvBlastLog logFn); /** @@ -516,7 +516,7 @@ Retrieve the size (in bytes) of the given family. \return the size of the family (in bytes). */ -NVBLAST_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t NvBlastFamilyGetSize(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -527,7 +527,7 @@ Retrieve the asset ID of the given family. \return the ID of the asset associated with the family. */ -NVBLAST_API NvBlastID NvBlastFamilyGetAssetID(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API NvBlastID NvBlastFamilyGetAssetID(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -538,7 +538,7 @@ Returns the number of bytes of scratch memory that the user must supply to NvBla \return the number of bytes of scratch memory required for a call to NvBlastFamilyCreateFirstActor. */ -NVBLAST_API size_t NvBlastFamilyGetRequiredScratchForCreateFirstActor(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API size_t NvBlastFamilyGetRequiredScratchForCreateFirstActor(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -551,7 +551,7 @@ Instance the family's asset into a new, unfractured actor. \return pointer to new NvBlastActor if successful (the actor was successfully inserted into the family), or NULL if unsuccessful. */ -NVBLAST_API NvBlastActor* NvBlastFamilyCreateFirstActor(NvBlastFamily* family, const NvBlastActorDesc* desc, void* scratch, NvBlastLog logFn); +NV_C_API NvBlastActor* NvBlastFamilyCreateFirstActor(NvBlastFamily* family, const NvBlastActorDesc* desc, void* scratch, NvBlastLog logFn); /** @@ -562,7 +562,7 @@ Retrieve the number of active actors associated with the given family. \return the number of active actors in the family. */ -NVBLAST_API uint32_t NvBlastFamilyGetActorCount(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t NvBlastFamilyGetActorCount(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -576,7 +576,7 @@ IDs with the actors already present in the family. \return the deserialized actor if successful, NULL otherwise. */ -NVBLAST_API NvBlastActor* NvBlastFamilyDeserializeActor(NvBlastFamily* family, const void* buffer, NvBlastLog logFn); +NV_C_API NvBlastActor* NvBlastFamilyDeserializeActor(NvBlastFamily* family, const void* buffer, NvBlastLog logFn); /** @@ -589,7 +589,7 @@ Retrieve the active actors associated with the given family. \return the number of actor pointers written to actors. This will not exceed actorsSize. */ -NVBLAST_API uint32_t NvBlastFamilyGetActors(NvBlastActor** actors, uint32_t actorsSize, const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t NvBlastFamilyGetActors(NvBlastActor** actors, uint32_t actorsSize, const NvBlastFamily* family, NvBlastLog logFn); /** @@ -601,7 +601,7 @@ Retrieve the actor associated with the given actor index. \return pointer to actor associated with given actor index. NULL if there is no such actor or it is inactive. */ -NVBLAST_API NvBlastActor* NvBlastFamilyGetActorByIndex(const NvBlastFamily* family, uint32_t actorIndex, NvBlastLog logFn); +NV_C_API NvBlastActor* NvBlastFamilyGetActorByIndex(const NvBlastFamily* family, uint32_t actorIndex, NvBlastLog logFn); /** Retrieve the actor associated with the given chunk. @@ -612,7 +612,7 @@ Retrieve the actor associated with the given chunk. \return pointer to actor associated with given chunk. NULL if there is no such actor. */ -NVBLAST_API NvBlastActor* NvBlastFamilyGetChunkActor(const NvBlastFamily* family, uint32_t chunkIndex, NvBlastLog logFn); +NV_C_API NvBlastActor* NvBlastFamilyGetChunkActor(const NvBlastFamily* family, uint32_t chunkIndex, NvBlastLog logFn); /** @@ -624,7 +624,7 @@ NOTE: the returned array size equals the number of support chunks in the asset. \return pointer to actor associated with given chunk. NULL if there is no such actor. */ -NVBLAST_API uint32_t* NvBlastFamilyGetChunkActorIndices(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t* NvBlastFamilyGetChunkActorIndices(const NvBlastFamily* family, NvBlastLog logFn); /** @@ -635,7 +635,7 @@ Retrieve the max active actor count family could have. \return the max number of active actors family could have. */ -NVBLAST_API uint32_t NvBlastFamilyGetMaxActorCount(const NvBlastFamily* family, NvBlastLog logFn); +NV_C_API uint32_t NvBlastFamilyGetMaxActorCount(const NvBlastFamily* family, NvBlastLog logFn); ///@} End NvBlastFamily functions @@ -653,7 +653,7 @@ Get the number of visible chunks for this actor. May be used in conjunction wit \return the number of visible chunk indices for the actor. */ -NVBLAST_API uint32_t NvBlastActorGetVisibleChunkCount(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetVisibleChunkCount(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -666,7 +666,7 @@ Retrieve a list of visible chunk indices for the actor into the given array. \return the number of indices written to visibleChunkIndices. This will not exceed visibleChunkIndicesSize. */ -NVBLAST_API uint32_t NvBlastActorGetVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetVisibleChunkIndices(uint32_t* visibleChunkIndices, uint32_t visibleChunkIndicesSize, const NvBlastActor* actor, NvBlastLog logFn); /** @@ -677,7 +677,7 @@ Get the number of graph nodes for this actor. May be used in conjunction with N \return the number of graph node indices for the actor. */ -NVBLAST_API uint32_t NvBlastActorGetGraphNodeCount(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetGraphNodeCount(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -690,7 +690,7 @@ Retrieve a list of graph node indices for the actor into the given array. \return the number of indices written to graphNodeIndices. This will not exceed graphNodeIndicesSize. */ -NVBLAST_API uint32_t NvBlastActorGetGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetGraphNodeIndices(uint32_t* graphNodeIndices, uint32_t graphNodeIndicesSize, const NvBlastActor* actor, NvBlastLog logFn); /** @@ -713,7 +713,7 @@ If the input actor is invalid, NULL will be returned. \return the array of bond healths for the actor's instance family, or NULL if the actor is invalid. */ -NVBLAST_API const float* NvBlastActorGetBondHealths(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API const float* NvBlastActorGetBondHealths(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -736,7 +736,7 @@ If the input actor is invalid, NULL will be returned. \return the array of bond healths for the actor's instance family, or NULL if the actor is invalid. */ -NVBLAST_API const float* NvBlastActorGetCachedBondHeaths(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API const float* NvBlastActorGetCachedBondHeaths(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -748,7 +748,7 @@ Tell the system to cache the bond health for the given bond index. \return true if value was cached, false otherwise */ -NVBLAST_API bool NvBlastActorCacheBondHeath(const NvBlastActor* actor, uint32_t bondIndex, NvBlastLog logFn); +NV_C_API bool NvBlastActorCacheBondHeath(const NvBlastActor* actor, uint32_t bondIndex, NvBlastLog logFn); /** @@ -760,7 +760,7 @@ on the buffer size needed for any actor instanced from an NvBlastAsset, use NvBl \return the required buffer size in bytes. */ -NVBLAST_API uint32_t NvBlastActorGetSerializationSize(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetSerializationSize(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -773,7 +773,7 @@ Serialize a single actor to a buffer. \return the number of bytes written to the buffer, or 0 if there is an error (such as an under-sized buffer). */ -NVBLAST_API uint32_t NvBlastActorSerialize(void* buffer, uint32_t bufferSize, const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorSerialize(void* buffer, uint32_t bufferSize, const NvBlastActor* actor, NvBlastLog logFn); /** @@ -784,7 +784,7 @@ Access to an actor's family. \return the family with which the actor is associated. */ -NVBLAST_API NvBlastFamily* NvBlastActorGetFamily(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API NvBlastFamily* NvBlastActorGetFamily(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -795,7 +795,7 @@ Access to an actor's internal index. \return actor's internal index in family. */ -NVBLAST_API uint32_t NvBlastActorGetIndex(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetIndex(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -806,7 +806,7 @@ Deactivate an actor within its family. Conceptually this is "destroying" the ac \return true iff successful (actor was active). */ -NVBLAST_API bool NvBlastActorDeactivate(NvBlastActor* actor, NvBlastLog logFn); +NV_C_API bool NvBlastActorDeactivate(NvBlastActor* actor, NvBlastLog logFn); ///@} End NvBlastActor accessor, serialization, and deactivation functions @@ -838,7 +838,7 @@ As output: Chunks and Bond userdata reflect the respective userdata set during asset initialization, where implemented by the material function. Health values denote how much damage is to be applied. */ -NVBLAST_API void NvBlastActorGenerateFracture +NV_C_API void NvBlastActorGenerateFracture ( NvBlastFractureBuffers* commandBuffers, const NvBlastActor* actor, @@ -879,7 +879,7 @@ eventBuffers as output: commands and eventBuffers may point to the same memory. */ -NVBLAST_API void NvBlastActorApplyFracture +NV_C_API void NvBlastActorApplyFracture ( NvBlastFractureBuffers* eventBuffers, NvBlastActor* actor, @@ -902,7 +902,7 @@ Releases the oldActor and creates its children newActors if necessary. \return 1..n: new actors were created \return 0: oldActor is unchanged */ -NVBLAST_API uint32_t NvBlastActorSplit +NV_C_API uint32_t NvBlastActorSplit ( NvBlastActorSplitEvent* result, NvBlastActor* actor, @@ -922,7 +922,7 @@ based upon the actor that will be passed into that function. \return the number of bytes of scratch memory required for a call to NvBlastActorSplit with that actor. */ -NVBLAST_API size_t NvBlastActorGetRequiredScratchForSplit(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API size_t NvBlastActorGetRequiredScratchForSplit(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -934,7 +934,7 @@ value can't exceed chunk count. \return the upper-bound number of actors which can be created by calling NvBlastActorSplit with that actor. */ -NVBLAST_API uint32_t NvBlastActorGetMaxActorCountForSplit(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API uint32_t NvBlastActorGetMaxActorCountForSplit(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -945,7 +945,7 @@ Determines if the actor can fracture further. \return true if any result can be expected from fracturing the actor. false if no further change to the actor is possible. */ -NVBLAST_API bool NvBlastActorCanFracture(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API bool NvBlastActorCanFracture(const NvBlastActor* actor, NvBlastLog logFn); /** @@ -957,13 +957,13 @@ If actor is not damaged calling NvBlastActorSplit will make no effect. \return true iff split call is required for this actor. */ -NVBLAST_API bool NvBlastActorIsSplitRequired(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API bool NvBlastActorIsSplitRequired(const NvBlastActor* actor, NvBlastLog logFn); /** \return true iff this actor contains the "external" support graph node, created when a bond contains the UINT32_MAX value for one of their chunkIndices. */ -NVBLAST_API bool NvBlastActorHasExternalBonds(const NvBlastActor* actor, NvBlastLog logFn); +NV_C_API bool NvBlastActorHasExternalBonds(const NvBlastActor* actor, NvBlastLog logFn); // DEPRICATED: remove on next major version bump #define NvBlastActorIsBoundToWorld NvBlastActorHasExternalBonds @@ -981,7 +981,7 @@ Resets all values in the given NvBlastTimers struct to zero. \param[in] timers The NvBlastTimers to set to zero. */ -NVBLAST_API void NvBlastTimersReset(NvBlastTimers* timers); +NV_C_API void NvBlastTimersReset(NvBlastTimers* timers); /** @@ -991,7 +991,7 @@ Convert a tick value from NvBlastTimers to seconds. \return the seconds correposnding to the input tick value. */ -NVBLAST_API double NvBlastTicksToSeconds(int64_t ticks); +NV_C_API double NvBlastTicksToSeconds(int64_t ticks); ///@} End NvBlastTimers functions and helpers diff --git a/blast/include/lowlevel/NvBlastTypes.h b/blast/include/lowlevel/NvBlastTypes.h index 753954b0e..a47ac21f1 100644 --- a/blast/include/lowlevel/NvBlastTypes.h +++ b/blast/include/lowlevel/NvBlastTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -32,7 +32,7 @@ #define NVBLASTTYPES_H -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #include #include diff --git a/blast/include/shared/NvFoundation/Nv.h b/blast/include/shared/NvFoundation/Nv.h new file mode 100644 index 000000000..14ea7ab8b --- /dev/null +++ b/blast/include/shared/NvFoundation/Nv.h @@ -0,0 +1,88 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NV_H +#define NV_NVFOUNDATION_NV_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvSimpleTypes.h" + +/** files to always include */ +#include +#include + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif +class NvAllocatorCallback; +class NvErrorCallback; +struct NvErrorCode; +class NvAssertHandler; + +class NvInputStream; +class NvInputData; +class NvOutputStream; + +class NvVec2; +class NvVec3; +class NvVec4; +class NvMat33; +class NvMat44; +class NvPlane; +class NvQuat; +class NvTransform; +class NvBounds3; + +/** enum for empty constructor tag*/ +enum NvEMPTY +{ + NvEmpty +}; + +/** enum for zero constructor tag for vectors and matrices */ +enum NvZERO +{ + NvZero +}; + +/** enum for identity constructor flag for quaternions, transforms, and matrices */ +enum NvIDENTITY +{ + NvIdentity +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NV_H diff --git a/blast/include/shared/NvFoundation/NvAllocatorCallback.h b/blast/include/shared/NvFoundation/NvAllocatorCallback.h new file mode 100644 index 000000000..fc2aaff90 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvAllocatorCallback.h @@ -0,0 +1,94 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVALLOCATORCALLBACK_H +#define NV_NVFOUNDATION_NVALLOCATORCALLBACK_H + +/** \addtogroup foundation +@{ +*/ + +#include "Nv.h" +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief Abstract base class for an application defined memory allocator that can be used by the Nv library. + +\note The SDK state should not be modified from within any allocation/free function. + +Threading: All methods of this class should be thread safe as it can be called from the user thread +or the physics processing thread(s). +*/ + +class NvAllocatorCallback +{ + public: + /** + \brief destructor + */ + virtual ~NvAllocatorCallback() + { + } + + /** + \brief Allocates size bytes of memory, which must be 16-byte aligned. + + This method should never return NULL. If you run out of memory, then + you should terminate the app or take some other appropriate action. + + Threading: This function should be thread safe as it can be called in the context of the user thread + and physics processing thread(s). + + \param size Number of bytes to allocate. + \param typeName Name of the datatype that is being allocated + \param filename The source file which allocated the memory + \param line The source line which allocated the memory + \return The allocated block of memory. + */ + virtual void* allocate(size_t size, const char* typeName, const char* filename, int line) = 0; + + /** + \brief Frees memory previously allocated by allocate(). + + Threading: This function should be thread safe as it can be called in the context of the user thread + and physics processing thread(s). + + \param ptr Memory to free. + */ + virtual void deallocate(void* ptr) = 0; +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVALLOCATORCALLBACK_H diff --git a/blast/include/shared/NvFoundation/NvAssert.h b/blast/include/shared/NvFoundation/NvAssert.h new file mode 100644 index 000000000..d895462a4 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvAssert.h @@ -0,0 +1,96 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVASSERT_H +#define NV_NVFOUNDATION_NVASSERT_H + +/** \addtogroup foundation +@{ */ + +#include "Nv.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/* Base class to handle assert failures */ +class NvAssertHandler +{ + public: + virtual ~NvAssertHandler() + { + } + virtual void operator()(const char* exp, const char* file, int line, bool& ignore) = 0; +}; + +NV_FOUNDATION_API NvAssertHandler& NvGetAssertHandler(); +NV_FOUNDATION_API void NvSetAssertHandler(NvAssertHandler& handler); + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +#if !NV_ENABLE_ASSERTS +#define NV_ASSERT(exp) ((void)0) +#define NV_ALWAYS_ASSERT_MESSAGE(exp) ((void)0) +#define NV_ASSERT_WITH_MESSAGE(condition, message) ((void)0) +#elif NV_SPU +#include "ps3/NvPS3Assert.h" +#else +#if NV_VC +#define NV_CODE_ANALYSIS_ASSUME(exp) \ + __analysis_assume(!!(exp)) // This macro will be used to get rid of analysis warning messages if a NV_ASSERT is used +// to "guard" illegal mem access, for example. +#else +#define NV_CODE_ANALYSIS_ASSUME(exp) +#endif +#define NV_ASSERT(exp) \ + { \ + static bool _ignore = false; \ + ((void)((!!(exp)) || (!_ignore && (nvidia::NvGetAssertHandler()(#exp, __FILE__, __LINE__, _ignore), false)))); \ + NV_CODE_ANALYSIS_ASSUME(exp); \ + } +#define NV_ALWAYS_ASSERT_MESSAGE(exp) \ + { \ + static bool _ignore = false; \ + if(!_ignore) \ + nvidia::NvGetAssertHandler()(exp, __FILE__, __LINE__, _ignore); \ + } +#define NV_ASSERT_WITH_MESSAGE(exp, message) \ + { \ + static bool _ignore = false; \ + ((void)((!!(exp)) || (!_ignore && (nvidia::NvGetAssertHandler()(message, __FILE__, __LINE__, _ignore), false)))); \ + NV_CODE_ANALYSIS_ASSUME(exp); \ + } +#endif + +#define NV_ALWAYS_ASSERT() NV_ASSERT(0) + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVASSERT_H diff --git a/blast/include/shared/NvFoundation/NvBounds3.h b/blast/include/shared/NvFoundation/NvBounds3.h new file mode 100644 index 000000000..738a69562 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvBounds3.h @@ -0,0 +1,479 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVBOUNDS3_H +#define NV_NVFOUNDATION_NVBOUNDS3_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvTransform.h" +#include "NvMat33.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +// maximum extents defined such that floating point exceptions are avoided for standard use cases +#define NV_MAX_BOUNDS_EXTENTS (NV_MAX_REAL * 0.25f) + +/** +\brief Class representing 3D range or axis aligned bounding box. + +Stored as minimum and maximum extent corners. Alternate representation +would be center and dimensions. +May be empty or nonempty. For nonempty bounds, minimum <= maximum has to hold for all axes. +Empty bounds have to be represented as minimum = NV_MAX_BOUNDS_EXTENTS and maximum = -NV_MAX_BOUNDS_EXTENTS for all +axes. +All other representations are invalid and the behavior is undefined. +*/ +class NvBounds3 +{ + public: + /** + \brief Default constructor, not performing any initialization for performance reason. + \remark Use empty() function below to construct empty bounds. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3() + { + } + + /** + \brief Construct from two bounding points + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3(const NvVec3& minimum, const NvVec3& maximum); + + /** + \brief Return empty bounds. + */ + static NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 empty(); + + /** + \brief returns the AABB containing v0 and v1. + \param v0 first point included in the AABB. + \param v1 second point included in the AABB. + */ + static NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 boundsOfPoints(const NvVec3& v0, const NvVec3& v1); + + /** + \brief returns the AABB from center and extents vectors. + \param center Center vector + \param extent Extents vector + */ + static NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 centerExtents(const NvVec3& center, const NvVec3& extent); + + /** + \brief Construct from center, extent, and (not necessarily orthogonal) basis + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 + basisExtent(const NvVec3& center, const NvMat33& basis, const NvVec3& extent); + + /** + \brief Construct from pose and extent + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 poseExtent(const NvTransform& pose, const NvVec3& extent); + + /** + \brief gets the transformed bounds of the passed AABB (resulting in a bigger AABB). + + This version is safe to call for empty bounds. + + \param[in] matrix Transform to apply, can contain scaling as well + \param[in] bounds The bounds to transform. + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 transformSafe(const NvMat33& matrix, const NvBounds3& bounds); + + /** + \brief gets the transformed bounds of the passed AABB (resulting in a bigger AABB). + + Calling this method for empty bounds leads to undefined behavior. Use #transformSafe() instead. + + \param[in] matrix Transform to apply, can contain scaling as well + \param[in] bounds The bounds to transform. + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 transformFast(const NvMat33& matrix, const NvBounds3& bounds); + + /** + \brief gets the transformed bounds of the passed AABB (resulting in a bigger AABB). + + This version is safe to call for empty bounds. + + \param[in] transform Transform to apply, can contain scaling as well + \param[in] bounds The bounds to transform. + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 transformSafe(const NvTransform& transform, const NvBounds3& bounds); + + /** + \brief gets the transformed bounds of the passed AABB (resulting in a bigger AABB). + + Calling this method for empty bounds leads to undefined behavior. Use #transformSafe() instead. + + \param[in] transform Transform to apply, can contain scaling as well + \param[in] bounds The bounds to transform. + */ + static NV_CUDA_CALLABLE NV_INLINE NvBounds3 transformFast(const NvTransform& transform, const NvBounds3& bounds); + + /** + \brief Sets empty to true + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void setEmpty(); + + /** + \brief Sets the bounds to maximum size [-NV_MAX_BOUNDS_EXTENTS, NV_MAX_BOUNDS_EXTENTS]. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void setMaximal(); + + /** + \brief expands the volume to include v + \param v Point to expand to. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void include(const NvVec3& v); + + /** + \brief expands the volume to include b. + \param b Bounds to perform union with. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void include(const NvBounds3& b); + + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isEmpty() const; + + /** + \brief indicates whether the intersection of this and b is empty or not. + \param b Bounds to test for intersection. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool intersects(const NvBounds3& b) const; + + /** + \brief computes the 1D-intersection between two AABBs, on a given axis. + \param a the other AABB + \param axis the axis (0, 1, 2) + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool intersects1D(const NvBounds3& a, uint32_t axis) const; + + /** + \brief indicates if these bounds contain v. + \param v Point to test against bounds. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool contains(const NvVec3& v) const; + + /** + \brief checks a box is inside another box. + \param box the other AABB + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isInside(const NvBounds3& box) const; + + /** + \brief returns the center of this axis aligned box. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getCenter() const; + + /** + \brief get component of the box's center along a given axis + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float getCenter(uint32_t axis) const; + + /** + \brief get component of the box's extents along a given axis + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float getExtents(uint32_t axis) const; + + /** + \brief returns the dimensions (width/height/depth) of this axis aligned box. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getDimensions() const; + + /** + \brief returns the extents, which are half of the width/height/depth. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getExtents() const; + + /** + \brief scales the AABB. + + This version is safe to call for empty bounds. + + \param scale Factor to scale AABB by. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void scaleSafe(float scale); + + /** + \brief scales the AABB. + + Calling this method for empty bounds leads to undefined behavior. Use #scaleSafe() instead. + + \param scale Factor to scale AABB by. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void scaleFast(float scale); + + /** + fattens the AABB in all 3 dimensions by the given distance. + + This version is safe to call for empty bounds. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void fattenSafe(float distance); + + /** + fattens the AABB in all 3 dimensions by the given distance. + + Calling this method for empty bounds leads to undefined behavior. Use #fattenSafe() instead. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE void fattenFast(float distance); + + /** + checks that the AABB values are not NaN + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite() const; + + /** + checks that the AABB values describe a valid configuration. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isValid() const; + + NvVec3 minimum, maximum; +}; + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3::NvBounds3(const NvVec3& minimum_, const NvVec3& maximum_) +: minimum(minimum_), maximum(maximum_) +{ +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 NvBounds3::empty() +{ + return NvBounds3(NvVec3(NV_MAX_BOUNDS_EXTENTS), NvVec3(-NV_MAX_BOUNDS_EXTENTS)); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::isFinite() const +{ + return minimum.isFinite() && maximum.isFinite(); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 NvBounds3::boundsOfPoints(const NvVec3& v0, const NvVec3& v1) +{ + return NvBounds3(v0.minimum(v1), v0.maximum(v1)); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvBounds3 NvBounds3::centerExtents(const NvVec3& center, const NvVec3& extent) +{ + return NvBounds3(center - extent, center + extent); +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 +NvBounds3::basisExtent(const NvVec3& center, const NvMat33& basis, const NvVec3& extent) +{ + // extended basis vectors + NvVec3 c0 = basis.column0 * extent.x; + NvVec3 c1 = basis.column1 * extent.y; + NvVec3 c2 = basis.column2 * extent.z; + + NvVec3 w; + // find combination of base vectors that produces max. distance for each component = sum of abs() + w.x = NvAbs(c0.x) + NvAbs(c1.x) + NvAbs(c2.x); + w.y = NvAbs(c0.y) + NvAbs(c1.y) + NvAbs(c2.y); + w.z = NvAbs(c0.z) + NvAbs(c1.z) + NvAbs(c2.z); + + return NvBounds3(center - w, center + w); +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 NvBounds3::poseExtent(const NvTransform& pose, const NvVec3& extent) +{ + return basisExtent(pose.p, NvMat33(pose.q), extent); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::setEmpty() +{ + minimum = NvVec3(NV_MAX_BOUNDS_EXTENTS); + maximum = NvVec3(-NV_MAX_BOUNDS_EXTENTS); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::setMaximal() +{ + minimum = NvVec3(-NV_MAX_BOUNDS_EXTENTS); + maximum = NvVec3(NV_MAX_BOUNDS_EXTENTS); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::include(const NvVec3& v) +{ + NV_ASSERT(isValid()); + minimum = minimum.minimum(v); + maximum = maximum.maximum(v); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::include(const NvBounds3& b) +{ + NV_ASSERT(isValid()); + minimum = minimum.minimum(b.minimum); + maximum = maximum.maximum(b.maximum); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::isEmpty() const +{ + NV_ASSERT(isValid()); + return minimum.x > maximum.x; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::intersects(const NvBounds3& b) const +{ + NV_ASSERT(isValid() && b.isValid()); + return !(b.minimum.x > maximum.x || minimum.x > b.maximum.x || b.minimum.y > maximum.y || minimum.y > b.maximum.y || + b.minimum.z > maximum.z || minimum.z > b.maximum.z); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::intersects1D(const NvBounds3& a, uint32_t axis) const +{ + NV_ASSERT(isValid() && a.isValid()); + return maximum[axis] >= a.minimum[axis] && a.maximum[axis] >= minimum[axis]; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::contains(const NvVec3& v) const +{ + NV_ASSERT(isValid()); + + return !(v.x < minimum.x || v.x > maximum.x || v.y < minimum.y || v.y > maximum.y || v.z < minimum.z || + v.z > maximum.z); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::isInside(const NvBounds3& box) const +{ + NV_ASSERT(isValid() && box.isValid()); + if(box.minimum.x > minimum.x) + return false; + if(box.minimum.y > minimum.y) + return false; + if(box.minimum.z > minimum.z) + return false; + if(box.maximum.x < maximum.x) + return false; + if(box.maximum.y < maximum.y) + return false; + if(box.maximum.z < maximum.z) + return false; + return true; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 NvBounds3::getCenter() const +{ + NV_ASSERT(isValid()); + return (minimum + maximum) * 0.5f; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvBounds3::getCenter(uint32_t axis) const +{ + NV_ASSERT(isValid()); + return (minimum[axis] + maximum[axis]) * 0.5f; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvBounds3::getExtents(uint32_t axis) const +{ + NV_ASSERT(isValid()); + return (maximum[axis] - minimum[axis]) * 0.5f; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 NvBounds3::getDimensions() const +{ + NV_ASSERT(isValid()); + return maximum - minimum; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 NvBounds3::getExtents() const +{ + NV_ASSERT(isValid()); + return getDimensions() * 0.5f; +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::scaleSafe(float scale) +{ + NV_ASSERT(isValid()); + if(!isEmpty()) + scaleFast(scale); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::scaleFast(float scale) +{ + NV_ASSERT(isValid()); + *this = centerExtents(getCenter(), getExtents() * scale); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::fattenSafe(float distance) +{ + NV_ASSERT(isValid()); + if(!isEmpty()) + fattenFast(distance); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE void NvBounds3::fattenFast(float distance) +{ + NV_ASSERT(isValid()); + minimum.x -= distance; + minimum.y -= distance; + minimum.z -= distance; + + maximum.x += distance; + maximum.y += distance; + maximum.z += distance; +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 NvBounds3::transformSafe(const NvMat33& matrix, const NvBounds3& bounds) +{ + NV_ASSERT(bounds.isValid()); + return !bounds.isEmpty() ? transformFast(matrix, bounds) : bounds; +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 NvBounds3::transformFast(const NvMat33& matrix, const NvBounds3& bounds) +{ + NV_ASSERT(bounds.isValid()); + return NvBounds3::basisExtent(matrix * bounds.getCenter(), matrix, bounds.getExtents()); +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 NvBounds3::transformSafe(const NvTransform& transform, const NvBounds3& bounds) +{ + NV_ASSERT(bounds.isValid()); + return !bounds.isEmpty() ? transformFast(transform, bounds) : bounds; +} + +NV_CUDA_CALLABLE NV_INLINE NvBounds3 NvBounds3::transformFast(const NvTransform& transform, const NvBounds3& bounds) +{ + NV_ASSERT(bounds.isValid()); + return NvBounds3::basisExtent(transform.transform(bounds.getCenter()), NvMat33(transform.q), bounds.getExtents()); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvBounds3::isValid() const +{ + return (isFinite() && (((minimum.x <= maximum.x) && (minimum.y <= maximum.y) && (minimum.z <= maximum.z)) || + ((minimum.x == NV_MAX_BOUNDS_EXTENTS) && (minimum.y == NV_MAX_BOUNDS_EXTENTS) && + (minimum.z == NV_MAX_BOUNDS_EXTENTS) && (maximum.x == -NV_MAX_BOUNDS_EXTENTS) && + (maximum.y == -NV_MAX_BOUNDS_EXTENTS) && (maximum.z == -NV_MAX_BOUNDS_EXTENTS)))); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVBOUNDS3_H diff --git a/blast/include/lowlevel/NvCTypes.h b/blast/include/shared/NvFoundation/NvCTypes.h similarity index 92% rename from blast/include/lowlevel/NvCTypes.h rename to blast/include/shared/NvFoundation/NvCTypes.h index 5ba63696e..a691ade17 100644 --- a/blast/include/lowlevel/NvCTypes.h +++ b/blast/include/shared/NvFoundation/NvCTypes.h @@ -22,13 +22,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. -// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. -// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. - -//! @file -//! -//! @brief Defines simple C vector types +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. #ifndef NV_C_TYPES_H #define NV_C_TYPES_H @@ -122,4 +118,6 @@ typedef struct int32_t x, y, z, w; } NvcVec4i; +/** @} */ + #endif // NV_C_TYPES_H diff --git a/blast/include/globals/NvBlastProfiler.h b/blast/include/shared/NvFoundation/NvErrorCallback.h similarity index 54% rename from blast/include/globals/NvBlastProfiler.h rename to blast/include/shared/NvFoundation/NvErrorCallback.h index 3cf9f2b18..90bccfd46 100644 --- a/blast/include/globals/NvBlastProfiler.h +++ b/blast/include/shared/NvFoundation/NvErrorCallback.h @@ -22,79 +22,51 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. -//! @file -//! -//! @brief Profiler utility API in the NvBlastGlobals library - -#ifndef NVBLASTPROFILER_H -#define NVBLASTPROFILER_H - -#include "NvBlastPreprocessor.h" +#ifndef NV_NVFOUNDATION_NVERRORCALLBACK_H +#define NV_NVFOUNDATION_NVERRORCALLBACK_H +/** \addtogroup foundation +@{ +*/ -namespace Nv +#include "NvErrors.h" +#if !NV_DOXYGEN +namespace nvidia { -namespace Blast -{ - +#endif /** -Custom Blast profiler interface. -*/ -class ProfilerCallback -{ -protected: - virtual ~ProfilerCallback() {} - -public: - /** - Called when a nested profile zone starts. - */ - virtual void zoneStart(const char* name) = 0; - - /** - Called when the current profile zone ends. - */ - virtual void zoneEnd() = 0; -}; +\brief User defined interface class. Used by the library to emit debug information. +\note The SDK state should not be modified from within any error reporting functions. -/** -Profiler detail to be reported. The higher setting is used, the more details are reported. +Threading: The SDK sequences its calls to the output stream using a mutex, so the class need not +be implemented in a thread-safe manner if the SDK is the only client. */ -struct ProfilerDetail +class NvErrorCallback { - enum Level + public: + virtual ~NvErrorCallback() { - LOW, - MEDIUM, - HIGH - }; -}; - - -} // namespace Blast -} // namespace Nv - - -/** -Profiler features are only active in checked, debug and profile builds. -*/ - -/** -Set a custom profiler callback. May be nullptr (the default). -*/ -NVBLAST_API void NvBlastProfilerSetCallback(Nv::Blast::ProfilerCallback* pcb); - - -/** -Sets the depth of reported profile zones. -Higher levels (more nesting) of instrumentation can have a significant impact. -Defaults to Nv::Blast::ProfilerDetail::Level::LOW. -*/ -NVBLAST_API void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level); + } + /** + \brief Reports an error code. + \param code Error code, see #NvErrorCode + \param message Message to display. + \param file File error occured in. + \param line Line number error occured on. + */ + virtual void reportError(NvErrorCode::Enum code, const char* message, const char* file, int line) = 0; +}; +#if !NV_DOXYGEN +} // namespace nvidia #endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVERRORCALLBACK_H diff --git a/blast/include/shared/NvFoundation/NvErrors.h b/blast/include/shared/NvFoundation/NvErrors.h new file mode 100644 index 000000000..c10a27dbb --- /dev/null +++ b/blast/include/shared/NvFoundation/NvErrors.h @@ -0,0 +1,92 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVERRORS_H +#define NV_NVFOUNDATION_NVERRORS_H +/** \addtogroup foundation +@{ +*/ + +#include "Nv.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief Error codes + +These error codes are passed to #NvErrorCallback + +@see NvErrorCallback +*/ + +struct NvErrorCode +{ + enum Enum + { + eNO_ERROR = 0, + + //! \brief An informational message. + eDEBUG_INFO = 1, + + //! \brief a warning message for the user to help with debugging + eDEBUG_WARNING = 2, + + //! \brief method called with invalid parameter(s) + eINVALID_PARAMETER = 4, + + //! \brief method was called at a time when an operation is not possible + eINVALID_OPERATION = 8, + + //! \brief method failed to allocate some memory + eOUT_OF_MEMORY = 16, + + /** \brief The library failed for some reason. + Possibly you have passed invalid values like NaNs, which are not checked for. + */ + eINTERNAL_ERROR = 32, + + //! \brief An unrecoverable error, execution should be halted and log output flushed + eABORT = 64, + + //! \brief The SDK has determined that an operation may result in poor performance. + ePERF_WARNING = 128, + + //! \brief A bit mask for including all errors + eMASK_ALL = -1 + }; +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVERRORS_H diff --git a/blast/include/shared/NvFoundation/NvFlags.h b/blast/include/shared/NvFoundation/NvFlags.h new file mode 100644 index 000000000..6dd5d6b94 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvFlags.h @@ -0,0 +1,374 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVFLAGS_H +#define NV_NVFOUNDATION_NVFLAGS_H + +/** \addtogroup foundation + @{ +*/ + +#include "Nv.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif +/** +\brief Container for bitfield flag variables associated with a specific enum type. + +This allows for type safe manipulation for bitfields. + +

Example

+ // enum that defines each bit... + struct MyEnum + { + enum Enum + { + eMAN = 1, + eBEAR = 2, + ePIG = 4, + }; + }; + + // implements some convenient global operators. + NV_FLAGS_OPERATORS(MyEnum::Enum, uint8_t); + + NvFlags myFlags; + myFlags |= MyEnum::eMAN; + myFlags |= MyEnum::eBEAR | MyEnum::ePIG; + if(myFlags & MyEnum::eBEAR) + { + doSomething(); + } +*/ + +template +class NvFlags +{ + public: + typedef storagetype InternalType; + + NV_INLINE explicit NvFlags(const NvEMPTY) + { + } + NV_INLINE NvFlags(void); + NV_INLINE NvFlags(enumtype e); + NV_INLINE NvFlags(const NvFlags& f); + NV_INLINE explicit NvFlags(storagetype b); + + NV_INLINE bool isSet(enumtype e) const; + NV_INLINE NvFlags& set(enumtype e); + NV_INLINE bool operator==(enumtype e) const; + NV_INLINE bool operator==(const NvFlags& f) const; + NV_INLINE bool operator==(bool b) const; + NV_INLINE bool operator!=(enumtype e) const; + NV_INLINE bool operator!=(const NvFlags& f) const; + + NV_INLINE NvFlags& operator=(const NvFlags& f); + NV_INLINE NvFlags& operator=(enumtype e); + + NV_INLINE NvFlags& operator|=(enumtype e); + NV_INLINE NvFlags& operator|=(const NvFlags& f); + NV_INLINE NvFlags operator|(enumtype e) const; + NV_INLINE NvFlags operator|(const NvFlags& f) const; + + NV_INLINE NvFlags& operator&=(enumtype e); + NV_INLINE NvFlags& operator&=(const NvFlags& f); + NV_INLINE NvFlags operator&(enumtype e) const; + NV_INLINE NvFlags operator&(const NvFlags& f) const; + + NV_INLINE NvFlags& operator^=(enumtype e); + NV_INLINE NvFlags& operator^=(const NvFlags& f); + NV_INLINE NvFlags operator^(enumtype e) const; + NV_INLINE NvFlags operator^(const NvFlags& f) const; + + NV_INLINE NvFlags operator~(void) const; + + NV_INLINE operator bool(void) const; + NV_INLINE operator uint8_t(void) const; + NV_INLINE operator uint16_t(void) const; + NV_INLINE operator uint32_t(void) const; + + NV_INLINE void clear(enumtype e); + + public: + friend NV_INLINE NvFlags operator&(enumtype a, NvFlags& b) + { + NvFlags out; + out.mBits = a & b.mBits; + return out; + } + + private: + storagetype mBits; +}; + +#define NV_FLAGS_OPERATORS(enumtype, storagetype) \ + NV_INLINE NvFlags operator|(enumtype a, enumtype b) \ + { \ + NvFlags r(a); \ + r |= b; \ + return r; \ + } \ + NV_INLINE NvFlags operator&(enumtype a, enumtype b) \ + { \ + NvFlags r(a); \ + r &= b; \ + return r; \ + } \ + NV_INLINE NvFlags operator~(enumtype a) \ + { \ + return ~NvFlags(a); \ + } + +#define NV_FLAGS_TYPEDEF(x, y) \ + typedef NvFlags x##s; \ + NV_FLAGS_OPERATORS(x::Enum, y) + +template +NV_INLINE NvFlags::NvFlags(void) +{ + mBits = 0; +} + +template +NV_INLINE NvFlags::NvFlags(enumtype e) +{ + mBits = static_cast(e); +} + +template +NV_INLINE NvFlags::NvFlags(const NvFlags& f) +{ + mBits = f.mBits; +} + +template +NV_INLINE NvFlags::NvFlags(storagetype b) +{ + mBits = b; +} + +template +NV_INLINE bool NvFlags::isSet(enumtype e) const +{ + return (mBits & static_cast(e)) == static_cast(e); +} + +template +NV_INLINE NvFlags& NvFlags::set(enumtype e) +{ + mBits = static_cast(e); + return *this; +} + +template +NV_INLINE bool NvFlags::operator==(enumtype e) const +{ + return mBits == static_cast(e); +} + +template +NV_INLINE bool NvFlags::operator==(const NvFlags& f) const +{ + return mBits == f.mBits; +} + +template +NV_INLINE bool NvFlags::operator==(bool b) const +{ + return bool(*this) == b; +} + +template +NV_INLINE bool NvFlags::operator!=(enumtype e) const +{ + return mBits != static_cast(e); +} + +template +NV_INLINE bool NvFlags::operator!=(const NvFlags& f) const +{ + return mBits != f.mBits; +} + +template +NV_INLINE NvFlags& NvFlags::operator=(enumtype e) +{ + mBits = static_cast(e); + return *this; +} + +template +NV_INLINE NvFlags& NvFlags::operator=(const NvFlags& f) +{ + mBits = f.mBits; + return *this; +} + +template +NV_INLINE NvFlags& NvFlags::operator|=(enumtype e) +{ + mBits |= static_cast(e); + return *this; +} + +template +NV_INLINE NvFlags& NvFlags:: +operator|=(const NvFlags& f) +{ + mBits |= f.mBits; + return *this; +} + +template +NV_INLINE NvFlags NvFlags::operator|(enumtype e) const +{ + NvFlags out(*this); + out |= e; + return out; +} + +template +NV_INLINE NvFlags NvFlags:: +operator|(const NvFlags& f) const +{ + NvFlags out(*this); + out |= f; + return out; +} + +template +NV_INLINE NvFlags& NvFlags::operator&=(enumtype e) +{ + mBits &= static_cast(e); + return *this; +} + +template +NV_INLINE NvFlags& NvFlags:: +operator&=(const NvFlags& f) +{ + mBits &= f.mBits; + return *this; +} + +template +NV_INLINE NvFlags NvFlags::operator&(enumtype e) const +{ + NvFlags out = *this; + out.mBits &= static_cast(e); + return out; +} + +template +NV_INLINE NvFlags NvFlags:: +operator&(const NvFlags& f) const +{ + NvFlags out = *this; + out.mBits &= f.mBits; + return out; +} + +template +NV_INLINE NvFlags& NvFlags::operator^=(enumtype e) +{ + mBits ^= static_cast(e); + return *this; +} + +template +NV_INLINE NvFlags& NvFlags:: +operator^=(const NvFlags& f) +{ + mBits ^= f.mBits; + return *this; +} + +template +NV_INLINE NvFlags NvFlags::operator^(enumtype e) const +{ + NvFlags out = *this; + out.mBits ^= static_cast(e); + return out; +} + +template +NV_INLINE NvFlags NvFlags:: +operator^(const NvFlags& f) const +{ + NvFlags out = *this; + out.mBits ^= f.mBits; + return out; +} + +template +NV_INLINE NvFlags NvFlags::operator~(void) const +{ + NvFlags out; + out.mBits = storagetype(~mBits); + return out; +} + +template +NV_INLINE NvFlags::operator bool(void) const +{ + return mBits ? true : false; +} + +template +NV_INLINE NvFlags::operator uint8_t(void) const +{ + return static_cast(mBits); +} + +template +NV_INLINE NvFlags::operator uint16_t(void) const +{ + return static_cast(mBits); +} + +template +NV_INLINE NvFlags::operator uint32_t(void) const +{ + return static_cast(mBits); +} + +template +NV_INLINE void NvFlags::clear(enumtype e) +{ + mBits &= ~static_cast(e); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVFLAGS_H diff --git a/blast/include/shared/NvFoundation/NvIO.h b/blast/include/shared/NvFoundation/NvIO.h new file mode 100644 index 000000000..5e892cf98 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvIO.h @@ -0,0 +1,137 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVIO_H +#define NV_NVFOUNDATION_NVIO_H + +/** \addtogroup common + @{ +*/ + +#include "NvSimpleTypes.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief Input stream class for I/O. + +The user needs to supply a NvInputStream implementation to a number of methods to allow the SDK to read data. +*/ + +class NvInputStream +{ + public: + /** + \brief read from the stream. The number of bytes read may be less than the number requested. + + \param[in] dest the destination address to which the data will be read + \param[in] count the number of bytes requested + + \return the number of bytes read from the stream. + */ + + virtual uint32_t read(void* dest, uint32_t count) = 0; + + virtual ~NvInputStream() + { + } +}; + +/** +\brief Input data class for I/O which provides random read access. + +The user needs to supply a NvInputData implementation to a number of methods to allow the SDK to read data. +*/ + +class NvInputData : public NvInputStream +{ + public: + /** + \brief return the length of the input data + + \return size in bytes of the input data + */ + + virtual uint32_t getLength() const = 0; + + /** + \brief seek to the given offset from the start of the data. + + \param[in] offset the offset to seek to. If greater than the length of the data, this call is equivalent to + seek(length); + */ + + virtual void seek(uint32_t offset) = 0; + + /** + \brief return the current offset from the start of the data + + \return the offset to seek to. + */ + + virtual uint32_t tell() const = 0; + + virtual ~NvInputData() + { + } +}; + +/** +\brief Output stream class for I/O. + +The user needs to supply a NvOutputStream implementation to a number of methods to allow the SDK to write data. +*/ + +class NvOutputStream +{ + public: + /** + \brief write to the stream. The number of bytes written may be less than the number sent. + + \param[in] src the destination address from which the data will be written + \param[in] count the number of bytes to be written + + \return the number of bytes written to the stream by this call. + */ + + virtual uint32_t write(const void* src, uint32_t count) = 0; + + virtual ~NvOutputStream() + { + } +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVIO_H diff --git a/blast/include/shared/NvFoundation/NvIntrinsics.h b/blast/include/shared/NvFoundation/NvIntrinsics.h new file mode 100644 index 000000000..82cf8995c --- /dev/null +++ b/blast/include/shared/NvFoundation/NvIntrinsics.h @@ -0,0 +1,52 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVINTRINSICS_H +#define NV_NVFOUNDATION_NVINTRINSICS_H + +#include "NvPreprocessor.h" + +#if NV_WINDOWS_FAMILY +#include "platform/windows/NvWindowsIntrinsics.h" +#elif NV_X360 +#include "xbox360/NvXbox360Intrinsics.h" +#elif(NV_LINUX || NV_ANDROID || NV_APPLE_FAMILY || NV_PS4) +#include "platform/unix/NvUnixIntrinsics.h" +#elif NV_PS3 +#include "ps3/NvPS3Intrinsics.h" +#elif NV_PSP2 +#include "psp2/NvPSP2Intrinsics.h" +#elif NV_WIIU +#include "wiiu/NvWiiUIntrinsics.h" +#elif NV_XBOXONE +#include "XboxOne/NvXboxOneIntrinsics.h" +#else +#error "Platform not supported!" +#endif + +#endif // #ifndef NV_NVFOUNDATION_NVINTRINSICS_H diff --git a/blast/include/shared/NvFoundation/NvMat33.h b/blast/include/shared/NvFoundation/NvMat33.h new file mode 100644 index 000000000..f459502e4 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvMat33.h @@ -0,0 +1,391 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVMAT33_H +#define NV_NVFOUNDATION_NVMAT33_H +/** \addtogroup foundation +@{ +*/ + +#include "NvVec3.h" +#include "NvQuat.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif +/*! +\brief 3x3 matrix class + +Some clarifications, as there have been much confusion about matrix formats etc in the past. + +Short: +- Matrix have base vectors in columns (vectors are column matrices, 3x1 matrices). +- Matrix is physically stored in column major format +- Matrices are concaternated from left + +Long: +Given three base vectors a, b and c the matrix is stored as + +|a.x b.x c.x| +|a.y b.y c.y| +|a.z b.z c.z| + +Vectors are treated as columns, so the vector v is + +|x| +|y| +|z| + +And matrices are applied _before_ the vector (pre-multiplication) +v' = M*v + +|x'| |a.x b.x c.x| |x| |a.x*x + b.x*y + c.x*z| +|y'| = |a.y b.y c.y| * |y| = |a.y*x + b.y*y + c.y*z| +|z'| |a.z b.z c.z| |z| |a.z*x + b.z*y + c.z*z| + + +Physical storage and indexing: +To be compatible with popular 3d rendering APIs (read D3d and OpenGL) +the physical indexing is + +|0 3 6| +|1 4 7| +|2 5 8| + +index = column*3 + row + +which in C++ translates to M[column][row] + +The mathematical indexing is M_row,column and this is what is used for _-notation +so _12 is 1st row, second column and operator(row, column)! + +*/ +class NvMat33 +{ + public: + //! Default constructor + NV_CUDA_CALLABLE NV_FORCE_INLINE NvMat33() + { + } + + //! identity constructor + NV_CUDA_CALLABLE NV_INLINE NvMat33(NvIDENTITY r) + : column0(1.0f, 0.0f, 0.0f), column1(0.0f, 1.0f, 0.0f), column2(0.0f, 0.0f, 1.0f) + { + NV_UNUSED(r); + } + + //! zero constructor + NV_CUDA_CALLABLE NV_INLINE NvMat33(NvZERO r) : column0(0.0f), column1(0.0f), column2(0.0f) + { + NV_UNUSED(r); + } + + //! Construct from three base vectors + NV_CUDA_CALLABLE NvMat33(const NvVec3& col0, const NvVec3& col1, const NvVec3& col2) + : column0(col0), column1(col1), column2(col2) + { + } + + //! constructor from a scalar, which generates a multiple of the identity matrix + explicit NV_CUDA_CALLABLE NV_INLINE NvMat33(float r) + : column0(r, 0.0f, 0.0f), column1(0.0f, r, 0.0f), column2(0.0f, 0.0f, r) + { + } + + //! Construct from float[9] + explicit NV_CUDA_CALLABLE NV_INLINE NvMat33(float values[]) + : column0(values[0], values[1], values[2]) + , column1(values[3], values[4], values[5]) + , column2(values[6], values[7], values[8]) + { + } + + //! Construct from a quaternion + explicit NV_CUDA_CALLABLE NV_FORCE_INLINE NvMat33(const NvQuat& q) + { + const float x = q.x; + const float y = q.y; + const float z = q.z; + const float w = q.w; + + const float x2 = x + x; + const float y2 = y + y; + const float z2 = z + z; + + const float xx = x2 * x; + const float yy = y2 * y; + const float zz = z2 * z; + + const float xy = x2 * y; + const float xz = x2 * z; + const float xw = x2 * w; + + const float yz = y2 * z; + const float yw = y2 * w; + const float zw = z2 * w; + + column0 = NvVec3(1.0f - yy - zz, xy + zw, xz - yw); + column1 = NvVec3(xy - zw, 1.0f - xx - zz, yz + xw); + column2 = NvVec3(xz + yw, yz - xw, 1.0f - xx - yy); + } + + //! Copy constructor + NV_CUDA_CALLABLE NV_INLINE NvMat33(const NvMat33& other) + : column0(other.column0), column1(other.column1), column2(other.column2) + { + } + + //! Assignment operator + NV_CUDA_CALLABLE NV_FORCE_INLINE NvMat33& operator=(const NvMat33& other) + { + column0 = other.column0; + column1 = other.column1; + column2 = other.column2; + return *this; + } + + //! Construct from diagonal, off-diagonals are zero. + NV_CUDA_CALLABLE NV_INLINE static NvMat33 createDiagonal(const NvVec3& d) + { + return NvMat33(NvVec3(d.x, 0.0f, 0.0f), NvVec3(0.0f, d.y, 0.0f), NvVec3(0.0f, 0.0f, d.z)); + } + + /** + \brief returns true if the two matrices are exactly equal + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvMat33& m) const + { + return column0 == m.column0 && column1 == m.column1 && column2 == m.column2; + } + + //! Get transposed matrix + NV_CUDA_CALLABLE NV_FORCE_INLINE NvMat33 getTranspose() const + { + const NvVec3 v0(column0.x, column1.x, column2.x); + const NvVec3 v1(column0.y, column1.y, column2.y); + const NvVec3 v2(column0.z, column1.z, column2.z); + + return NvMat33(v0, v1, v2); + } + + //! Get the real inverse + NV_CUDA_CALLABLE NV_INLINE NvMat33 getInverse() const + { + const float det = getDeterminant(); + NvMat33 inverse; + + if(det != 0) + { + const float invDet = 1.0f / det; + + inverse.column0.x = invDet * (column1.y * column2.z - column2.y * column1.z); + inverse.column0.y = invDet * -(column0.y * column2.z - column2.y * column0.z); + inverse.column0.z = invDet * (column0.y * column1.z - column0.z * column1.y); + + inverse.column1.x = invDet * -(column1.x * column2.z - column1.z * column2.x); + inverse.column1.y = invDet * (column0.x * column2.z - column0.z * column2.x); + inverse.column1.z = invDet * -(column0.x * column1.z - column0.z * column1.x); + + inverse.column2.x = invDet * (column1.x * column2.y - column1.y * column2.x); + inverse.column2.y = invDet * -(column0.x * column2.y - column0.y * column2.x); + inverse.column2.z = invDet * (column0.x * column1.y - column1.x * column0.y); + + return inverse; + } + else + { + return NvMat33(NvIdentity); + } + } + + //! Get determinant + NV_CUDA_CALLABLE NV_INLINE float getDeterminant() const + { + return column0.dot(column1.cross(column2)); + } + + //! Unary minus + NV_CUDA_CALLABLE NV_INLINE NvMat33 operator-() const + { + return NvMat33(-column0, -column1, -column2); + } + + //! Add + NV_CUDA_CALLABLE NV_INLINE NvMat33 operator+(const NvMat33& other) const + { + return NvMat33(column0 + other.column0, column1 + other.column1, column2 + other.column2); + } + + //! Subtract + NV_CUDA_CALLABLE NV_INLINE NvMat33 operator-(const NvMat33& other) const + { + return NvMat33(column0 - other.column0, column1 - other.column1, column2 - other.column2); + } + + //! Scalar multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat33 operator*(float scalar) const + { + return NvMat33(column0 * scalar, column1 * scalar, column2 * scalar); + } + + friend NvMat33 operator*(float, const NvMat33&); + + //! Matrix vector multiplication (returns 'this->transform(vec)') + NV_CUDA_CALLABLE NV_INLINE NvVec3 operator*(const NvVec3& vec) const + { + return transform(vec); + } + + // a = b operators + + //! Matrix multiplication + NV_CUDA_CALLABLE NV_FORCE_INLINE NvMat33 operator*(const NvMat33& other) const + { + // Rows from this columns from other + // column0 = transform(other.column0) etc + return NvMat33(transform(other.column0), transform(other.column1), transform(other.column2)); + } + + //! Equals-add + NV_CUDA_CALLABLE NV_INLINE NvMat33& operator+=(const NvMat33& other) + { + column0 += other.column0; + column1 += other.column1; + column2 += other.column2; + return *this; + } + + //! Equals-sub + NV_CUDA_CALLABLE NV_INLINE NvMat33& operator-=(const NvMat33& other) + { + column0 -= other.column0; + column1 -= other.column1; + column2 -= other.column2; + return *this; + } + + //! Equals scalar multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat33& operator*=(float scalar) + { + column0 *= scalar; + column1 *= scalar; + column2 *= scalar; + return *this; + } + + //! Equals matrix multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat33& operator*=(const NvMat33& other) + { + *this = *this * other; + return *this; + } + + //! Element access, mathematical way! + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float operator()(unsigned int row, unsigned int col) const + { + return (*this)[col][row]; + } + + //! Element access, mathematical way! + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float& operator()(unsigned int row, unsigned int col) + { + return (*this)[col][row]; + } + + // Transform etc + + //! Transform vector by matrix, equal to v' = M*v + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 transform(const NvVec3& other) const + { + return column0 * other.x + column1 * other.y + column2 * other.z; + } + + //! Transform vector by matrix transpose, v' = M^t*v + NV_CUDA_CALLABLE NV_INLINE NvVec3 transformTranspose(const NvVec3& other) const + { + return NvVec3(column0.dot(other), column1.dot(other), column2.dot(other)); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE const float* front() const + { + return &column0.x; + } + + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator[](unsigned int num) + { + return (&column0)[num]; + } + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE const NvVec3& operator[](unsigned int num) const + { + return (&column0)[num]; + } + + // Data, see above for format! + + NvVec3 column0, column1, column2; // the three base vectors +}; + +// implementation from NvQuat.h +NV_CUDA_CALLABLE NV_INLINE NvQuat::NvQuat(const NvMat33& m) +{ + if (m.column2.z < 0) + { + if (m.column0.x > m.column1.y) + { + float t = 1 + m.column0.x - m.column1.y - m.column2.z; + *this = NvQuat(t, m.column0.y + m.column1.x, m.column2.x + m.column0.z, m.column1.z - m.column2.y) * (0.5f / NvSqrt(t)); + } + else + { + float t = 1 - m.column0.x + m.column1.y - m.column2.z; + *this = NvQuat(m.column0.y + m.column1.x, t, m.column1.z + m.column2.y, m.column2.x - m.column0.z) * (0.5f / NvSqrt(t)); + } + } + else + { + if (m.column0.x < -m.column1.y) + { + float t = 1 - m.column0.x - m.column1.y + m.column2.z; + *this = NvQuat(m.column2.x + m.column0.z, m.column1.z + m.column2.y, t, m.column0.y - m.column1.x) * (0.5f / NvSqrt(t)); + } + else + { + float t = 1 + m.column0.x + m.column1.y + m.column2.z; + *this = NvQuat(m.column1.z - m.column2.y, m.column2.x - m.column0.z, m.column0.y - m.column1.x, t) * (0.5f / NvSqrt(t)); + } + } +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVMAT33_H diff --git a/blast/include/shared/NvFoundation/NvMat44.h b/blast/include/shared/NvFoundation/NvMat44.h new file mode 100644 index 000000000..e4d12e331 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvMat44.h @@ -0,0 +1,375 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVMAT44_H +#define NV_NVFOUNDATION_NVMAT44_H +/** \addtogroup foundation +@{ +*/ + +#include "NvQuat.h" +#include "NvVec4.h" +#include "NvMat33.h" +#include "NvTransform.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/*! +\brief 4x4 matrix class + +This class is layout-compatible with D3D and OpenGL matrices. More notes on layout are given in the NvMat33 + +@see NvMat33 NvTransform +*/ + +class NvMat44 +{ + public: + //! Default constructor + NV_CUDA_CALLABLE NV_INLINE NvMat44() + { + } + + //! identity constructor + NV_CUDA_CALLABLE NV_INLINE NvMat44(NvIDENTITY r) + : column0(1.0f, 0.0f, 0.0f, 0.0f) + , column1(0.0f, 1.0f, 0.0f, 0.0f) + , column2(0.0f, 0.0f, 1.0f, 0.0f) + , column3(0.0f, 0.0f, 0.0f, 1.0f) + { + NV_UNUSED(r); + } + + //! zero constructor + NV_CUDA_CALLABLE NV_INLINE NvMat44(NvZERO r) : column0(NvZero), column1(NvZero), column2(NvZero), column3(NvZero) + { + NV_UNUSED(r); + } + + //! Construct from four 4-vectors + NV_CUDA_CALLABLE NvMat44(const NvVec4& col0, const NvVec4& col1, const NvVec4& col2, const NvVec4& col3) + : column0(col0), column1(col1), column2(col2), column3(col3) + { + } + + //! constructor that generates a multiple of the identity matrix + explicit NV_CUDA_CALLABLE NV_INLINE NvMat44(float r) + : column0(r, 0.0f, 0.0f, 0.0f) + , column1(0.0f, r, 0.0f, 0.0f) + , column2(0.0f, 0.0f, r, 0.0f) + , column3(0.0f, 0.0f, 0.0f, r) + { + } + + //! Construct from three base vectors and a translation + NV_CUDA_CALLABLE NvMat44(const NvVec3& col0, const NvVec3& col1, const NvVec3& col2, const NvVec3& col3) + : column0(col0, 0), column1(col1, 0), column2(col2, 0), column3(col3, 1.0f) + { + } + + //! Construct from float[16] + explicit NV_CUDA_CALLABLE NV_INLINE NvMat44(float values[]) + : column0(values[0], values[1], values[2], values[3]) + , column1(values[4], values[5], values[6], values[7]) + , column2(values[8], values[9], values[10], values[11]) + , column3(values[12], values[13], values[14], values[15]) + { + } + + //! Construct from a quaternion + explicit NV_CUDA_CALLABLE NV_INLINE NvMat44(const NvQuat& q) + { + const float x = q.x; + const float y = q.y; + const float z = q.z; + const float w = q.w; + + const float x2 = x + x; + const float y2 = y + y; + const float z2 = z + z; + + const float xx = x2 * x; + const float yy = y2 * y; + const float zz = z2 * z; + + const float xy = x2 * y; + const float xz = x2 * z; + const float xw = x2 * w; + + const float yz = y2 * z; + const float yw = y2 * w; + const float zw = z2 * w; + + column0 = NvVec4(1.0f - yy - zz, xy + zw, xz - yw, 0.0f); + column1 = NvVec4(xy - zw, 1.0f - xx - zz, yz + xw, 0.0f); + column2 = NvVec4(xz + yw, yz - xw, 1.0f - xx - yy, 0.0f); + column3 = NvVec4(0.0f, 0.0f, 0.0f, 1.0f); + } + + //! Construct from a diagonal vector + explicit NV_CUDA_CALLABLE NV_INLINE NvMat44(const NvVec4& diagonal) + : column0(diagonal.x, 0.0f, 0.0f, 0.0f) + , column1(0.0f, diagonal.y, 0.0f, 0.0f) + , column2(0.0f, 0.0f, diagonal.z, 0.0f) + , column3(0.0f, 0.0f, 0.0f, diagonal.w) + { + } + + //! Construct from Mat33 and a translation + NV_CUDA_CALLABLE NvMat44(const NvMat33& axes, const NvVec3& position) + : column0(axes.column0, 0.0f), column1(axes.column1, 0.0f), column2(axes.column2, 0.0f), column3(position, 1.0f) + { + } + + NV_CUDA_CALLABLE NvMat44(const NvTransform& t) + { + *this = NvMat44(NvMat33(t.q), t.p); + } + + /** + \brief returns true if the two matrices are exactly equal + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvMat44& m) const + { + return column0 == m.column0 && column1 == m.column1 && column2 == m.column2 && column3 == m.column3; + } + + //! Copy constructor + NV_CUDA_CALLABLE NV_INLINE NvMat44(const NvMat44& other) + : column0(other.column0), column1(other.column1), column2(other.column2), column3(other.column3) + { + } + + //! Assignment operator + NV_CUDA_CALLABLE NV_INLINE const NvMat44& operator=(const NvMat44& other) + { + column0 = other.column0; + column1 = other.column1; + column2 = other.column2; + column3 = other.column3; + return *this; + } + + //! Get transposed matrix + NV_CUDA_CALLABLE NV_INLINE NvMat44 getTranspose() const + { + return NvMat44( + NvVec4(column0.x, column1.x, column2.x, column3.x), NvVec4(column0.y, column1.y, column2.y, column3.y), + NvVec4(column0.z, column1.z, column2.z, column3.z), NvVec4(column0.w, column1.w, column2.w, column3.w)); + } + + //! Unary minus + NV_CUDA_CALLABLE NV_INLINE NvMat44 operator-() const + { + return NvMat44(-column0, -column1, -column2, -column3); + } + + //! Add + NV_CUDA_CALLABLE NV_INLINE NvMat44 operator+(const NvMat44& other) const + { + return NvMat44(column0 + other.column0, column1 + other.column1, column2 + other.column2, + column3 + other.column3); + } + + //! Subtract + NV_CUDA_CALLABLE NV_INLINE NvMat44 operator-(const NvMat44& other) const + { + return NvMat44(column0 - other.column0, column1 - other.column1, column2 - other.column2, + column3 - other.column3); + } + + //! Scalar multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat44 operator*(float scalar) const + { + return NvMat44(column0 * scalar, column1 * scalar, column2 * scalar, column3 * scalar); + } + + friend NvMat44 operator*(float, const NvMat44&); + + //! Matrix multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat44 operator*(const NvMat44& other) const + { + // Rows from this columns from other + // column0 = transform(other.column0) etc + return NvMat44(transform(other.column0), transform(other.column1), transform(other.column2), + transform(other.column3)); + } + + // a = b operators + + //! Equals-add + NV_CUDA_CALLABLE NV_INLINE NvMat44& operator+=(const NvMat44& other) + { + column0 += other.column0; + column1 += other.column1; + column2 += other.column2; + column3 += other.column3; + return *this; + } + + //! Equals-sub + NV_CUDA_CALLABLE NV_INLINE NvMat44& operator-=(const NvMat44& other) + { + column0 -= other.column0; + column1 -= other.column1; + column2 -= other.column2; + column3 -= other.column3; + return *this; + } + + //! Equals scalar multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat44& operator*=(float scalar) + { + column0 *= scalar; + column1 *= scalar; + column2 *= scalar; + column3 *= scalar; + return *this; + } + + //! Equals matrix multiplication + NV_CUDA_CALLABLE NV_INLINE NvMat44& operator*=(const NvMat44& other) + { + *this = *this * other; + return *this; + } + + //! Element access, mathematical way! + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float operator()(unsigned int row, unsigned int col) const + { + return (*this)[col][row]; + } + + //! Element access, mathematical way! + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float& operator()(unsigned int row, unsigned int col) + { + return (*this)[col][row]; + } + + //! Transform vector by matrix, equal to v' = M*v + NV_CUDA_CALLABLE NV_INLINE NvVec4 transform(const NvVec4& other) const + { + return column0 * other.x + column1 * other.y + column2 * other.z + column3 * other.w; + } + + //! Transform vector by matrix, equal to v' = M*v + NV_CUDA_CALLABLE NV_INLINE NvVec3 transform(const NvVec3& other) const + { + return transform(NvVec4(other, 1.0f)).getXYZ(); + } + + //! Rotate vector by matrix, equal to v' = M*v + NV_CUDA_CALLABLE NV_INLINE const NvVec4 rotate(const NvVec4& other) const + { + return column0 * other.x + column1 * other.y + column2 * other.z; // + column3*0; + } + + //! Rotate vector by matrix, equal to v' = M*v + NV_CUDA_CALLABLE NV_INLINE const NvVec3 rotate(const NvVec3& other) const + { + return rotate(NvVec4(other, 1.0f)).getXYZ(); + } + + NV_CUDA_CALLABLE NV_INLINE NvVec3 getBasis(int num) const + { + NV_ASSERT(num >= 0 && num < 3); + return (&column0)[num].getXYZ(); + } + + NV_CUDA_CALLABLE NV_INLINE NvVec3 getPosition() const + { + return column3.getXYZ(); + } + + NV_CUDA_CALLABLE NV_INLINE void setPosition(const NvVec3& position) + { + column3.x = position.x; + column3.y = position.y; + column3.z = position.z; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE const float* front() const + { + return &column0.x; + } + + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec4& operator[](unsigned int num) + { + return (&column0)[num]; + } + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE const NvVec4& operator[](unsigned int num) const + { + return (&column0)[num]; + } + + NV_CUDA_CALLABLE NV_INLINE void scale(const NvVec4& p) + { + column0 *= p.x; + column1 *= p.y; + column2 *= p.z; + column3 *= p.w; + } + + NV_CUDA_CALLABLE NV_INLINE NvMat44 inverseRT(void) const + { + NvVec3 r0(column0.x, column1.x, column2.x), r1(column0.y, column1.y, column2.y), + r2(column0.z, column1.z, column2.z); + + return NvMat44(r0, r1, r2, -(r0 * column3.x + r1 * column3.y + r2 * column3.z)); + } + + NV_CUDA_CALLABLE NV_INLINE bool isFinite() const + { + return column0.isFinite() && column1.isFinite() && column2.isFinite() && column3.isFinite(); + } + + // Data, see above for format! + + NvVec4 column0, column1, column2, column3; // the four base vectors +}; + +// implementation from NvTransform.h +NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform::NvTransform(const NvMat44& m) +{ + NvVec3 column0 = NvVec3(m.column0.x, m.column0.y, m.column0.z); + NvVec3 column1 = NvVec3(m.column1.x, m.column1.y, m.column1.z); + NvVec3 column2 = NvVec3(m.column2.x, m.column2.y, m.column2.z); + + q = NvQuat(NvMat33(column0, column1, column2)); + p = NvVec3(m.column3.x, m.column3.y, m.column3.z); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVMAT44_H diff --git a/blast/include/shared/NvFoundation/NvMath.h b/blast/include/shared/NvFoundation/NvMath.h new file mode 100644 index 000000000..3bba0d388 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvMath.h @@ -0,0 +1,337 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVMATH_H +#define NV_NVFOUNDATION_NVMATH_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvPreprocessor.h" + +#if NV_VC +#pragma warning(push) +#pragma warning(disable : 4985) // 'symbol name': attributes not present on previous declaration +#endif +#include +#if NV_VC +#pragma warning(pop) +#endif + +#include +#include "NvIntrinsics.h" +#include "NvAssert.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +// constants +static const float NvPi = float(3.141592653589793); +static const float NvHalfPi = float(1.57079632679489661923); +static const float NvTwoPi = float(6.28318530717958647692); +static const float NvInvPi = float(0.31830988618379067154); +static const float NvInvTwoPi = float(0.15915494309189533577); +static const float NvPiDivTwo = float(1.57079632679489661923); +static const float NvPiDivFour = float(0.78539816339744830962); + +/** +\brief The return value is the greater of the two specified values. +*/ +template +NV_CUDA_CALLABLE NV_FORCE_INLINE T NvMax(T a, T b) +{ + return a < b ? b : a; +} + +//! overload for float to use fsel on xbox +template <> +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvMax(float a, float b) +{ + return intrinsics::selectMax(a, b); +} + +/** +\brief The return value is the lesser of the two specified values. +*/ +template +NV_CUDA_CALLABLE NV_FORCE_INLINE T NvMin(T a, T b) +{ + return a < b ? a : b; +} + +template <> +//! overload for float to use fsel on xbox +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvMin(float a, float b) +{ + return intrinsics::selectMin(a, b); +} + +/* +Many of these are just implemented as NV_CUDA_CALLABLE NV_FORCE_INLINE calls to the C lib right now, +but later we could replace some of them with some approximations or more +clever stuff. +*/ + +/** +\brief abs returns the absolute value of its argument. +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvAbs(float a) +{ + return intrinsics::abs(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvEquals(float a, float b, float eps) +{ + return (NvAbs(a - b) < eps); +} + +/** +\brief abs returns the absolute value of its argument. +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvAbs(double a) +{ + return ::fabs(a); +} + +/** +\brief abs returns the absolute value of its argument. +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE int32_t NvAbs(int32_t a) +{ + return ::abs(a); +} + +/** +\brief Clamps v to the range [hi,lo] +*/ +template +NV_CUDA_CALLABLE NV_FORCE_INLINE T NvClamp(T v, T lo, T hi) +{ + NV_ASSERT(lo <= hi); + return NvMin(hi, NvMax(lo, v)); +} + +//! \brief Square root. +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvSqrt(float a) +{ + return intrinsics::sqrt(a); +} + +//! \brief Square root. +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvSqrt(double a) +{ + return ::sqrt(a); +} + +//! \brief reciprocal square root. +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvRecipSqrt(float a) +{ + return intrinsics::recipSqrt(a); +} + +//! \brief reciprocal square root. +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvRecipSqrt(double a) +{ + return 1 / ::sqrt(a); +} + +//! trigonometry -- all angles are in radians. + +//! \brief Sine of an angle ( Unit: Radians ) +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvSin(float a) +{ + return intrinsics::sin(a); +} + +//! \brief Sine of an angle ( Unit: Radians ) +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvSin(double a) +{ + return ::sin(a); +} + +//! \brief Cosine of an angle (Unit: Radians) +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvCos(float a) +{ + return intrinsics::cos(a); +} + +//! \brief Cosine of an angle (Unit: Radians) +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvCos(double a) +{ + return ::cos(a); +} + +/** +\brief Tangent of an angle. +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvTan(float a) +{ + return ::tanf(a); +} + +/** +\brief Tangent of an angle. +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvTan(double a) +{ + return ::tan(a); +} + +/** +\brief Arcsine. +Returns angle between -PI/2 and PI/2 in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvAsin(float f) +{ + return ::asinf(NvClamp(f, -1.0f, 1.0f)); +} + +/** +\brief Arcsine. +Returns angle between -PI/2 and PI/2 in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvAsin(double f) +{ + return ::asin(NvClamp(f, -1.0, 1.0)); +} + +/** +\brief Arccosine. +Returns angle between 0 and PI in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvAcos(float f) +{ + return ::acosf(NvClamp(f, -1.0f, 1.0f)); +} + +/** +\brief Arccosine. +Returns angle between 0 and PI in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvAcos(double f) +{ + return ::acos(NvClamp(f, -1.0, 1.0)); +} + +/** +\brief ArcTangent. +Returns angle between -PI/2 and PI/2 in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvAtan(float a) +{ + return ::atanf(a); +} + +/** +\brief ArcTangent. +Returns angle between -PI/2 and PI/2 in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvAtan(double a) +{ + return ::atan(a); +} + +/** +\brief Arctangent of (x/y) with correct sign. +Returns angle between -PI and PI in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvAtan2(float x, float y) +{ + return ::atan2f(x, y); +} + +/** +\brief Arctangent of (x/y) with correct sign. +Returns angle between -PI and PI in radians +Unit: Radians +*/ +NV_CUDA_CALLABLE NV_FORCE_INLINE double NvAtan2(double x, double y) +{ + return ::atan2(x, y); +} + +//! \brief returns true if the passed number is a finite floating point number as opposed to INF, NAN, etc. +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvIsFinite(float f) +{ + return intrinsics::isFinite(f); +} + +//! \brief returns true if the passed number is a finite floating point number as opposed to INF, NAN, etc. +NV_CUDA_CALLABLE NV_FORCE_INLINE bool NvIsFinite(double f) +{ + return intrinsics::isFinite(f); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvFloor(float a) +{ + return ::floorf(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvExp(float a) +{ + return ::expf(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvCeil(float a) +{ + return ::ceilf(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvSign(float a) +{ + return nvidia::intrinsics::sign(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvPow(float x, float y) +{ + return ::powf(x, y); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float NvLog(float x) +{ + return ::logf(x); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVMATH_H diff --git a/blast/include/shared/NvFoundation/NvPlane.h b/blast/include/shared/NvFoundation/NvPlane.h new file mode 100644 index 000000000..6aa18d8f8 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvPlane.h @@ -0,0 +1,144 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVPLANE_H +#define NV_NVFOUNDATION_NVPLANE_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvMath.h" +#include "NvVec3.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief Representation of a plane. + + Plane equation used: n.dot(v) + d = 0 +*/ +class NvPlane +{ + public: + /** + \brief Constructor + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane() + { + } + + /** + \brief Constructor from a normal and a distance + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane(float nx, float ny, float nz, float distance) : n(nx, ny, nz), d(distance) + { + } + + /** + \brief Constructor from a normal and a distance + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane(const NvVec3& normal, float distance) : n(normal), d(distance) + { + } + + /** + \brief Constructor from a point on the plane and a normal + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane(const NvVec3& point, const NvVec3& normal) + : n(normal), d(-point.dot(n)) // p satisfies normal.dot(p) + d = 0 + { + } + + /** + \brief Constructor from three points + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane(const NvVec3& p0, const NvVec3& p1, const NvVec3& p2) + { + n = (p1 - p0).cross(p2 - p0).getNormalized(); + d = -p0.dot(n); + } + + /** + \brief returns true if the two planes are exactly equal + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvPlane& p) const + { + return n == p.n && d == p.d; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE float distance(const NvVec3& p) const + { + return p.dot(n) + d; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE bool contains(const NvVec3& p) const + { + return NvAbs(distance(p)) < (1.0e-7f); + } + + /** + \brief projects p into the plane + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 project(const NvVec3& p) const + { + return p - n * distance(p); + } + + /** + \brief find an arbitrary point in the plane + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 pointInPlane() const + { + return -n * d; + } + + /** + \brief equivalent plane with unit normal + */ + + NV_CUDA_CALLABLE NV_FORCE_INLINE void normalize() + { + float denom = 1.0f / n.magnitude(); + n *= denom; + d *= denom; + } + + NvVec3 n; //!< The normal to the plane + float d; //!< The distance from the origin +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVPLANE_H diff --git a/blast/include/lowlevel/NvPreprocessor.h b/blast/include/shared/NvFoundation/NvPreprocessor.h similarity index 96% rename from blast/include/lowlevel/NvPreprocessor.h rename to blast/include/shared/NvFoundation/NvPreprocessor.h index 9274c6789..1f562101f 100644 --- a/blast/include/lowlevel/NvPreprocessor.h +++ b/blast/include/shared/NvFoundation/NvPreprocessor.h @@ -22,13 +22,9 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. -// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. -// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. - -//! @file -//! -//! @brief Generally userful preprocessor definitions +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. #ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H #define NV_NVFOUNDATION_NVPREPROCESSOR_H @@ -78,7 +74,7 @@ Operating system defines, see http://sourceforge.net/p/predef/wiki/OperatingSyst */ #if defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_PARTITION_APP #define NV_WINRT 1 // Windows Runtime, either on Windows RT or Windows 8 -#elif defined(XBOXONE) || defined(_XBOX_ONE) +#elif defined(XBOXONE) #define NV_XBOXONE 1 #elif defined(_WIN64) // note: XBOXONE implies _WIN64 #define NV_WIN64 1 @@ -276,14 +272,14 @@ Assert macro DLL export macros */ #ifndef NV_C_EXPORT -#if NV_WINDOWS_FAMILY || NV_LINUX || NV_PS4 || NV_XBOXONE +#if NV_WINDOWS_FAMILY || NV_LINUX #define NV_C_EXPORT extern "C" #else #define NV_C_EXPORT #endif #endif -#if NV_UNIX_FAMILY && __GNUC__ >= 4 +#if NV_UNIX_FAMILY&& __GNUC__ >= 4 #define NV_UNIX_EXPORT __attribute__((visibility("default"))) #else #define NV_UNIX_EXPORT @@ -463,7 +459,7 @@ General defines #endif // make sure NV_CHECKED is defined in all _DEBUG configurations as well -#if !defined(NV_CHECKED) && defined(NV_DEBUG) +#if !NV_CHECKED && NV_DEBUG #error NV_CHECKED must be defined when NV_DEBUG is defined #endif @@ -539,5 +535,8 @@ protected: #define NV_CONCAT_HELPER(X, Y) X##Y #define NV_CONCAT(X, Y) NV_CONCAT_HELPER(X, Y) +// C-style API declaration. +#define NV_C_API NV_C_EXPORT NV_DLL_EXPORT + /** @} */ #endif // #ifndef NV_NVFOUNDATION_NVPREPROCESSOR_H diff --git a/blast/include/shared/NvFoundation/NvProfiler.h b/blast/include/shared/NvFoundation/NvProfiler.h new file mode 100644 index 000000000..6c070e337 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvProfiler.h @@ -0,0 +1,141 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_PROFILER_H +#define NV_PROFILER_H + +#include + +namespace nvidia +{ + class NvProfilerCallback; + namespace shdfnd + { + NV_FOUNDATION_API NvProfilerCallback *getProfilerCallback(); + NV_FOUNDATION_API void setProfilerCallback(NvProfilerCallback *profiler); + } +} + + +namespace nvidia +{ + +struct NvProfileContext +{ + enum Enum + { + eNONE = 0 //!< value for no specific profile context. \see NvProfilerCallback::zoneAt + }; +}; + + +/** +\brief The pure virtual callback interface for general purpose instrumentation and profiling of GameWorks modules as well as applications +*/ +class NvProfilerCallback +{ +protected: + virtual ~NvProfilerCallback() {} + +public: + /************************************************************************************************************************** + Instrumented profiling events + ***************************************************************************************************************************/ + + /** + \brief Mark the beginning of a nested profile block + \param[in] eventName Event name. Must be a persistent const char * + \param[in] detached True for cross thread events + \param[in] contextId the context id of this zone. Zones with the same id belong to the same group. 0 is used for no specific group. + \return Returns implementation-specific profiler data for this event + */ + virtual void* zoneStart(const char* eventName, bool detached, uint64_t contextId) = 0; + + /** + \brief Mark the end of a nested profile block + \param[in] profilerData The data returned by the corresponding zoneStart call (or NULL if not available) + \param[in] eventName The name of the zone ending, must match the corresponding name passed with 'zoneStart'. Must be a persistent const char *. + \param[in] detached True for cross thread events. Should match the value passed to zoneStart. + \param[in] contextId The context of this zone. Should match the value passed to zoneStart. + + \note eventName plus contextId can be used to uniquely match up start and end of a zone. + */ + virtual void zoneEnd(void* profilerData, const char* eventName, bool detached, uint64_t contextId) = 0; +}; + +class NvProfileScoped +{ +public: + NV_FORCE_INLINE NvProfileScoped(const char* eventName, bool detached, uint64_t contextId) + : mCallback(nvidia::shdfnd::getProfilerCallback()) + { + if (mCallback) + { + mEventName = eventName; + mDetached = detached; + mContextId = contextId; + mProfilerData = mCallback->zoneStart(mEventName, mDetached, mContextId); + } + } + ~NvProfileScoped(void) + { + if (mCallback) + { + mCallback->zoneEnd(mProfilerData, mEventName, mDetached, mContextId); + } + } + nvidia::NvProfilerCallback* mCallback; + void* mProfilerData; + const char* mEventName; + bool mDetached; + uint64_t mContextId; +}; + + + +} // end of NVIDIA namespace + + + +#if NV_DEBUG || NV_CHECKED || NV_PROFILE + +#define NV_PROFILE_ZONE(name,context_id) nvidia::NvProfileScoped NV_CONCAT(_scoped,__LINE__)(name,false,context_id) +#define NV_PROFILE_START_CROSSTHREAD(name,context_id) if ( nvidia::shdfnd::getProfilerCallback() ) nvidia::shdfnd::getProfilerCallback()->zoneStart(name,true,context_id) +#define NV_PROFILE_STOP_CROSSTHREAD(name,context_id) if ( nvidia::shdfnd::getProfilerCallback() ) nvidia::shdfnd::getProfilerCallback()->zoneEnd(nullptr,name,true,context_id) + +#else + +#define NV_PROFILE_ZONE(name,context_id) +#define NV_PROFILE_START_CROSSTHREAD(name,context_id) +#define NV_PROFILE_STOP_CROSSTHREAD(name,context_id) + +#endif + +#define NV_PROFILE_POINTER_TO_U64( pointer ) static_cast(reinterpret_cast(pointer)) + +#endif diff --git a/blast/include/shared/NvFoundation/NvQuat.h b/blast/include/shared/NvFoundation/NvQuat.h new file mode 100644 index 000000000..44ce3db44 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvQuat.h @@ -0,0 +1,405 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVQUAT_H +#define NV_NVFOUNDATION_NVQUAT_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvVec3.h" +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief This is a quaternion class. For more information on quaternion mathematics +consult a mathematics source on complex numbers. + +*/ + +class NvQuat +{ + public: + /** + \brief Default constructor, does not do any initialization. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat() + { + } + + //! identity constructor + NV_CUDA_CALLABLE NV_INLINE NvQuat(NvIDENTITY r) : x(0.0f), y(0.0f), z(0.0f), w(1.0f) + { + NV_UNUSED(r); + } + + /** + \brief Constructor from a scalar: sets the real part w to the scalar value, and the imaginary parts (x,y,z) to zero + */ + explicit NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat(float r) : x(0.0f), y(0.0f), z(0.0f), w(r) + { + } + + /** + \brief Constructor. Take note of the order of the elements! + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat(float nx, float ny, float nz, float nw) : x(nx), y(ny), z(nz), w(nw) + { + } + + /** + \brief Creates from angle-axis representation. + + Axis must be normalized! + + Angle is in radians! + + Unit: Radians + */ + NV_CUDA_CALLABLE NV_INLINE NvQuat(float angleRadians, const NvVec3& unitAxis) + { + NV_ASSERT(NvAbs(1.0f - unitAxis.magnitude()) < 1e-3f); + const float a = angleRadians * 0.5f; + const float s = NvSin(a); + w = NvCos(a); + x = unitAxis.x * s; + y = unitAxis.y * s; + z = unitAxis.z * s; + } + + /** + \brief Copy ctor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat(const NvQuat& v) : x(v.x), y(v.y), z(v.z), w(v.w) + { + } + + /** + \brief Creates from orientation matrix. + + \param[in] m Rotation matrix to extract quaternion from. + */ + NV_CUDA_CALLABLE NV_INLINE explicit NvQuat(const NvMat33& m); /* defined in NvMat33.h */ + + /** + \brief returns true if quat is identity + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isIdentity() const + { + return x==0.0f && y==0.0f && z==0.0f && w==1.0f; + } + + /** + \brief returns true if all elements are finite (not NAN or INF, etc.) + */ + NV_CUDA_CALLABLE bool isFinite() const + { + return NvIsFinite(x) && NvIsFinite(y) && NvIsFinite(z) && NvIsFinite(w); + } + + /** + \brief returns true if finite and magnitude is close to unit + */ + + NV_CUDA_CALLABLE bool isUnit() const + { + const float unitTolerance = 1e-4f; + return isFinite() && NvAbs(magnitude() - 1) < unitTolerance; + } + + /** + \brief returns true if finite and magnitude is reasonably close to unit to allow for some accumulation of error vs + isValid + */ + + NV_CUDA_CALLABLE bool isSane() const + { + const float unitTolerance = 1e-2f; + return isFinite() && NvAbs(magnitude() - 1) < unitTolerance; + } + + /** + \brief returns true if the two quaternions are exactly equal + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvQuat& q) const + { + return x == q.x && y == q.y && z == q.z && w == q.w; + } + + /** + \brief converts this quaternion to angle-axis representation + */ + + NV_CUDA_CALLABLE NV_INLINE void toRadiansAndUnitAxis(float& angle, NvVec3& axis) const + { + const float quatEpsilon = 1.0e-8f; + const float s2 = x * x + y * y + z * z; + if(s2 < quatEpsilon * quatEpsilon) // can't extract a sensible axis + { + angle = 0.0f; + axis = NvVec3(1.0f, 0.0f, 0.0f); + } + else + { + const float s = NvRecipSqrt(s2); + axis = NvVec3(x, y, z) * s; + angle = NvAbs(w) < quatEpsilon ? NvPi : NvAtan2(s2 * s, w) * 2.0f; + } + } + + /** + \brief Gets the angle between this quat and the identity quaternion. + + Unit: Radians + */ + NV_CUDA_CALLABLE NV_INLINE float getAngle() const + { + return NvAcos(w) * 2.0f; + } + + /** + \brief Gets the angle between this quat and the argument + + Unit: Radians + */ + NV_CUDA_CALLABLE NV_INLINE float getAngle(const NvQuat& q) const + { + return NvAcos(dot(q)) * 2.0f; + } + + /** + \brief This is the squared 4D vector length, should be 1 for unit quaternions. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float magnitudeSquared() const + { + return x * x + y * y + z * z + w * w; + } + + /** + \brief returns the scalar product of this and other. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float dot(const NvQuat& v) const + { + return x * v.x + y * v.y + z * v.z + w * v.w; + } + + NV_CUDA_CALLABLE NV_INLINE NvQuat getNormalized() const + { + const float s = 1.0f / magnitude(); + return NvQuat(x * s, y * s, z * s, w * s); + } + + NV_CUDA_CALLABLE NV_INLINE float magnitude() const + { + return NvSqrt(magnitudeSquared()); + } + + // modifiers: + /** + \brief maps to the closest unit quaternion. + */ + NV_CUDA_CALLABLE NV_INLINE float normalize() // convert this NvQuat to a unit quaternion + { + const float mag = magnitude(); + if(mag != 0.0f) + { + const float imag = 1.0f / mag; + + x *= imag; + y *= imag; + z *= imag; + w *= imag; + } + return mag; + } + + /* + \brief returns the conjugate. + + \note for unit quaternions, this is the inverse. + */ + NV_CUDA_CALLABLE NV_INLINE NvQuat getConjugate() const + { + return NvQuat(-x, -y, -z, w); + } + + /* + \brief returns imaginary part. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec3 getImaginaryPart() const + { + return NvVec3(x, y, z); + } + + /** brief computes rotation of x-axis */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getBasisVector0() const + { + const float x2 = x * 2.0f; + const float w2 = w * 2.0f; + return NvVec3((w * w2) - 1.0f + x * x2, (z * w2) + y * x2, (-y * w2) + z * x2); + } + + /** brief computes rotation of y-axis */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getBasisVector1() const + { + const float y2 = y * 2.0f; + const float w2 = w * 2.0f; + return NvVec3((-z * w2) + x * y2, (w * w2) - 1.0f + y * y2, (x * w2) + z * y2); + } + + /** brief computes rotation of z-axis */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getBasisVector2() const + { + const float z2 = z * 2.0f; + const float w2 = w * 2.0f; + return NvVec3((y * w2) + x * z2, (-x * w2) + y * z2, (w * w2) - 1.0f + z * z2); + } + + /** + rotates passed vec by this (assumed unitary) + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE const NvVec3 rotate(const NvVec3& v) const + { + const float vx = 2.0f * v.x; + const float vy = 2.0f * v.y; + const float vz = 2.0f * v.z; + const float w2 = w * w - 0.5f; + const float dot2 = (x * vx + y * vy + z * vz); + return NvVec3((vx * w2 + (y * vz - z * vy) * w + x * dot2), (vy * w2 + (z * vx - x * vz) * w + y * dot2), + (vz * w2 + (x * vy - y * vx) * w + z * dot2)); + } + + /** + inverse rotates passed vec by this (assumed unitary) + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE const NvVec3 rotateInv(const NvVec3& v) const + { + const float vx = 2.0f * v.x; + const float vy = 2.0f * v.y; + const float vz = 2.0f * v.z; + const float w2 = w * w - 0.5f; + const float dot2 = (x * vx + y * vy + z * vz); + return NvVec3((vx * w2 - (y * vz - z * vy) * w + x * dot2), (vy * w2 - (z * vx - x * vz) * w + y * dot2), + (vz * w2 - (x * vy - y * vx) * w + z * dot2)); + } + + /** + \brief Assignment operator + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat& operator=(const NvQuat& p) + { + x = p.x; + y = p.y; + z = p.z; + w = p.w; + return *this; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat& operator*=(const NvQuat& q) + { + const float tx = w * q.x + q.w * x + y * q.z - q.y * z; + const float ty = w * q.y + q.w * y + z * q.x - q.z * x; + const float tz = w * q.z + q.w * z + x * q.y - q.x * y; + + w = w * q.w - q.x * x - y * q.y - q.z * z; + x = tx; + y = ty; + z = tz; + + return *this; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat& operator+=(const NvQuat& q) + { + x += q.x; + y += q.y; + z += q.z; + w += q.w; + return *this; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat& operator-=(const NvQuat& q) + { + x -= q.x; + y -= q.y; + z -= q.z; + w -= q.w; + return *this; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat& operator*=(const float s) + { + x *= s; + y *= s; + z *= s; + w *= s; + return *this; + } + + /** quaternion multiplication */ + NV_CUDA_CALLABLE NV_INLINE NvQuat operator*(const NvQuat& q) const + { + return NvQuat(w * q.x + q.w * x + y * q.z - q.y * z, w * q.y + q.w * y + z * q.x - q.z * x, + w * q.z + q.w * z + x * q.y - q.x * y, w * q.w - x * q.x - y * q.y - z * q.z); + } + + /** quaternion addition */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat operator+(const NvQuat& q) const + { + return NvQuat(x + q.x, y + q.y, z + q.z, w + q.w); + } + + /** quaternion subtraction */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat operator-() const + { + return NvQuat(-x, -y, -z, -w); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat operator-(const NvQuat& q) const + { + return NvQuat(x - q.x, y - q.y, z - q.z, w - q.w); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvQuat operator*(float r) const + { + return NvQuat(x * r, y * r, z * r, w * r); + } + + /** the quaternion elements */ + float x, y, z, w; +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVQUAT_H diff --git a/blast/include/shared/NvFoundation/NvSimpleTypes.h b/blast/include/shared/NvFoundation/NvSimpleTypes.h new file mode 100644 index 000000000..002b6ee7c --- /dev/null +++ b/blast/include/shared/NvFoundation/NvSimpleTypes.h @@ -0,0 +1,71 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVSIMPLETYPES_H +#define NV_NVFOUNDATION_NVSIMPLETYPES_H + +/** \addtogroup foundation + @{ +*/ + +// Platform specific types: +// Design note: Its OK to use int for general loop variables and temps. + +#include "NvPreprocessor.h" +#if NV_VC +#pragma warning(push) +#pragma warning(disable : 4668) // suppressing warning generated by Microsoft Visual Studio when including this standard +// header +#endif + +#if NV_LINUX +#define __STDC_LIMIT_MACROS +#endif + +#include +#if NV_VC +#pragma warning(pop) +#endif +// Type ranges + +// These are here because we sometimes have non-IEEE compliant platforms to deal with. +// Removal is under consideration (issue GWSD-34) + +#define NV_MAX_F32 3.4028234663852885981170418348452e+38F +// maximum possible float value +#define NV_MAX_F64 DBL_MAX // maximum possible double value + +#define NV_EPS_F32 FLT_EPSILON // maximum relative error of float rounding +#define NV_EPS_F64 DBL_EPSILON // maximum relative error of double rounding + +#define NV_MAX_REAL NV_MAX_F32 +#define NV_EPS_REAL NV_EPS_F32 +#define NV_NORMALIZATION_EPSILON float(1e-20f) + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVSIMPLETYPES_H diff --git a/blast/include/shared/NvFoundation/NvTransform.h b/blast/include/shared/NvFoundation/NvTransform.h new file mode 100644 index 000000000..8b324f0f6 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvTransform.h @@ -0,0 +1,214 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVTRANSFORM_H +#define NV_NVFOUNDATION_NVTRANSFORM_H +/** \addtogroup foundation + @{ +*/ + +#include "NvQuat.h" +#include "NvPlane.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/*! +\brief class representing a rigid euclidean transform as a quaternion and a vector +*/ + +class NvTransform +{ + public: + NvQuat q; + NvVec3 p; + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform() + { + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE explicit NvTransform(const NvVec3& position) : q(NvIdentity), p(position) + { + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE explicit NvTransform(NvIDENTITY r) : q(NvIdentity), p(NvZero) + { + NV_UNUSED(r); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE explicit NvTransform(const NvQuat& orientation) : q(orientation), p(0) + { + NV_ASSERT(orientation.isSane()); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform(float x, float y, float z, NvQuat aQ = NvQuat(NvIdentity)) + : q(aQ), p(x, y, z) + { + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform(const NvVec3& p0, const NvQuat& q0) : q(q0), p(p0) + { + NV_ASSERT(q0.isSane()); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE explicit NvTransform(const NvMat44& m); // defined in NvMat44.h + + /** + \brief returns true if the two transforms are exactly equal + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvTransform& t) const + { + return p == t.p && q == t.q; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform operator*(const NvTransform& x) const + { + NV_ASSERT(x.isSane()); + return transform(x); + } + + //! Equals matrix multiplication + NV_CUDA_CALLABLE NV_INLINE NvTransform& operator*=(NvTransform& other) + { + *this = *this * other; + return *this; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform getInverse() const + { + NV_ASSERT(isFinite()); + return NvTransform(q.rotateInv(-p), q.getConjugate()); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 transform(const NvVec3& input) const + { + NV_ASSERT(isFinite()); + return q.rotate(input) + p; + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 transformInv(const NvVec3& input) const + { + NV_ASSERT(isFinite()); + return q.rotateInv(input - p); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 rotate(const NvVec3& input) const + { + NV_ASSERT(isFinite()); + return q.rotate(input); + } + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 rotateInv(const NvVec3& input) const + { + NV_ASSERT(isFinite()); + return q.rotateInv(input); + } + + //! Transform transform to parent (returns compound transform: first src, then *this) + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform transform(const NvTransform& src) const + { + NV_ASSERT(src.isSane()); + NV_ASSERT(isSane()); + // src = [srct, srcr] -> [r*srct + t, r*srcr] + return NvTransform(q.rotate(src.p) + p, q * src.q); + } + + /** + \brief returns true if finite and q is a unit quaternion + */ + + NV_CUDA_CALLABLE bool isValid() const + { + return p.isFinite() && q.isFinite() && q.isUnit(); + } + + /** + \brief returns true if finite and quat magnitude is reasonably close to unit to allow for some accumulation of error + vs isValid + */ + + NV_CUDA_CALLABLE bool isSane() const + { + return isFinite() && q.isSane(); + } + + /** + \brief returns true if all elems are finite (not NAN or INF, etc.) + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite() const + { + return p.isFinite() && q.isFinite(); + } + + //! Transform transform from parent (returns compound transform: first src, then this->inverse) + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform transformInv(const NvTransform& src) const + { + NV_ASSERT(src.isSane()); + NV_ASSERT(isFinite()); + // src = [srct, srcr] -> [r^-1*(srct-t), r^-1*srcr] + NvQuat qinv = q.getConjugate(); + return NvTransform(qinv.rotate(src.p - p), qinv * src.q); + } + + /** + \brief transform plane + */ + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane transform(const NvPlane& plane) const + { + NvVec3 transformedNormal = rotate(plane.n); + return NvPlane(transformedNormal, plane.d - p.dot(transformedNormal)); + } + + /** + \brief inverse-transform plane + */ + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvPlane inverseTransform(const NvPlane& plane) const + { + NvVec3 transformedNormal = rotateInv(plane.n); + return NvPlane(transformedNormal, plane.d + p.dot(plane.n)); + } + + /** + \brief return a normalized transform (i.e. one in which the quaternion has unit magnitude) + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvTransform getNormalized() const + { + return NvTransform(p, q.getNormalized()); + } +}; + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVTRANSFORM_H diff --git a/blast/include/shared/NvFoundation/NvVec2.h b/blast/include/shared/NvFoundation/NvVec2.h new file mode 100644 index 000000000..966a240c8 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvVec2.h @@ -0,0 +1,346 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVVEC2_H +#define NV_NVFOUNDATION_NVVEC2_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvMath.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief 2 Element vector class. + +This is a 2-dimensional vector class with public data members. +*/ +class NvVec2 +{ + public: + /** + \brief default constructor leaves data uninitialized. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2() + { + } + + /** + \brief zero constructor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2(NvZERO r) : x(0.0f), y(0.0f) + { + NV_UNUSED(r); + } + + /** + \brief Assigns scalar parameter to all elements. + + Useful to initialize to zero or one. + + \param[in] a Value to assign to elements. + */ + explicit NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2(float a) : x(a), y(a) + { + } + + /** + \brief Initializes from 2 scalar parameters. + + \param[in] nx Value to initialize X component. + \param[in] ny Value to initialize Y component. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2(float nx, float ny) : x(nx), y(ny) + { + } + + /** + \brief Copy ctor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2(const NvVec2& v) : x(v.x), y(v.y) + { + } + + // Operators + + /** + \brief Assignment operator + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2& operator=(const NvVec2& p) + { + x = p.x; + y = p.y; + return *this; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float& operator[](int index) + { + NV_ASSERT(index >= 0 && index <= 1); + + return reinterpret_cast(this)[index]; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE const float& operator[](int index) const + { + NV_ASSERT(index >= 0 && index <= 1); + + return reinterpret_cast(this)[index]; + } + + /** + \brief returns true if the two vectors are exactly equal. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool operator==(const NvVec2& v) const + { + return x == v.x && y == v.y; + } + + /** + \brief returns true if the two vectors are not exactly equal. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool operator!=(const NvVec2& v) const + { + return x != v.x || y != v.y; + } + + /** + \brief tests for exact zero vector + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isZero() const + { + return x == 0.0f && y == 0.0f; + } + + /** + \brief returns true if all 2 elems of the vector are finite (not NAN or INF, etc.) + */ + NV_CUDA_CALLABLE NV_INLINE bool isFinite() const + { + return NvIsFinite(x) && NvIsFinite(y); + } + + /** + \brief is normalized - used by API parameter validation + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isNormalized() const + { + const float unitTolerance = 1e-4f; + return isFinite() && NvAbs(magnitude() - 1) < unitTolerance; + } + + /** + \brief returns the squared magnitude + + Avoids calling NvSqrt()! + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float magnitudeSquared() const + { + return x * x + y * y; + } + + /** + \brief returns the magnitude + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float magnitude() const + { + return NvSqrt(magnitudeSquared()); + } + + /** + \brief negation + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 operator-() const + { + return NvVec2(-x, -y); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 operator+(const NvVec2& v) const + { + return NvVec2(x + v.x, y + v.y); + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 operator-(const NvVec2& v) const + { + return NvVec2(x - v.x, y - v.y); + } + + /** + \brief scalar post-multiplication + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 operator*(float f) const + { + return NvVec2(x * f, y * f); + } + + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 operator/(float f) const + { + f = 1.0f / f; // PT: inconsistent notation with operator /= + return NvVec2(x * f, y * f); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2& operator+=(const NvVec2& v) + { + x += v.x; + y += v.y; + return *this; + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2& operator-=(const NvVec2& v) + { + x -= v.x; + y -= v.y; + return *this; + } + + /** + \brief scalar multiplication + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2& operator*=(float f) + { + x *= f; + y *= f; + return *this; + } + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2& operator/=(float f) + { + f = 1.0f / f; // PT: inconsistent notation with operator / + x *= f; + y *= f; + return *this; + } + + /** + \brief returns the scalar product of this and other. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float dot(const NvVec2& v) const + { + return x * v.x + y * v.y; + } + + /** return a unit vector */ + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 getNormalized() const + { + const float m = magnitudeSquared(); + return m > 0.0f ? *this * NvRecipSqrt(m) : NvVec2(0, 0); + } + + /** + \brief normalizes the vector in place + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float normalize() + { + const float m = magnitude(); + if(m > 0.0f) + *this /= m; + return m; + } + + /** + \brief a[i] * b[i], for all i. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 multiply(const NvVec2& a) const + { + return NvVec2(x * a.x, y * a.y); + } + + /** + \brief element-wise minimum + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 minimum(const NvVec2& v) const + { + return NvVec2(NvMin(x, v.x), NvMin(y, v.y)); + } + + /** + \brief returns MIN(x, y); + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float minElement() const + { + return NvMin(x, y); + } + + /** + \brief element-wise maximum + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec2 maximum(const NvVec2& v) const + { + return NvVec2(NvMax(x, v.x), NvMax(y, v.y)); + } + + /** + \brief returns MAX(x, y); + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float maxElement() const + { + return NvMax(x, y); + } + + float x, y; +}; + +NV_CUDA_CALLABLE static NV_FORCE_INLINE NvVec2 operator*(float f, const NvVec2& v) +{ + return NvVec2(f * v.x, f * v.y); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVVEC2_H diff --git a/blast/include/shared/NvFoundation/NvVec3.h b/blast/include/shared/NvFoundation/NvVec3.h new file mode 100644 index 000000000..84240e10d --- /dev/null +++ b/blast/include/shared/NvFoundation/NvVec3.h @@ -0,0 +1,392 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVVEC3_H +#define NV_NVFOUNDATION_NVVEC3_H + +/** \addtogroup foundation +@{ +*/ + +#include "NvMath.h" + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +/** +\brief 3 Element vector class. + +This is a 3-dimensional vector class with public data members. +*/ +class NvVec3 +{ + public: + /** + \brief default constructor leaves data uninitialized. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3() + { + } + + /** + \brief zero constructor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3(NvZERO r) : x(0.0f), y(0.0f), z(0.0f) + { + NV_UNUSED(r); + } + + /** + \brief Assigns scalar parameter to all elements. + + Useful to initialize to zero or one. + + \param[in] a Value to assign to elements. + */ + explicit NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3(float a) : x(a), y(a), z(a) + { + } + + /** + \brief Initializes from 3 scalar parameters. + + \param[in] nx Value to initialize X component. + \param[in] ny Value to initialize Y component. + \param[in] nz Value to initialize Z component. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3(float nx, float ny, float nz) : x(nx), y(ny), z(nz) + { + } + + /** + \brief Copy ctor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3(const NvVec3& v) : x(v.x), y(v.y), z(v.z) + { + } + + // Operators + + /** + \brief Assignment operator + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator=(const NvVec3& p) + { + x = p.x; + y = p.y; + z = p.z; + return *this; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE float& operator[](unsigned int index) + { + NV_ASSERT(index <= 2); + + return reinterpret_cast(this)[index]; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_FORCE_INLINE const float& operator[](unsigned int index) const + { + NV_ASSERT(index <= 2); + + return reinterpret_cast(this)[index]; + } + /** + \brief returns true if the two vectors are exactly equal. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool operator==(const NvVec3& v) const + { + return x == v.x && y == v.y && z == v.z; + } + + /** + \brief returns true if the two vectors are not exactly equal. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool operator!=(const NvVec3& v) const + { + return x != v.x || y != v.y || z != v.z; + } + + /** + \brief tests for exact zero vector + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isZero() const + { + return x == 0.0f && y == 0.0f && z == 0.0f; + } + + /** + \brief returns true if all 3 elems of the vector are finite (not NAN or INF, etc.) + */ + NV_CUDA_CALLABLE NV_INLINE bool isFinite() const + { + return NvIsFinite(x) && NvIsFinite(y) && NvIsFinite(z); + } + + /** + \brief is normalized - used by API parameter validation + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE bool isNormalized() const + { + const float unitTolerance = 1e-4f; + return isFinite() && NvAbs(magnitude() - 1) < unitTolerance; + } + + /** + \brief returns the squared magnitude + + Avoids calling NvSqrt()! + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float magnitudeSquared() const + { + return x * x + y * y + z * z; + } + + /** + \brief returns the magnitude + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float magnitude() const + { + return NvSqrt(magnitudeSquared()); + } + + /** + \brief negation + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 operator-() const + { + return NvVec3(-x, -y, -z); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 operator+(const NvVec3& v) const + { + return NvVec3(x + v.x, y + v.y, z + v.z); + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 operator-(const NvVec3& v) const + { + return NvVec3(x - v.x, y - v.y, z - v.z); + } + + /** + \brief scalar post-multiplication + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 operator*(float f) const + { + return NvVec3(x * f, y * f, z * f); + } + + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 operator/(float f) const + { + f = 1.0f / f; + return NvVec3(x * f, y * f, z * f); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator+=(const NvVec3& v) + { + x += v.x; + y += v.y; + z += v.z; + return *this; + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator-=(const NvVec3& v) + { + x -= v.x; + y -= v.y; + z -= v.z; + return *this; + } + + /** + \brief scalar multiplication + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator*=(float f) + { + x *= f; + y *= f; + z *= f; + return *this; + } + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3& operator/=(float f) + { + f = 1.0f / f; + x *= f; + y *= f; + z *= f; + return *this; + } + + /** + \brief returns the scalar product of this and other. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float dot(const NvVec3& v) const + { + return x * v.x + y * v.y + z * v.z; + } + + /** + \brief cross product + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 cross(const NvVec3& v) const + { + return NvVec3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x); + } + + /** return a unit vector */ + + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 getNormalized() const + { + const float m = magnitudeSquared(); + return m > 0.0f ? *this * NvRecipSqrt(m) : NvVec3(0, 0, 0); + } + + /** + \brief normalizes the vector in place + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float normalize() + { + const float m = magnitude(); + if(m > 0.0f) + *this /= m; + return m; + } + + /** + \brief normalizes the vector in place. Does nothing if vector magnitude is under NV_NORMALIZATION_EPSILON. + Returns vector magnitude if >= NV_NORMALIZATION_EPSILON and 0.0f otherwise. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float normalizeSafe() + { + const float mag = magnitude(); + if(mag < NV_NORMALIZATION_EPSILON) + return 0.0f; + *this *= 1.0f / mag; + return mag; + } + + /** + \brief normalizes the vector in place. Asserts if vector magnitude is under NV_NORMALIZATION_EPSILON. + returns vector magnitude. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float normalizeFast() + { + const float mag = magnitude(); + NV_ASSERT(mag >= NV_NORMALIZATION_EPSILON); + *this *= 1.0f / mag; + return mag; + } + + /** + \brief a[i] * b[i], for all i. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 multiply(const NvVec3& a) const + { + return NvVec3(x * a.x, y * a.y, z * a.z); + } + + /** + \brief element-wise minimum + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 minimum(const NvVec3& v) const + { + return NvVec3(NvMin(x, v.x), NvMin(y, v.y), NvMin(z, v.z)); + } + + /** + \brief returns MIN(x, y, z); + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float minElement() const + { + return NvMin(x, NvMin(y, z)); + } + + /** + \brief element-wise maximum + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 maximum(const NvVec3& v) const + { + return NvVec3(NvMax(x, v.x), NvMax(y, v.y), NvMax(z, v.z)); + } + + /** + \brief returns MAX(x, y, z); + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE float maxElement() const + { + return NvMax(x, NvMax(y, z)); + } + + /** + \brief returns absolute values of components; + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec3 abs() const + { + return NvVec3(NvAbs(x), NvAbs(y), NvAbs(z)); + } + + float x, y, z; +}; + +NV_CUDA_CALLABLE static NV_FORCE_INLINE NvVec3 operator*(float f, const NvVec3& v) +{ + return NvVec3(f * v.x, f * v.y, f * v.z); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVVEC3_H diff --git a/blast/include/shared/NvFoundation/NvVec4.h b/blast/include/shared/NvFoundation/NvVec4.h new file mode 100644 index 000000000..d216bfc85 --- /dev/null +++ b/blast/include/shared/NvFoundation/NvVec4.h @@ -0,0 +1,375 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NVFOUNDATION_NVVEC4_H +#define NV_NVFOUNDATION_NVVEC4_H +/** \addtogroup foundation +@{ +*/ +#include "NvMath.h" +#include "NvVec3.h" +#include "NvAssert.h" + +/** +\brief 4 Element vector class. + +This is a 4-dimensional vector class with public data members. +*/ +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +class NvVec4 +{ + public: + /** + \brief default constructor leaves data uninitialized. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4() + { + } + + /** + \brief zero constructor. + */ + NV_CUDA_CALLABLE NV_FORCE_INLINE NvVec4(NvZERO r) : x(0.0f), y(0.0f), z(0.0f), w(0.0f) + { + NV_UNUSED(r); + } + + /** + \brief Assigns scalar parameter to all elements. + + Useful to initialize to zero or one. + + \param[in] a Value to assign to elements. + */ + explicit NV_CUDA_CALLABLE NV_INLINE NvVec4(float a) : x(a), y(a), z(a), w(a) + { + } + + /** + \brief Initializes from 3 scalar parameters. + + \param[in] nx Value to initialize X component. + \param[in] ny Value to initialize Y component. + \param[in] nz Value to initialize Z component. + \param[in] nw Value to initialize W component. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4(float nx, float ny, float nz, float nw) : x(nx), y(ny), z(nz), w(nw) + { + } + + /** + \brief Initializes from 3 scalar parameters. + + \param[in] v Value to initialize the X, Y, and Z components. + \param[in] nw Value to initialize W component. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4(const NvVec3& v, float nw) : x(v.x), y(v.y), z(v.z), w(nw) + { + } + + /** + \brief Initializes from an array of scalar parameters. + + \param[in] v Value to initialize with. + */ + explicit NV_CUDA_CALLABLE NV_INLINE NvVec4(const float v[]) : x(v[0]), y(v[1]), z(v[2]), w(v[3]) + { + } + + /** + \brief Copy ctor. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4(const NvVec4& v) : x(v.x), y(v.y), z(v.z), w(v.w) + { + } + + // Operators + + /** + \brief Assignment operator + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4& operator=(const NvVec4& p) + { + x = p.x; + y = p.y; + z = p.z; + w = p.w; + return *this; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_INLINE float& operator[](unsigned int index) + { + NV_ASSERT(index <= 3); + + return reinterpret_cast(this)[index]; + } + + /** + \brief element access + */ + NV_DEPRECATED NV_CUDA_CALLABLE NV_INLINE const float& operator[](unsigned int index) const + { + NV_ASSERT(index <= 3); + + return reinterpret_cast(this)[index]; + } + + /** + \brief returns true if the two vectors are exactly equal. + */ + NV_CUDA_CALLABLE NV_INLINE bool operator==(const NvVec4& v) const + { + return x == v.x && y == v.y && z == v.z && w == v.w; + } + + /** + \brief returns true if the two vectors are not exactly equal. + */ + NV_CUDA_CALLABLE NV_INLINE bool operator!=(const NvVec4& v) const + { + return x != v.x || y != v.y || z != v.z || w != v.w; + } + + /** + \brief tests for exact zero vector + */ + NV_CUDA_CALLABLE NV_INLINE bool isZero() const + { + return x == 0 && y == 0 && z == 0 && w == 0; + } + + /** + \brief returns true if all 3 elems of the vector are finite (not NAN or INF, etc.) + */ + NV_CUDA_CALLABLE NV_INLINE bool isFinite() const + { + return NvIsFinite(x) && NvIsFinite(y) && NvIsFinite(z) && NvIsFinite(w); + } + + /** + \brief is normalized - used by API parameter validation + */ + NV_CUDA_CALLABLE NV_INLINE bool isNormalized() const + { + const float unitTolerance = 1e-4f; + return isFinite() && NvAbs(magnitude() - 1) < unitTolerance; + } + + /** + \brief returns the squared magnitude + + Avoids calling NvSqrt()! + */ + NV_CUDA_CALLABLE NV_INLINE float magnitudeSquared() const + { + return x * x + y * y + z * z + w * w; + } + + /** + \brief returns the magnitude + */ + NV_CUDA_CALLABLE NV_INLINE float magnitude() const + { + return NvSqrt(magnitudeSquared()); + } + + /** + \brief negation + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 operator-() const + { + return NvVec4(-x, -y, -z, -w); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 operator+(const NvVec4& v) const + { + return NvVec4(x + v.x, y + v.y, z + v.z, w + v.w); + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 operator-(const NvVec4& v) const + { + return NvVec4(x - v.x, y - v.y, z - v.z, w - v.w); + } + + /** + \brief scalar post-multiplication + */ + + NV_CUDA_CALLABLE NV_INLINE NvVec4 operator*(float f) const + { + return NvVec4(x * f, y * f, z * f, w * f); + } + + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 operator/(float f) const + { + f = 1.0f / f; + return NvVec4(x * f, y * f, z * f, w * f); + } + + /** + \brief vector addition + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4& operator+=(const NvVec4& v) + { + x += v.x; + y += v.y; + z += v.z; + w += v.w; + return *this; + } + + /** + \brief vector difference + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4& operator-=(const NvVec4& v) + { + x -= v.x; + y -= v.y; + z -= v.z; + w -= v.w; + return *this; + } + + /** + \brief scalar multiplication + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4& operator*=(float f) + { + x *= f; + y *= f; + z *= f; + w *= f; + return *this; + } + /** + \brief scalar division + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4& operator/=(float f) + { + f = 1.0f / f; + x *= f; + y *= f; + z *= f; + w *= f; + return *this; + } + + /** + \brief returns the scalar product of this and other. + */ + NV_CUDA_CALLABLE NV_INLINE float dot(const NvVec4& v) const + { + return x * v.x + y * v.y + z * v.z + w * v.w; + } + + /** return a unit vector */ + + NV_CUDA_CALLABLE NV_INLINE NvVec4 getNormalized() const + { + float m = magnitudeSquared(); + return m > 0.0f ? *this * NvRecipSqrt(m) : NvVec4(0, 0, 0, 0); + } + + /** + \brief normalizes the vector in place + */ + NV_CUDA_CALLABLE NV_INLINE float normalize() + { + float m = magnitude(); + if(m > 0.0f) + *this /= m; + return m; + } + + /** + \brief a[i] * b[i], for all i. + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 multiply(const NvVec4& a) const + { + return NvVec4(x * a.x, y * a.y, z * a.z, w * a.w); + } + + /** + \brief element-wise minimum + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 minimum(const NvVec4& v) const + { + return NvVec4(NvMin(x, v.x), NvMin(y, v.y), NvMin(z, v.z), NvMin(w, v.w)); + } + + /** + \brief element-wise maximum + */ + NV_CUDA_CALLABLE NV_INLINE NvVec4 maximum(const NvVec4& v) const + { + return NvVec4(NvMax(x, v.x), NvMax(y, v.y), NvMax(z, v.z), NvMax(w, v.w)); + } + + NV_CUDA_CALLABLE NV_INLINE NvVec3 getXYZ() const + { + return NvVec3(x, y, z); + } + + /** + \brief set vector elements to zero + */ + NV_CUDA_CALLABLE NV_INLINE void setZero() + { + x = y = z = w = 0.0f; + } + + float x, y, z, w; +}; + +NV_CUDA_CALLABLE static NV_INLINE NvVec4 operator*(float f, const NvVec4& v) +{ + return NvVec4(f * v.x, f * v.y, f * v.z, f * v.w); +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ +#endif // #ifndef NV_NVFOUNDATION_NVVEC4_H diff --git a/blast/include/shared/NvFoundation/platform/unix/NvUnixIntrinsics.h b/blast/include/shared/NvFoundation/platform/unix/NvUnixIntrinsics.h new file mode 100644 index 000000000..73f874572 --- /dev/null +++ b/blast/include/shared/NvFoundation/platform/unix/NvUnixIntrinsics.h @@ -0,0 +1,173 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_UNIX_NVUNIXINTRINSICS_H +#define NV_UNIX_NVUNIXINTRINSICS_H + +#include "Nv.h" +#include "NvAssert.h" + +#if !(NV_LINUX || NV_ANDROID || NV_PS4 || NV_APPLE_FAMILY) +#error "This file should only be included by Unix builds!!" +#endif + +#include +#include + +namespace nvidia +{ +namespace intrinsics +{ +//! \brief platform-specific absolute value +NV_CUDA_CALLABLE NV_FORCE_INLINE float abs(float a) +{ + return ::fabsf(a); +} + +//! \brief platform-specific select float +NV_CUDA_CALLABLE NV_FORCE_INLINE float fsel(float a, float b, float c) +{ + return (a >= 0.0f) ? b : c; +} + +//! \brief platform-specific sign +NV_CUDA_CALLABLE NV_FORCE_INLINE float sign(float a) +{ + return (a >= 0.0f) ? 1.0f : -1.0f; +} + +//! \brief platform-specific reciprocal +NV_CUDA_CALLABLE NV_FORCE_INLINE float recip(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific reciprocal estimate +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipFast(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float sqrt(float a) +{ + return ::sqrtf(a); +} + +//! \brief platform-specific reciprocal square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrt(float a) +{ + return 1.0f / ::sqrtf(a); +} + +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrtFast(float a) +{ + return 1.0f / ::sqrtf(a); +} + +//! \brief platform-specific sine +NV_CUDA_CALLABLE NV_FORCE_INLINE float sin(float a) +{ + return ::sinf(a); +} + +//! \brief platform-specific cosine +NV_CUDA_CALLABLE NV_FORCE_INLINE float cos(float a) +{ + return ::cosf(a); +} + +//! \brief platform-specific minimum +NV_CUDA_CALLABLE NV_FORCE_INLINE float selectMin(float a, float b) +{ + return a < b ? a : b; +} + +//! \brief platform-specific maximum +NV_CUDA_CALLABLE NV_FORCE_INLINE float selectMax(float a, float b) +{ + return a > b ? a : b; +} + +//! \brief platform-specific finiteness check (not INF or NAN) +NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite(float a) +{ + return !!isfinite(a); +} + +//! \brief platform-specific finiteness check (not INF or NAN) +NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite(double a) +{ + return !!isfinite(a); +} + +/*! +Sets \c count bytes starting at \c dst to zero. +*/ +NV_FORCE_INLINE void* memZero(void* NV_RESTRICT dest, uint32_t count) +{ + return memset(dest, 0, count); +} + +/*! +Sets \c count bytes starting at \c dst to \c c. +*/ +NV_FORCE_INLINE void* memSet(void* NV_RESTRICT dest, int32_t c, uint32_t count) +{ + return memset(dest, c, count); +} + +/*! +Copies \c count bytes from \c src to \c dst. User memMove if regions overlap. +*/ +NV_FORCE_INLINE void* memCopy(void* NV_RESTRICT dest, const void* NV_RESTRICT src, uint32_t count) +{ + return memcpy(dest, src, count); +} + +/*! +Copies \c count bytes from \c src to \c dst. Supports overlapping regions. +*/ +NV_FORCE_INLINE void* memMove(void* NV_RESTRICT dest, const void* NV_RESTRICT src, uint32_t count) +{ + return memmove(dest, src, count); +} + +/*! +Set 128B to zero starting at \c dst+offset. Must be aligned. +*/ +NV_FORCE_INLINE void memZero128(void* NV_RESTRICT dest, uint32_t offset = 0) +{ + NV_ASSERT(((size_t(dest) + offset) & 0x7f) == 0); + memSet(reinterpret_cast(dest) + offset, 0, 128); +} + +} // namespace intrinsics +} // namespace nvidia + +#endif // #ifndef NV_UNIX_NVUNIXINTRINSICS_H diff --git a/blast/include/shared/NvFoundation/platform/windows/NvWindowsIntrinsics.h b/blast/include/shared/NvFoundation/platform/windows/NvWindowsIntrinsics.h new file mode 100644 index 000000000..e5a9016b5 --- /dev/null +++ b/blast/include/shared/NvFoundation/platform/windows/NvWindowsIntrinsics.h @@ -0,0 +1,187 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_WINDOWS_NVWINDOWSINTRINSICS_H +#define NV_WINDOWS_NVWINDOWSINTRINSICS_H + +#include "Nv.h" +#include "NvAssert.h" + +#if !NV_WINDOWS_FAMILY +#error "This file should only be included by Windows or WIN8ARM builds!!" +#endif + +#include +#include + +#if !NV_DOXYGEN +namespace nvidia +{ +namespace intrinsics +{ +#endif + +//! \brief platform-specific absolute value +NV_CUDA_CALLABLE NV_FORCE_INLINE float abs(float a) +{ + return ::fabsf(a); +} + +//! \brief platform-specific select float +NV_CUDA_CALLABLE NV_FORCE_INLINE float fsel(float a, float b, float c) +{ + return (a >= 0.0f) ? b : c; +} + +//! \brief platform-specific sign +NV_CUDA_CALLABLE NV_FORCE_INLINE float sign(float a) +{ + return (a >= 0.0f) ? 1.0f : -1.0f; +} + +//! \brief platform-specific reciprocal +NV_CUDA_CALLABLE NV_FORCE_INLINE float recip(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific reciprocal estimate +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipFast(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float sqrt(float a) +{ + return ::sqrtf(a); +} + +//! \brief platform-specific reciprocal square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrt(float a) +{ + return 1.0f / ::sqrtf(a); +} + +//! \brief platform-specific reciprocal square root estimate +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrtFast(float a) +{ + return 1.0f / ::sqrtf(a); +} + +//! \brief platform-specific sine +NV_CUDA_CALLABLE NV_FORCE_INLINE float sin(float a) +{ + return ::sinf(a); +} + +//! \brief platform-specific cosine +NV_CUDA_CALLABLE NV_FORCE_INLINE float cos(float a) +{ + return ::cosf(a); +} + +//! \brief platform-specific minimum +NV_CUDA_CALLABLE NV_FORCE_INLINE float selectMin(float a, float b) +{ + return a < b ? a : b; +} + +//! \brief platform-specific maximum +NV_CUDA_CALLABLE NV_FORCE_INLINE float selectMax(float a, float b) +{ + return a > b ? a : b; +} + +//! \brief platform-specific finiteness check (not INF or NAN) +NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite(float a) +{ +#ifdef __CUDACC__ + return !!isfinite(a); +#else + return (0 == ((_FPCLASS_SNAN | _FPCLASS_QNAN | _FPCLASS_NINF | _FPCLASS_PINF) & _fpclass(a))); +#endif +} + +//! \brief platform-specific finiteness check (not INF or NAN) +NV_CUDA_CALLABLE NV_FORCE_INLINE bool isFinite(double a) +{ +#ifdef __CUDACC__ + return !!isfinite(a); +#else + return (0 == ((_FPCLASS_SNAN | _FPCLASS_QNAN | _FPCLASS_NINF | _FPCLASS_PINF) & _fpclass(a))); +#endif +} + +/*! +Sets \c count bytes starting at \c dst to zero. +*/ +NV_FORCE_INLINE void* memZero(void* NV_RESTRICT dest, uint32_t count) +{ + return memset(dest, 0, count); +} + +/*! +Sets \c count bytes starting at \c dst to \c c. +*/ +NV_FORCE_INLINE void* memSet(void* NV_RESTRICT dest, int32_t c, uint32_t count) +{ + return memset(dest, c, count); +} + +/*! +Copies \c count bytes from \c src to \c dst. User memMove if regions overlap. +*/ +NV_FORCE_INLINE void* memCopy(void* NV_RESTRICT dest, const void* NV_RESTRICT src, uint32_t count) +{ + return memcpy(dest, src, count); +} + +/*! +Copies \c count bytes from \c src to \c dst. Supports overlapping regions. +*/ +NV_FORCE_INLINE void* memMove(void* NV_RESTRICT dest, const void* NV_RESTRICT src, uint32_t count) +{ + return memmove(dest, src, count); +} + +/*! +Set 128B to zero starting at \c dst+offset. Must be aligned. +*/ +NV_FORCE_INLINE void memZero128(void* NV_RESTRICT dest, uint32_t offset = 0) +{ + NV_ASSERT(((size_t(dest) + offset) & 0x7f) == 0); + memSet((char * NV_RESTRICT)dest + offset, 0, 128); +} + +#if !NV_DOXYGEN +} // namespace intrinsics +} // namespace nvidia +#endif + +#endif // #ifndef NV_WINDOWS_NVWINDOWSINTRINSICS_H diff --git a/blast/include/toolkit/NvBlastTk.h b/blast/include/toolkit/NvBlastTk.h index 5c1324820..95e638f80 100644 --- a/blast/include/toolkit/NvBlastTk.h +++ b/blast/include/toolkit/NvBlastTk.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkActor.h b/blast/include/toolkit/NvBlastTkActor.h index 4301657f9..3439827ac 100644 --- a/blast/include/toolkit/NvBlastTkActor.h +++ b/blast/include/toolkit/NvBlastTkActor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkAsset.h b/blast/include/toolkit/NvBlastTkAsset.h index 954e13885..f7fe5e4b8 100644 --- a/blast/include/toolkit/NvBlastTkAsset.h +++ b/blast/include/toolkit/NvBlastTkAsset.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -33,7 +33,7 @@ #include "NvBlastTkIdentifiable.h" #include "NvBlastTypes.h" -#include "foundation/PxVec3.h" +#include "NvVec3.h" // Forward declarations struct NvBlastAsset; @@ -50,7 +50,7 @@ A descriptor stored by a TkAsset for an internal joint. Internal joints are cre struct TkAssetJointDesc { uint32_t nodeIndices[2]; //!< The graph node indices corresponding to the support chunks joined by a joint - physx::PxVec3 attachPositions[2]; //!< The joint's attachment positions in asset-local space + nvidia::NvVec3 attachPositions[2]; //!< The joint's attachment positions in asset-local space }; diff --git a/blast/include/toolkit/NvBlastTkEvent.h b/blast/include/toolkit/NvBlastTkEvent.h index 63d249034..56e3d3041 100644 --- a/blast/include/toolkit/NvBlastTkEvent.h +++ b/blast/include/toolkit/NvBlastTkEvent.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkFamily.h b/blast/include/toolkit/NvBlastTkFamily.h index e116a7bfa..17498d7f3 100644 --- a/blast/include/toolkit/NvBlastTkFamily.h +++ b/blast/include/toolkit/NvBlastTkFamily.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkFramework.h b/blast/include/toolkit/NvBlastTkFramework.h index 4c3ee9e0f..226970fca 100644 --- a/blast/include/toolkit/NvBlastTkFramework.h +++ b/blast/include/toolkit/NvBlastTkFramework.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -35,17 +35,10 @@ #include "NvBlastTkType.h" #include "NvBlastTkEvent.h" -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #include "NvBlastTypes.h" -#include "foundation/PxVec3.h" - - -// Forward declarations -namespace physx -{ -class PxTransform; -} +#include "NvVec3.h" namespace Nv @@ -133,7 +126,7 @@ struct TkJointDesc { TkFamily* families[2]; //!< The TkFamily objects containing the chunks joined by the joint uint32_t chunkIndices[2]; //!< The chunk indices within the corresponding TkFamily objects joined by the joint. The indexed chunks will be support chunks. - physx::PxVec3 attachPositions[2]; //!< The position of the joint relative to each TkActor which owns the chunks jointed by this joint + nvidia::NvVec3 attachPositions[2]; //!< The position of the joint relative to each TkActor which owns the chunks jointed by this joint }; @@ -317,7 +310,7 @@ Create a new TkFramework. This creates a global singleton, and will fail if a T \return the new TkFramework if successful, NULL otherwise. */ -NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkCreate(); +NV_C_API Nv::Blast::TkFramework* NvBlastTkFrameworkCreate(); /** @@ -325,7 +318,7 @@ Retrieve a pointer to the global TkFramework singleton (if it exists). \return the pointer to the global TkFramework (NULL if none exists). */ -NVBLAST_API Nv::Blast::TkFramework* NvBlastTkFrameworkGet(); +NV_C_API Nv::Blast::TkFramework* NvBlastTkFrameworkGet(); #endif // ifndef NVBLASTTKFRAMEWORK_H diff --git a/blast/include/toolkit/NvBlastTkGroup.h b/blast/include/toolkit/NvBlastTkGroup.h index 56d4603e5..4bc873471 100644 --- a/blast/include/toolkit/NvBlastTkGroup.h +++ b/blast/include/toolkit/NvBlastTkGroup.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/extensions/physx/NvBlastExtPxTask.h b/blast/include/toolkit/NvBlastTkGroupTaskManager.h similarity index 82% rename from blast/include/extensions/physx/NvBlastExtPxTask.h rename to blast/include/toolkit/NvBlastTkGroupTaskManager.h index a6e2c62da..7061103db 100644 --- a/blast/include/extensions/physx/NvBlastExtPxTask.h +++ b/blast/include/toolkit/NvBlastTkGroupTaskManager.h @@ -22,24 +22,26 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! -//! @brief Defines a task manager API for multithreading ExtPx oerations +//! @brief Defines a task manager API for multithreading Tk operations -#ifndef NVBLASTEXTPXTASK_H -#define NVBLASTEXTPXTASK_H +#ifndef NVBLASTTKGROUPTASKMANAGER_H +#define NVBLASTTKGROUPTASKMANAGER_H #include "NvBlastTypes.h" // Forward declarations -namespace physx +namespace nvidia { -class PxTaskManager; +namespace task +{ +class NvTaskManager; +} } - namespace Nv { @@ -52,18 +54,18 @@ class TkGroup; /** -Uses a physx::PxTaskManager to process a TkGroup concurrently. +Uses a nvidia::task::NvTaskManager to process a TkGroup concurrently. */ -class NV_DLL_EXPORT ExtGroupTaskManager +class NV_DLL_EXPORT TkGroupTaskManager { protected: - virtual ~ExtGroupTaskManager() {} + virtual ~TkGroupTaskManager() {} public: /** - Construct using existing physx::PxTaskManager and TkGroup. The TkGroup can be set later with setGroup(). + Construct using existing nvidia::task::NvTaskManager and TkGroup. The TkGroup can be set later with setGroup(). */ - static ExtGroupTaskManager* create(physx::PxTaskManager&, TkGroup* = nullptr); + static TkGroupTaskManager* create(nvidia::task::NvTaskManager&, TkGroup* = nullptr); /** Set the group to process. Cannot be changed while a group being processed. @@ -105,4 +107,4 @@ class NV_DLL_EXPORT ExtGroupTaskManager } // namespace Blast } // namespace Nv -#endif // NVBLASTEXTPXTASK_H +#endif // NVBLASTTKGROUPTASKMANAGER_H diff --git a/blast/include/toolkit/NvBlastTkIdentifiable.h b/blast/include/toolkit/NvBlastTkIdentifiable.h index 70e978285..684d80a6a 100644 --- a/blast/include/toolkit/NvBlastTkIdentifiable.h +++ b/blast/include/toolkit/NvBlastTkIdentifiable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkJoint.h b/blast/include/toolkit/NvBlastTkJoint.h index 96267f37d..a2e50840b 100644 --- a/blast/include/toolkit/NvBlastTkJoint.h +++ b/blast/include/toolkit/NvBlastTkJoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! @@ -33,7 +33,7 @@ #include "NvBlastTkObject.h" -#include "foundation/PxVec3.h" +#include "NvVec3.h" namespace Nv @@ -48,7 +48,7 @@ struct TkJointData { TkActor* actors[2]; //!< The TkActor objects joined by the joint uint32_t chunkIndices[2]; //!< The chunk indices within the corresponding TkActor objects joined by the joint. The indexed chunks will be support chunks. - physx::PxVec3 attachPositions[2]; //!< The position of the joint relative to each TkActor + nvidia::NvVec3 attachPositions[2]; //!< The position of the joint relative to each TkActor }; diff --git a/blast/include/toolkit/NvBlastTkObject.h b/blast/include/toolkit/NvBlastTkObject.h index 7b8d0e412..5644fcb43 100644 --- a/blast/include/toolkit/NvBlastTkObject.h +++ b/blast/include/toolkit/NvBlastTkObject.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //! @file //! diff --git a/blast/include/toolkit/NvBlastTkType.h b/blast/include/toolkit/NvBlastTkType.h index 07ab32b23..a79c38e64 100644 --- a/blast/include/toolkit/NvBlastTkType.h +++ b/blast/include/toolkit/NvBlastTkType.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKTYPE_H diff --git a/blast/premake5.lua b/blast/premake5.lua index 0f6307480..49422dbcd 100644 --- a/blast/premake5.lua +++ b/blast/premake5.lua @@ -83,6 +83,7 @@ local root = repo_build.get_abs_path(".") repo_build.prebuild_copy { { "include", "_build/%{platform}/%{config}/"..workspace_name.."/include" }, { "source/sdk/common", "_build/%{platform}/%{config}/"..workspace_name.."/source/sdk/common" }, + { "source/shared/NsFoundation", "_build/%{platform}/%{config}/"..workspace_name.."/source/shared/NsFoundation" }, { "PACKAGE-LICENSES", "_build/%{platform}/%{config}/"..workspace_name.."/PACKAGE-LICENSES" } } @@ -357,11 +358,16 @@ end group "sdk" project "NvBlast" blast_sdklib_standard_setup("lowlevel") + includedirs { + "include/shared/NvFoundation", + } project "NvBlastGlobals" blast_sdklib_standard_setup("globals") includedirs { "include/lowlevel", + "source/shared/NsFoundation/include", + "include/shared/NvFoundation", } project "NvBlastExtShaders" @@ -370,9 +376,8 @@ group "sdk" includedirs { "include/lowlevel", "include/globals", - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", } filter { "system:windows" } disablewarnings { @@ -390,6 +395,7 @@ group "sdk" includedirs { "include/lowlevel", "include/globals", + "include/shared/NvFoundation", } project "NvBlastExtAuthoring" @@ -404,9 +410,8 @@ group "sdk" "source/sdk/extensions/authoringCommon", "source/sdk/extensions/authoring/VHACD/inc", "source/sdk/extensions/authoring/VHACD/public", - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", target_deps.."/BoostMultiprecision", } files { @@ -440,9 +445,10 @@ group "sdk" "include/lowlevel", "include/globals", "source/sdk/globals", - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", + "source/shared/NsFileBuffer/include", + "source/shared/NvTask/include", } project "NvBlastExtStress" @@ -454,10 +460,9 @@ group "sdk" includedirs { "include/lowlevel", "include/globals", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", "source/shared/stress_solver", - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", } files { "source/shared/stress_solver/stress.cpp", @@ -490,9 +495,10 @@ group "sdk" "include/globals", "_build/host-deps/CapnProto/src", capnp_gen_path, - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", + "source/shared/NsFileBuffer/include", + "source/shared/NvTask/include", } blast_sdklib_common_files() add_files("source/sdk/extensions/serialization", @@ -540,9 +546,10 @@ group "sdk" "include/globals", "_build/host-deps/CapnProto/src", capnp_gen_path, - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", + "source/shared/NsFileBuffer/include", + "source/shared/NvTask/include", } blast_sdklib_common_files() add_files("source/sdk/extensions/serialization", @@ -557,7 +564,7 @@ group "sdk" { "AssetDTO.cpp", "TkAssetDTO.cpp", - "PxVec3DTO.cpp", + "NvVec3DTO.cpp", "NvBlastChunkDTO.cpp", "NvBlastBondDTO.cpp", "NvBlastIDDTO.cpp", @@ -615,29 +622,23 @@ group "tests" "NvBlastFamily.cpp", }) - add_files("source/shared/utils", { - "AssetGenerator.cpp", + add_files("source/sdk/toolkit", { + "NvBlastTkTaskManager.cpp", }) - add_files("source/sdk/extensions/physx", { -- !!! - "NvBlastExtPxTaskImpl.cpp", + add_files("source/shared/utils", { + "AssetGenerator.cpp", }) - filter { "system:linux" } - add_files("source/shared/task", { - "TaskManager.cpp" - }) - filter {} - includedirs { "include/globals", "include/lowlevel", "include/toolkit", "include/extensions/assetutils", - "include/extensions/physx", -- !!! "include/extensions/shaders", "include/extensions/serialization", "source/sdk/common", + "source/sdk/globals", "source/sdk/lowlevel", "source/sdk/extensions/serialization", "source/test/src", @@ -645,28 +646,25 @@ group "tests" "source/test/src/utils", "source/shared/filebuf/include", "source/shared/utils", - target_deps.."/physxsdk/include", - target_deps.."/physxsdk/source/foundation/include", - target_deps.."/pxshared/include", + "include/shared/NvFoundation", + "source/shared/NsFoundation/include", + "source/shared/NsFileBuffer/include", + "source/shared/NvTask/include", target_deps.."/googletest/include", } filter { "system:windows", "configurations:debug" } - libdirs { target_deps.."/googletest/lib/vc14win64-cmake/Debug", target_deps.."/physxsdk/bin/win.x86_64.vc141.md/debug" } - repo_build.copy_to_targetdir(target_deps.."/physxsdk/bin/win.x86_64.vc141.md/debug/PhysXFoundation_64.dll") + libdirs { target_deps.."/googletest/lib/vc14win64-cmake/Debug" } filter { "system:windows", "configurations:release" } - libdirs { target_deps.."/googletest/lib/vc14win64-cmake/Release", target_deps.."/physxsdk/bin/win.x86_64.vc141.md/release" } - repo_build.copy_to_targetdir(target_deps.."/physxsdk/bin/win.x86_64.vc141.md/release/PhysXFoundation_64.dll") - filter { "system:linux", "configurations:debug" } - libdirs { target_deps.."/googletest/lib/gcc-4.8", target_deps.."/physxsdk/bin/linux.clang/debug" } - filter { "system:linux", "configurations:release" } - libdirs { target_deps.."/googletest/lib/gcc-4.8", target_deps.."/physxsdk/bin/linux.clang/release" } + libdirs { target_deps.."/googletest/lib/vc14win64-cmake/Release" } + filter { "system:linux" } + libdirs { target_deps.."/googletest/lib/gcc-4.8" } filter{} links { "gtest_main", "gtest" } filter { "system:windows" } - links { "PhysXFoundation_64", "PhysXTask_static_64" } + -- links { "PhysXFoundation_64", "PhysXTask_static_64" } disablewarnings { "4002", -- too many actual parameters for macro 'identifier' "4100", -- unreferenced formal parameter @@ -677,7 +675,7 @@ group "tests" "4996", -- code uses a function, class member, variable, or typedef that's marked deprecated } filter { "system:linux"} - links { "PhysXFoundation_static_64" } + -- links { "PhysXFoundation_static_64" } disablewarnings { "undef", "sign-compare" diff --git a/blast/repo.toml b/blast/repo.toml index 741e0134e..d8c5d56e8 100644 --- a/blast/repo.toml +++ b/blast/repo.toml @@ -62,198 +62,3 @@ extra_premake_args = ["--python-version={}"] [repo_format] -# PUBLIC_EXCLUDE_BEGIN -######################################################################################################################## -# Packaging -######################################################################################################################## - -[repo_package.packages.main_package] - -name = "${conf:repo.name}" - -root = "_build/${platform}/${config}/${conf:repo.name}" - -files = [ - ["**/include/**/*.*"], - ["**/source/**/*.*"], - ["**/PACKAGE-LICENSES/*.*"], -] - -files_exclude = [ - ["**/include/extensions/exporter/**"], - ["**/include/extensions/physx/**"], - ["**/include/extensions/serialization/*ExtPx*.*"], -] - -windows-x86_64.files = [ - ["**/bin/NvBlast*.dll"], - ["**/bin/NvBlast*.lib"], -] - -linux-x86_64.files = [ - ["**/bin/*NvBlast*.so"], -] - -windows-x86_64.debug.files = [ - ["**/NvBlast*.pdb"], - ["**/NvBlast*.exp"], -] - -label_name = false - -version = "${env:BUILD_NUMBER}" -package_per_config = true -append_config = true -version_separator = "." - -[repo_package.packages.test_package] - -name = "test-${conf:repo.name}" - -root = "_build/${platform}/${config}/${conf:repo.name}" - -windows-x86_64.files = [ - ["**/bin/PhysX*.dll"], - ["**/bin/*Tests.exe"], -] - -linux-x86_64.files = [ - ["**/bin/*Tests"], -] - -label_name = false - -version = "${env:BUILD_NUMBER}" -create_package_info = false -package_per_config = true -append_config = true -version_separator = "." - -[repo_package.packages."platform:windows-x86_64".docs] -omniverse_flow_version_scheme = true -files = [ - ["_build/docs"] -] - - -######################################################################################################################## -# Build Number -######################################################################################################################## - -[repo_build_number] -enabled = true - - -######################################################################################################################## -# Package publishing to packman -######################################################################################################################## - -[repo_publish] -enabled = true -packages = ["blast-sdk"] -default_remote = "cloudfront" - - -######################################################################################################################## -# Documentation building -######################################################################################################################## - -[repo_docs] -enabled = true - -config = "release" - -doxygen_aliases = [ -] - -repo_url = "https://gitlab-master.nvidia.com/omniverse/blast-sdk" - -project = "${conf:repo.name}" -version = "${file:${root}/VERSION.md}" -name = "blast-sdk" -api_title = "blast-sdk-${file:${root}/VERSION.md}" -copyright_start = 2017 - -sphinx_exclude_patterns = [ - "_build", - "_compiler", - "_repo", - "deps", - "PACKAGE-LICENSES", - "source", - "test", - "tools", - "VERSION.md", - "COVER.md", - "NvPreprocessor.h", -] - -doxygen_input = [ - "include/extensions/assetutils/NvBlastExtAssetUtils.h", - "include/extensions/authoring/NvBlastExtAuthoring.h", - "include/extensions/authoring/NvBlastExtAuthoringBondGenerator.h", - "include/extensions/authoring/NvBlastExtAuthoringBooleanTool.h", - "include/extensions/authoring/NvBlastExtAuthoringCutout.h", - "include/extensions/authoring/NvBlastExtAuthoringFractureTool.h", - "include/extensions/authoring/NvBlastExtAuthoringMeshCleaner.h", - "include/extensions/authoringCommon/NvBlastExtAuthoringAccelerator.h", - "include/extensions/authoringCommon/NvBlastExtAuthoringConvexMeshBuilder.h", - "include/extensions/authoringCommon/NvBlastExtAuthoringMesh.h", - "include/extensions/authoringCommon/NvBlastExtAuthoringPatternGenerator.h", - "include/extensions/authoringCommon/NvBlastExtAuthoringTypes.h", - "include/extensions/exporter/NvBlastExtExporter.h", - "include/extensions/exporter/NvBlastExtExporterJsonCollision.h", - "include/extensions/physx/NvBlastExtPx.h", - "include/extensions/physx/NvBlastExtPxActor.h", - "include/extensions/physx/NvBlastExtPxAsset.h", - "include/extensions/physx/NvBlastExtPxCollisionBuilder.h", - "include/extensions/physx/NvBlastExtPxFamily.h", - "include/extensions/physx/NvBlastExtPxImpactDamageManager.h", - "include/extensions/physx/NvBlastExtPxListener.h", - "include/extensions/physx/NvBlastExtPxManager.h", - "include/extensions/physx/NvBlastExtPxStressSolver.h", - "include/extensions/physx/NvBlastExtPxSync.h", - "include/extensions/physx/NvBlastExtPxTask.h", - "include/extensions/physx/NvBlastPxCallbacks.h", - "include/extensions/RT/NvBlastExtRT.h", - "include/extensions/serialization/NvBlastExtLlSerialization.h", - "include/extensions/serialization/NvBlastExtPxSerialization.h", - "include/extensions/serialization/NvBlastExtSerialization.h", - "include/extensions/serialization/NvBlastExtTkSerialization.h", - "include/extensions/shaders/NvBlastExtDamageShaders.h", - "include/extensions/stress/NvBlastExtStressSolver.h", - "include/globals/NvBlastAllocator.h", - "include/globals/NvBlastDebugRender.h", - "include/globals/NvBlastGlobals.h", - "include/globals/NvBlastProfiler.h", - "include/globals/NvCMath.h", - "include/lowlevel/NvBlast.h", - "include/lowlevel/NvBlastTypes.h", - "include/lowlevel/NvCTypes.h", - "include/lowlevel/NvPreprocessor.h", - "include/toolkit/NvBlastTk.h", - "include/toolkit/NvBlastTkActor.h", - "include/toolkit/NvBlastTkAsset.h", - "include/toolkit/NvBlastTkEvent.h", - "include/toolkit/NvBlastTkFamily.h", - "include/toolkit/NvBlastTkFramework.h", - "include/toolkit/NvBlastTkGroup.h", - "include/toolkit/NvBlastTkIdentifiable.h", - "include/toolkit/NvBlastTkJoint.h", - "include/toolkit/NvBlastTkObject.h", - "include/toolkit/NvBlastTkType.h", -] - -doxygen_predefined = [ - "NVBLAST_API=", - "NV_INLINE=inline", - "NV_COMPILE_TIME_ASSERT(arg)=", -] - - -[repo_docs.editions.s3web] -protocol = "s3" -bucket_name = "omniverse-docs" -bucket_dir = "${project}/${version}" - -# PUBLIC_EXCLUDE_END \ No newline at end of file diff --git a/blast/source/sdk/common/NvBlastArray.h b/blast/source/sdk/common/NvBlastArray.h index b8c5062c5..8866664c3 100644 --- a/blast/source/sdk/common/NvBlastArray.h +++ b/blast/source/sdk/common/NvBlastArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTARRAY_H @@ -30,7 +30,7 @@ #include "NvBlastAllocator.h" -#include "PsInlineArray.h" +#include "NsInlineArray.h" namespace Nv @@ -39,24 +39,24 @@ namespace Blast { /** -Wrapped PxShared Array that uses NvBlastGlobals AllocatorCalllback. +Wrapped NvShared Array that uses NvBlastGlobals AllocatorCallback. */ template struct Array { - typedef physx::shdfnd::Array type; + typedef nvidia::shdfnd::Array type; }; /** -Wrapped PxShared InlineArray that uses NvBlastGlobals AllocatorCalllback. +Wrapped NvShared InlineArray that uses NvBlastGlobals AllocatorCallback. InlineArraya is array that pre-allocates for N elements. */ template struct InlineArray { - typedef physx::shdfnd::InlineArray type; + typedef nvidia::shdfnd::InlineArray type; }; } // namespace Blast diff --git a/blast/source/sdk/common/NvBlastAssert.cpp b/blast/source/sdk/common/NvBlastAssert.cpp index 8a720b362..ecf177d4a 100644 --- a/blast/source/sdk/common/NvBlastAssert.cpp +++ b/blast/source/sdk/common/NvBlastAssert.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAssert.h" diff --git a/blast/source/sdk/common/NvBlastAssert.h b/blast/source/sdk/common/NvBlastAssert.h index 4073ed60d..bf20f0dc3 100644 --- a/blast/source/sdk/common/NvBlastAssert.h +++ b/blast/source/sdk/common/NvBlastAssert.h @@ -22,14 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTASSERT_H #define NVBLASTASSERT_H -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #if !NV_ENABLE_ASSERTS @@ -72,7 +72,7 @@ extern "C" { -NVBLAST_API void NvBlastAssertHandler(const char* expr, const char* file, int line, bool& ignore); +NV_C_API void NvBlastAssertHandler(const char* expr, const char* file, int line, bool& ignore); } // extern "C" diff --git a/blast/source/sdk/common/NvBlastAtomic.cpp b/blast/source/sdk/common/NvBlastAtomic.cpp index 91c7f7523..df206f089 100644 --- a/blast/source/sdk/common/NvBlastAtomic.cpp +++ b/blast/source/sdk/common/NvBlastAtomic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAtomic.h" diff --git a/blast/source/sdk/common/NvBlastAtomic.h b/blast/source/sdk/common/NvBlastAtomic.h index 14d70ebff..8941e7cd5 100644 --- a/blast/source/sdk/common/NvBlastAtomic.h +++ b/blast/source/sdk/common/NvBlastAtomic.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTATOMIC_H diff --git a/blast/source/sdk/common/NvBlastDLink.h b/blast/source/sdk/common/NvBlastDLink.h index a4f03b525..23641499b 100644 --- a/blast/source/sdk/common/NvBlastDLink.h +++ b/blast/source/sdk/common/NvBlastDLink.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTDLINK_H diff --git a/blast/source/sdk/common/NvBlastFixedArray.h b/blast/source/sdk/common/NvBlastFixedArray.h index f656cb039..d185332ea 100644 --- a/blast/source/sdk/common/NvBlastFixedArray.h +++ b/blast/source/sdk/common/NvBlastFixedArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFIXEDARRAY_H diff --git a/blast/source/sdk/common/NvBlastFixedBitmap.h b/blast/source/sdk/common/NvBlastFixedBitmap.h index ddf4b3919..b24f2ac6b 100644 --- a/blast/source/sdk/common/NvBlastFixedBitmap.h +++ b/blast/source/sdk/common/NvBlastFixedBitmap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFIXEDBITMAP_H diff --git a/blast/source/sdk/common/NvBlastFixedBoolArray.h b/blast/source/sdk/common/NvBlastFixedBoolArray.h index 1ec1832d4..c6ecdf34f 100644 --- a/blast/source/sdk/common/NvBlastFixedBoolArray.h +++ b/blast/source/sdk/common/NvBlastFixedBoolArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFIXEDBOOLARRAY_H diff --git a/blast/source/sdk/common/NvBlastFixedPriorityQueue.h b/blast/source/sdk/common/NvBlastFixedPriorityQueue.h index a184472b2..2dc2d3657 100644 --- a/blast/source/sdk/common/NvBlastFixedPriorityQueue.h +++ b/blast/source/sdk/common/NvBlastFixedPriorityQueue.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFIXEDPRIORITYQUEUE_H diff --git a/blast/source/sdk/common/NvBlastFixedQueue.h b/blast/source/sdk/common/NvBlastFixedQueue.h index d4e4232da..d2a03f8c3 100644 --- a/blast/source/sdk/common/NvBlastFixedQueue.h +++ b/blast/source/sdk/common/NvBlastFixedQueue.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFIXEDQUEUE_H diff --git a/blast/source/sdk/common/NvBlastGeometry.h b/blast/source/sdk/common/NvBlastGeometry.h index 51407add0..39ca007a6 100644 --- a/blast/source/sdk/common/NvBlastGeometry.h +++ b/blast/source/sdk/common/NvBlastGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTGEOMETRY_H diff --git a/blast/source/sdk/common/NvBlastHashMap.h b/blast/source/sdk/common/NvBlastHashMap.h index 99629f027..c39f9f3e9 100644 --- a/blast/source/sdk/common/NvBlastHashMap.h +++ b/blast/source/sdk/common/NvBlastHashMap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTHASHMAP_H @@ -30,7 +30,7 @@ #include "NvBlastAllocator.h" -#include "PsHashMap.h" +#include "NsHashMap.h" namespace Nv @@ -39,12 +39,12 @@ namespace Blast { /** -Wrapped PxShared HashMap that uses NvBlastGlobals AllocatorCalllback. +Wrapped NvShared HashMap that uses NvBlastGlobals AllocatorCallback. */ -template > +template > struct HashMap { - typedef physx::shdfnd::HashMap type; + typedef nvidia::shdfnd::HashMap type; }; } // namespace Blast diff --git a/blast/source/sdk/common/NvBlastHashSet.h b/blast/source/sdk/common/NvBlastHashSet.h index c63287ad5..266baeb07 100644 --- a/blast/source/sdk/common/NvBlastHashSet.h +++ b/blast/source/sdk/common/NvBlastHashSet.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTHASHSET_H @@ -30,7 +30,7 @@ #include "NvBlastAllocator.h" -#include "PsHashSet.h" +#include "NsHashSet.h" namespace Nv { @@ -38,12 +38,12 @@ namespace Blast { /** -Wrapped PxShared HashSet that uses NvBlastGlobals AllocatorCalllback. +Wrapped NvShared HashSet that uses NvBlastGlobals AllocatorCallback. */ -template > +template > struct HashSet { - typedef physx::shdfnd::HashSet type; + typedef nvidia::shdfnd::HashSet type; }; } // namespace Blast diff --git a/blast/source/sdk/common/NvBlastIncludeWindows.h b/blast/source/sdk/common/NvBlastIncludeWindows.h index 19041e0a5..6c8639017 100644 --- a/blast/source/sdk/common/NvBlastIncludeWindows.h +++ b/blast/source/sdk/common/NvBlastIncludeWindows.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTINCLUDEWINDOWS_H @@ -30,7 +30,7 @@ #ifndef _WINDOWS_ // windows already included if this is defined -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #ifndef _WIN32 #error "This file should only be included by Windows builds!!" diff --git a/blast/source/sdk/common/NvBlastIndexFns.h b/blast/source/sdk/common/NvBlastIndexFns.h index 8739d4aec..5ef924bc2 100644 --- a/blast/source/sdk/common/NvBlastIndexFns.h +++ b/blast/source/sdk/common/NvBlastIndexFns.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTINDEXFNS_H diff --git a/blast/source/sdk/common/NvBlastIteratorBase.h b/blast/source/sdk/common/NvBlastIteratorBase.h index 278367ce3..5fd742a83 100644 --- a/blast/source/sdk/common/NvBlastIteratorBase.h +++ b/blast/source/sdk/common/NvBlastIteratorBase.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTITERATORBASE_H diff --git a/blast/source/sdk/common/NvBlastMath.h b/blast/source/sdk/common/NvBlastMath.h index 9fd4a01a7..d60b97860 100644 --- a/blast/source/sdk/common/NvBlastMath.h +++ b/blast/source/sdk/common/NvBlastMath.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTMATH_H diff --git a/blast/source/sdk/common/NvBlastMemory.h b/blast/source/sdk/common/NvBlastMemory.h index 4ea626843..b369a8593 100644 --- a/blast/source/sdk/common/NvBlastMemory.h +++ b/blast/source/sdk/common/NvBlastMemory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTMEMORY_H @@ -128,7 +128,4 @@ align16(_lastOffset + _lastSize) #define NvBlastAlloca(x) alloca(x) #endif -#define NvBlastAllocaAligned16(x) (void*)(((uintptr_t)PxAlloca(x + 0xF) + 0xF) & ~(uintptr_t)0xF) - - #endif // #ifndef NVBLASTMEMORY_H diff --git a/blast/source/sdk/common/NvBlastPxSharedHelpers.h b/blast/source/sdk/common/NvBlastNvSharedHelpers.h similarity index 69% rename from blast/source/sdk/common/NvBlastPxSharedHelpers.h rename to blast/source/sdk/common/NvBlastNvSharedHelpers.h index e94475c5e..966e949a2 100644 --- a/blast/source/sdk/common/NvBlastPxSharedHelpers.h +++ b/blast/source/sdk/common/NvBlastNvSharedHelpers.h @@ -22,106 +22,109 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#ifndef NVBLASTPXSHAREDTYPESHELPERS_H -#define NVBLASTPXSHAREDTYPESHELPERS_H +#ifndef NVBLASTNVSHAREDSHELPERS_H +#define NVBLASTNVSHAREDSHELPERS_H #include "NvCTypes.h" -#include -#include -#include -#include -#include -#include -#include -#include + +#include "NvVec2.h" +#include "NvVec3.h" +#include "NvVec4.h" +#include "NvTransform.h" +#include "NvPlane.h" +#include "NvMat33.h" +#include "NvMat44.h" +#include "NvBounds3.h" + +using namespace nvidia; #define WCast(type, name) reinterpret_cast(name) #define RCast(type, name) reinterpret_cast(name) -#define CONVERT(BlastType, PxSharedType) \ - static inline PxSharedType& toPxShared(BlastType& v) \ +#define CONVERT(BlastType, NvSharedType) \ + static inline NvSharedType& toNvShared(BlastType& v) \ { \ - return WCast(PxSharedType&, v); \ + return WCast(NvSharedType&, v); \ } \ - static inline const PxSharedType& toPxShared(const BlastType& v) \ + static inline const NvSharedType& toNvShared(const BlastType& v) \ { \ - return RCast(PxSharedType&, v); \ + return RCast(NvSharedType&, v); \ } \ - static inline const BlastType& fromPxShared(const PxSharedType& v) \ + static inline const BlastType& fromNvShared(const NvSharedType& v) \ { \ return RCast(BlastType&, v); \ } \ - static inline BlastType& fromPxShared(PxSharedType& v) \ + static inline BlastType& fromNvShared(NvSharedType& v) \ { \ return WCast(BlastType&, v); \ } \ - static inline PxSharedType* toPxShared(BlastType* v) \ + static inline NvSharedType* toNvShared(BlastType* v) \ { \ - return WCast(PxSharedType*, v); \ + return WCast(NvSharedType*, v); \ } \ - static inline const PxSharedType* toPxShared(const BlastType* v) \ + static inline const NvSharedType* toNvShared(const BlastType* v) \ { \ - return RCast(PxSharedType*, v); \ + return RCast(NvSharedType*, v); \ } \ - static inline const BlastType* fromPxShared(const PxSharedType* v) \ + static inline const BlastType* fromNvShared(const NvSharedType* v) \ { \ return RCast(BlastType*, v); \ } \ - static inline BlastType* fromPxShared(PxSharedType* v) \ + static inline BlastType* fromNvShared(NvSharedType* v) \ { \ return WCast(BlastType*, v); \ } -CONVERT(NvcVec2, physx::PxVec2) -CONVERT(NvcVec3, physx::PxVec3) -CONVERT(NvcVec4, physx::PxVec4) -CONVERT(NvcQuat, physx::PxQuat) -CONVERT(NvcTransform, physx::PxTransform) -CONVERT(NvcPlane, physx::PxPlane) -CONVERT(NvcMat33, physx::PxMat33) -CONVERT(NvcMat44, physx::PxMat44) -CONVERT(NvcBounds3, physx::PxBounds3) - -NV_COMPILE_TIME_ASSERT(sizeof(NvcVec2) == sizeof(physx::PxVec2)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec2, x) == NV_OFFSET_OF(physx::PxVec2, x)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec2, y) == NV_OFFSET_OF(physx::PxVec2, y)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcVec3) == sizeof(physx::PxVec3)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, x) == NV_OFFSET_OF(physx::PxVec3, x)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, y) == NV_OFFSET_OF(physx::PxVec3, y)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, z) == NV_OFFSET_OF(physx::PxVec3, z)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcVec4) == sizeof(physx::PxVec4)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, x) == NV_OFFSET_OF(physx::PxVec4, x)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, y) == NV_OFFSET_OF(physx::PxVec4, y)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, z) == NV_OFFSET_OF(physx::PxVec4, z)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, w) == NV_OFFSET_OF(physx::PxVec4, w)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcQuat) == sizeof(physx::PxQuat)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, x) == NV_OFFSET_OF(physx::PxQuat, x)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, y) == NV_OFFSET_OF(physx::PxQuat, y)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, z) == NV_OFFSET_OF(physx::PxQuat, z)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, w) == NV_OFFSET_OF(physx::PxQuat, w)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcTransform) == sizeof(physx::PxTransform)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcTransform, p) == NV_OFFSET_OF(physx::PxTransform, p)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcTransform, q) == NV_OFFSET_OF(physx::PxTransform, q)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcPlane) == sizeof(physx::PxPlane)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcPlane, n) == NV_OFFSET_OF(physx::PxPlane, n)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcPlane, d) == NV_OFFSET_OF(physx::PxPlane, d)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcMat33) == sizeof(physx::PxMat33)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column0) == NV_OFFSET_OF(physx::PxMat33, column0)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column1) == NV_OFFSET_OF(physx::PxMat33, column1)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column2) == NV_OFFSET_OF(physx::PxMat33, column2)); - -NV_COMPILE_TIME_ASSERT(sizeof(NvcBounds3) == sizeof(physx::PxBounds3)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcBounds3, minimum) == NV_OFFSET_OF(physx::PxBounds3, minimum)); -NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcBounds3, maximum) == NV_OFFSET_OF(physx::PxBounds3, maximum)); - -#endif // #ifndef NVBLASTPHYSXTYPESHELPERS_H +CONVERT(NvcVec2, nvidia::NvVec2) +CONVERT(NvcVec3, nvidia::NvVec3) +CONVERT(NvcVec4, nvidia::NvVec4) +CONVERT(NvcQuat, nvidia::NvQuat) +CONVERT(NvcTransform, nvidia::NvTransform) +CONVERT(NvcPlane, nvidia::NvPlane) +CONVERT(NvcMat33, nvidia::NvMat33) +CONVERT(NvcMat44, nvidia::NvMat44) +CONVERT(NvcBounds3, nvidia::NvBounds3) + +NV_COMPILE_TIME_ASSERT(sizeof(NvcVec2) == sizeof(nvidia::NvVec2)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec2, x) == NV_OFFSET_OF(nvidia::NvVec2, x)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec2, y) == NV_OFFSET_OF(nvidia::NvVec2, y)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcVec3) == sizeof(nvidia::NvVec3)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, x) == NV_OFFSET_OF(nvidia::NvVec3, x)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, y) == NV_OFFSET_OF(nvidia::NvVec3, y)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec3, z) == NV_OFFSET_OF(nvidia::NvVec3, z)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcVec4) == sizeof(nvidia::NvVec4)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, x) == NV_OFFSET_OF(nvidia::NvVec4, x)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, y) == NV_OFFSET_OF(nvidia::NvVec4, y)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, z) == NV_OFFSET_OF(nvidia::NvVec4, z)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcVec4, w) == NV_OFFSET_OF(nvidia::NvVec4, w)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcQuat) == sizeof(nvidia::NvQuat)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, x) == NV_OFFSET_OF(nvidia::NvQuat, x)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, y) == NV_OFFSET_OF(nvidia::NvQuat, y)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, z) == NV_OFFSET_OF(nvidia::NvQuat, z)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcQuat, w) == NV_OFFSET_OF(nvidia::NvQuat, w)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcTransform) == sizeof(nvidia::NvTransform)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcTransform, p) == NV_OFFSET_OF(nvidia::NvTransform, p)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcTransform, q) == NV_OFFSET_OF(nvidia::NvTransform, q)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcPlane) == sizeof(nvidia::NvPlane)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcPlane, n) == NV_OFFSET_OF(nvidia::NvPlane, n)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcPlane, d) == NV_OFFSET_OF(nvidia::NvPlane, d)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcMat33) == sizeof(nvidia::NvMat33)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column0) == NV_OFFSET_OF(nvidia::NvMat33, column0)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column1) == NV_OFFSET_OF(nvidia::NvMat33, column1)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcMat33, column2) == NV_OFFSET_OF(nvidia::NvMat33, column2)); + +NV_COMPILE_TIME_ASSERT(sizeof(NvcBounds3) == sizeof(nvidia::NvBounds3)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcBounds3, minimum) == NV_OFFSET_OF(nvidia::NvBounds3, minimum)); +NV_COMPILE_TIME_ASSERT(NV_OFFSET_OF(NvcBounds3, maximum) == NV_OFFSET_OF(nvidia::NvBounds3, maximum)); + +#endif // #ifndef NVBLASTNVSHAREDSHELPERS_H diff --git a/blast/source/sdk/common/NvBlastPreprocessorInternal.h b/blast/source/sdk/common/NvBlastPreprocessorInternal.h index 99dbd203a..803a82bdd 100644 --- a/blast/source/sdk/common/NvBlastPreprocessorInternal.h +++ b/blast/source/sdk/common/NvBlastPreprocessorInternal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTPREPROCESSORINTERNAL_H diff --git a/blast/source/sdk/common/NvBlastTime.cpp b/blast/source/sdk/common/NvBlastTime.cpp index 48ab2b817..e0ede6f14 100644 --- a/blast/source/sdk/common/NvBlastTime.cpp +++ b/blast/source/sdk/common/NvBlastTime.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTime.h" diff --git a/blast/source/sdk/common/NvBlastTime.h b/blast/source/sdk/common/NvBlastTime.h index 12af5ac3f..c8a59ace9 100644 --- a/blast/source/sdk/common/NvBlastTime.h +++ b/blast/source/sdk/common/NvBlastTime.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTIME_H diff --git a/blast/source/sdk/common/NvBlastTimers.cpp b/blast/source/sdk/common/NvBlastTimers.cpp index 1bdfc2312..fa1f4153f 100644 --- a/blast/source/sdk/common/NvBlastTimers.cpp +++ b/blast/source/sdk/common/NvBlastTimers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlast.h" diff --git a/blast/source/sdk/common/NvBlastVolumeIntegrals.h b/blast/source/sdk/common/NvBlastVolumeIntegrals.h index ec9c04732..d3a812fcd 100644 --- a/blast/source/sdk/common/NvBlastVolumeIntegrals.h +++ b/blast/source/sdk/common/NvBlastVolumeIntegrals.h @@ -22,13 +22,13 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTVOLUMEINTEGRALS_H #define NVBLASTVOLUMEINTEGRALS_H -#include "NvBlastPxSharedHelpers.h" +#include "NvBlastNvSharedHelpers.h" #include "NvCMath.h" #include "NvBlastAssert.h" diff --git a/blast/source/sdk/extensions/assetutils/NvBlastExtAssetUtils.cpp b/blast/source/sdk/extensions/assetutils/NvBlastExtAssetUtils.cpp index 0eb0fcdbe..f83d8de1e 100644 --- a/blast/source/sdk/extensions/assetutils/NvBlastExtAssetUtils.cpp +++ b/blast/source/sdk/extensions/assetutils/NvBlastExtAssetUtils.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtAssetUtils.h" diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.cpp index 3af7ef7af..3f953b459 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.cpp @@ -22,22 +22,24 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtApexSharedParts.h" #include "NvBlastGlobals.h" #include "NvBlastMemory.h" +#include "NvBlastAssert.h" -#include "foundation/PxMat44.h" -#include "foundation/PxBounds3.h" -#include "PxFoundation.h" -#include "PsVecMath.h" +#include "NsVecMath.h" + +#include "NvMat44.h" +#include "NvBounds3.h" +#include "NsVecMath.h" #include -using namespace physx; -using namespace physx::shdfnd::aos; +using namespace nvidia; +using namespace nvidia::shdfnd::aos; namespace Nv @@ -45,7 +47,7 @@ namespace Nv namespace Blast { -PX_NOALIAS PX_FORCE_INLINE BoolV PointOutsideOfPlane4(const Vec3VArg _a, const Vec3VArg _b, const Vec3VArg _c, const Vec3VArg _d) +NV_NOALIAS NV_FORCE_INLINE BoolV PointOutsideOfPlane4(const Vec3VArg _a, const Vec3VArg _b, const Vec3VArg _c, const Vec3VArg _d) { // this is not 0 because of the following scenario: // All the points lie on the same plane and the plane goes through the origin (0,0,0). @@ -81,7 +83,7 @@ PX_NOALIAS PX_FORCE_INLINE BoolV PointOutsideOfPlane4(const Vec3VArg _a, const V return V4IsGrtrOrEq(V4Mul(signa, signd), zero);//same side, outside of the plane } -PX_NOALIAS PX_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg a, const Vec3VArg b) +NV_NOALIAS NV_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg a, const Vec3VArg b) { const FloatV zero = FZero(); const FloatV one = FOne(); @@ -98,8 +100,8 @@ PX_NOALIAS PX_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg a, const V return V3Sel(con, a, V3ScaleAdd(ab, t, a)); } -PX_NOALIAS PX_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg Q0, const Vec3VArg Q1, const Vec3VArg A0, const Vec3VArg A1, - const Vec3VArg B0, const Vec3VArg B1, PxU32& size, Vec3V& closestA, Vec3V& closestB) +NV_NOALIAS NV_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg Q0, const Vec3VArg Q1, const Vec3VArg A0, const Vec3VArg A1, + const Vec3VArg B0, const Vec3VArg B1, uint32_t& size, Vec3V& closestA, Vec3V& closestB) { const Vec3V a = Q0; const Vec3V b = Q1; @@ -135,8 +137,8 @@ PX_NOALIAS PX_FORCE_INLINE Vec3V closestPtPointSegment(const Vec3VArg Q0, const return V3Sub(tempClosestA, tempClosestB); } -PX_NOALIAS Vec3V closestPtPointSegmentTesselation(const Vec3VArg Q0, const Vec3VArg Q1, const Vec3VArg A0, const Vec3VArg A1, - const Vec3VArg B0, const Vec3VArg B1, PxU32& size, Vec3V& closestA, Vec3V& closestB) +NV_NOALIAS Vec3V closestPtPointSegmentTesselation(const Vec3VArg Q0, const Vec3VArg Q1, const Vec3VArg A0, const Vec3VArg A1, + const Vec3VArg B0, const Vec3VArg B1, uint32_t& size, Vec3V& closestA, Vec3V& closestB) { const FloatV half = FHalf(); @@ -186,7 +188,7 @@ PX_NOALIAS Vec3V closestPtPointSegmentTesselation(const Vec3VArg Q0, const Vec3V return closestPtPointSegment(q0, q1, a0, a1, b0, b1, size, closestA, closestB); } -PX_NOALIAS Vec3V closestPtPointTriangleTesselation(const Vec3V* PX_RESTRICT Q, const Vec3V* PX_RESTRICT A, const Vec3V* PX_RESTRICT B, const PxU32* PX_RESTRICT indices, PxU32& size, Vec3V& closestA, Vec3V& closestB) +NV_NOALIAS Vec3V closestPtPointTriangleTesselation(const Vec3V* NV_RESTRICT Q, const Vec3V* NV_RESTRICT A, const Vec3V* NV_RESTRICT B, const uint32_t* NV_RESTRICT indices, uint32_t& size, Vec3V& closestA, Vec3V& closestB) { size = 3; const FloatV zero = FZero(); @@ -196,9 +198,9 @@ PX_NOALIAS Vec3V closestPtPointTriangleTesselation(const Vec3V* PX_RESTRICT Q, c const FloatV four = FLoad(4.f); const FloatV sixty = FLoad(100.f); - const PxU32 ind0 = indices[0]; - const PxU32 ind1 = indices[1]; - const PxU32 ind2 = indices[2]; + const uint32_t ind0 = indices[0]; + const uint32_t ind1 = indices[1]; + const uint32_t ind2 = indices[2]; const Vec3V a = Q[ind0]; const Vec3V b = Q[ind1]; @@ -344,7 +346,7 @@ PX_NOALIAS Vec3V closestPtPointTriangleTesselation(const Vec3V* PX_RESTRICT Q, c //calculate the triangle normal const Vec3V triNormal = V3Normalize(w); - PX_ASSERT(V3AllEq(triNormal, V3Zero()) == 0); + NVBLAST_ASSERT(V3AllEq(triNormal, V3Zero()) == 0); //split the longest edge @@ -476,13 +478,13 @@ PX_NOALIAS Vec3V closestPtPointTriangleTesselation(const Vec3V* PX_RESTRICT Q, c return V3Sub(tempClosestA, tempClosestB); } -PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3V* PX_RESTRICT A, Vec3V* PX_RESTRICT B, PxU32& size, Vec3V& closestA, Vec3V& closestB) +NV_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* NV_RESTRICT Q, Vec3V* NV_RESTRICT A, Vec3V* NV_RESTRICT B, uint32_t& size, Vec3V& closestA, Vec3V& closestB) { const FloatV eps = FEps(); const Vec3V zeroV = V3Zero(); - PxU32 tempSize = size; + uint32_t tempSize = size; - FloatV bestSqDist = FLoad(PX_MAX_REAL); + FloatV bestSqDist = FLoad(NV_MAX_F32); const Vec3V a = Q[0]; const Vec3V b = Q[1]; const Vec3V c = Q[2]; @@ -501,7 +503,7 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 if (FAllGrtr(eps, fMin)) { size = 3; - PxU32 tempIndices[] = { 0, 1, 2 }; + uint32_t tempIndices[] = { 0, 1, 2 }; return closestPtPointTriangleTesselation(Q, A, B, tempIndices, size, closestA, closestB); } @@ -509,7 +511,7 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 Vec3V _A[] = { A[0], A[1], A[2], A[3] }; Vec3V _B[] = { B[0], B[1], B[2], B[3] }; - PxU32 indices[3] = { 0, 1, 2 }; + uint32_t indices[3] = { 0, 1, 2 }; const BoolV bIsOutside4 = PointOutsideOfPlane4(a, b, c, d); @@ -525,8 +527,8 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 if (BAllEq(BGetX(bIsOutside4), bTrue)) { - PxU32 tempIndices[] = { 0, 1, 2 }; - PxU32 _size = 3; + uint32_t tempIndices[] = { 0, 1, 2 }; + uint32_t _size = 3; result = closestPtPointTriangleTesselation(_Q, _A, _B, tempIndices, _size, tempClosestA, tempClosestB); @@ -545,9 +547,9 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 if (BAllEq(BGetY(bIsOutside4), bTrue)) { - PxU32 tempIndices[] = { 0, 2, 3 }; + uint32_t tempIndices[] = { 0, 2, 3 }; - PxU32 _size = 3; + uint32_t _size = 3; const Vec3V q = closestPtPointTriangleTesselation(_Q, _A, _B, tempIndices, _size, tempClosestA, tempClosestB); @@ -570,8 +572,8 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 if (BAllEq(BGetZ(bIsOutside4), bTrue)) { - PxU32 tempIndices[] = { 0, 3, 1 }; - PxU32 _size = 3; + uint32_t tempIndices[] = { 0, 3, 1 }; + uint32_t _size = 3; const Vec3V q = closestPtPointTriangleTesselation(_Q, _A, _B, tempIndices, _size, tempClosestA, tempClosestB); @@ -594,8 +596,8 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 if (BAllEq(BGetW(bIsOutside4), bTrue)) { - PxU32 tempIndices[] = { 1, 3, 2 }; - PxU32 _size = 3; + uint32_t tempIndices[] = { 1, 3, 2 }; + uint32_t _size = 3; const Vec3V q = closestPtPointTriangleTesselation(_Q, _A, _B, tempIndices, _size, tempClosestA, tempClosestB); @@ -626,8 +628,8 @@ PX_NOALIAS Vec3V closestPtPointTetrahedronTesselation(Vec3V* PX_RESTRICT Q, Vec3 return result; } -PX_NOALIAS PX_FORCE_INLINE Vec3V doTesselation(Vec3V* PX_RESTRICT Q, Vec3V* PX_RESTRICT A, Vec3V* PX_RESTRICT B, - const Vec3VArg support, const Vec3VArg supportA, const Vec3VArg supportB, PxU32& size, Vec3V& closestA, Vec3V& closestB) +NV_NOALIAS NV_FORCE_INLINE Vec3V doTesselation(Vec3V* NV_RESTRICT Q, Vec3V* NV_RESTRICT A, Vec3V* NV_RESTRICT B, + const Vec3VArg support, const Vec3VArg supportA, const Vec3VArg supportB, uint32_t& size, Vec3V& closestA, Vec3V& closestB) { switch (size) { @@ -644,7 +646,7 @@ PX_NOALIAS PX_FORCE_INLINE Vec3V doTesselation(Vec3V* PX_RESTRICT Q, Vec3V* PX_R case 3: { - PxU32 tempIndices[3] = { 0, 1, 2 }; + uint32_t tempIndices[3] = { 0, 1, 2 }; return closestPtPointTriangleTesselation(Q, A, B, tempIndices, size, closestA, closestB); } case 4: @@ -652,7 +654,7 @@ PX_NOALIAS PX_FORCE_INLINE Vec3V doTesselation(Vec3V* PX_RESTRICT Q, Vec3V* PX_R return closestPtPointTetrahedronTesselation(Q, A, B, size, closestA, closestB); } default: - PX_ASSERT(0); + NVBLAST_ASSERT(0); } return support; } @@ -670,7 +672,7 @@ enum Status struct Output { /// Get the normal to push apart in direction from A to B - PX_FORCE_INLINE Vec3V getNormal() const { return V3Normalize(V3Sub(mClosestB, mClosestA)); } + NV_FORCE_INLINE Vec3V getNormal() const { return V3Normalize(V3Sub(mClosestB, mClosestA)); } Vec3V mClosestA; ///< Closest point on A Vec3V mClosestB; ///< Closest point on B FloatV mDistSq; @@ -678,7 +680,7 @@ struct Output struct ConvexV { - void calcExtent(const Vec3V& dir, PxF32& minOut, PxF32& maxOut) const + void calcExtent(const Vec3V& dir, float& minOut, float& maxOut) const { // Expand const Vec4V x = Vec4V_From_FloatV(V3GetX(dir)); @@ -709,9 +711,9 @@ struct ConvexV const Vec4V y = Vec4V_From_FloatV(V3GetY(dir)); const Vec4V z = Vec4V_From_FloatV(V3GetZ(dir)); - PX_ALIGN(16, static const PxF32 index4const[]) = { 0.0f, 1.0f, 2.0f, 3.0f }; + NV_ALIGN(16, static const float index4const[]) = { 0.0f, 1.0f, 2.0f, 3.0f }; Vec4V index4 = *(const Vec4V*)index4const; - PX_ALIGN(16, static const PxF32 delta4const[]) = { 4.0f, 4.0f, 4.0f, 4.0f }; + NV_ALIGN(16, static const float delta4const[]) = { 4.0f, 4.0f, 4.0f, 4.0f }; const Vec4V delta4 = *(const Vec4V*)delta4const; const Vec4V* src = mAovVertices; @@ -732,23 +734,23 @@ struct ConvexV index4 = V4Add(index4, delta4); } Vec4V horiMax = Vec4V_From_FloatV(V4ExtractMax(max)); - PxU32 mask = BGetBitMask(V4IsEq(horiMax, max)); - const PxU32 simdIndex = (0x12131210 >> (mask + mask)) & PxU32(3); + uint32_t mask = BGetBitMask(V4IsEq(horiMax, max)); + const uint32_t simdIndex = (0x12131210 >> (mask + mask)) & uint32_t(3); /// NOTE! Could be load hit store /// Would be better to have all simd. - PX_ALIGN(16, PxF32 f[4]); + NV_ALIGN(16, float f[4]); V4StoreA(maxIndex, f); - PxU32 index = PxU32(PxI32(f[simdIndex])); + uint32_t index = uint32_t(uint32_t(f[simdIndex])); const Vec4V* aovIndex = (mAovVertices + (index >> 2) * 3); - const PxF32* aovOffset = ((const PxF32*)aovIndex) + (index & 3); + const float* aovOffset = ((const float*)aovIndex) + (index & 3); return Vec3V_From_Vec4V(V4LoadXYZW(aovOffset[0], aovOffset[4], aovOffset[8], 1.0f)); } const Vec4V* mAovVertices; ///< Vertices storex x,x,x,x, y,y,y,y, z,z,z,z - PxU32 mNumAovVertices; ///< Number of groups of 4 of vertices + uint32_t mNumAovVertices; ///< Number of groups of 4 of vertices }; Status Collide(const Vec3V& initialDir, const ConvexV& convexA, const Mat34V& bToA, const ConvexV& convexB, Output& out) @@ -759,7 +761,7 @@ Status Collide(const Vec3V& initialDir, const ConvexV& convexA, const Mat34V& bT Mat33V aToB = M34Trnsps33(bToA); - PxU32 size = 0; + uint32_t size = 0; const Vec3V zeroV = V3Zero(); const BoolV bTrue = BTTTT(); @@ -788,8 +790,8 @@ Status Collide(const Vec3V& initialDir, const ConvexV& convexA, const Mat34V& bT closAA = closA; closBB = closB; - PxU32 index = size++; - PX_ASSERT(index < 4); + uint32_t index = size++; + NVBLAST_ASSERT(index < 4); const Vec3V supportA = convexA.calcSupport(V3Neg(v)); const Vec3V supportB = M34MulV3(bToA, convexB.calcSupport(M33MulV3(aToB, v))); @@ -823,7 +825,7 @@ Status Collide(const Vec3V& initialDir, const ConvexV& convexA, const Mat34V& bT return Status(BAllEq(bCon, bTrue) == 1 ? STATUS_CONTACT : STATUS_DEGENERATE); } -static void _calcSeparation(const ConvexV& convexA, const physx::PxTransform& aToWorldIn, const Mat34V& bToA, ConvexV& convexB, const Vec3V& centroidAToB, Output& out, Separation& sep) +static void _calcSeparation(const ConvexV& convexA, const nvidia::NvTransform& aToWorldIn, const Mat34V& bToA, ConvexV& convexB, const Vec3V& centroidAToB, Output& out, Separation& sep) { Mat33V aToB = M34Trnsps33(bToA); @@ -848,7 +850,7 @@ static void _calcSeparation(const ConvexV& convexA, const physx::PxTransform& aT { // Offset the min max taking into account transform // Distance of origin from B's space in As space in direction of the normal in As space should fix it... - PxF32 fix; + float fix; FStore(V3Dot(bToA.col3, normalA), &fix); sep.min1 += fix; sep.max1 += fix; @@ -858,7 +860,7 @@ static void _calcSeparation(const ConvexV& convexA, const physx::PxTransform& aT Vec3V center = V3Scale(V3Add(out.mClosestA, out.mClosestB), FLoad(0.5f)); // Transform to world space Mat34V aToWorld; - *(PxMat44*)&aToWorld = aToWorldIn; + *(NvMat44*)&aToWorld = aToWorldIn; // Put the normal in world space Vec3V worldCenter = M34MulV3(aToWorld, center); Vec3V worldNormal = M34Mul33V3(aToWorld, normalA); @@ -869,10 +871,10 @@ static void _calcSeparation(const ConvexV& convexA, const physx::PxTransform& aT sep.plane.d = -sep.plane.d; } -static void _arrayVec3ToVec4(const PxVec3* src, Vec4V* dst, PxU32 num) +static void _arrayVec3ToVec4(const NvVec3* src, Vec4V* dst, uint32_t num) { - const PxU32 num4 = num >> 2; - for (PxU32 i = 0; i < num4; i++, dst += 3, src += 4) + const uint32_t num4 = num >> 2; + for (uint32_t i = 0; i < num4; i++, dst += 3, src += 4) { Vec3V v0 = V3LoadU(&src[0].x); Vec3V v1 = V3LoadU(&src[1].x); @@ -885,11 +887,11 @@ static void _arrayVec3ToVec4(const PxVec3* src, Vec4V* dst, PxU32 num) dst[1] = v1; dst[2] = v2; } - const PxU32 remain = num & 3; + const uint32_t remain = num & 3; if (remain) { Vec3V work[4]; - PxU32 i = 0; + uint32_t i = 0; for (; i < remain; i++) work[i] = V3LoadU(&src[i].x); for (; i < 4; i++) work[i] = work[remain - 1]; V4Transpose(work[0], work[1], work[2], work[3]); @@ -900,7 +902,7 @@ static void _arrayVec3ToVec4(const PxVec3* src, Vec4V* dst, PxU32 num) } -static void _arrayVec3ToVec4(const PxVec3* src, const Vec3V& scale, Vec4V* dst, PxU32 num) +static void _arrayVec3ToVec4(const NvVec3* src, const Vec3V& scale, Vec4V* dst, uint32_t num) { // If no scale - use the faster version if (V3AllEq(scale, V3One())) @@ -908,8 +910,8 @@ static void _arrayVec3ToVec4(const PxVec3* src, const Vec3V& scale, Vec4V* dst, return _arrayVec3ToVec4(src, dst, num); } - const PxU32 num4 = num >> 2; - for (PxU32 i = 0; i < num4; i++, dst += 3, src += 4) + const uint32_t num4 = num >> 2; + for (uint32_t i = 0; i < num4; i++, dst += 3, src += 4) { Vec3V v0 = V3Mul(scale, V3LoadU(&src[0].x)); Vec3V v1 = V3Mul(scale, V3LoadU(&src[1].x)); @@ -922,11 +924,11 @@ static void _arrayVec3ToVec4(const PxVec3* src, const Vec3V& scale, Vec4V* dst, dst[1] = v1; dst[2] = v2; } - const PxU32 remain = num & 3; + const uint32_t remain = num & 3; if (remain) { Vec3V work[4]; - PxU32 i = 0; + uint32_t i = 0; for (; i < remain; i++) work[i] = V3Mul(scale, V3LoadU(&src[i].x)); for (; i < 4; i++) work[i] = work[remain - 1]; V4Transpose(work[0], work[1], work[2], work[3]); @@ -976,35 +978,35 @@ struct ScopeMemoryAllocator { _out = (buffSize < STACK_ALLOC_LIMIT ? NvBlastAlloca(buffSize) : _out##Allocator.alloc(buffSize)) -bool importerHullsInProximityApexFree(uint32_t hull0Count, const PxVec3* hull0, PxBounds3& hull0Bounds, const physx::PxTransform& localToWorldRT0In, const physx::PxVec3& scale0In, - uint32_t hull1Count, const PxVec3* hull1, PxBounds3& hull1Bounds, const physx::PxTransform& localToWorldRT1In, const physx::PxVec3& scale1In, - physx::PxF32 maxDistance, Separation* separation) +bool importerHullsInProximityApexFree(uint32_t hull0Count, const NvVec3* hull0, NvBounds3& hull0Bounds, const nvidia::NvTransform& localToWorldRT0In, const nvidia::NvVec3& scale0In, + uint32_t hull1Count, const NvVec3* hull1, NvBounds3& hull1Bounds, const nvidia::NvTransform& localToWorldRT1In, const nvidia::NvVec3& scale1In, + float maxDistance, Separation* separation) { - const PxU32 numVerts0 = static_cast(hull0Count); - const PxU32 numVerts1 = static_cast(hull1Count); - const PxU32 numAov0 = (numVerts0 + 3) >> 2; - const PxU32 numAov1 = (numVerts1 + 3) >> 2; + const uint32_t numVerts0 = static_cast(hull0Count); + const uint32_t numVerts1 = static_cast(hull1Count); + const uint32_t numAov0 = (numVerts0 + 3) >> 2; + const uint32_t numAov1 = (numVerts1 + 3) >> 2; - const PxU32 buffSize = (numAov0 + numAov1) * sizeof(Vec4V) * 3; + const uint32_t buffSize = (numAov0 + numAov1) * sizeof(Vec4V) * 3; void* buff = nullptr; ALLOCATE_TEMP_MEMORY(buff, buffSize); Vec4V* verts0 = (Vec4V*)buff; // Make sure it's aligned - PX_ASSERT((size_t(verts0) & 0xf) == 0); + NVBLAST_ASSERT((size_t(verts0) & 0xf) == 0); Vec4V* verts1 = verts0 + (numAov0 * 3); const Vec3V scale0 = V3LoadU(&scale0In.x); const Vec3V scale1 = V3LoadU(&scale1In.x); - std::vector vert0(numVerts0); + std::vector vert0(numVerts0); for (uint32_t i = 0; i < numVerts0; ++i) { vert0[i] = hull0[i]; } - std::vector vert1(numVerts1); + std::vector vert1(numVerts1); for (uint32_t i = 0; i < numVerts1; ++i) { vert1[i] = hull1[i]; @@ -1013,12 +1015,12 @@ bool importerHullsInProximityApexFree(uint32_t hull0Count, const PxVec3* hull0, _arrayVec3ToVec4(vert0.data(), scale0, verts0, numVerts0); _arrayVec3ToVec4(vert1.data(), scale1, verts1, numVerts1); - const PxTransform trans1To0 = localToWorldRT0In.transformInv(localToWorldRT1In); + const NvTransform trans1To0 = localToWorldRT0In.transformInv(localToWorldRT1In); // Load into simd mat Mat34V bToA; - *(PxMat44*)&bToA = trans1To0; - (*(PxMat44*)&bToA).column3.w = 0.0f; // AOS wants the 4th component of Vec3V to be 0 to work properly + *(NvMat44*)&bToA = trans1To0; + (*(NvMat44*)&bToA).column3.w = 0.0f; // AOS wants the 4th component of Vec3V to be 0 to work properly ConvexV convexA; ConvexV convexB; @@ -1029,8 +1031,8 @@ bool importerHullsInProximityApexFree(uint32_t hull0Count, const PxVec3* hull0, convexB.mNumAovVertices = numAov1; convexB.mAovVertices = verts1; - const physx::PxVec3 hullACenter = hull0Bounds.getCenter(); - const physx::PxVec3 hullBCenter = hull1Bounds.getCenter(); + const nvidia::NvVec3 hullACenter = hull0Bounds.getCenter(); + const nvidia::NvVec3 hullBCenter = hull1Bounds.getCenter(); const Vec3V centroidA = V3LoadU(&hullACenter.x); const Vec3V centroidB = M34MulV3(bToA, V3LoadU(&hullBCenter.x)); @@ -1045,8 +1047,8 @@ bool importerHullsInProximityApexFree(uint32_t hull0Count, const PxVec3* hull0, if (status == STATUS_DEGENERATE) { // Calculate the tolerance from the extents - const PxVec3 extents0 = hull0Bounds.getExtents(); - const PxVec3 extents1 = hull1Bounds.getExtents(); + const NvVec3 extents0 = hull0Bounds.getExtents(); + const NvVec3 extents1 = hull1Bounds.getExtents(); const FloatV tolerance0 = V3ExtractMin(V3Mul(V3LoadU(&extents0.x), scale0)); const FloatV tolerance1 = V3ExtractMin(V3Mul(V3LoadU(&extents1.x), scale1)); @@ -1074,7 +1076,7 @@ bool importerHullsInProximityApexFree(uint32_t hull0Count, const PxVec3* hull0, { _calcSeparation(convexA, localToWorldRT0In, bToA, convexB, initialDir, output, *separation); } - PxF32 val; + float val; FStore(output.mDistSq, &val); return val < (maxDistance * maxDistance); } diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.h b/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.h index d87b778d7..5840b1dec 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtApexSharedParts.h @@ -22,19 +22,19 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAPEXSHAREDPARTS_H #define NVBLASTEXTAPEXSHAREDPARTS_H #include "NvBlast.h" -#include -namespace physx +#include "NvPlane.h" +namespace nvidia { - class PxVec3; - class PxTransform; - class PxBounds3; + class NvVec3; + class NvTransform; + class NvBounds3; } namespace Nv @@ -44,21 +44,21 @@ namespace Blast struct Separation { - physx::PxPlane plane; + nvidia::NvPlane plane; float min0, max0, min1, max1; float getDistance() { - return physx::PxMax(min0 - max1, min1 - max0); + return nvidia::NvMax(min0 - max1, min1 - max0); } }; /** Function to compute midplane between two convex hulls. Is copied from APEX. */ -bool importerHullsInProximityApexFree( uint32_t hull0Count, const physx::PxVec3* hull0, physx::PxBounds3& hull0Bounds, const physx::PxTransform& localToWorldRT0In, const physx::PxVec3& scale0In, - uint32_t hull1Count, const physx::PxVec3* hull1, physx::PxBounds3& hull1Bounds, const physx::PxTransform& localToWorldRT1In, const physx::PxVec3& scale1In, - physx::PxF32 maxDistance, Separation* separation); +bool importerHullsInProximityApexFree( uint32_t hull0Count, const nvidia::NvVec3* hull0, nvidia::NvBounds3& hull0Bounds, const nvidia::NvTransform& localToWorldRT0In, const nvidia::NvVec3& scale0In, + uint32_t hull1Count, const nvidia::NvVec3* hull1, nvidia::NvBounds3& hull1Bounds, const nvidia::NvTransform& localToWorldRT1In, const nvidia::NvVec3& scale1In, + float maxDistance, Separation* separation); } // namespace Blast } // namespace Nv diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoring.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoring.cpp index a8279f586..24a9bb665 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoring.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoring.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtAuthoring.h" #include "NvBlastTypes.h" @@ -41,13 +41,13 @@ #include "NvBlastExtAuthoringCollisionBuilderImpl.h" #include "NvBlastExtAuthoringCutoutImpl.h" #include "NvBlastExtAuthoringInternalCommon.h" -#include "NvBlastPxSharedHelpers.h" +#include "NvBlastNvSharedHelpers.h" #include #include using namespace Nv::Blast; -using namespace physx; +using namespace nvidia; #define SAFE_ARRAY_NEW(T, x) ((x) > 0) ? reinterpret_cast(NVBLAST_ALLOC(sizeof(T) * (x))) : nullptr; #define SAFE_ARRAY_DELETE(x) if (x != nullptr) {NVBLAST_FREE(x); x = nullptr;} @@ -117,21 +117,21 @@ void NvBlastExtAuthoringTrimCollisionGeometry(ConvexMeshBuilder* cmb, uint32_t c void NvBlastExtAuthoringTransformCollisionHullInPlace(CollisionHull* hull, const NvcVec3* scaling, const NvcQuat* rotation, const NvcVec3* translation) { // Local copies of scaling (S), rotation (R), and translation (T) - physx::PxVec3 S = { 1, 1, 1 }; - physx::PxQuat R = { 0, 0, 0, 1 }; - physx::PxVec3 T = { 0, 0, 0 }; - physx::PxVec3 cofS = { 1, 1, 1 }; + nvidia::NvVec3 S = { 1, 1, 1 }; + nvidia::NvQuat R = { 0, 0, 0, 1 }; + nvidia::NvVec3 T = { 0, 0, 0 }; + nvidia::NvVec3 cofS = { 1, 1, 1 }; float sgnDetS = 1; { if (rotation) { - R = *toPxShared(rotation); + R = *toNvShared(rotation); } if (scaling) { - S = *toPxShared(scaling); + S = *toNvShared(scaling); cofS.x = S.y * S.z; cofS.y = S.z * S.x; cofS.z = S.x * S.y; @@ -140,14 +140,14 @@ void NvBlastExtAuthoringTransformCollisionHullInPlace(CollisionHull* hull, const if (translation) { - T = *toPxShared(translation); + T = *toNvShared(translation); } } const uint32_t pointCount = hull->pointsCount; for (uint32_t pi = 0; pi < pointCount; pi++) { - physx::PxVec3& p = toPxShared(hull->points[pi]); + nvidia::NvVec3& p = toNvShared(hull->points[pi]); p = (R.rotate(p.multiply(S)) + T); } @@ -155,11 +155,11 @@ void NvBlastExtAuthoringTransformCollisionHullInPlace(CollisionHull* hull, const for (uint32_t pi = 0; pi < planeCount; pi++) { float* plane = hull->polygonData[pi].plane; - physx::PxPlane pxPlane(plane[0], plane[1], plane[2], plane[3]); - PxVec3 transformedNormal = sgnDetS*R.rotate(pxPlane.n.multiply(cofS)).getNormalized(); - PxVec3 transformedPt = R.rotate(pxPlane.pointInPlane().multiply(S)) + T; + nvidia::NvPlane nvPlane(plane[0], plane[1], plane[2], plane[3]); + NvVec3 transformedNormal = sgnDetS*R.rotate(nvPlane.n.multiply(cofS)).getNormalized(); + NvVec3 transformedPt = R.rotate(nvPlane.pointInPlane().multiply(S)) + T; - physx::PxPlane transformedPlane(transformedPt, transformedNormal); + nvidia::NvPlane transformedPlane(transformedPt, transformedNormal); plane[0] = transformedPlane.n[0]; plane[1] = transformedPlane.n[1]; plane[2] = transformedPlane.n[2]; @@ -411,7 +411,7 @@ AuthoringResult* NvBlastExtAuthoringProcessFracture(FractureTool& fTool, BlastBo // prepare physics data (convexes) buildPhysicsChunks(collisionBuilder, aResult, collisionParam); - // set NvBlastChunk volume and centroid from Px geometry + // set NvBlastChunk volume and centroid from CollisionHull for (uint32_t i = 0; i < chunkCount; i++) { float totalVolume = 0.f; @@ -503,7 +503,7 @@ uint32_t NvBlastExtAuthoringFindAssetConnectingBonds std::vector originalComponentIndex; - const physx::PxVec3 identityScale(1); + const nvidia::NvVec3 identityScale(1); //Combine our hull lists into a single combined list for bondsFromPrefractured for (uint32_t c = 0; c < componentCount; c++) @@ -520,9 +520,9 @@ uint32_t NvBlastExtAuthoringFindAssetConnectingBonds const uint32_t hullsEnd = convexHullOffsets[c][chunk + 1]; for (uint32_t hull = hullsStart; hull < hullsEnd; hull++) { - if ((scale != nullptr && *toPxShared(scale) != identityScale) || - (rotation != nullptr && !toPxShared(rotation)->isIdentity()) || - (translation != nullptr && !toPxShared(translation)->isZero())) + if ((scale != nullptr && *toNvShared(scale) != identityScale) || + (rotation != nullptr && !toNvShared(rotation)->isIdentity()) || + (translation != nullptr && !toNvShared(translation)->isZero())) { hullsToRelease.emplace_back(NvBlastExtAuthoringTransformCollisionHull(chunkHulls[c][hull], scale, rotation, translation)); combinedConvexHulls.emplace_back(hullsToRelease.back()); diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.cpp index 00953cb2c..38945abde 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. // This warning arises when using some stl containers with older versions of VC @@ -35,14 +35,14 @@ #include #include #include -#include +#include #include "NvBlastExtTriangleProcessor.h" #include "NvBlastExtApexSharedParts.h" #include "NvBlastExtAuthoringInternalCommon.h" #include "NvBlastExtAuthoringTypes.h" #include #include -#include +#include "NvPlane.h" #include #include #include @@ -53,7 +53,7 @@ //#define DEBUG_OUTPUT #ifdef DEBUG_OUTPUT -void saveGeometryToObj(std::vector& triangles, const char* filepath) +void saveGeometryToObj(std::vector& triangles, const char* filepath) { FILE* outStream = fopen(filepath, "w"); @@ -68,7 +68,7 @@ void saveGeometryToObj(std::vector& triangles, const char* filepath) } for (uint32_t i = 0; i < triangles.size() / 3; ++i) { - PxVec3 normal = + NvVec3 normal = (triangles[3 * i + 2] - triangles[3 * i]).cross((triangles[3 * i + 1] - triangles[3 * i])).getNormalized(); fprintf(outStream, "vn %lf %lf %lf\n", normal.x, normal.y, normal.z); fprintf(outStream, "vn %lf %lf %lf\n", normal.x, normal.y, normal.z); @@ -89,8 +89,8 @@ void saveGeometryToObj(std::vector& triangles, const char* filepath) } -std::vector intersectionBuffer; -std::vector meshBuffer; +std::vector intersectionBuffer; +std::vector meshBuffer; #endif @@ -101,9 +101,9 @@ namespace Blast #define EPS_PLANE 0.0001f -physx::PxVec3 getNormal(const Triangle& t) +nvidia::NvVec3 getNormal(const Triangle& t) { - return toPxShared(t.b.p - t.a.p).cross(toPxShared(t.c.p - t.a.p)); + return toNvShared(t.b.p - t.a.p).cross(toNvShared(t.c.p - t.a.p)); } bool planeComparer(const PlaneChunkIndexer& as, const PlaneChunkIndexer& bs) @@ -150,24 +150,24 @@ struct Bond struct BondInfo { float area; - physx::PxBounds3 m_bb; - physx::PxVec3 centroid; - physx::PxVec3 normal; + nvidia::NvBounds3 m_bb; + nvidia::NvVec3 centroid; + nvidia::NvVec3 normal; int32_t m_chunkId; }; -inline physx::PxVec3 getVertex(const Triangle& t, uint32_t i) +inline nvidia::NvVec3 getVertex(const Triangle& t, uint32_t i) { - return toPxShared((&t.a)[i].p); + return toNvShared((&t.a)[i].p); } -void AddTtAnchorPoints(const Triangle* a, const Triangle* b, std::vector& points) +void AddTtAnchorPoints(const Triangle* a, const Triangle* b, std::vector& points) { - physx::PxVec3 na = getNormal(*a).getNormalized(); - physx::PxVec3 nb = getNormal(*b).getNormalized(); + nvidia::NvVec3 na = getNormal(*a).getNormalized(); + nvidia::NvVec3 nb = getNormal(*b).getNormalized(); - physx::PxPlane pla(toPxShared(a->a.p), na); - physx::PxPlane plb(toPxShared(b->a.p), nb); + nvidia::NvPlane pla(toNvShared(a->a.p), na); + nvidia::NvPlane plb(toNvShared(b->a.p), nb); ProjectionDirections da = getProjectionDirection(na); @@ -175,21 +175,21 @@ void AddTtAnchorPoints(const Triangle* a, const Triangle* b, std::vector TriangleProcessor prc; - TrPrcTriangle2d ta(getProjectedPoint(toPxShared(a->a.p), da), getProjectedPoint(toPxShared(a->b.p), da), - getProjectedPoint(toPxShared(a->c.p), da)); - TrPrcTriangle2d tb(getProjectedPoint(toPxShared(b->a.p), db), getProjectedPoint(toPxShared(b->b.p), db), - getProjectedPoint(toPxShared(b->c.p), db)); + TrPrcTriangle2d ta(getProjectedPoint(toNvShared(a->a.p), da), getProjectedPoint(toNvShared(a->b.p), da), + getProjectedPoint(toNvShared(a->c.p), da)); + TrPrcTriangle2d tb(getProjectedPoint(toNvShared(b->a.p), db), getProjectedPoint(toNvShared(b->b.p), db), + getProjectedPoint(toNvShared(b->c.p), db)); /** Compute */ for (uint32_t i = 0; i < 3; ++i) { - physx::PxVec3 pt; + nvidia::NvVec3 pt; if (getPlaneSegmentIntersection(pla, getVertex(*b, i), getVertex(*b, (i + 1) % 3), pt)) { - physx::PxVec2 pt2 = getProjectedPoint(pt, da); + nvidia::NvVec2 pt2 = getProjectedPoint(pt, da); if (prc.isPointInside(pt2, ta)) { points.push_back(pt); @@ -197,7 +197,7 @@ void AddTtAnchorPoints(const Triangle* a, const Triangle* b, std::vector } if (getPlaneSegmentIntersection(plb, getVertex(*a, i), getVertex(*a, (i + 1) % 3), pt)) { - PxVec2 pt2 = getProjectedPoint(pt, db); + NvVec2 pt2 = getProjectedPoint(pt, db); if (prc.isPointInside(pt2, tb)) { points.push_back(pt); @@ -208,13 +208,13 @@ void AddTtAnchorPoints(const Triangle* a, const Triangle* b, std::vector inline bool -pointInsidePoly(const PxVec3& pt, const uint8_t* indices, uint16_t indexCount, const PxVec3* verts, const PxVec3& n) +pointInsidePoly(const NvVec3& pt, const uint8_t* indices, uint16_t indexCount, const NvVec3* verts, const NvVec3& n) { int s = 0; for (uint16_t i = 0; i < indexCount; ++i) { - const PxVec3 r0 = verts[indices[i]] - pt; - const PxVec3 r1 = verts[indices[(i + 1) % indexCount]] - pt; + const NvVec3 r0 = verts[indices[i]] - pt; + const NvVec3 r1 = verts[indices[(i + 1) % indexCount]] - pt; const float cn = r0.cross(r1).dot(n); const int cns = cn >= 0 ? 1 : -1; if (!s) @@ -229,16 +229,16 @@ pointInsidePoly(const PxVec3& pt, const uint8_t* indices, uint16_t indexCount, c return true; } -void AddPpAnchorPoints(const uint8_t* indicesA, uint16_t indexCountA, const PxVec3* vertsA, const float planeA[4], - const uint8_t* indicesB, uint16_t indexCountB, const PxVec3* vertsB, const float planeB[4], - std::vector& points) +void AddPpAnchorPoints(const uint8_t* indicesA, uint16_t indexCountA, const NvVec3* vertsA, const float planeA[4], + const uint8_t* indicesB, uint16_t indexCountB, const NvVec3* vertsB, const float planeB[4], + std::vector& points) { - PxPlane pla(planeA[0], planeA[1], planeA[2], planeA[3]); - PxPlane plb(planeB[0], planeB[1], planeB[2], planeB[3]); + NvPlane pla(planeA[0], planeA[1], planeA[2], planeA[3]); + NvPlane plb(planeB[0], planeB[1], planeB[2], planeB[3]); for (uint16_t iA = 0; iA < indexCountA; ++iA) { - PxVec3 pt; + NvVec3 pt; if (getPlaneSegmentIntersection(plb, vertsA[indicesA[iA]], vertsA[indicesA[(iA + 1) % indexCountA]], pt)) { if (pointInsidePoly(pt, indicesB, indexCountB, vertsB, plb.n)) @@ -250,7 +250,7 @@ void AddPpAnchorPoints(const uint8_t* indicesA, uint16_t indexCountA, const PxVe for (uint16_t iB = 0; iB < indexCountA; ++iB) { - PxVec3 pt; + NvVec3 pt; if (getPlaneSegmentIntersection(pla, vertsB[indicesB[iB]], vertsB[indicesA[(iB + 1) % indexCountB]], pt)) { if (pointInsidePoly(pt, indicesA, indexCountA, vertsA, pla.n)) @@ -264,19 +264,19 @@ void AddPpAnchorPoints(const uint8_t* indicesA, uint16_t indexCountA, const PxVe float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc, const CollisionHull* hull1, - const CollisionHull* hull2, const std::vector& hull1p, - const std::vector& hull2p, PxVec3& normal, PxVec3& centroid, + const CollisionHull* hull2, const std::vector& hull1p, + const std::vector& hull2p, NvVec3& normal, NvVec3& centroid, float maxRelSeparation) { - PxBounds3 bounds; - PxBounds3 aBounds; - PxBounds3 bBounds; + NvBounds3 bounds; + NvBounds3 aBounds; + NvBounds3 bBounds; bounds.setEmpty(); aBounds.setEmpty(); bBounds.setEmpty(); - PxVec3 chunk1Centroid(0, 0, 0); - PxVec3 chunk2Centroid(0, 0, 0); + NvVec3 chunk1Centroid(0, 0, 0); + NvVec3 chunk2Centroid(0, 0, 0); /////////////////////////////////////////////////////////////////////////////////// if (hull1p.size() < 4 || hull2p.size() < 4) @@ -303,9 +303,9 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso const float maxSeparation = maxRelSeparation * std::sqrt(std::max(aBounds.getExtents().magnitudeSquared(), bBounds.getExtents().magnitudeSquared())); Separation separation; - if (!importerHullsInProximityApexFree(hull1p.size(), hull1p.data(), aBounds, PxTransform(PxIdentity), - PxVec3(1, 1, 1), hull2p.size(), hull2p.data(), bBounds, - PxTransform(PxIdentity), PxVec3(1, 1, 1), 2.0f * maxSeparation, &separation)) + if (!importerHullsInProximityApexFree(hull1p.size(), hull1p.data(), aBounds, NvTransform(), + NvVec3(1, 1, 1), hull2p.size(), hull2p.data(), bBounds, + NvTransform(), NvVec3(1, 1, 1), 2.0f * maxSeparation, &separation)) { return 0.0f; } @@ -316,13 +316,13 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso // otherwise midplane can be wrong (only if we have geometry) { // Build first plane interface - PxPlane midplane = separation.plane; + NvPlane midplane = separation.plane; if (!midplane.n.isFinite()) { return 0.0f; } - std::vector interfacePoints; + std::vector interfacePoints; float firstCentroidSide = (midplane.distance(chunk1Centroid) > 0) ? 1 : -1; float secondCentroidSide = (midplane.distance(chunk2Centroid) > 0) ? 1 : -1; @@ -344,10 +344,10 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso interfacePoints.push_back(hull2p[i]); } } - std::vector convexHull; + std::vector convexHull; trProcessor->buildConvexHull(interfacePoints, convexHull, midplane.n); float area = 0; - PxVec3 centroidLocal(0, 0, 0); + NvVec3 centroidLocal(0, 0, 0); if (convexHull.size() < 3) { return 0.0f; @@ -371,7 +371,7 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso else { float area = 0.0f; - std::vector intersectionAnchors; + std::vector intersectionAnchors; if (hull1 != nullptr && hull2 != nullptr) // Use hulls { for (uint32_t i1 = 0; i1 < hull1->polygonDataCount; ++i1) @@ -381,9 +381,9 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso { HullPolygon& poly2 = hull2->polygonData[i2]; AddPpAnchorPoints(reinterpret_cast(hull1->indices) + poly1.indexBase, poly1.vertexCount, - toPxShared(hull1->points), poly1.plane, + toNvShared(hull1->points), poly1.plane, reinterpret_cast(hull2->indices) + poly2.indexBase, poly2.vertexCount, - toPxShared(hull2->points), poly2.plane, intersectionAnchors); + toNvShared(hull2->points), poly2.plane, intersectionAnchors); } } } @@ -403,7 +403,7 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso return 0.0f; } - PxVec3 lcoid(0, 0, 0); + NvVec3 lcoid(0, 0, 0); for (uint32_t i = 0; i < intersectionAnchors.size(); ++i) { lcoid += intersectionAnchors[i]; @@ -416,8 +416,8 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso return 0.0f; } - PxVec3 dir1 = intersectionAnchors[0] - lcoid; - PxVec3 dir2 = chunk2Centroid - chunk1Centroid; // A more reasonable fallback than (0,0,0) + NvVec3 dir1 = intersectionAnchors[0] - lcoid; + NvVec3 dir2 = chunk2Centroid - chunk1Centroid; // A more reasonable fallback than (0,0,0) float maxMagn = 0.0f; float maxDist = 0.0f; @@ -425,7 +425,7 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso { float d = (intersectionAnchors[j] - lcoid).magnitude(); - PxVec3 tempNormal = (intersectionAnchors[j] - lcoid).cross(dir1); + NvVec3 tempNormal = (intersectionAnchors[j] - lcoid).cross(dir1); maxDist = std::max(d, maxDist); if (tempNormal.magnitude() > maxMagn) @@ -445,12 +445,12 @@ float BlastBondGeneratorImpl::processWithMidplanes(TriangleProcessor* trProcesso struct BondGenerationCandidate { - PxVec3 point; + NvVec3 point; bool end; uint32_t parentChunk; uint32_t parentComponent; BondGenerationCandidate(); - BondGenerationCandidate(const PxVec3& p, bool isEnd, uint32_t pr, uint32_t c) + BondGenerationCandidate(const NvVec3& p, bool isEnd, uint32_t pr, uint32_t c) : point(p), end(isEnd), parentChunk(pr), parentComponent(c){}; bool operator<(const BondGenerationCandidate& in) const @@ -483,7 +483,7 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c { std::vector > chunksPoints(meshCount); - std::vector bounds(meshCount); + std::vector bounds(meshCount); if (!chunkHulls) { for (uint32_t i = 0; i < meshCount; ++i) @@ -499,14 +499,14 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c chunksPoints[i].push_back(geometry[geometryOffset[i] + j].a.p); chunksPoints[i].push_back(geometry[geometryOffset[i] + j].b.p); chunksPoints[i].push_back(geometry[geometryOffset[i] + j].c.p); - bounds[i].include(toPxShared(geometry[geometryOffset[i] + j].a.p)); - bounds[i].include(toPxShared(geometry[geometryOffset[i] + j].b.p)); - bounds[i].include(toPxShared(geometry[geometryOffset[i] + j].c.p)); + bounds[i].include(toNvShared(geometry[geometryOffset[i] + j].a.p)); + bounds[i].include(toNvShared(geometry[geometryOffset[i] + j].b.p)); + bounds[i].include(toNvShared(geometry[geometryOffset[i] + j].c.p)); } } } - std::vector > > hullPoints(meshCount); + std::vector > > hullPoints(meshCount); std::vector candidates; std::vector tempChunkHulls(meshCount, nullptr); @@ -516,7 +516,7 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c { continue; } - PxBounds3 bnd(PxBounds3::empty()); + NvBounds3 bnd(NvBounds3::empty()); uint32_t hullCountForMesh = 0; const CollisionHull** beginChunkHulls = nullptr; if (chunkHulls) @@ -541,7 +541,7 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c curHull.resize(pointCount); for (uint32_t i = 0; i < pointCount; ++i) { - curHull[i] = toPxShared(beginChunkHulls[hull]->points[i]); + curHull[i] = toNvShared(beginChunkHulls[hull]->points[i]); bnd.include(curHull[i]); } } @@ -602,8 +602,8 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c { for (uint32_t jhull = 0; jhull < jhullCount; ++jhull) { - PxVec3 normal; - PxVec3 centroid; + NvVec3 normal; + NvVec3 centroid; float area = processWithMidplanes( &trProcessor, geometry ? geometry + geometryOffset[i] : nullptr, @@ -656,13 +656,13 @@ int32_t BlastBondGeneratorImpl::createFullBondListAveraged(uint32_t meshCount, c uint32_t isSamePlane(NvcPlane& a, NvcPlane& b) { - if (PxAbs(a.d - b.d) > EPS_PLANE) + if (NvAbs(a.d - b.d) > EPS_PLANE) return 0; - if (PxAbs(a.n.x - b.n.x) > EPS_PLANE) + if (NvAbs(a.n.x - b.n.x) > EPS_PLANE) return 0; - if (PxAbs(a.n.y - b.n.y) > EPS_PLANE) + if (NvAbs(a.n.y - b.n.y) > EPS_PLANE) return 0; - if (PxAbs(a.n.z - b.n.z) > EPS_PLANE) + if (NvAbs(a.n.z - b.n.z) > EPS_PLANE) return 0; return 1; } @@ -688,9 +688,9 @@ int32_t BlastBondGeneratorImpl::createFullBondListExact(uint32_t meshCount, cons meshBuffer.push_back(geometry[geometryOffset[i] + j].c.p); #endif - NvcPlane nPlane = fromPxShared(physx::PxPlane(toPxShared(geometry[geometryOffset[i] + j].a.p), - toPxShared(geometry[geometryOffset[i] + j].b.p), - toPxShared(geometry[geometryOffset[i] + j].c.p))); + NvcPlane nPlane = fromNvShared(nvidia::NvPlane(toNvShared(geometry[geometryOffset[i] + j].a.p), + toNvShared(geometry[geometryOffset[i] + j].b.p), + toNvShared(geometry[geometryOffset[i] + j].c.p))); planeTriangleMapping.push_back({ (int32_t)i, (int32_t)j, nPlane }); } } @@ -719,8 +719,8 @@ void BlastBondGeneratorImpl::buildGeometryCache(uint32_t meshCount, const uint32 { NvcPlane nPlane = - fromPxShared(physx::PxPlane(toPxShared(mGeometryCache[i][j].a.p), toPxShared(mGeometryCache[i][j].b.p), - toPxShared(mGeometryCache[i][j].c.p))); + fromNvShared(nvidia::NvPlane(toNvShared(mGeometryCache[i][j].a.p), toNvShared(mGeometryCache[i][j].b.p), + toNvShared(mGeometryCache[i][j].c.p))); mPlaneCache.push_back({ (int32_t)i, (int32_t)j, nPlane }); } } @@ -744,7 +744,7 @@ void BlastBondGeneratorImpl::buildGeometryCache(uint32_t meshCount, const uint32 mBoundsCache[ch].setEmpty(); for (uint32_t i = 0; i < mCHullCache[ch]->pointsCount; ++i) { - mHullsPointsCache[ch][i] = toPxShared(mCHullCache[ch]->points[i]); + mHullsPointsCache[ch][i] = toNvShared(mCHullCache[ch]->points[i]); mBoundsCache[ch].include(mHullsPointsCache[ch][i]); } } @@ -773,7 +773,7 @@ int32_t BlastBondGeneratorImpl::createFullBondListExactInternal(uint32_t meshCou std::map, std::pair > bonds; TriangleProcessor trPrc; - std::vector intersectionBufferLocal; + std::vector intersectionBufferLocal; NvBlastBondDesc cleanBond = NvBlastBondDesc(); memset(&cleanBond, 0, sizeof(NvBlastBondDesc)); @@ -796,9 +796,9 @@ int32_t BlastBondGeneratorImpl::createFullBondListExactInternal(uint32_t meshCou PlaneChunkIndexer& mappedTr = planeTriangleMapping[tIndex]; const Triangle& trl = geometry[geometryOffset[mappedTr.chunkId] + mappedTr.trId]; - PxPlane pln = toPxShared(mappedTr.plane); - TrPrcTriangle trp(toPxShared(trl.a.p), toPxShared(trl.b.p), toPxShared(trl.c.p)); - PxVec3 trCentroid = toPxShared(trl.a.p + trl.b.p + trl.c.p) * (1.0f / 3.0f); + NvPlane pln = toNvShared(mappedTr.plane); + TrPrcTriangle trp(toNvShared(trl.a.p), toNvShared(trl.b.p), toNvShared(trl.c.p)); + NvVec3 trCentroid = toNvShared(trl.a.p + trl.b.p + trl.c.p) * (1.0f / 3.0f); trp.points[0] -= trCentroid; trp.points[1] -= trCentroid; trp.points[2] -= trCentroid; @@ -845,12 +845,12 @@ int32_t BlastBondGeneratorImpl::createFullBondListExactInternal(uint32_t meshCou } const Triangle& trl2 = geometry[geometryOffset[mappedTr2.chunkId] + mappedTr2.trId]; - TrPrcTriangle trp2(toPxShared(trl2.a.p), toPxShared(trl2.b.p), toPxShared(trl2.c.p)); + TrPrcTriangle trp2(toNvShared(trl2.a.p), toNvShared(trl2.b.p), toNvShared(trl2.c.p)); intersectionBufferLocal.clear(); intersectionBufferLocal.reserve(32); trPrc.getTriangleIntersection(trp, trp2d, trp2, trCentroid, intersectionBufferLocal, pln.n); - PxVec3 centroidPoint(0, 0, 0); + NvVec3 centroidPoint(0, 0, 0); int32_t collectedVerticesCount = 0; float area = 0; if (intersectionBufferLocal.size() >= 3) @@ -909,31 +909,31 @@ int32_t BlastBondGeneratorImpl::createFullBondListExactInternal(uint32_t meshCou return mResultBondDescs.size(); } -int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector& hull0, - const std::vector& hull1, const CollisionHull& cHull0, - const CollisionHull& cHull1, PxBounds3 bound0, - PxBounds3 bound1, NvBlastBond& resultBond, float overlapping) +int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector& hull0, + const std::vector& hull1, const CollisionHull& cHull0, + const CollisionHull& cHull1, NvBounds3 bound0, + NvBounds3 bound1, NvBlastBond& resultBond, float overlapping) { TriangleProcessor trProcessor; Separation separation; - importerHullsInProximityApexFree(hull0.size(), hull0.data(), bound0, PxTransform(PxIdentity), PxVec3(1, 1, 1), - hull1.size(), hull1.data(), bound1, PxTransform(PxIdentity), PxVec3(1, 1, 1), + importerHullsInProximityApexFree(hull0.size(), hull0.data(), bound0, NvTransform(), NvVec3(1, 1, 1), + hull1.size(), hull1.data(), bound1, NvTransform(), NvVec3(1, 1, 1), 0.000, &separation); if (std::isnan(separation.plane.d)) { importerHullsInProximityApexFree( - hull0.size(), hull0.data(), bound0, PxTransform(PxVec3(0.000001f, 0.000001f, 0.000001f)), PxVec3(1, 1, 1), - hull1.size(), hull1.data(), bound1, PxTransform(PxIdentity), PxVec3(1, 1, 1), 0.000, &separation); + hull0.size(), hull0.data(), bound0, NvTransform(NvVec3(0.000001f, 0.000001f, 0.000001f)), NvVec3(1, 1, 1), + hull1.size(), hull1.data(), bound1, NvTransform(), NvVec3(1, 1, 1), 0.000, &separation); if (std::isnan(separation.plane.d)) { return 1; } } - PxPlane pl = separation.plane; - std::vector ifsPoints[2]; + NvPlane pl = separation.plane; + std::vector ifsPoints[2]; float dst[2][2]; @@ -941,12 +941,12 @@ int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector PxAbs(dst[0][0])) + float d = pl.distance(toNvShared(cHull0.points[p])); + if (NvAbs(d) > NvAbs(dst[0][0])) { dst[0][0] = d; } - if (PxAbs(d) < PxAbs(dst[0][1])) + if (NvAbs(d) < NvAbs(dst[0][1])) { dst[0][1] = d; } @@ -956,12 +956,12 @@ int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector PxAbs(dst[1][0])) + float d = pl.distance(toNvShared(cHull0.points[p])); + if (NvAbs(d) > NvAbs(dst[1][0])) { dst[1][0] = d; } - if (PxAbs(d) < PxAbs(dst[1][1])) + if (NvAbs(d) < NvAbs(dst[1][1])) { dst[1][1] = d; } @@ -974,13 +974,13 @@ int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector convexes[2]; + std::vector convexes[2]; trProcessor.buildConvexHull(ifsPoints[0], convexes[0], pl.n); trProcessor.buildConvexHull(ifsPoints[1], convexes[1], pl.n); float areas[2] = { 0, 0 }; - PxVec3 centroids[2] = { PxVec3(0, 0, 0), PxVec3(0, 0, 0) }; + NvVec3 centroids[2] = { NvVec3(0, 0, 0), NvVec3(0, 0, 0) }; for (uint32_t cv = 0; cv < 2; ++cv) { @@ -1034,7 +1034,7 @@ int32_t BlastBondGeneratorImpl::createBondForcedInternal(const std::vector backwardChunks; float area = 0; - PxVec3 normal(0, 0, 0); - PxVec3 centroid(0, 0, 0); + NvVec3 normal(0, 0, 0); + NvVec3 centroid(0, 0, 0); int32_t collected = 0; - PxBounds3 bb = PxBounds3::empty(); + NvBounds3 bb = NvBounds3::empty(); chunkId = -1; planeId = bondDescriptors[0].m_planeIndex; @@ -1165,8 +1165,8 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool bb.setEmpty(); collected = 0; area = 0; - normal = PxVec3(0, 0, 0); - centroid = PxVec3(0, 0, 0); + normal = NvVec3(0, 0, 0); + centroid = NvVec3(0, 0, 0); if (i != bondDescriptors.size()) chunkId = bondDescriptors[i].m_chunkId; } @@ -1235,13 +1235,13 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool collected++; auto& trRef = trianglesBuffer[chunkId].get()[bondDescriptors[i].triangleIndex]; normal += getNormal(trRef); - centroid += toPxShared(trRef.a.p); - centroid += toPxShared(trRef.b.p); - centroid += toPxShared(trRef.c.p); + centroid += toNvShared(trRef.a.p); + centroid += toNvShared(trRef.b.p); + centroid += toNvShared(trRef.c.p); - bb.include(toPxShared(trRef.a.p)); - bb.include(toPxShared(trRef.b.p)); - bb.include(toPxShared(trRef.c.p)); + bb.include(toNvShared(trRef.a.p)); + bb.include(toNvShared(trRef.b.p)); + bb.include(toNvShared(trRef.c.p)); } } @@ -1405,12 +1405,12 @@ int32_t BlastBondGeneratorImpl::createBondBetweenMeshes(uint32_t meshACount, con cHull[0] = mConvexMeshBuilder->buildCollisionGeometry(chunksPoints1.size(), chunksPoints1.data()); cHull[1] = mConvexMeshBuilder->buildCollisionGeometry(chunksPoints2.size(), chunksPoints2.data()); - std::vector hullPoints[2]; + std::vector hullPoints[2]; hullPoints[0].resize(cHull[0]->pointsCount); hullPoints[1].resize(cHull[1]->pointsCount); - PxBounds3 bb[2]; + NvBounds3 bb[2]; bb[0].setEmpty(); bb[1].setEmpty(); @@ -1418,7 +1418,7 @@ int32_t BlastBondGeneratorImpl::createBondBetweenMeshes(uint32_t meshACount, con { for (uint32_t i = 0; i < cHull[cv]->pointsCount; ++i) { - hullPoints[cv][i] = toPxShared(cHull[cv]->points[i]); + hullPoints[cv][i] = toNvShared(cHull[cv]->points[i]); bb[cv].include(hullPoints[cv][i]); } } diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.h index ca08fc30a..97f591ab6 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBondGeneratorImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H @@ -30,7 +30,7 @@ #include "NvBlastExtAuthoringBondGenerator.h" #include "NvBlastExtAuthoringFractureTool.h" -#include +#include "NvPlane.h" #include #include #include @@ -74,8 +74,8 @@ class BlastBondGeneratorImpl : public BlastBondGenerator private: float processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc, const CollisionHull* hull1, const CollisionHull* hull2, - const std::vector& hull1p, const std::vector& hull2p, - physx::PxVec3& normal, physx::PxVec3& centroid, float maxRelSeparation); + const std::vector& hull1p, const std::vector& hull2p, + nvidia::NvVec3& normal, nvidia::NvVec3& centroid, float maxRelSeparation); int32_t createFullBondListAveraged( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, const CollisionHull** chunkHulls, const bool* supportFlags, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf, std::set >* pairNotToTest = nullptr); @@ -83,8 +83,8 @@ class BlastBondGeneratorImpl : public BlastBondGenerator const bool* supportFlags, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf); int32_t createFullBondListExactInternal(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, std::vector& planeTriangleMapping , NvBlastBondDesc*& resultBondDescs); - int32_t createBondForcedInternal( const std::vector& hull0, const std::vector& hull1,const CollisionHull& cHull0, - const CollisionHull& cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, NvBlastBond& resultBond, float overlapping); + int32_t createBondForcedInternal( const std::vector& hull0, const std::vector& hull1,const CollisionHull& cHull0, + const CollisionHull& cHull1, nvidia::NvBounds3 bound0, nvidia::NvBounds3 bound1, NvBlastBond& resultBond, float overlapping); void buildGeometryCache(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry); void resetGeometryCache(); @@ -95,8 +95,8 @@ class BlastBondGeneratorImpl : public BlastBondGenerator std::vector mPlaneCache; std::vector mCHullCache; - std::vector > mHullsPointsCache; - std::vector mBoundsCache; + std::vector > mHullsPointsCache; + std::vector mBoundsCache; }; diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.cpp index 91da3850b..5400d47f3 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastGlobals.h" @@ -30,13 +30,13 @@ #include "NvBlastExtAuthoringBooleanTool.h" #include "NvBlastExtAuthoringMeshImpl.h" #include "NvBlastExtAuthoringAcceleratorImpl.h" -#include +#include #include #include #include -using physx::PxBounds3; +using nvidia::NvBounds3; namespace Nv { @@ -280,7 +280,7 @@ int32_t shadowing02(const NvcVec3& p, const Vertex* points, const Edge* edges, i NvcVec3 vc = p2.p - p1.p; float t = 0; t = (std::abs(vc.x) > std::abs(vc.y)) ? (p.x - p1.p.x) / vc.x : (p.y - p1.p.y) / vc.y; - t = physx::PxClamp(t, 0.0f, 1.0f); + t = nvidia::NvClamp(t, 0.0f, 1.0f); z = t * vc.z + p1.p.z; hasOnFacetPoint = true; @@ -337,7 +337,7 @@ int32_t shadowing20(const NvcVec3& p, const Vertex* points, const Edge* edges, i NvcVec3 vc = p2.p - p1.p; float t = 0; t = (std::abs(vc.x) > std::abs(vc.y)) ? (p.x - p1.p.x) / vc.x : (p.y - p1.p.y) / vc.y; - t = physx::PxClamp(t, 0.0f, 1.0f); + t = nvidia::NvClamp(t, 0.0f, 1.0f); hasOnFacetPoint = true; onFacetPoint.p.x = p.x; @@ -937,7 +937,7 @@ void BooleanEvaluator::collectRetainedPartsFromA(const BooleanConf& mode) int32_t inclusionValue = 0; const Vertex* vertices = mMeshA->getVertices(); VertexComparator comp; - const PxBounds3& bMeshBoudning = toPxShared(mMeshB->getBoundingBox()); + const NvBounds3& bMeshBoudning = toNvShared(mMeshB->getBoundingBox()); const Edge* facetEdges = mMeshA->getEdges(); std::vector retainedStartVertices; std::vector retainedEndVertices; @@ -955,7 +955,7 @@ void BooleanEvaluator::collectRetainedPartsFromA(const BooleanConf& mode) int32_t lastPos = static_cast(retainedEndVertices.size()); /* Test start and end point of edge against mesh */ - if (bMeshBoudning.contains(toPxShared(vertices[facetEdges->s].p))) + if (bMeshBoudning.contains(toNvShared(vertices[facetEdges->s].p))) { statusValue = vertexMeshStatus03(vertices[facetEdges->s].p, mMeshB); } @@ -982,7 +982,7 @@ void BooleanEvaluator::collectRetainedPartsFromA(const BooleanConf& mode) } } - if (bMeshBoudning.contains(toPxShared(vertices[facetEdges->e].p))) + if (bMeshBoudning.contains(toNvShared(vertices[facetEdges->e].p))) { statusValue = vertexMeshStatus03(vertices[facetEdges->e].p, mMeshB); } @@ -1068,7 +1068,7 @@ void BooleanEvaluator::collectRetainedPartsFromB(const BooleanConf& mode) int32_t inclusionValue = 0; const Vertex* vertices = mMeshB->getVertices(); VertexComparator comp; - const PxBounds3& aMeshBoudning = toPxShared(mMeshA->getBoundingBox()); + const NvBounds3& aMeshBoudning = toNvShared(mMeshA->getBoundingBox()); const Edge* facetEdges = mMeshB->getEdges(); std::vector retainedStartVertices; std::vector retainedEndVertices; @@ -1084,7 +1084,7 @@ void BooleanEvaluator::collectRetainedPartsFromB(const BooleanConf& mode) NvcVec3 compositeEndPoint = {0, 0, 0}; NvcVec3 compositeStartPoint = {0, 0, 0}; int32_t lastPos = static_cast(retainedEndVertices.size()); - if (aMeshBoudning.contains(toPxShared(vertices[facetEdges->s].p))) + if (aMeshBoudning.contains(toNvShared(vertices[facetEdges->s].p))) { statusValue = vertexMeshStatus30(vertices[facetEdges->s].p, mMeshA); } @@ -1112,7 +1112,7 @@ void BooleanEvaluator::collectRetainedPartsFromB(const BooleanConf& mode) } } - if (aMeshBoudning.contains(toPxShared(vertices[facetEdges->e].p))) + if (aMeshBoudning.contains(toNvShared(vertices[facetEdges->e].p))) { statusValue = vertexMeshStatus30(vertices[facetEdges->e].p, mMeshA); } diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.h index 915d000b3..7b46e28f3 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringBooleanToolImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGBOOLEANTOOLIMPL_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.cpp index 8d678e84c..bcfeb2c8f 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include #include "NvBlastExtAuthoringCollisionBuilderImpl.h" @@ -32,11 +32,11 @@ #include #include #include -#include +#include #include #include -using namespace physx; +using namespace nvidia; namespace Nv { @@ -48,17 +48,17 @@ namespace Blast void trimCollisionGeometry(ConvexMeshBuilder& cmb, uint32_t chunksCount, CollisionHull** in, const uint32_t* chunkDepth) { - std::vector > chunkMidplanes(chunksCount); - std::vector centers(chunksCount); - std::vector hullsBounds(chunksCount); + std::vector > chunkMidplanes(chunksCount); + std::vector centers(chunksCount); + std::vector hullsBounds(chunksCount); for (uint32_t i = 0; i < chunksCount; ++i) { hullsBounds[i].setEmpty(); - centers[i] = PxVec3(0, 0, 0); + centers[i] = NvVec3(0, 0, 0); for (uint32_t p = 0; p < in[i]->pointsCount; ++p) { - centers[i] += toPxShared(in[i]->points[p]); - hullsBounds[i].include(toPxShared(in[i]->points[p])); + centers[i] += toNvShared(in[i]->points[p]); + hullsBounds[i].include(toNvShared(in[i]->points[p])); } centers[i] = hullsBounds[i].getCenter(); } @@ -72,47 +72,47 @@ void trimCollisionGeometry(ConvexMeshBuilder& cmb, uint32_t chunksCount, Collisi { continue; } - if (importerHullsInProximityApexFree(in[hull]->pointsCount, toPxShared(in[hull]->points), hullsBounds[hull], - PxTransform(PxIdentity), PxVec3(1, 1, 1), in[hull2]->pointsCount, - toPxShared(in[hull2]->points), hullsBounds[hull2], PxTransform(PxIdentity), - PxVec3(1, 1, 1), 0.0, ¶ms) == false) + if (importerHullsInProximityApexFree(in[hull]->pointsCount, toNvShared(in[hull]->points), hullsBounds[hull], + NvTransform(), NvVec3(1, 1, 1), in[hull2]->pointsCount, + toNvShared(in[hull2]->points), hullsBounds[hull2], NvTransform(), + NvVec3(1, 1, 1), 0.0, ¶ms) == false) { continue; } - PxVec3 c1 = centers[hull]; - PxVec3 c2 = centers[hull2]; + NvVec3 c1 = centers[hull]; + NvVec3 c2 = centers[hull2]; float d = FLT_MAX; - PxVec3 n1; - PxVec3 n2; + NvVec3 n1; + NvVec3 n2; for (uint32_t p = 0; p < in[hull]->pointsCount; ++p) { - float ld = (toPxShared(in[hull]->points[p]) - c2).magnitude(); + float ld = (toNvShared(in[hull]->points[p]) - c2).magnitude(); if (ld < d) { - n1 = toPxShared(in[hull]->points[p]); + n1 = toNvShared(in[hull]->points[p]); d = ld; } } d = FLT_MAX; for (uint32_t p = 0; p < in[hull2]->pointsCount; ++p) { - float ld = (toPxShared(in[hull2]->points[p]) - c1).magnitude(); + float ld = (toNvShared(in[hull2]->points[p]) - c1).magnitude(); if (ld < d) { - n2 = toPxShared(in[hull2]->points[p]); + n2 = toNvShared(in[hull2]->points[p]); d = ld; } } - PxVec3 dir = c2 - c1; + NvVec3 dir = c2 - c1; - PxPlane pl = PxPlane((n1 + n2) * 0.5, dir.getNormalized()); + NvPlane pl = NvPlane((n1 + n2) * 0.5, dir.getNormalized()); chunkMidplanes[hull].push_back(pl); - PxPlane pl2 = PxPlane((n1 + n2) * 0.5, -dir.getNormalized()); + NvPlane pl2 = NvPlane((n1 + n2) * 0.5, -dir.getNormalized()); chunkMidplanes[hull2].push_back(pl2); } } - std::vector hPoints; + std::vector hPoints; for (uint32_t i = 0; i < chunksCount; ++i) { std::vector facets; @@ -141,10 +141,10 @@ void trimCollisionGeometry(ConvexMeshBuilder& cmb, uint32_t chunksCount, Collisi Mesh* hullMesh = new MeshImpl(vertices.data(), edges.data(), facets.data(), vertices.size(), edges.size(), facets.size()); BooleanEvaluator evl; //I think the material ID is unused for collision meshes so harcoding MATERIAL_INTERIOR is ok - Mesh* cuttingMesh = getCuttingBox(PxVec3(0, 0, 0), PxVec3(0, 0, 1), 40, 0, kMaterialInteriorId); + Mesh* cuttingMesh = getCuttingBox(NvVec3(0, 0, 0), NvVec3(0, 0, 1), 40, 0, kMaterialInteriorId); for (uint32_t p = 0; p < chunkMidplanes[i].size(); ++p) { - PxPlane& pl = chunkMidplanes[i][p]; + NvPlane& pl = chunkMidplanes[i][p]; setCuttingBox(pl.pointInPlane(), pl.n.getNormalized(), cuttingMesh, 60, 0); evl.performFastCutting(hullMesh, cuttingMesh, BooleanConfigurations::BOOLEAN_DIFFERENCE()); Mesh* result = evl.createNewMesh(); @@ -164,14 +164,14 @@ void trimCollisionGeometry(ConvexMeshBuilder& cmb, uint32_t chunksCount, Collisi hPoints.resize(hullMesh->getVerticesCount()); for (uint32_t v = 0; v < hullMesh->getVerticesCount(); ++v) { - hPoints[v] = toPxShared(hullMesh->getVertices()[v].p); + hPoints[v] = toNvShared(hullMesh->getVertices()[v].p); } delete hullMesh; if (in[i] != nullptr) { delete in[i]; } - in[i] = cmb.buildCollisionGeometry(hPoints.size(), fromPxShared(hPoints.data())); + in[i] = cmb.buildCollisionGeometry(hPoints.size(), fromNvShared(hPoints.data())); } } @@ -184,13 +184,13 @@ int32_t buildMeshConvexDecomposition(ConvexMeshBuilder& cmb, const Triangle* mes uint32_t indx = 0; uint32_t indxCoord = 0; - PxBounds3 chunkBound = PxBounds3::empty(); + NvBounds3 chunkBound = NvBounds3::empty(); for (uint32_t i = 0; i < triangleCount; ++i) { for (auto& t : { mesh[i].a.p , mesh[i].b.p , mesh[i].c.p }) { - chunkBound.include(toPxShared(t)); + chunkBound.include(toNvShared(t)); coords[indxCoord] = t.x; coords[indxCoord + 1] = t.y; coords[indxCoord + 2] = t.z; @@ -202,7 +202,7 @@ int32_t buildMeshConvexDecomposition(ConvexMeshBuilder& cmb, const Triangle* mes indx += 3; } - PxVec3 rsc = chunkBound.getDimensions(); + NvVec3 rsc = chunkBound.getDimensions(); for (uint32_t i = 0; i < coords.size(); i += 3) { @@ -230,16 +230,16 @@ int32_t buildMeshConvexDecomposition(ConvexMeshBuilder& cmb, const Triangle* mes { VHACD::IVHACD::ConvexHull hl; decomposer->GetConvexHull(i, hl); - std::vector vertices; + std::vector vertices; for (uint32_t v = 0; v < hl.m_nPoints; ++v) { - vertices.push_back(PxVec3(hl.m_points[v * 3], hl.m_points[v * 3 + 1], hl.m_points[v * 3 + 2])); + vertices.push_back(NvVec3(hl.m_points[v * 3], hl.m_points[v * 3 + 1], hl.m_points[v * 3 + 2])); vertices.back().x = vertices.back().x * rsc.x + chunkBound.minimum.x; vertices.back().y = vertices.back().y * rsc.y + chunkBound.minimum.y; vertices.back().z = vertices.back().z * rsc.z + chunkBound.minimum.z; } - convexes[i] = cmb.buildCollisionGeometry(vertices.size(), fromPxShared(vertices.data())); + convexes[i] = cmb.buildCollisionGeometry(vertices.size(), fromNvShared(vertices.data())); } //VHACD::~VHACD called from release does nothign and does not call Clean() decomposer->Clean(); diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.h index d3efc865d..30a1456a1 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCollisionBuilderImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGCOLLISIONBUILDERIIMPL_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.cpp index 3384a86e8..498b7f2f2 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.cpp @@ -22,15 +22,15 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastGlobals.h" #include -#include -#include -#include -#include +#include "NvBounds3.h" +#include "NvMath.h" +#include "NvAssert.h" +#include #include "NvBlastExtAuthoringCutoutImpl.h" #include #include @@ -44,43 +44,43 @@ using namespace Nv::Blast; // Unsigned modulus -PX_INLINE uint32_t mod(int32_t n, uint32_t modulus) + uint32_t mod(int32_t n, uint32_t modulus) { const int32_t d = n/(int32_t)modulus; const int32_t m = n - d*(int32_t)modulus; return m >= 0 ? (uint32_t)m : (uint32_t)m + modulus; } -PX_INLINE float square(float x) + float square(float x) { return x * x; } // 2D cross product -PX_INLINE float dotXY(const physx::PxVec3& v, const physx::PxVec3& w) + float dotXY(const nvidia::NvVec3& v, const nvidia::NvVec3& w) { return v.x * w.x + v.y * w.y; } // Z-component of cross product -PX_INLINE float crossZ(const physx::PxVec3& v, const physx::PxVec3& w) + float crossZ(const nvidia::NvVec3& v, const nvidia::NvVec3& w) { return v.x * w.y - v.y * w.x; } // z coordinates may be used to store extra info - only deal with x and y -PX_INLINE float perpendicularDistanceSquared(const physx::PxVec3& v0, const physx::PxVec3& v1, const physx::PxVec3& v2) + float perpendicularDistanceSquared(const nvidia::NvVec3& v0, const nvidia::NvVec3& v1, const nvidia::NvVec3& v2) { - const physx::PxVec3 base = v2 - v0; - const physx::PxVec3 leg = v1 - v0; + const nvidia::NvVec3 base = v2 - v0; + const nvidia::NvVec3 leg = v1 - v0; const float baseLen2 = dotXY(base, base); - return baseLen2 > PX_EPS_F32 * dotXY(leg, leg) ? square(crossZ(base, leg)) / baseLen2 : 0.0f; + return baseLen2 > NV_EPS_F32 * dotXY(leg, leg) ? square(crossZ(base, leg)) / baseLen2 : 0.0f; } // z coordinates may be used to store extra info - only deal with x and y -PX_INLINE float perpendicularDistanceSquared(const std::vector< physx::PxVec3 >& cutout, uint32_t index) + float perpendicularDistanceSquared(const std::vector< nvidia::NvVec3 >& cutout, uint32_t index) { const uint32_t size = cutout.size(); return perpendicularDistanceSquared(cutout[(index + size - 1) % size], cutout[index], cutout[(index + 1) % size]); @@ -97,7 +97,7 @@ struct BoundsRep aabb.setEmpty(); } - physx::PxBounds3 aabb; + nvidia::NvBounds3 aabb; uint32_t type; // By default only reports if subtypes are the same, configurable. Valid range {0...7} }; @@ -255,7 +255,7 @@ class IndexBank void setMaxCapacity(uint32_t inMaxCapacity) { // Cannot drop below current capacity, nor above max set by data types - maxCapacity = PxClamp(inMaxCapacity, capacity(), calculateMaxCapacity()); + maxCapacity = nvidia::NvClamp(inMaxCapacity, capacity(), calculateMaxCapacity()); } uint32_t capacity() const @@ -314,8 +314,8 @@ class IndexBank { return false; } - reserve(PxClamp(capacity() * 2, (uint32_t)1, maxCapacity)); - PX_ASSERT(freeCount() > 0); + reserve(nvidia::NvClamp(capacity() * 2, (uint32_t)1, maxCapacity)); + NVBLAST_ASSERT(freeCount() > 0); } index = indices[indexCount++]; return true; @@ -392,8 +392,8 @@ class IndexBank { return false; } - reserve(physx::PxClamp(2 * (uint32_t)index, (uint32_t)1, maxCapacity)); - PX_ASSERT(isValid(index)); + reserve(nvidia::NvClamp(2 * (uint32_t)index, (uint32_t)1, maxCapacity)); + NVBLAST_ASSERT(isValid(index)); } return !isUsed(index); } @@ -517,7 +517,7 @@ void boundsCalculateOverlaps(std::vector& overlaps, Bounds3Axes axesToU for (uint32_t i = 0; i < boundsCount; ++i, boundsPtr += boundsByteStride) { const BoundsRep& boundsRep = *(const BoundsRep*)boundsPtr; - const physx::PxBounds3& box = boundsRep.aabb; + const nvidia::NvBounds3& box = boundsRep.aabb; float min = box.minimum[axisNum]; float max = box.maximum[axisNum]; if (min >= max) @@ -600,7 +600,7 @@ void boundsCalculateOverlaps(std::vector& overlaps, Bounds3Axes axesToU { const BoundsRep& boundsRep = *(const BoundsRep*)((uint8_t*)bounds + index*boundsByteStride); const uint8_t interaction = (uint8_t)((interactionBits >> (boundsRep.type << 3)) & 0xFF); - const physx::PxBounds3& box = boundsRep.aabb; + const nvidia::NvBounds3& box = boundsRep.aabb; // These conditionals compile out with optimization: if (D > 1) { @@ -620,7 +620,7 @@ void boundsCalculateOverlaps(std::vector& overlaps, Bounds3Axes axesToU const BoundsRep& overlapBoundsRep = *(const BoundsRep*)((uint8_t*)bounds + overlapIndex*boundsByteStride); if ((interaction >> overlapBoundsRep.type) & 1) { - const physx::PxBounds3& overlapBox = overlapBoundsRep.aabb; + const nvidia::NvBounds3& overlapBox = overlapBoundsRep.aabb; // These conditionals compile out with optimization: if (D > 1) { @@ -643,14 +643,14 @@ void boundsCalculateOverlaps(std::vector& overlaps, Bounds3Axes axesToU overlaps.push_back(pair); } } - PX_ASSERT(localOverlaps.isValid(index)); - PX_ASSERT(!localOverlaps.isUsed(index)); + NVBLAST_ASSERT(localOverlaps.isValid(index)); + NVBLAST_ASSERT(!localOverlaps.isUsed(index)); localOverlaps.use(index); } else { // Remove local overlap - PX_ASSERT(localOverlaps.isValid(index)); + NVBLAST_ASSERT(localOverlaps.isValid(index)); localOverlaps.free(index); } } @@ -916,14 +916,14 @@ class BitMap }; -PX_INLINE int32_t taxicabSine(int32_t i) + int32_t taxicabSine(int32_t i) { // 0 1 1 1 0 -1 -1 -1 return (int32_t)((0x01A9 >> ((i & 7) << 1)) & 3) - 1; } // Only looks at x and y components -PX_INLINE bool directionsXYOrderedCCW(const physx::PxVec3& d0, const physx::PxVec3& d1, const physx::PxVec3& d2) + bool directionsXYOrderedCCW(const nvidia::NvVec3& d0, const nvidia::NvVec3& d1, const nvidia::NvVec3& d2) { const bool ccw02 = crossZ(d0, d2) > 0.0f; const bool ccw01 = crossZ(d0, d1) > 0.0f; @@ -931,7 +931,7 @@ PX_INLINE bool directionsXYOrderedCCW(const physx::PxVec3& d0, const physx::PxVe return ccw02 ? ccw01 && ccw21 : ccw01 || ccw21; } -PX_INLINE std::pair compareTraceSegmentToLineSegment(const std::vector& trace, int _start, int delta, float distThreshold, uint32_t width, uint32_t height, bool hasBorder) + std::pair compareTraceSegmentToLineSegment(const std::vector& trace, int _start, int delta, float distThreshold, uint32_t width, uint32_t height, bool hasBorder) { if (delta < 2) { @@ -954,12 +954,12 @@ PX_INLINE std::pair compareTraceSegmentToLineSegment(const std::ve { return std::make_pair(0.0f, 0.0f); } - return std::make_pair(PX_MAX_F32, PX_MAX_F32); + return std::make_pair(NV_MAX_F32, NV_MAX_F32); } - physx::PxVec3 orig((float)trace[start].x, (float)trace[start].y, 0); - physx::PxVec3 dest((float)trace[end].x, (float)trace[end].y, 0); - physx::PxVec3 dir = dest - orig; + nvidia::NvVec3 orig((float)trace[start].x, (float)trace[start].y, 0); + nvidia::NvVec3 dest((float)trace[end].x, (float)trace[end].y, 0); + nvidia::NvVec3 dir = dest - orig; dir.normalize(); @@ -976,10 +976,10 @@ PX_INLINE std::pair compareTraceSegmentToLineSegment(const std::ve { break; } - physx::PxVec3 testDisp((float)trace[start].x, (float)trace[start].y, 0); + nvidia::NvVec3 testDisp((float)trace[start].x, (float)trace[start].y, 0); testDisp -= orig; - aveError += (float)(physx::PxAbs(testDisp.x * dir.y - testDisp.y * dir.x) >= distThreshold); - aveError2 += physx::PxAbs(testDisp.x * dir.y - testDisp.y * dir.x); + aveError += (float)(nvidia::NvAbs(testDisp.x * dir.y - testDisp.y * dir.x) >= distThreshold); + aveError2 += nvidia::NvAbs(testDisp.x * dir.y - testDisp.y * dir.x); } aveError /= delta - 1; @@ -991,20 +991,20 @@ PX_INLINE std::pair compareTraceSegmentToLineSegment(const std::ve // Segment i starts at vi and ends at vi+ei // Tests for overlap in segments' projection onto xy plane // Returns distance between line segments. (Negative value indicates overlap.) -PX_INLINE float segmentsIntersectXY(const physx::PxVec3& v0, const physx::PxVec3& e0, const physx::PxVec3& v1, const physx::PxVec3& e1) + float segmentsIntersectXY(const nvidia::NvVec3& v0, const nvidia::NvVec3& e0, const nvidia::NvVec3& v1, const nvidia::NvVec3& e1) { - const physx::PxVec3 dv = v1 - v0; + const nvidia::NvVec3 dv = v1 - v0; - physx::PxVec3 d0 = e0; + nvidia::NvVec3 d0 = e0; d0.normalize(); - physx::PxVec3 d1 = e1; + nvidia::NvVec3 d1 = e1; d1.normalize(); const float c10 = crossZ(dv, d0); const float d10 = crossZ(e1, d0); - float a1 = physx::PxAbs(c10); - float b1 = physx::PxAbs(c10 + d10); + float a1 = nvidia::NvAbs(c10); + float b1 = nvidia::NvAbs(c10 + d10); if (c10 * (c10 + d10) < 0.0f) { @@ -1021,8 +1021,8 @@ PX_INLINE float segmentsIntersectXY(const physx::PxVec3& v0, const physx::PxVec3 const float c01 = crossZ(d1, dv); const float d01 = crossZ(e0, d1); - float a2 = physx::PxAbs(c01); - float b2 = physx::PxAbs(c01 + d01); + float a2 = nvidia::NvAbs(c01); + float b2 = nvidia::NvAbs(c01 + d01); if (c01 * (c01 + d01) < 0.0f) { @@ -1036,7 +1036,7 @@ PX_INLINE float segmentsIntersectXY(const physx::PxVec3& v0, const physx::PxVec3 } } - return physx::PxMax(physx::PxMin(a1, b1), physx::PxMin(a2, b2)); + return nvidia::NvMax(nvidia::NvMin(a1, b1), nvidia::NvMin(a2, b2)); } // If point projects onto segment, returns true and proj is set to a @@ -1044,10 +1044,10 @@ PX_INLINE float segmentsIntersectXY(const physx::PxVec3& v0, const physx::PxVec3 // the projection lies, and dist2 is set to the distance squared from point to // the line segment. Otherwise, returns false. // Note, if v1 = v0, then the function returns true with proj = 0. -PX_INLINE bool projectOntoSegmentXY(float& proj, float& dist2, const physx::PxVec3& point, const physx::PxVec3& v0, const physx::PxVec3& v1, float margin) + bool projectOntoSegmentXY(float& proj, float& dist2, const nvidia::NvVec3& point, const nvidia::NvVec3& v0, const nvidia::NvVec3& v1, float margin) { - const physx::PxVec3 seg = v1 - v0; - const physx::PxVec3 x = point - v0; + const nvidia::NvVec3 seg = v1 - v0; + const nvidia::NvVec3 x = point - v0; const float seg2 = dotXY(seg, seg); const float d = dotXY(x, seg); @@ -1080,7 +1080,7 @@ PX_INLINE bool projectOntoSegmentXY(float& proj, float& dist2, const physx::PxVe return true; } -PX_INLINE bool isOnBorder(const physx::PxVec3& v, uint32_t width, uint32_t height) + bool isOnBorder(const nvidia::NvVec3& v, uint32_t width, uint32_t height) { return v.x < -0.5f || v.x >= width - 0.5f || v.y < -0.5f || v.y >= height - 0.5f; } @@ -1131,13 +1131,13 @@ static void createCutout(Nv::Blast::Cutout& cutout, const std::vector& { smoothingGroups.push_back(cutout.vertices.size()); } - cutout.vertices.push_back(physx::PxVec3((float)trace[start].x + pixelCenterOffset, (float)trace[start].y + pixelCenterOffset, 0)); + cutout.vertices.push_back(nvidia::NvVec3((float)trace[start].x + pixelCenterOffset, (float)trace[start].y + pixelCenterOffset, 0)); // Now complete the loop while ((size -= delta) > 0) { start = (start + delta) % traceSize; - cutout.vertices.push_back(physx::PxVec3((float)trace[start].x + pixelCenterOffset, (float)trace[start].y + pixelCenterOffset, 0)); + cutout.vertices.push_back(nvidia::NvVec3((float)trace[start].x + pixelCenterOffset, (float)trace[start].y + pixelCenterOffset, 0)); if (size == 1) { delta = 1; @@ -1173,13 +1173,13 @@ static void createCutout(Nv::Blast::Cutout& cutout, const std::vector& const uint32_t i1 = (i + 1) % size; const uint32_t i2 = (i + 2) % size; const uint32_t i3 = (i + 3) % size; - physx::PxVec3& v0 = cutout.vertices[i]; - physx::PxVec3& v1 = cutout.vertices[i1]; - physx::PxVec3& v2 = cutout.vertices[i2]; - physx::PxVec3& v3 = cutout.vertices[i3]; - const physx::PxVec3 d0 = v1 - v0; - const physx::PxVec3 d1 = v2 - v1; - const physx::PxVec3 d2 = v3 - v2; + nvidia::NvVec3& v0 = cutout.vertices[i]; + nvidia::NvVec3& v1 = cutout.vertices[i1]; + nvidia::NvVec3& v2 = cutout.vertices[i2]; + nvidia::NvVec3& v3 = cutout.vertices[i3]; + const nvidia::NvVec3 d0 = v1 - v0; + const nvidia::NvVec3 d1 = v2 - v1; + const nvidia::NvVec3 d2 = v3 - v2; const float den = crossZ(d0, d2); if (den != 0) { @@ -1257,7 +1257,7 @@ static void splitTJunctions(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold { bounds[edgeCount].aabb.include(cutout.vertices[j]); bounds[edgeCount].aabb.include(cutout.vertices[(j + 1) % cutoutSize]); - PX_ASSERT(!bounds[edgeCount].aabb.isEmpty()); + NVBLAST_ASSERT(!bounds[edgeCount].aabb.isEmpty()); bounds[edgeCount].aabb.fattenFast(threshold); cutoutMap[edgeCount].set((int32_t)i, (int32_t)j); ++edgeCount; @@ -1336,9 +1336,9 @@ static void splitTJunctions(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold } Nv::Blast::Cutout& cutout = cutoutSet.cutoutLoops[(uint32_t)newVertex.vertex.cutoutIndex]; const float proj = lastProj > 0.0f ? newVertex.edgeProj / lastProj : 0.0f; - const physx::PxVec3 pos = (1.0f - proj) * cutout.vertices[(uint32_t)newVertex.vertex.vertIndex] + const nvidia::NvVec3 pos = (1.0f - proj) * cutout.vertices[(uint32_t)newVertex.vertex.vertIndex] + proj * cutout.vertices[(uint32_t)(newVertex.vertex.vertIndex + 1) % cutout.vertices.size()]; - cutout.vertices.push_back(physx::PxVec3()); + cutout.vertices.push_back(nvidia::NvVec3()); for (uint32_t n = cutout.vertices.size(); --n > (uint32_t)newVertex.vertex.vertIndex + 1;) { cutout.vertices[n] = cutout.vertices[n - 1]; @@ -1370,10 +1370,10 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, Nv::Blast::Cutout& cutout = cutoutSet.cutoutLoops[i]; for (uint32_t j = 0; j < cutout.vertices.size(); ++j) { - physx::PxVec3& vertex = cutout.vertices[j]; - physx::PxVec3 min(vertex.x - threshold, vertex.y - threshold, 0.0f); - physx::PxVec3 max(vertex.x + threshold, vertex.y + threshold, 0.0f); - bounds[vertexCount].aabb = physx::PxBounds3(min, max); + nvidia::NvVec3& vertex = cutout.vertices[j]; + nvidia::NvVec3 min(vertex.x - threshold, vertex.y - threshold, 0.0f); + nvidia::NvVec3 max(vertex.x + threshold, vertex.y + threshold, 0.0f); + bounds[vertexCount].aabb = nvidia::NvBounds3(min, max); cutoutMap[vertexCount].set((int32_t)i, (int32_t)j); ++vertexCount; } @@ -1411,7 +1411,7 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, continue; } const CutoutVert& cutoutVert0 = cutoutMap[(uint32_t)overlaps[start].i0]; - const physx::PxVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; + const nvidia::NvVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; const bool isOnBorder0 = !cutoutSet.periodic && isOnBorder(vert0, width, height); for (uint32_t j = start; j < stop; ++j) { @@ -1421,7 +1421,7 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, // No pairs from the same cutout continue; } - const physx::PxVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert1.cutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; + const nvidia::NvVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert1.cutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; const bool isOnBorder1 = !cutoutSet.periodic && isOnBorder(vert1, width, height); if (isOnBorder0 != isOnBorder1) { @@ -1462,14 +1462,14 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, continue; } const CutoutVert& cutoutVert0 = cutoutMap[(uint32_t)pairs[start].i0]; - const physx::PxVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; + const nvidia::NvVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; uint32_t groupStart = start; while (groupStart < stop) { uint32_t next = groupStart; const CutoutVert& cutoutVert1 = cutoutMap[(uint32_t)pairs[next].i1]; int32_t currentOtherCutoutIndex = cutoutVert1.cutoutIndex; - const physx::PxVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)currentOtherCutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; + const nvidia::NvVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)currentOtherCutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; uint32_t keep = groupStart; float minDist2 = (vert0 - vert1).magnitudeSquared(); while (++next < stop) @@ -1479,7 +1479,7 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, { break; } - const physx::PxVec3& vertNext = cutoutSet.cutoutLoops[(uint32_t)cutoutVertNext.cutoutIndex].vertices[(uint32_t)cutoutVertNext.vertIndex]; + const nvidia::NvVec3& vertNext = cutoutSet.cutoutLoops[(uint32_t)cutoutVertNext.cutoutIndex].vertices[(uint32_t)cutoutVertNext.vertIndex]; const float dist2 = (vert0 - vertNext).magnitudeSquared(); if (dist2 < minDist2) { @@ -1518,11 +1518,11 @@ static void mergeVertices(Nv::Blast::CutoutSetImpl& cutoutSet, float threshold, continue; } const CutoutVert& cutoutVert0 = cutoutMap[i0]; - physx::PxVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; + nvidia::NvVec3& vert0 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert0.cutoutIndex].vertices[(uint32_t)cutoutVert0.vertIndex]; const uint32_t i1 = (uint32_t)pairs[i].i1; const CutoutVert& cutoutVert1 = cutoutMap[i1]; - physx::PxVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert1.cutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; - const physx::PxVec3 disp = vert1 - vert0; + nvidia::NvVec3& vert1 = cutoutSet.cutoutLoops[(uint32_t)cutoutVert1.cutoutIndex].vertices[(uint32_t)cutoutVert1.vertIndex]; + const nvidia::NvVec3 disp = vert1 - vert0; // Move and pin pinned[i0] = true; if (pinned[i1]) @@ -1644,31 +1644,31 @@ static void simplifyCutoutSetImpl(Nv::Blast::CutoutSetImpl& cutoutSet, float thr // // See if the winding is ccw: // // // Scale to normalized size to avoid overflows -// physx::PxBounds3 bounds; +// nvidia::NvBounds3 bounds; // bounds.setEmpty(); // for (uint32_t i = 0; i < size; ++i) // { // bounds.include(cutout.vertices[i]); // } -// physx::PxVec3 center = bounds.getCenter(); -// physx::PxVec3 extent = bounds.getExtents(); -// if (extent[0] < PX_EPS_F32 || extent[1] < PX_EPS_F32) +// nvidia::NvVec3 center = bounds.getCenter(); +// nvidia::NvVec3 extent = bounds.getExtents(); +// if (extent[0] < NV_EPS_F32 || extent[1] < NV_EPS_F32) // { // return false; // } -// const physx::PxVec3 scale(1.0f / extent[0], 1.0f / extent[1], 0.0f); +// const nvidia::NvVec3 scale(1.0f / extent[0], 1.0f / extent[1], 0.0f); // // // Find "area" (it will only be correct in sign!) -// physx::PxVec3 prevV = (cutout.vertices[size - 1] - center).multiply(scale); +// nvidia::NvVec3 prevV = (cutout.vertices[size - 1] - center).multiply(scale); // float area = 0.0f; // for (uint32_t i = 0; i < size; ++i) // { -// const physx::PxVec3 v = (cutout.vertices[i] - center).multiply(scale); +// const nvidia::NvVec3 v = (cutout.vertices[i] - center).multiply(scale); // area += crossZ(prevV, v); // prevV = v; // } // -// if (physx::PxAbs(area) < PX_EPS_F32 * PX_EPS_F32) +// if (nvidia::NvAbs(area) < NV_EPS_F32 * NV_EPS_F32) // { // return false; // } @@ -1697,10 +1697,10 @@ static void simplifyCutoutSetImpl(Nv::Blast::CutoutSetImpl& cutoutSet, float thr // uint32_t j = 0; // for (; j < loopSize; ++j) // { -// const physx::PxVec3& v0 = cutout.vertices[loop.polyVerts[(j + loopSize - 1) % loopSize].index]; -// const physx::PxVec3& v1 = cutout.vertices[loop.polyVerts[j].index]; -// const physx::PxVec3& v2 = cutout.vertices[loop.polyVerts[(j + 1) % loopSize].index]; -// const physx::PxVec3 e0 = v1 - v0; +// const nvidia::NvVec3& v0 = cutout.vertices[loop.polyVerts[(j + loopSize - 1) % loopSize].index]; +// const nvidia::NvVec3& v1 = cutout.vertices[loop.polyVerts[j].index]; +// const nvidia::NvVec3& v2 = cutout.vertices[loop.polyVerts[(j + 1) % loopSize].index]; +// const nvidia::NvVec3 e0 = v1 - v0; // if (crossZ(e0, v2 - v1) < 0.0f) // { // // reflex @@ -1710,30 +1710,30 @@ static void simplifyCutoutSetImpl(Nv::Blast::CutoutSetImpl& cutoutSet, float thr // if (j < loopSize) // { // // Find a vertex -// float minLen2 = PX_MAX_F32; -// float maxMinDist = -PX_MAX_F32; +// float minLen2 = NV_MAX_F32; +// float maxMinDist = -NV_MAX_F32; // uint32_t kToUse = 0; // uint32_t mToUse = 2; // bool cleanSliceFound = false; // A transversal is parallel with an edge // for (uint32_t k = 0; k < loopSize; ++k) // { -// const physx::PxVec3& vkPrev = cutout.vertices[loop.polyVerts[(k + loopSize - 1) % loopSize].index]; -// const physx::PxVec3& vk = cutout.vertices[loop.polyVerts[k].index]; -// const physx::PxVec3& vkNext = cutout.vertices[loop.polyVerts[(k + 1) % loopSize].index]; +// const nvidia::NvVec3& vkPrev = cutout.vertices[loop.polyVerts[(k + loopSize - 1) % loopSize].index]; +// const nvidia::NvVec3& vk = cutout.vertices[loop.polyVerts[k].index]; +// const nvidia::NvVec3& vkNext = cutout.vertices[loop.polyVerts[(k + 1) % loopSize].index]; // const uint32_t mStop = k ? loopSize : loopSize - 1; // for (uint32_t m = k + 2; m < mStop; ++m) // { -// const physx::PxVec3& vmPrev = cutout.vertices[loop.polyVerts[(m + loopSize - 1) % loopSize].index]; -// const physx::PxVec3& vm = cutout.vertices[loop.polyVerts[m].index]; -// const physx::PxVec3& vmNext = cutout.vertices[loop.polyVerts[(m + 1) % loopSize].index]; -// const physx::PxVec3 newEdge = vm - vk; +// const nvidia::NvVec3& vmPrev = cutout.vertices[loop.polyVerts[(m + loopSize - 1) % loopSize].index]; +// const nvidia::NvVec3& vm = cutout.vertices[loop.polyVerts[m].index]; +// const nvidia::NvVec3& vmNext = cutout.vertices[loop.polyVerts[(m + 1) % loopSize].index]; +// const nvidia::NvVec3 newEdge = vm - vk; // if (!directionsXYOrderedCCW(vk - vkPrev, newEdge, vkNext - vk) || // !directionsXYOrderedCCW(vm - vmPrev, -newEdge, vmNext - vm)) // { // continue; // } // const float len2 = newEdge.magnitudeSquared(); -// float minDist = PX_MAX_F32; +// float minDist = NV_MAX_F32; // for (uint32_t l = 0; l < loopSize; ++l) // { // const uint32_t l1 = (l + 1) % loopSize; @@ -1741,8 +1741,8 @@ static void simplifyCutoutSetImpl(Nv::Blast::CutoutSetImpl& cutoutSet, float thr // { // continue; // } -// const physx::PxVec3& vl = cutout.vertices[loop.polyVerts[l].index]; -// const physx::PxVec3& vl1 = cutout.vertices[loop.polyVerts[l1].index]; +// const nvidia::NvVec3& vl = cutout.vertices[loop.polyVerts[l].index]; +// const nvidia::NvVec3& vl1 = cutout.vertices[loop.polyVerts[l1].index]; // const float dist = segmentsIntersectXY(vl, vl1 - vl, vk, newEdge); // if (dist < minDist) // { @@ -1919,7 +1919,7 @@ void Nv::Blast::createCutoutSet(Nv::Blast::CutoutSetImpl& cutoutSet, const uint8 cutoutSet.cutouts.clear(); cutoutSet.cutoutLoops.clear(); cutoutSet.periodic = periodic; - cutoutSet.dimensions = physx::PxVec2((float)bufferWidth, (float)bufferHeight); + cutoutSet.dimensions = nvidia::NvVec2((float)bufferWidth, (float)bufferHeight); if (!periodic) { @@ -2014,7 +2014,7 @@ void Nv::Blast::createCutoutSet(Nv::Blast::CutoutSetImpl& cutoutSet, const uint8 traceStarts.push_back(t); // Save off initial point traces.push_back(new std::vector()); NVBLAST_ASSERT(traces.size() == traceStarts.size()); // This must be the same size as traceStarts - //traces.back() = (std::vector*)PX_ALLOC(sizeof(std::vector), PX_DEBUG_EXP("CutoutPoint2DSet")); + //traces.back() = (std::vector*)NVBLAST_ALLOC(sizeof(std::vector), NV_DEBUG_EXP("CutoutPoint2DSet")); //new(traces.back()) std::vector; // Flood fill region map std::set visited; @@ -2050,7 +2050,7 @@ void Nv::Blast::createCutoutSet(Nv::Blast::CutoutSetImpl& cutoutSet, const uint8 } while (stack.size()); // Trace region - PX_ASSERT(map.read(t.x, t.y)); + NVBLAST_ASSERT(map.read(t.x, t.y)); std::vector* trace = traces.back(); traceRegion(*trace, regions, pathCounts, regionIndex, t); @@ -2240,7 +2240,7 @@ class Matrix22 {} //! Construct from two base vectors - Matrix22(const physx::PxVec2& col0, const physx::PxVec2& col1) + Matrix22(const nvidia::NvVec2& col0, const nvidia::NvVec2& col1) : column0(col0), column1(col1) {} @@ -2267,27 +2267,27 @@ class Matrix22 //! Set to identity matrix static Matrix22 createIdentity() { - return Matrix22(physx::PxVec2(1,0), physx::PxVec2(0,1)); + return Matrix22(nvidia::NvVec2(1,0), nvidia::NvVec2(0,1)); } //! Set to zero matrix static Matrix22 createZero() { - return Matrix22(physx::PxVec2(0.0f), physx::PxVec2(0.0f)); + return Matrix22(nvidia::NvVec2(0.0f), nvidia::NvVec2(0.0f)); } //! Construct from diagonal, off-diagonals are zero. - static Matrix22 createDiagonal(const physx::PxVec2& d) + static Matrix22 createDiagonal(const nvidia::NvVec2& d) { - return Matrix22(physx::PxVec2(d.x,0.0f), physx::PxVec2(0.0f,d.y)); + return Matrix22(nvidia::NvVec2(d.x,0.0f), nvidia::NvVec2(0.0f,d.y)); } //! Get transposed matrix Matrix22 getTranspose() const { - const physx::PxVec2 v0(column0.x, column1.x); - const physx::PxVec2 v1(column0.y, column1.y); + const nvidia::NvVec2 v0(column0.x, column1.x); + const nvidia::NvVec2 v1(column0.y, column1.y); return Matrix22(v0,v1); } @@ -2349,7 +2349,7 @@ class Matrix22 } //! Matrix vector multiplication (returns 'this->transform(vec)') - physx::PxVec2 operator*(const physx::PxVec2& vec) const + nvidia::NvVec2 operator*(const nvidia::NvVec2& vec) const { return transform(vec); } @@ -2403,28 +2403,28 @@ class Matrix22 // Transform etc //! Transform vector by matrix, equal to v' = M*v - physx::PxVec2 transform(const physx::PxVec2& other) const + nvidia::NvVec2 transform(const nvidia::NvVec2& other) const { return column0*other.x + column1*other.y; } - physx::PxVec2& operator[](unsigned int num) {return (&column0)[num];} - const physx::PxVec2& operator[](unsigned int num) const {return (&column0)[num];} + nvidia::NvVec2& operator[](unsigned int num) {return (&column0)[num];} + const nvidia::NvVec2& operator[](unsigned int num) const {return (&column0)[num];} //Data, see above for format! - physx::PxVec2 column0, column1; //the two base vectors + nvidia::NvVec2 column0, column1; //the two base vectors }; -PX_INLINE bool calculateUVMapping(const Nv::Blast::Triangle& triangle, physx::PxMat33& theResultMapping) + bool calculateUVMapping(const Nv::Blast::Triangle& triangle, nvidia::NvMat33& theResultMapping) { - physx::PxMat33 rMat; - physx::PxMat33 uvMat; + nvidia::NvMat33 rMat; + nvidia::NvMat33 uvMat; for (unsigned col = 0; col < 3; ++col) { auto v = (&triangle.a)[col]; - rMat[col] = toPxShared(v.p); - uvMat[col] = physx::PxVec3(v.uv[0].x, v.uv[0].y, 1.0f); + rMat[col] = toNvShared(v.p); + uvMat[col] = nvidia::NvVec3(v.uv[0].x, v.uv[0].y, 1.0f); } if (uvMat.getDeterminant() == 0.0f) @@ -2437,15 +2437,15 @@ PX_INLINE bool calculateUVMapping(const Nv::Blast::Triangle& triangle, physx::Px return true; } -//static bool calculateUVMapping(ExplicitHierarchicalMesh& theHMesh, const physx::PxVec3& theDir, physx::PxMat33& theResultMapping) +//static bool calculateUVMapping(ExplicitHierarchicalMesh& theHMesh, const nvidia::NvVec3& theDir, nvidia::NvMat33& theResultMapping) //{ -// physx::PxVec3 cutoutDir( theDir ); +// nvidia::NvVec3 cutoutDir( theDir ); // cutoutDir.normalize( ); // -// const float cosineThreshold = physx::PxCos(3.141593f / 180); // 1 degree +// const float cosineThreshold = nvidia::NvCos(3.141593f / 180); // 1 degree // // ExplicitRenderTriangle* triangleToUse = NULL; -// float greatestCosine = -PX_MAX_F32; +// float greatestCosine = -NV_MAX_F32; // float greatestArea = 0.0f; // for normals within the threshold // for ( uint32_t partIndex = 0; partIndex < theHMesh.partCount(); ++partIndex ) // { @@ -2454,9 +2454,9 @@ PX_INLINE bool calculateUVMapping(const Nv::Blast::Triangle& triangle, physx::Px // for ( uint32_t tIndex = 0; tIndex < triangleCount; ++tIndex ) // { // ExplicitRenderTriangle& theTriangle = theTriangles[tIndex]; -// physx::PxVec3 theEdge1 = theTriangle.vertices[1].position - theTriangle.vertices[0].position; -// physx::PxVec3 theEdge2 = theTriangle.vertices[2].position - theTriangle.vertices[0].position; -// physx::PxVec3 theNormal = theEdge1.cross( theEdge2 ); +// nvidia::NvVec3 theEdge1 = theTriangle.vertices[1].position - theTriangle.vertices[0].position; +// nvidia::NvVec3 theEdge2 = theTriangle.vertices[2].position - theTriangle.vertices[0].position; +// nvidia::NvVec3 theNormal = theEdge1.cross( theEdge2 ); // float theArea = theNormal.normalize(); // twice the area, but that's ok // // if (theArea == 0.0f) @@ -2495,22 +2495,22 @@ PX_INLINE bool calculateUVMapping(const Nv::Blast::Triangle& triangle, physx::Px -//bool calculateCutoutUVMapping(ExplicitHierarchicalMesh& hMesh, const physx::PxVec3& targetDirection, physx::PxMat33& theMapping) +//bool calculateCutoutUVMapping(ExplicitHierarchicalMesh& hMesh, const nvidia::NvVec3& targetDirection, nvidia::NvMat33& theMapping) //{ // return ::calculateUVMapping(hMesh, targetDirection, theMapping); //} -//bool calculateCutoutUVMapping(const Nv::Blast::Triangle& targetDirection, physx::PxMat33& theMapping) +//bool calculateCutoutUVMapping(const Nv::Blast::Triangle& targetDirection, nvidia::NvMat33& theMapping) //{ // return ::calculateUVMapping(targetDirection, theMapping); //} const NvcVec3& CutoutSetImpl::getCutoutVertex(uint32_t cutoutIndex, uint32_t loopIndex, uint32_t vertexIndex) const { - return fromPxShared(cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices[vertexIndex]); + return fromNvShared(cutoutLoops[cutouts[cutoutIndex] + loopIndex].vertices[vertexIndex]); } const NvcVec2& CutoutSetImpl::getDimensions() const { - return fromPxShared(dimensions); + return fromNvShared(dimensions); } diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.h index 08c1d9c5f..e16d64aa4 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringCutoutImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTAUTHORINGFCUTOUTIMPL_H @@ -30,9 +30,9 @@ #include "NvBlastExtAuthoringCutout.h" #include -#include -#include -#include +#include "NvVec2.h" +#include "NvVec3.h" +#include "NvMat44.h" namespace Nv { @@ -52,9 +52,9 @@ struct ConvexLoop struct Cutout { - std::vector vertices; + std::vector vertices; //std::vector convexLoops; - std::vector smoothingGroups; + std::vector smoothingGroups; }; struct POINT2D @@ -117,8 +117,8 @@ struct CutoutSetImpl : public CutoutSet } const NvcVec2& getDimensions() const; - //void serialize(physx::PxFileBuf& stream) const; - //void deserialize(physx::PxFileBuf& stream); + //void serialize(nvidia::NvFileBuf& stream) const; + //void deserialize(nvidia::NvFileBuf& stream); void release() { @@ -128,7 +128,7 @@ struct CutoutSetImpl : public CutoutSet std::vector cutoutLoops; std::vector cutouts; bool periodic; - physx::PxVec2 dimensions; + nvidia::NvVec2 dimensions; }; void createCutoutSet(Nv::Blast::CutoutSetImpl& cutoutSet, const uint8_t* pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight, diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.cpp index ba9a1b427..5d09211e4 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtAuthoringFractureToolImpl.h" #include "NvBlastExtAuthoringMeshImpl.h" @@ -49,7 +49,7 @@ #include "NvBlastGlobals.h" #include "NvBlastExtAuthoringPerlinNoise.h" #include -#include +#include #ifndef SAFE_DELETE #define SAFE_DELETE(p) \ @@ -122,7 +122,7 @@ int32_t findCellBasePlanes(const std::vector& sites, std::vector& sites, std::vector& sites, const std::vector>>& neighbors, int32_t interiorMaterialId, NvcVec3 origin) { - Mesh* cell = getBigBox(toPxShared(origin), SITE_BOX_SIZE, interiorMaterialId); - Mesh* cuttingMesh = getCuttingBox(PxVec3(0, 0, 0), PxVec3(1, 1, 1), CUTTING_BOX_SIZE, 0, interiorMaterialId); + Mesh* cell = getBigBox(toNvShared(origin), SITE_BOX_SIZE, interiorMaterialId); + Mesh* cuttingMesh = getCuttingBox(NvVec3(0, 0, 0), NvVec3(1, 1, 1), CUTTING_BOX_SIZE, 0, interiorMaterialId); for (uint32_t i = 0; i < neighbors[cellId].size(); ++i) { std::pair neighbor = neighbors[cellId][i]; int32_t nCell = neighbor.first; - PxVec3 midpoint = 0.5 * toPxShared(sites[nCell] + sites[cellId]); - PxVec3 direction = toPxShared(sites[nCell] - sites[cellId]).getNormalized(); + NvVec3 midpoint = 0.5 * toNvShared(sites[nCell] + sites[cellId]); + NvVec3 direction = toNvShared(sites[nCell] - sites[cellId]).getNormalized(); int32_t planeIndex = neighbor.second + planeIndexerOffset; if (nCell < cellId) planeIndex = -planeIndex; @@ -291,7 +291,7 @@ void VoronoiSitesGeneratorImpl::clusteredSitesGeneration(const uint32_t numberOf while (generatedSites < unif) { NvcVec3 p = - tempPoints.back() + fromPxShared(PxVec3(mRnd->getRandomValue() * 2 - 1, mRnd->getRandomValue() * 2 - 1, + tempPoints.back() + fromNvShared(NvVec3(mRnd->getRandomValue() * 2 - 1, mRnd->getRandomValue() * 2 - 1, mRnd->getRandomValue() * 2 - 1) .getNormalized()) * (mRnd->getRandomValue() + 0.001f) * clusterRadius; @@ -336,7 +336,7 @@ void VoronoiSitesGeneratorImpl::generateInSphere(const uint32_t count, const flo float rn2 = (mRnd->getRandomValue() - 0.5f) * 2.f * radius; float rn3 = (mRnd->getRandomValue() - 0.5f) * 2.f * radius; NvcVec3 point = { rn1, rn2, rn3 }; - if (toPxShared(point).magnitudeSquared() < radiusSquared && + if (toNvShared(point).magnitudeSquared() < radiusSquared && voronoiMeshEval.isPointContainedInMesh(mMesh, point + center) && (mStencil == nullptr || voronoiMeshEval.isPointContainedInMesh(mStencil, point + center))) { @@ -359,7 +359,7 @@ void VoronoiSitesGeneratorImpl::deleteInSphere(const float radius, const NvcVec3 float r2 = radius * radius; for (uint32_t i = 0; i < mGeneratedSites.size(); ++i) { - if (toPxShared(mGeneratedSites[i] - center).magnitudeSquared() < r2 && mRnd->getRandomValue() <= deleteProbability) + if (toNvShared(mGeneratedSites[i] - center).magnitudeSquared() < r2 && mRnd->getRandomValue() <= deleteProbability) { std::swap(mGeneratedSites[i], mGeneratedSites.back()); mGeneratedSites.pop_back(); @@ -374,23 +374,23 @@ void VoronoiSitesGeneratorImpl::radialPattern(const NvcVec3& center, const NvcVe float variability) { // mGeneratedSites.push_back(center); - PxVec3 t1, t2; + NvVec3 t1, t2; if (std::abs(normal.z) < 0.9) { - t1 = toPxShared(normal).cross(PxVec3(0, 0, 1)); + t1 = toNvShared(normal).cross(NvVec3(0, 0, 1)); } else { - t1 = toPxShared(normal).cross(PxVec3(1, 0, 0)); + t1 = toNvShared(normal).cross(NvVec3(1, 0, 0)); } - t2 = t1.cross(toPxShared(normal)); + t2 = t1.cross(toNvShared(normal)); t1.normalize(); t2.normalize(); float radStep = radius / radialSteps; int32_t cCr = 0; - float angleStep = physx::PxPi * 2 / angularSteps; + float angleStep = nvidia::NvPi * 2 / angularSteps; for (float cRadius = radStep; cRadius < radius; cRadius += radStep) { float cAngle = angleOffset * cCr; @@ -399,7 +399,7 @@ void VoronoiSitesGeneratorImpl::radialPattern(const NvcVec3& center, const NvcVe float angVars = mRnd->getRandomValue() * variability + (1.0f - 0.5f * variability); float radVars = mRnd->getRandomValue() * variability + (1.0f - 0.5f * variability); - NvcVec3 nPos = fromPxShared(std::cos(cAngle * angVars) * t1 + std::sin(cAngle * angVars) * t2) * cRadius * radVars + center; + NvcVec3 nPos = fromNvShared(std::cos(cAngle * angVars) * t1 + std::sin(cAngle * angVars) * t2) * cRadius * radVars + center; mGeneratedSites.push_back(nPos); cAngle += angleStep; } @@ -582,7 +582,7 @@ Mesh* FractureToolImpl::createChunkMesh(int32_t chunkInfoIndex, bool splitUVs /* const auto facetsCount = sourceMesh->getFacetCount(); Vertex* vertices = reinterpret_cast(_vertexBuffer.data()); const auto numVerts = static_cast(_vertexBuffer.size()); - physx::PxBounds3 bnd; + nvidia::NvBounds3 bnd; bnd.setEmpty(); std::set vertUVsToFix; for (uint32_t f = 0; f < facetsCount; f++) { @@ -609,12 +609,12 @@ Mesh* FractureToolImpl::createChunkMesh(int32_t chunkInfoIndex, bool splitUVs /* for (uint32_t edge = 0; edge < facet.edgesCount; edge++) { const int32_t v1 = edges[facet.firstEdgeNumber + edge].s; if (vertUVsToFix.insert(v1).second) { - bnd.include(PxVec3(vertices[v1].uv[0].x, vertices[v1].uv[0].y, 0.0f)); + bnd.include(NvVec3(vertices[v1].uv[0].x, vertices[v1].uv[0].y, 0.0f)); } const int32_t v2 = edges[facet.firstEdgeNumber + edge].e; if (vertUVsToFix.insert(v2).second) { - bnd.include(PxVec3(vertices[v2].uv[0].x, vertices[v2].uv[0].y, 0.0f)); + bnd.include(NvVec3(vertices[v2].uv[0].x, vertices[v2].uv[0].y, 0.0f)); } } } @@ -725,7 +725,7 @@ int32_t FractureToolImpl::voronoiFracturing(uint32_t chunkId, uint32_t cellCount { cellPoints[i] = tm.invTransformPos(cellPointsIn[i]); - toPxShared(cellPoints[i]) = toPxShared(rotation).rotateInv(toPxShared(cellPoints[i])); + toNvShared(cellPoints[i]) = toNvShared(rotation).rotateInv(toNvShared(cellPoints[i])); cellPoints[i].x *= (1.0f / scale.x); cellPoints[i].y *= (1.0f / scale.y); @@ -764,7 +764,7 @@ int32_t FractureToolImpl::voronoiFracturing(uint32_t chunkId, uint32_t cellCount cell->getVerticesWritable()[v].p.x *= scale.x; cell->getVerticesWritable()[v].p.y *= scale.y; cell->getVerticesWritable()[v].p.z *= scale.z; - toPxShared(cell->getVerticesWritable()[v].p) = toPxShared(rotation).rotate(toPxShared(cell->getVerticesWritable()[v].p)); + toNvShared(cell->getVerticesWritable()[v].p) = toNvShared(rotation).rotate(toNvShared(cell->getVerticesWritable()[v].p)); } cell->recalculateBoundingBox(); DummyAccelerator dmAccel(cell->getFacetCount()); @@ -831,9 +831,9 @@ int32_t FractureToolImpl::slicing(uint32_t chunkId, const SlicingConfiguration& int32_t y_slices = conf.y_slices; int32_t z_slices = conf.z_slices; - const physx::PxBounds3 sourceBBox = toPxShared(mesh->getBoundingBox()); + const nvidia::NvBounds3 sourceBBox = toNvShared(mesh->getBoundingBox()); - PxVec3 center = {mesh->getBoundingBox().minimum.x, 0, 0}; + NvVec3 center = {mesh->getBoundingBox().minimum.x, 0, 0}; float x_offset = (sourceBBox.maximum.x - sourceBBox.minimum.x) * (1.0f / (x_slices + 1)); @@ -842,7 +842,7 @@ int32_t FractureToolImpl::slicing(uint32_t chunkId, const SlicingConfiguration& center.x += x_offset; - PxVec3 dir = {1, 0, 0}; + NvVec3 dir = {1, 0, 0}; Mesh* slBox = getCuttingBox(center, dir, 20, 0, mInteriorMaterialId); @@ -859,9 +859,9 @@ int32_t FractureToolImpl::slicing(uint32_t chunkId, const SlicingConfiguration& */ for (int32_t slice = 0; slice < x_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; setCuttingBox(center, -lDir, slBox, 20, mPlaneIndexerOffset); bTool.performFastCutting(mesh, slBox, BooleanConfigurations::BOOLEAN_INTERSECTION()); @@ -892,16 +892,16 @@ int32_t FractureToolImpl::slicing(uint32_t chunkId, const SlicingConfiguration& for (uint32_t chunk = 0; chunk < xSlicedChunks.size(); ++chunk) { - center = PxVec3(0, sourceBBox.minimum.y, 0); + center = NvVec3(0, sourceBBox.minimum.y, 0); center.y += y_offset; - dir = PxVec3(0, 1, 0); + dir = NvVec3(0, 1, 0); mesh = xSlicedChunks[chunk].getMesh(); for (int32_t slice = 0; slice < y_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; setCuttingBox(center, -lDir, slBox, 20, mPlaneIndexerOffset); @@ -933,16 +933,16 @@ int32_t FractureToolImpl::slicing(uint32_t chunkId, const SlicingConfiguration& for (uint32_t chunk = 0; chunk < ySlicedChunks.size(); ++chunk) { - center = PxVec3(0, 0, sourceBBox.minimum.z); + center = NvVec3(0, 0, sourceBBox.minimum.z); center.z += z_offset; - dir = PxVec3(0, 0, 1); + dir = NvVec3(0, 0, 1); mesh = ySlicedChunks[chunk].getMesh(); for (int32_t slice = 0; slice < z_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; setCuttingBox(center, -lDir, slBox, 20, mPlaneIndexerOffset); bTool.performFastCutting(mesh, slBox, BooleanConfigurations::BOOLEAN_INTERSECTION()); setChunkInfoMesh(ch, bTool.createNewMesh()); @@ -1023,22 +1023,22 @@ int32_t FractureToolImpl::slicingNoisy(uint32_t chunkId, const SlicingConfigurat int32_t y_slices = conf.y_slices; int32_t z_slices = conf.z_slices; - const physx::PxBounds3 sourceBBox = toPxShared(mesh->getBoundingBox()); + const nvidia::NvBounds3 sourceBBox = toNvShared(mesh->getBoundingBox()); - PxVec3 center = PxVec3(mesh->getBoundingBox().minimum.x, 0, 0); + NvVec3 center = NvVec3(mesh->getBoundingBox().minimum.x, 0, 0); float x_offset = (sourceBBox.maximum.x - sourceBBox.minimum.x) * (1.0f / (x_slices + 1)); float y_offset = (sourceBBox.maximum.y - sourceBBox.minimum.y) * (1.0f / (y_slices + 1)); float z_offset = (sourceBBox.maximum.z - sourceBBox.minimum.z) * (1.0f / (z_slices + 1)); - PxVec3 resolution(tm.s / conf.noise.samplingInterval.x, + NvVec3 resolution(tm.s / conf.noise.samplingInterval.x, tm.s / conf.noise.samplingInterval.y, tm.s / conf.noise.samplingInterval.z); center.x += x_offset; - PxVec3 dir(1, 0, 0); + NvVec3 dir(1, 0, 0); Mesh* slBox = nullptr; @@ -1057,9 +1057,9 @@ int32_t FractureToolImpl::slicingNoisy(uint32_t chunkId, const SlicingConfigurat */ for (int32_t slice = 0; slice < x_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; slBox = getNoisyCuttingBoxPair(center, lDir, 40, noisyPartSize, resolution, mPlaneIndexerOffset, conf.noise.amplitude, conf.noise.frequency, conf.noise.octaveNumber, rnd->getRandomValue(), @@ -1095,16 +1095,16 @@ int32_t FractureToolImpl::slicingNoisy(uint32_t chunkId, const SlicingConfigurat uint32_t slicedChunkSize = xSlicedChunks.size(); for (uint32_t chunk = 0; chunk < slicedChunkSize; ++chunk) { - center = PxVec3(0, sourceBBox.minimum.y, 0); + center = NvVec3(0, sourceBBox.minimum.y, 0); center.y += y_offset; - dir = PxVec3(0, 1, 0); + dir = NvVec3(0, 1, 0); mesh = xSlicedChunks[chunk].getMesh(); for (int32_t slice = 0; slice < y_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; slBox = getNoisyCuttingBoxPair(center, lDir, 40, noisyPartSize, resolution, mPlaneIndexerOffset, conf.noise.amplitude, @@ -1141,16 +1141,16 @@ int32_t FractureToolImpl::slicingNoisy(uint32_t chunkId, const SlicingConfigurat for (uint32_t chunk = 0; chunk < ySlicedChunks.size(); ++chunk) { - center = PxVec3(0, 0, sourceBBox.minimum.z); + center = NvVec3(0, 0, sourceBBox.minimum.z); center.z += z_offset; - dir = PxVec3(0, 0, 1); + dir = NvVec3(0, 0, 1); mesh = ySlicedChunks[chunk].getMesh(); for (int32_t slice = 0; slice < z_slices; ++slice) { - PxVec3 randVect = - PxVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); - PxVec3 lDir = dir + randVect * conf.angle_variations; + NvVec3 randVect = + NvVec3(2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1, 2 * rnd->getRandomValue() - 1); + NvVec3 lDir = dir + randVect * conf.angle_variations; slBox = getNoisyCuttingBoxPair(center, lDir, 40, noisyPartSize, resolution, mPlaneIndexerOffset, conf.noise.amplitude, conf.noise.frequency, conf.noise.octaveNumber, rnd->getRandomValue(), @@ -1238,13 +1238,13 @@ int32_t FractureToolImpl::cut(uint32_t chunkId, const NvcVec3& normal, const Nvc ch.parentChunkId = replaceChunk ? mChunkData[chunkInfoIndex].parentChunkId : chunkId; float noisyPartSize = 1.2f; - PxVec3 resolution(tm.s / noise.samplingInterval.x, + NvVec3 resolution(tm.s / noise.samplingInterval.x, tm.s / noise.samplingInterval.y, tm.s / noise.samplingInterval.z); // Perform cut - Mesh* slBox = getNoisyCuttingBoxPair(toPxShared(tm.invTransformPos(point)), - toPxShared(normal), // tm doesn't change normals (up to normalization) + Mesh* slBox = getNoisyCuttingBoxPair(toNvShared(tm.invTransformPos(point)), + toNvShared(normal), // tm doesn't change normals (up to normalization) 40, noisyPartSize, resolution, mPlaneIndexerOffset, noise.amplitude, noise.frequency, noise.octaveNumber, rnd->getRandomValue(), mInteriorMaterialId); @@ -1304,7 +1304,7 @@ int32_t FractureToolImpl::cut(uint32_t chunkId, const NvcVec3& normal, const Nvc } -bool CmpVec::operator()(const PxVec3& v1, const PxVec3& v2) const +bool CmpVec::operator()(const NvVec3& v1, const NvVec3& v2) const { auto v = (v2 - v1).abs(); if (v.x < 1e-5) @@ -1341,8 +1341,8 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo const TransformST& tm = mChunkData[chunkInfoIndex].getTmToWorld(); Mesh* mesh = new MeshImpl(*reinterpret_cast(mChunkData[chunkInfoIndex].getMesh())); - float extrusionLength = toPxShared(mesh->getBoundingBox()).getDimensions().magnitude(); - auto scale = toPxShared(conf.scale); + float extrusionLength = toNvShared(mesh->getBoundingBox()).getDimensions().magnitude(); + auto scale = toNvShared(conf.scale); conf.transform.p = tm.invTransformPos(conf.transform.p); if (scale.x < 0.f || scale.y < 0.f) { @@ -1350,7 +1350,7 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo } if (conf.isRelativeTransform) { - toPxShared(conf.transform.p) += toPxShared(mesh->getBoundingBox()).getCenter() / tm.s; + toNvShared(conf.transform.p) += toNvShared(mesh->getBoundingBox()).getCenter() / tm.s; } conf.noise.samplingInterval = conf.noise.samplingInterval / tm.s; float xDim = cutoutSet.getDimensions().x; @@ -1371,7 +1371,7 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo std::vector newlyCreatedChunksIds; SharedFacesMap sharedFacesMap; - std::vector > verts; + std::vector > verts; std::vector > smoothingGroups; std::vector cutoutStarts; @@ -1381,14 +1381,14 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo for (uint32_t l = 0; l < cutoutSet.getCutoutLoopCount(c); l++) { uint32_t vertCount = cutoutSet.getCutoutVertexCount(c, l); - verts.push_back(std::vector(vertCount)); + verts.push_back(std::vector(vertCount)); smoothingGroups.push_back(std::set()); for (uint32_t v = 0; v < vertCount; v++) { auto vert = cutoutSet.getCutoutVertex(c, l, v); vert.x = (vert.x / xDim - 0.5f) * scale.x; vert.y = (vert.y / yDim - 0.5f) * scale.y; - verts.back()[v] = toPxShared(vert); + verts.back()[v] = toNvShared(vert); if (cutoutSet.isCutoutVertexToggleSmoothingGroup(c, l, v)) { @@ -1401,18 +1401,18 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo float dimension = scale.magnitude(); float conicityMultiplierBot = 1.f + 2.f * extrusionLength / dimension * - physx::PxTan(physx::PxClamp(conf.aperture, -179.f, 179.f) * physx::PxPi / 360.f); + nvidia::NvTan(nvidia::NvClamp(conf.aperture, -179.f, 179.f) * nvidia::NvPi / 360.f); float conicityMultiplierTop = 2.f - conicityMultiplierBot; float heightBot = extrusionLength, heightTop = extrusionLength; if (conicityMultiplierBot < 0.f) { conicityMultiplierBot = 0.f; - heightBot = 0.5f * dimension / std::abs(physx::PxTan(conf.aperture * physx::PxPi / 360.f)); + heightBot = 0.5f * dimension / std::abs(nvidia::NvTan(conf.aperture * nvidia::NvPi / 360.f)); } if (conicityMultiplierTop < 0.f) { conicityMultiplierTop = 0.f; - heightTop = 0.5f * dimension / std::abs(physx::PxTan(conf.aperture * physx::PxPi / 360.f)); + heightTop = 0.5f * dimension / std::abs(nvidia::NvTan(conf.aperture * nvidia::NvPi / 360.f)); } uint32_t seed = rnd->getRandomValue(); @@ -1443,7 +1443,7 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo while (!cellsStack.empty()) { auto cell = cellsStack.top(); - auto transformedCell = toPxShared(conf.transform).rotate(PxVec3(cell.first * scale.x, cell.second * scale.y, 0)); + auto transformedCell = toNvShared(conf.transform).rotate(NvVec3(cell.first * scale.x, cell.second * scale.y, 0)); cellsStack.pop(); if (visited.find(cell) != visited.end()) { @@ -1466,10 +1466,10 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo auto vertices = cutoutMesh->getVerticesWritable(); for (uint32_t v = 0; v < cutoutMesh->getVerticesCount(); v++) { - toPxShared(vertices[v].p) += transformedCell; + toNvShared(vertices[v].p) += transformedCell; } - toPxShared(cutoutMesh->getBoundingBoxWritable().minimum) += transformedCell; - toPxShared(cutoutMesh->getBoundingBoxWritable().maximum) += transformedCell; + toNvShared(cutoutMesh->getBoundingBoxWritable().minimum) += transformedCell; + toNvShared(cutoutMesh->getBoundingBoxWritable().maximum) += transformedCell; if (l == 0) { SweepingAccelerator accel(mesh); @@ -1489,10 +1489,10 @@ int32_t FractureToolImpl::cutout(uint32_t chunkId, CutoutConfiguration conf, boo } for (uint32_t v = 0; v < cutoutMesh->getVerticesCount(); v++) { - toPxShared(vertices[v].p) -= transformedCell; + toNvShared(vertices[v].p) -= transformedCell; } - toPxShared(cutoutMesh->getBoundingBoxWritable().minimum )-= transformedCell; - toPxShared(cutoutMesh->getBoundingBoxWritable().maximum) -= transformedCell; + toNvShared(cutoutMesh->getBoundingBoxWritable().minimum )-= transformedCell; + toNvShared(cutoutMesh->getBoundingBoxWritable().maximum) -= transformedCell; } if (ch.getMesh() != 0) { @@ -2295,7 +2295,7 @@ void FractureToolImpl::fitUvToRect(float side, uint32_t chunk) { return; // We dont have such chunk tringulated; } - physx::PxBounds3 bnd; + nvidia::NvBounds3 bnd; bnd.setEmpty(); std::vector& ctrs = mChunkPostprocessors[infoIndex]->getBaseMesh(); @@ -2305,9 +2305,9 @@ void FractureToolImpl::fitUvToRect(float side, uint32_t chunk) { if (ctrs[trn].userData == 0) continue; - bnd.include(PxVec3(ctrs[trn].a.uv[0].x, ctrs[trn].a.uv[0].y, 0.0f)); - bnd.include(PxVec3(ctrs[trn].b.uv[0].x, ctrs[trn].b.uv[0].y, 0.0f)); - bnd.include(PxVec3(ctrs[trn].c.uv[0].x, ctrs[trn].c.uv[0].y, 0.0f)); + bnd.include(NvVec3(ctrs[trn].a.uv[0].x, ctrs[trn].a.uv[0].y, 0.0f)); + bnd.include(NvVec3(ctrs[trn].b.uv[0].x, ctrs[trn].b.uv[0].y, 0.0f)); + bnd.include(NvVec3(ctrs[trn].c.uv[0].x, ctrs[trn].c.uv[0].y, 0.0f)); } float xscale = side / (bnd.maximum.x - bnd.minimum.x); @@ -2344,7 +2344,7 @@ void FractureToolImpl::fitAllUvToRect(float side, std::set& mask) { return; // We dont have triangulated chunks. } - physx::PxBounds3 bnd; + nvidia::NvBounds3 bnd; bnd.setEmpty(); for (uint32_t chunk = 0; chunk < mChunkData.size(); ++chunk) @@ -2361,8 +2361,8 @@ void FractureToolImpl::fitAllUvToRect(float side, std::set& mask) { int32_t v1 = edges[m->getFacet(trn)->firstEdgeNumber + ei].s; int32_t v2 = edges[m->getFacet(trn)->firstEdgeNumber + ei].e; - bnd.include(PxVec3(vertices[v1].uv[0].x, vertices[v1].uv[0].y, 0.0f)); - bnd.include(PxVec3(vertices[v2].uv[0].x, vertices[v2].uv[0].y, 0.0f)); + bnd.include(NvVec3(vertices[v1].uv[0].x, vertices[v1].uv[0].y, 0.0f)); + bnd.include(NvVec3(vertices[v2].uv[0].x, vertices[v2].uv[0].y, 0.0f)); } } } @@ -2544,7 +2544,7 @@ void FractureToolImpl::rebuildAdjGraph(const std::vector& chunks, cons if (!isSorted) { NVBLAST_ASSERT(0); - NvBlastGlobalGetErrorCallback()->reportError(Nv::Blast::ErrorCode::eDEBUG_WARNING, "Adjacency array not sorted; subsequent code assumes it is.", __FILE__, __LINE__); + NvBlastGlobalGetErrorCallback()->reportError(nvidia::NvErrorCode::eDEBUG_WARNING, "Adjacency array not sorted; subsequent code assumes it is.", __FILE__, __LINE__); } } #endif @@ -2670,7 +2670,7 @@ void FractureToolImpl::uniteChunks(uint32_t threshold, uint32_t targetClusterSiz if (depth[ch] == level && childNumber[getChunkInfoIndex(mChunkData[ch].parentChunkId)] > threshold && (chunkFlags[ch] & Mergeable) != 0) { chunksToUnify.push_back(ch); - NvcVec3 cp = fromPxShared(toPxShared(mChunkData[ch].getMesh()->getBoundingBox()).getCenter()); + NvcVec3 cp = fromNvShared(toNvShared(mChunkData[ch].getMesh()->getBoundingBox()).getCenter()); if (posc(cp, minPoint)) { minPoint = cp; @@ -2681,7 +2681,7 @@ void FractureToolImpl::uniteChunks(uint32_t threshold, uint32_t targetClusterSiz std::vector > distances; for (uint32_t i = 0; i < chunksToUnify.size(); ++i) { - float d = (toPxShared(minPoint) - toPxShared(mChunkData[chunksToUnify[i]].getMesh()->getBoundingBox()).getCenter()).magnitude(); + float d = (toNvShared(minPoint) - toNvShared(mChunkData[chunksToUnify[i]].getMesh()->getBoundingBox()).getCenter()).magnitude(); distances.push_back(std::make_pair(d, chunksToUnify[i])); } std::sort(distances.begin(), distances.end()); @@ -2800,7 +2800,7 @@ int32_t FractureToolImpl::createId() // make sure there is a free ID to be returned if (mChunkIdsUsed.size() >= (size_t)INT32_MAX + 1) { - NvBlastGlobalGetErrorCallback()->reportError(Nv::Blast::ErrorCode::eINTERNAL_ERROR, "Chunk IDs exhausted.", __FILE__, __LINE__); + NvBlastGlobalGetErrorCallback()->reportError(nvidia::NvErrorCode::eINTERNAL_ERROR, "Chunk IDs exhausted.", __FILE__, __LINE__); return -1; } diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.h index 31b278f01..eeb0a3b7a 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringFractureToolImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H #define NVBLASTAUTHORINGFRACTURETOOLIMPL_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.cpp index e213c2218..c76dc93dc 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.cpp @@ -22,11 +22,11 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#include -#include -#include +#include "NvVec3.h" +#include "NvVec2.h" +#include "NvBounds3.h" #include #include #include @@ -34,10 +34,10 @@ #include #include #include -#include +#include #include -using namespace physx; +using namespace nvidia; using namespace Nv::Blast; using namespace boost::multiprecision; @@ -68,7 +68,7 @@ struct RVec3 y = cpp_rational(p.y); z = cpp_rational(p.z); } - PxVec3 toVec3() + NvVec3 toVec3() { return { x.convert_to(), y.convert_to(), z.convert_to() }; } @@ -111,7 +111,7 @@ struct RVec2 x = cpp_rational(p.x); y = cpp_rational(p.y); } - PxVec2 toVec2() + NvVec2 toVec2() { return { x.convert_to(), y.convert_to() }; } @@ -1227,12 +1227,12 @@ struct RVec3Comparer } }; -void getBarycentricCoords(PxVec2& a, PxVec2& b, PxVec2& c, PxVec2& p, float& u, float& v) +void getBarycentricCoords(NvVec2& a, NvVec2& b, NvVec2& c, NvVec2& p, float& u, float& v) { - PxVec3 v1(b.x - a.x, c.x - a.x, a.x - p.x); - PxVec3 v2(b.y - a.y, c.y - a.y, a.y - p.y); + NvVec3 v1(b.x - a.x, c.x - a.x, a.x - p.x); + NvVec3 v2(b.y - a.y, c.y - a.y, a.y - p.y); - PxVec3 resl = v1.cross(v2); + NvVec3 resl = v1.cross(v2); u = resl.x / resl.z; v = resl.y / resl.z; } @@ -1251,13 +1251,13 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) edges.resize(mesh->getEdgesCount()); facets.resize(mesh->getFacetCount()); - physx::PxBounds3 bnd; + nvidia::NvBounds3 bnd; bnd.setEmpty(); for (uint32_t i = 0; i < mesh->getVerticesCount(); ++i) { vertices[i] = mesh->getVertices()[i]; - bnd.include(toPxShared(vertices[i].p)); + bnd.include(toNvShared(vertices[i].p)); } for (uint32_t i = 0; i < mesh->getEdgesCount(); ++i) { @@ -1278,7 +1278,7 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) for (uint32_t i = 0; i < mesh->getVerticesCount(); ++i) { - vertices[i].p = (vertices[i].p - fromPxShared(bnd.minimum)) * scale; + vertices[i].p = (vertices[i].p - fromNvShared(bnd.minimum)) * scale; vertices[i].p.x = std::floor(vertices[i].p.x * gridSize) / gridSize; vertices[i].p.y = std::floor(vertices[i].p.y * gridSize) / gridSize; vertices[i].p.z = std::floor(vertices[i].p.z * gridSize) / gridSize; @@ -1286,8 +1286,8 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) std::vector > triangleStencil(facets.size()); - std::vector facetsNormals(facets.size()); - std::vector facetBound(facets.size()); + std::vector facetsNormals(facets.size()); + std::vector facetBound(facets.size()); for (uint32_t tr1 = 0; tr1 < facets.size(); ++tr1) @@ -1305,13 +1305,13 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) triangleStencil[tr1].push_back(vertices[edges[fed + 2].e].p); facetBound[tr1].setEmpty(); - facetBound[tr1].include(toPxShared(vertices[edges[fed].s].p)); - facetBound[tr1].include(toPxShared(vertices[edges[fed].e].p)); - facetBound[tr1].include(toPxShared(vertices[edges[fed + 2].s].p)); + facetBound[tr1].include(toNvShared(vertices[edges[fed].s].p)); + facetBound[tr1].include(toNvShared(vertices[edges[fed].e].p)); + facetBound[tr1].include(toNvShared(vertices[edges[fed + 2].s].p)); facetBound[tr1].fattenFast(0.001f); - facetsNormals[tr1] = toPxShared(vertices[edges[fed + 1].s].p - vertices[edges[fed].s].p) - .cross(toPxShared(vertices[edges[fed + 2].s].p - vertices[edges[fed].s].p)); + facetsNormals[tr1] = toNvShared(vertices[edges[fed + 1].s].p - vertices[edges[fed].s].p) + .cross(toNvShared(vertices[edges[fed + 2].s].p - vertices[edges[fed].s].p)); } /** @@ -1636,7 +1636,7 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) } ///////////////////////////////////////////////////////////////////////////////////////////// - std::vector newVertices; + std::vector newVertices; newVertices.resize(finalPoints.size()); for (uint32_t i = 0; i < finalPoints.size(); ++i) { @@ -1653,13 +1653,13 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) } for (uint32_t i = 0; i < vertices.size(); ++i) { - vertices[i].p = vertices[i].p * (1.0f / scale) + fromPxShared(bnd.minimum); + vertices[i].p = vertices[i].p * (1.0f / scale) + fromNvShared(bnd.minimum); } std::vector result; result.reserve(trs.size()); { - std::vector projectedTriangles(facets.size() * 3); + std::vector projectedTriangles(facets.size() * 3); std::vector normalTriangles(facets.size() * 3); for (uint32_t i = 0; i < facets.size(); ++i) @@ -1684,8 +1684,8 @@ Mesh* MeshCleanerImpl::cleanMesh(const Mesh* mesh) result.back().smoothingGroup = facets[parentTriangle].smoothingGroup; for (auto vert : { &result.back().a, &result.back().b, &result.back().c }) { - toPxShared(vert->p) = newVertices[trs[i].p[id]]; - PxVec2 p = getProjectedPointWithWinding(vert->p, getProjectionDirection(facetsNormals[parentTriangle])).toVec2(); + toNvShared(vert->p) = newVertices[trs[i].p[id]]; + NvVec2 p = getProjectedPointWithWinding(vert->p, getProjectionDirection(facetsNormals[parentTriangle])).toVec2(); getBarycentricCoords(projectedTriangles[parentTriangle * 3], projectedTriangles[parentTriangle * 3 + 1], projectedTriangles[parentTriangle * 3 + 2], p, u, v); vert->uv[0] = (1 - u - v) * normalTriangles[parentTriangle * 3].uv[0] + diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.h index 35518de45..4a0619b1f 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshCleanerImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H #define NVBLASTEXTAUTHORINGMESHCLEANERIMPL_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.cpp index 331e4065a..c3013d814 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. // This warning arises when using some stl containers with older versions of VC @@ -37,7 +37,7 @@ #include #include #include -#include +#include using namespace Nv::Blast; using namespace std; @@ -114,8 +114,8 @@ bool edgeOverlapTest(NvcVec3& as, NvcVec3& ae, NvcVec3& bs, NvcVec3& be) if (std::max(std::min(as.z, ae.z), std::min(bs.z, be.z)) > std::min(std::max(as.z, ae.z), std::max(bs.z, be.z))) return false; - return (toPxShared(bs - as).cross(toPxShared(ae - as))).magnitudeSquared() < 1e-6f && - (toPxShared(be - as).cross(toPxShared(ae - as))).magnitudeSquared() < 1e-6f; + return (toNvShared(bs - as).cross(toNvShared(ae - as))).magnitudeSquared() < 1e-6f && + (toNvShared(be - as).cross(toNvShared(ae - as))).magnitudeSquared() < 1e-6f; } void MeshNoiser::computePositionedMapping() @@ -143,8 +143,8 @@ void MeshNoiser::computePositionedMapping() void MeshNoiser::relax(int32_t iteration, float factor, std::vector& vertices) { - std::vector verticesTemp(vertices.size()); - std::vector normalsTemp(vertices.size()); + std::vector verticesTemp(vertices.size()); + std::vector normalsTemp(vertices.size()); for (int32_t iter = 0; iter < iteration; ++iter) { for (uint32_t i = 0; i < vertices.size(); ++i) @@ -153,15 +153,15 @@ void MeshNoiser::relax(int32_t iteration, float factor, std::vector& ver { continue; } - PxVec3 cps = toPxShared(vertices[i].p); - PxVec3 cns = mVerticesNormalsSmoothed[i]; - PxVec3 averaged(0, 0, 0); - PxVec3 averagedNormal(0, 0, 0); + NvVec3 cps = toNvShared(vertices[i].p); + NvVec3 cns = mVerticesNormalsSmoothed[i]; + NvVec3 averaged(0, 0, 0); + NvVec3 averagedNormal(0, 0, 0); for (uint32_t p = 0; p < mGeometryGraph[mPositionMappedVrt[i]].size(); ++p) { int32_t to = mGeometryGraph[mPositionMappedVrt[i]][p]; - averaged += toPxShared(vertices[to].p); + averaged += toNvShared(vertices[to].p); averagedNormal += mVerticesNormalsSmoothed[to]; } averaged *= (1.0f / mGeometryGraph[mPositionMappedVrt[i]].size()); @@ -175,7 +175,7 @@ void MeshNoiser::relax(int32_t iteration, float factor, std::vector& ver { continue; } - vertices[i].p = fromPxShared(verticesTemp[i]); + vertices[i].p = fromNvShared(verticesTemp[i]); mVerticesNormalsSmoothed[i] = normalsTemp[i].getNormalized(); } } @@ -391,7 +391,7 @@ NV_FORCE_INLINE int32_t MeshNoiser::findEdge(const Edge& e) void MeshNoiser::setMesh(const vector& mesh) { uint32_t a, b, c; - physx::PxBounds3 box; + nvidia::NvBounds3 box; box.setEmpty(); for (uint32_t i = 0; i < mesh.size(); ++i) { @@ -399,9 +399,9 @@ void MeshNoiser::setMesh(const vector& mesh) a = addVerticeIfNotExist(tr.a); b = addVerticeIfNotExist(tr.b); c = addVerticeIfNotExist(tr.c); - box.include(toPxShared(tr.a.p)); - box.include(toPxShared(tr.b.p)); - box.include(toPxShared(tr.c.p)); + box.include(toNvShared(tr.a.p)); + box.include(toNvShared(tr.b.p)); + box.include(toNvShared(tr.c.p)); addEdge({ a, b }); addEdge({ b, c }); addEdge({ a, c }); @@ -415,7 +415,7 @@ void MeshNoiser::setMesh(const vector& mesh) float invScale = 1.0f / mScale; for (uint32_t i = 0; i < mVertices.size(); ++i) { - mVertices[i].p = mVertices[i].p - fromPxShared(box.getCenter()); + mVertices[i].p = mVertices[i].p - fromNvShared(box.getCenter()); mVertices[i].p = mVertices[i].p * invScale; } } @@ -456,7 +456,7 @@ void MeshNoiser::tesselateInternalSurface(float maxLenIn) { continue; } - if (toPxShared(mVertices[mEdges[i].s].p - mVertices[mEdges[i].e].p).magnitudeSquared() < minD) + if (toNvShared(mVertices[mEdges[i].s].p - mVertices[mEdges[i].e].p).magnitudeSquared() < minD) { collapseEdge(i); } @@ -469,7 +469,7 @@ void MeshNoiser::tesselateInternalSurface(float maxLenIn) { continue; } - if (toPxShared(mVertices[mEdges[i].s].p - mVertices[mEdges[i].e].p).magnitudeSquared() > mlSq) + if (toNvShared(mVertices[mEdges[i].s].p - mVertices[mEdges[i].e].p).magnitudeSquared() > mlSq) { divideEdge(i); } @@ -641,8 +641,8 @@ void MeshNoiser::collapseEdge(int32_t id) if (cntr == 2 && trWithEdge[1] == i) continue; TriangleIndexed tr = mTriangles[i]; - PxVec3 oldNormal = - toPxShared(mVertices[tr.eb].p - mVertices[tr.ea].p).cross(toPxShared(mVertices[tr.ec].p - mVertices[tr.ea].p)); + NvVec3 oldNormal = + toNvShared(mVertices[tr.eb].p - mVertices[tr.ea].p).cross(toNvShared(mVertices[tr.ec].p - mVertices[tr.ea].p)); if (tr.ea == from) { @@ -656,8 +656,8 @@ void MeshNoiser::collapseEdge(int32_t id) { tr.ec = to; } - PxVec3 newNormal = - toPxShared(mVertices[tr.eb].p - mVertices[tr.ea].p).cross(toPxShared(mVertices[tr.ec].p - mVertices[tr.ea].p)); + NvVec3 newNormal = + toNvShared(mVertices[tr.eb].p - mVertices[tr.ea].p).cross(toNvShared(mVertices[tr.ec].p - mVertices[tr.ea].p)); if (newNormal.magnitude() < 1e-8f) { canBeCollapsed = false; @@ -800,7 +800,7 @@ void MeshNoiser::recalcNoiseDirs() /** Compute normals direction to apply noise */ - mVerticesNormalsSmoothed.resize(mVertices.size(), PxVec3(0, 0, 0)); + mVerticesNormalsSmoothed.resize(mVertices.size(), NvVec3(0, 0, 0)); for (uint32_t i = 0; i < mTriangles.size(); ++i) { if (mTriangles[i].ea == kNotValidVertexIndex) @@ -812,19 +812,19 @@ void MeshNoiser::recalcNoiseDirs() continue; if (tr.userData < 0) - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]] += toPxShared(mVertices[tr.ea].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]] += toNvShared(mVertices[tr.ea].n).getNormalized(); else - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]] -= toPxShared(mVertices[tr.ea].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]] -= toNvShared(mVertices[tr.ea].n).getNormalized(); if (tr.userData < 0) - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]] += toPxShared(mVertices[tr.eb].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]] += toNvShared(mVertices[tr.eb].n).getNormalized(); else - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]] -= toPxShared(mVertices[tr.eb].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]] -= toNvShared(mVertices[tr.eb].n).getNormalized(); if (tr.userData < 0) - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]] += toPxShared(mVertices[tr.ec].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]] += toNvShared(mVertices[tr.ec].n).getNormalized(); else - mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]] -= toPxShared(mVertices[tr.ec].n).getNormalized(); + mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]] -= toNvShared(mVertices[tr.ec].n).getNormalized(); } for (uint32_t i = 0; i < mVerticesNormalsSmoothed.size(); ++i) { @@ -872,15 +872,15 @@ void MeshNoiser::applyNoise(SimplexNoise& noise, float falloff, int32_t /*relaxI if (!mRestrictionFlag[i]) { - float d = noise.sample(toPxShared(localVertices[i].p)); - toPxShared(localVertices[i].p) += + float d = noise.sample(toNvShared(localVertices[i].p)); + toNvShared(localVertices[i].p) += (falloffFunction(mVerticesDistances[i], falloff)) * mVerticesNormalsSmoothed[i] * d; } } /* Recalculate smoothed normals*/ - mVerticesNormalsSmoothed.assign(mVerticesNormalsSmoothed.size(), PxVec3(0, 0, 0)); + mVerticesNormalsSmoothed.assign(mVerticesNormalsSmoothed.size(), NvVec3(0, 0, 0)); for (uint32_t i = 0; i < mTriangles.size(); ++i) { if (mTriangles[i].ea == kNotValidVertexIndex) @@ -892,7 +892,7 @@ void MeshNoiser::applyNoise(SimplexNoise& noise, float falloff, int32_t /*relaxI continue; Triangle pTr(localVertices[tr.ea], localVertices[tr.eb], localVertices[tr.ec]); - PxVec3 nrm = toPxShared(pTr.b.p - pTr.a.p).cross(toPxShared(pTr.c.p - pTr.a.p)).getNormalized(); + NvVec3 nrm = toNvShared(pTr.b.p - pTr.a.p).cross(toNvShared(pTr.c.p - pTr.a.p)).getNormalized(); mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]] += nrm; mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]] += nrm; @@ -913,9 +913,9 @@ void MeshNoiser::applyNoise(SimplexNoise& noise, float falloff, int32_t /*relaxI if (tr.userData == 0) continue; - localVertices[tr.ea].n = fromPxShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]]); - localVertices[tr.eb].n = fromPxShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]]); - localVertices[tr.ec].n = fromPxShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]]); + localVertices[tr.ea].n = fromNvShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ea]]); + localVertices[tr.eb].n = fromNvShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.eb]]); + localVertices[tr.ec].n = fromNvShared(mVerticesNormalsSmoothed[mPositionMappedVrt[tr.ec]]); } mResultTriangles.clear(); @@ -938,7 +938,7 @@ void MeshNoiser::prebuildTesselatedTriangles() for (uint32_t i = 0; i < mVertices.size(); ++i) { - mVertices[i].p = mVertices[i].p * mScale + fromPxShared(mOffset); + mVertices[i].p = mVertices[i].p * mScale + fromNvShared(mOffset); } for (uint32_t i = 0; i < mTriangles.size(); ++i) @@ -979,6 +979,6 @@ void MeshNoiser::reset() mGeometryGraph.clear(); isTesselated = false; - mOffset = PxVec3(0, 0, 0); + mOffset = NvVec3(0, 0, 0); mScale = 1.0f; } \ No newline at end of file diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.h index ee907ab9e..44b84b8a7 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshNoiser.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGMESHNOISER_H @@ -134,7 +134,7 @@ namespace Nv std::vector getMesh(); private: - physx::PxVec3 mOffset; + nvidia::NvVec3 mOffset; float mScale; bool isTesselated; /** @@ -176,7 +176,7 @@ namespace Nv std::vector mVerticesDistances; - std::vector mVerticesNormalsSmoothed; + std::vector mVerticesNormalsSmoothed; std::vector mPositionMappedVrt; std::vector > mGeometryGraph; diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshUtils.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshUtils.cpp index da69e8d19..70f2fb009 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshUtils.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringMeshUtils.cpp @@ -2,12 +2,12 @@ #include "NvBlastExtAuthoringMeshImpl.h" #include "NvBlastExtAuthoringPerlinNoise.h" #include "NvBlastExtAuthoringFractureTool.h" -#include +#include #include #include -using namespace physx; +using namespace nvidia; #define UV_SCALE 1.f @@ -19,52 +19,52 @@ namespace Nv namespace Blast { -void getTangents(const PxVec3& normal, PxVec3& t1, PxVec3& t2) +void getTangents(const NvVec3& normal, NvVec3& t1, NvVec3& t2) { if (std::abs(normal.z) < 0.9) { - t1 = normal.cross(PxVec3(0, 0, 1)); + t1 = normal.cross(NvVec3(0, 0, 1)); } else { - t1 = normal.cross(PxVec3(1, 0, 0)); + t1 = normal.cross(NvVec3(1, 0, 0)); } t2 = t1.cross(normal); } -Mesh* getCuttingBox(const PxVec3& point, const PxVec3& normal, float size, int64_t id, int32_t interiorMaterialId) +Mesh* getCuttingBox(const NvVec3& point, const NvVec3& normal, float size, int64_t id, int32_t interiorMaterialId) { - PxVec3 lNormal = normal.getNormalized(); - PxVec3 t1, t2; + NvVec3 lNormal = normal.getNormalized(); + NvVec3 t1, t2; getTangents(lNormal, t1, t2); std::vector positions(8); - toPxShared(positions[0].p) = point + (t1 + t2) * size; - toPxShared(positions[1].p) = point + (t2 - t1) * size; + toNvShared(positions[0].p) = point + (t1 + t2) * size; + toNvShared(positions[1].p) = point + (t2 - t1) * size; - toPxShared(positions[2].p) = point + (-t1 - t2) * size; - toPxShared(positions[3].p) = point + (t1 - t2) * size; + toNvShared(positions[2].p) = point + (-t1 - t2) * size; + toNvShared(positions[3].p) = point + (t1 - t2) * size; - toPxShared(positions[4].p) = point + (t1 + t2 + lNormal) * size; - toPxShared(positions[5].p) = point + (t2 - t1 + lNormal) * size; + toNvShared(positions[4].p) = point + (t1 + t2 + lNormal) * size; + toNvShared(positions[5].p) = point + (t2 - t1 + lNormal) * size; - toPxShared(positions[6].p) = point + (-t1 - t2 + lNormal) * size; - toPxShared(positions[7].p) = point + (t1 - t2 + lNormal) * size; + toNvShared(positions[6].p) = point + (-t1 - t2 + lNormal) * size; + toNvShared(positions[7].p) = point + (t1 - t2 + lNormal) * size; - toPxShared(positions[0].n) = -lNormal; - toPxShared(positions[1].n) = -lNormal; + toNvShared(positions[0].n) = -lNormal; + toNvShared(positions[1].n) = -lNormal; - toPxShared(positions[2].n) = -lNormal; - toPxShared(positions[3].n) = -lNormal; + toNvShared(positions[2].n) = -lNormal; + toNvShared(positions[3].n) = -lNormal; - toPxShared(positions[4].n) = -lNormal; - toPxShared(positions[5].n) = -lNormal; + toNvShared(positions[4].n) = -lNormal; + toNvShared(positions[5].n) = -lNormal; - toPxShared(positions[6].n) = -lNormal; - toPxShared(positions[7].n) = -lNormal; + toNvShared(positions[6].n) = -lNormal; + toNvShared(positions[7].n) = -lNormal; positions[0].uv[0] = { 0, 0 }; positions[1].uv[0] = {UV_SCALE, 0}; @@ -127,7 +127,7 @@ void inverseNormalAndIndices(Mesh* mesh) { for (uint32_t i = 0; i < mesh->getVerticesCount(); ++i) { - toPxShared(mesh->getVerticesWritable()[i].n) *= -1.0f; + toNvShared(mesh->getVerticesWritable()[i].n) *= -1.0f; } for (uint32_t i = 0; i < mesh->getFacetCount(); ++i) { @@ -135,38 +135,38 @@ void inverseNormalAndIndices(Mesh* mesh) } } -void setCuttingBox(const PxVec3& point, const PxVec3& normal, Mesh* mesh, float size, int64_t id) +void setCuttingBox(const NvVec3& point, const NvVec3& normal, Mesh* mesh, float size, int64_t id) { - PxVec3 t1, t2; - PxVec3 lNormal = normal.getNormalized(); + NvVec3 t1, t2; + NvVec3 lNormal = normal.getNormalized(); getTangents(lNormal, t1, t2); Vertex* positions = mesh->getVerticesWritable(); - toPxShared(positions[0].p) = point + (t1 + t2) * size; - toPxShared(positions[1].p) = point + (t2 - t1) * size; + toNvShared(positions[0].p) = point + (t1 + t2) * size; + toNvShared(positions[1].p) = point + (t2 - t1) * size; - toPxShared(positions[2].p) = point + (-t1 - t2) * size; - toPxShared(positions[3].p) = point + (t1 - t2) * size; + toNvShared(positions[2].p) = point + (-t1 - t2) * size; + toNvShared(positions[3].p) = point + (t1 - t2) * size; - toPxShared(positions[4].p) = point + (t1 + t2 + lNormal) * size; - toPxShared(positions[5].p) = point + (t2 - t1 + lNormal) * size; + toNvShared(positions[4].p) = point + (t1 + t2 + lNormal) * size; + toNvShared(positions[5].p) = point + (t2 - t1 + lNormal) * size; - toPxShared(positions[6].p) = point + (-t1 - t2 + lNormal) * size; - toPxShared(positions[7].p) = point + (t1 - t2 + lNormal) * size; + toNvShared(positions[6].p) = point + (-t1 - t2 + lNormal) * size; + toNvShared(positions[7].p) = point + (t1 - t2 + lNormal) * size; - toPxShared(positions[0].n) = -lNormal; - toPxShared(positions[1].n) = -lNormal; + toNvShared(positions[0].n) = -lNormal; + toNvShared(positions[1].n) = -lNormal; - toPxShared(positions[2].n) = -lNormal; - toPxShared(positions[3].n) = -lNormal; + toNvShared(positions[2].n) = -lNormal; + toNvShared(positions[3].n) = -lNormal; - toPxShared(positions[4].n) = -lNormal; - toPxShared(positions[5].n) = -lNormal; + toNvShared(positions[4].n) = -lNormal; + toNvShared(positions[5].n) = -lNormal; - toPxShared(positions[6].n) = -lNormal; - toPxShared(positions[7].n) = -lNormal; + toNvShared(positions[6].n) = -lNormal; + toNvShared(positions[7].n) = -lNormal; for (uint32_t i = 0; i < mesh->getFacetCount(); ++i) { @@ -177,10 +177,10 @@ void setCuttingBox(const PxVec3& point, const PxVec3& normal, Mesh* mesh, float struct Stepper { - virtual physx::PxVec3 getStep1(uint32_t w, uint32_t h) const = 0; - virtual physx::PxVec3 getStep2(uint32_t w) const = 0; - virtual physx::PxVec3 getStart() const = 0; - virtual physx::PxVec3 getNormal(uint32_t w, uint32_t h) const = 0; + virtual nvidia::NvVec3 getStep1(uint32_t w, uint32_t h) const = 0; + virtual nvidia::NvVec3 getStep2(uint32_t w) const = 0; + virtual nvidia::NvVec3 getStart() const = 0; + virtual nvidia::NvVec3 getNormal(uint32_t w, uint32_t h) const = 0; virtual bool isStep2ClosedLoop() const { return false; @@ -193,10 +193,10 @@ struct Stepper struct PlaneStepper : public Stepper { - PlaneStepper(const physx::PxVec3& normal, const physx::PxVec3& point, float sizeX, float sizeY, + PlaneStepper(const nvidia::NvVec3& normal, const nvidia::NvVec3& point, float sizeX, float sizeY, uint32_t resolutionX, uint32_t resolutionY, bool swapTangents = false) { - PxVec3 t1, t2; + NvVec3 t1, t2; lNormal = normal.getNormalized(); getTangents(lNormal, t1, t2); if (swapTangents) @@ -211,7 +211,7 @@ struct PlaneStepper : public Stepper resY = resolutionY; } // Define face by 4 corner points, points should lay in plane - PlaneStepper(const physx::PxVec3& p11, const physx::PxVec3& p12, const physx::PxVec3& p21, const physx::PxVec3& p22, + PlaneStepper(const nvidia::NvVec3& p11, const nvidia::NvVec3& p12, const nvidia::NvVec3& p21, const nvidia::NvVec3& p22, uint32_t resolutionX, uint32_t resolutionY) { lNormal = -(p21 - p11).cross(p12 - p11).getNormalized(); @@ -226,24 +226,24 @@ struct PlaneStepper : public Stepper cPos = p21; resY = resolutionY; } - physx::PxVec3 getStep1(uint32_t y, uint32_t) const + nvidia::NvVec3 getStep1(uint32_t y, uint32_t) const { return (t11d * (resY - y) + t21d * y) / resY; } - physx::PxVec3 getStep2(uint32_t) const + nvidia::NvVec3 getStep2(uint32_t) const { return t22d; } - physx::PxVec3 getStart() const + nvidia::NvVec3 getStart() const { return cPos; } - physx::PxVec3 getNormal(uint32_t, uint32_t) const + nvidia::NvVec3 getNormal(uint32_t, uint32_t) const { return lNormal; } - PxVec3 t11d, t12d, t21d, t22d, cPos, lNormal; + NvVec3 t11d, t12d, t21d, t22d, cPos, lNormal; uint32_t resY; }; @@ -291,20 +291,20 @@ void fillEdgesAndFaces(std::vector& edges, std::vector& facets, uin } void getNoisyFace(std::vector& vertices, std::vector& edges, std::vector& facets, uint32_t h, - uint32_t w, const physx::PxVec2& uvOffset, const physx::PxVec2& uvScale, const Stepper& stepper, + uint32_t w, const nvidia::NvVec2& uvOffset, const nvidia::NvVec2& uvScale, const Stepper& stepper, SimplexNoise& nEval, int64_t id, int32_t interiorMaterialId, bool randomizeLast = false) { uint32_t randIdx = randomizeLast ? 1 : 0; - PxVec3 cPosit = stepper.getStart(); + NvVec3 cPosit = stepper.getStart(); uint32_t firstVertex = vertices.size(); for (uint32_t i = 0; i < w + 1; ++i) { - PxVec3 lcPosit = cPosit; + NvVec3 lcPosit = cPosit; for (uint32_t j = 0; j < h + 1; ++j) { vertices.push_back(Vertex()); - toPxShared(vertices.back().p) = lcPosit; - toPxShared(vertices.back().uv[0]) = uvOffset + uvScale.multiply(physx::PxVec2(j, i)); + toNvShared(vertices.back().p) = lcPosit; + toNvShared(vertices.back().uv[0]) = uvOffset + uvScale.multiply(nvidia::NvVec2(j, i)); lcPosit += stepper.getStep1(i, j); } cPosit += stepper.getStep2(i); @@ -315,7 +315,7 @@ void getNoisyFace(std::vector& vertices, std::vector& edges, std:: for (uint32_t j = 1; j < h; ++j) { // TODO limit max displacement for cylinder - PxVec3& pnt = toPxShared(vertices[i * (h + 1) + j + firstVertex].p); + NvVec3& pnt = toNvShared(vertices[i * (h + 1) + j + firstVertex].p); pnt += stepper.getNormal(i, j) * nEval.sample(pnt); } } @@ -323,7 +323,7 @@ void getNoisyFace(std::vector& vertices, std::vector& edges, std:: fillEdgesAndFaces(edges, facets, h, w, firstVertex, vertices.size(), id, interiorMaterialId); } -PX_INLINE uint32_t unsignedMod(int32_t n, uint32_t modulus) + uint32_t unsignedMod(int32_t n, uint32_t modulus) { const int32_t d = n / (int32_t)modulus; const int32_t m = n - d * (int32_t)modulus; @@ -337,12 +337,12 @@ void calculateNormals(std::vector& vertices, uint32_t h, uint32_t w, boo for (uint32_t j = 1; j < h; ++j) { int32_t idx = i * (h + 1) + j; - PxVec3 v1 = toPxShared(vertices[idx + h + 1].p - vertices[idx].p); - PxVec3 v2 = toPxShared(vertices[idx + 1].p - vertices[idx].p); - PxVec3 v3 = toPxShared(vertices[idx - (h + 1)].p - vertices[idx].p); - PxVec3 v4 = toPxShared(vertices[idx - 1].p - vertices[idx].p); + NvVec3 v1 = toNvShared(vertices[idx + h + 1].p - vertices[idx].p); + NvVec3 v2 = toNvShared(vertices[idx + 1].p - vertices[idx].p); + NvVec3 v3 = toNvShared(vertices[idx - (h + 1)].p - vertices[idx].p); + NvVec3 v4 = toNvShared(vertices[idx - 1].p - vertices[idx].p); - PxVec3& n = toPxShared(vertices[idx].n); + NvVec3& n = toNvShared(vertices[idx].n); n = v1.cross(v2) + v2.cross(v3) + v3.cross(v4) + v4.cross(v1); if (inverseNormals) { @@ -353,12 +353,12 @@ void calculateNormals(std::vector& vertices, uint32_t h, uint32_t w, boo } } -Mesh* getNoisyCuttingBoxPair(const physx::PxVec3& point, const physx::PxVec3& normal, float size, float jaggedPlaneSize, - physx::PxVec3 resolution, int64_t id, float amplitude, float frequency, int32_t octaves, +Mesh* getNoisyCuttingBoxPair(const nvidia::NvVec3& point, const nvidia::NvVec3& normal, float size, float jaggedPlaneSize, + nvidia::NvVec3 resolution, int64_t id, float amplitude, float frequency, int32_t octaves, int32_t seed, int32_t interiorMaterialId) { - PxVec3 t1, t2; - PxVec3 lNormal = normal.getNormalized(); + NvVec3 t1, t2; + NvVec3 lNormal = normal.getNormalized(); getTangents(lNormal, t1, t2); float sz = 2.f * jaggedPlaneSize; uint32_t resolutionX = @@ -375,30 +375,30 @@ Mesh* getNoisyCuttingBoxPair(const physx::PxVec3& point, const physx::PxVec3& no vertices.reserve((resolutionX + 1) * (resolutionY + 1) + 12); std::vector edges; std::vector facets; - getNoisyFace(vertices, edges, facets, resolutionX, resolutionY, physx::PxVec2(0.f), - physx::PxVec2(UV_SCALE / resolutionX, UV_SCALE / resolutionY), stepper, nEval, id, interiorMaterialId); + getNoisyFace(vertices, edges, facets, resolutionX, resolutionY, nvidia::NvVec2(0.f), + nvidia::NvVec2(UV_SCALE / resolutionX, UV_SCALE / resolutionY), stepper, nEval, id, interiorMaterialId); calculateNormals(vertices, resolutionX, resolutionY); uint32_t offset = (resolutionX + 1) * (resolutionY + 1); vertices.resize(offset + 12); - toPxShared(vertices[0 + offset].p) = point + (t1 + t2) * size; - toPxShared(vertices[1 + offset].p) = point + (t2 - t1) * size; + toNvShared(vertices[0 + offset].p) = point + (t1 + t2) * size; + toNvShared(vertices[1 + offset].p) = point + (t2 - t1) * size; - toPxShared(vertices[2 + offset].p) = point + (-t1 - t2) * size; - toPxShared(vertices[3 + offset].p) = point + (t1 - t2) * size; + toNvShared(vertices[2 + offset].p) = point + (-t1 - t2) * size; + toNvShared(vertices[3 + offset].p) = point + (t1 - t2) * size; - toPxShared(vertices[8 + offset].p) = point + (t1 + t2) * jaggedPlaneSize; - toPxShared(vertices[9 + offset].p) = point + (t2 - t1) * jaggedPlaneSize; + toNvShared(vertices[8 + offset].p) = point + (t1 + t2) * jaggedPlaneSize; + toNvShared(vertices[9 + offset].p) = point + (t2 - t1) * jaggedPlaneSize; - toPxShared(vertices[10 + offset].p) = point + (-t1 - t2) * jaggedPlaneSize; - toPxShared(vertices[11 + offset].p) = point + (t1 - t2) * jaggedPlaneSize; + toNvShared(vertices[10 + offset].p) = point + (-t1 - t2) * jaggedPlaneSize; + toNvShared(vertices[11 + offset].p) = point + (t1 - t2) * jaggedPlaneSize; - toPxShared(vertices[4 + offset].p) = point + (t1 + t2 + lNormal) * size; - toPxShared(vertices[5 + offset].p) = point + (t2 - t1 + lNormal) * size; + toNvShared(vertices[4 + offset].p) = point + (t1 + t2 + lNormal) * size; + toNvShared(vertices[5 + offset].p) = point + (t2 - t1 + lNormal) * size; - toPxShared(vertices[6 + offset].p) = point + (-t1 - t2 + lNormal) * size; - toPxShared(vertices[7 + offset].p) = point + (t1 - t2 + lNormal) * size; + toNvShared(vertices[6 + offset].p) = point + (-t1 - t2 + lNormal) * size; + toNvShared(vertices[7 + offset].p) = point + (t1 - t2 + lNormal) * size; int32_t edgeOffset = edges.size(); edges.push_back({0 + offset, 1 + offset}); @@ -447,25 +447,25 @@ Mesh* getNoisyCuttingBoxPair(const physx::PxVec3& point, const physx::PxVec3& no return new MeshImpl(vertices.data(), edges.data(), facets.data(), vertices.size(), edges.size(), facets.size()); } -Mesh* getBigBox(const PxVec3& point, float size, int32_t interiorMaterialId) +Mesh* getBigBox(const NvVec3& point, float size, int32_t interiorMaterialId) { - PxVec3 normal(0, 0, 1); + NvVec3 normal(0, 0, 1); normal.normalize(); - PxVec3 t1, t2; + NvVec3 t1, t2; getTangents(normal, t1, t2); std::vector positions(8); - toPxShared(positions[0].p) = point + (t1 + t2 - normal) * size; - toPxShared(positions[1].p) = point + (t2 - t1 - normal) * size; + toNvShared(positions[0].p) = point + (t1 + t2 - normal) * size; + toNvShared(positions[1].p) = point + (t2 - t1 - normal) * size; - toPxShared(positions[2].p) = point + (-t1 - t2 - normal) * size; - toPxShared(positions[3].p) = point + (t1 - t2 - normal) * size; + toNvShared(positions[2].p) = point + (-t1 - t2 - normal) * size; + toNvShared(positions[3].p) = point + (t1 - t2 - normal) * size; - toPxShared(positions[4].p) = point + (t1 + t2 + normal) * size; - toPxShared(positions[5].p) = point + (t2 - t1 + normal) * size; + toNvShared(positions[4].p) = point + (t1 + t2 + normal) * size; + toNvShared(positions[5].p) = point + (t2 - t1 + normal) * size; - toPxShared(positions[6].p) = point + (-t1 - t2 + normal) * size; - toPxShared(positions[7].p) = point + (t1 - t2 + normal) * size; + toNvShared(positions[6].p) = point + (-t1 - t2 + normal) * size; + toNvShared(positions[7].p) = point + (t1 - t2 + normal) * size; positions[0].uv[0] = {0, 0}; positions[1].uv[0] = {UV_SCALE, 0}; @@ -527,7 +527,7 @@ Mesh* getBigBox(const PxVec3& point, float size, int32_t interiorMaterialId) } bool CmpSharedFace:: -operator()(const std::pair& pv1, const std::pair& pv2) const +operator()(const std::pair& pv1, const std::pair& pv2) const { CmpVec vc; if ((pv1.first - pv2.first).magnitude() < 1e-5) @@ -539,7 +539,7 @@ operator()(const std::pair& pv1, const std::pair

>& cutoutPoints, +void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector >& cutoutPoints, float heightBot, float heightTop, float conicityBot, float conicityTop, int64_t& id, int32_t seed, int32_t interiorMaterialId, SharedFacesMap& sharedFacesMap) { @@ -547,7 +547,7 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector >, CmpVec> newCutoutPoints; + std::map >, CmpVec> newCutoutPoints; uint32_t resH = std::max((uint32_t)std::roundf((heightBot + heightTop) / conf.noise.samplingInterval.z), 1u); // generate noisy faces @@ -571,13 +571,13 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector(resH + 1, physx::PxVec3(0.f))); + newCutoutPoints[p0] = std::make_pair(0u, std::vector(resH + 1, nvidia::NvVec3(0.f))); cp0 = newCutoutPoints.find(p0); } auto cp1 = newCutoutPoints.find(p1); if (cp1 == newCutoutPoints.end()) { - newCutoutPoints[p1] = std::make_pair(0u, std::vector(resH + 1, physx::PxVec3(0.f))); + newCutoutPoints[p1] = std::make_pair(0u, std::vector(resH + 1, nvidia::NvVec3(0.f))); cp1 = newCutoutPoints.find(p1); } @@ -587,7 +587,7 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vectorsecond; getNoisyFace(SF.vertices, SF.edges, SF.facets, resH, numPts, - physx::PxVec2(0, CYLINDER_UV_SCALE * currentP / (heightBot + heightTop)), - physx::PxVec2(CYLINDER_UV_SCALE / resH, + nvidia::NvVec2(0, CYLINDER_UV_SCALE * currentP / (heightBot + heightTop)), + nvidia::NvVec2(CYLINDER_UV_SCALE / resH, CYLINDER_UV_SCALE * vec.magnitude() / (heightBot + heightTop) / numPts), stepper, nEval, id++ + INDEXER_OFFSET, interiorMaterialId, true); @@ -621,8 +621,8 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vectorsecond.first++; for (uint32_t k = 0; k <= resH; k++) { - cp0->second.second[k] += toPxShared(SF.vertices[k].p); - cp1->second.second[k] += toPxShared(SF.vertices[SF.vertices.size() - resH - 1 + k].p); + cp0->second.second[k] += toNvShared(SF.vertices[k].p); + cp1->second.second[k] += toNvShared(SF.vertices[SF.vertices.size() - resH - 1 + k].p); } } } @@ -639,7 +639,7 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vectorsecond; - float d = physx::PxClamp((p1 - p0).getNormalized().dot((p2 - p1).getNormalized()), 0.f, 1.f); + float d = nvidia::NvClamp((p1 - p0).getNormalized().dot((p2 - p1).getNormalized()), 0.f, 1.f); for (uint32_t h = 0; h <= resH; h++) { @@ -680,8 +680,8 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vectorsecond.vertices[idx0 + h].p)).magnitude(); - float R1 = (cp1.second[h] / cp1.first - toPxShared(SFIt->second.vertices[idx1 + h].p)).magnitude(); + float R0 = (cp0.second[h] / cp0.first - toNvShared(SFIt->second.vertices[idx0 + h].p)).magnitude(); + float R1 = (cp1.second[h] / cp1.first - toNvShared(SFIt->second.vertices[idx1 + h].p)).magnitude(); float R = R0 - R1; float r = 0.25f * (cp1.second[h] / cp1.first - cp0.second[h] / cp0.first).magnitude(); float conicity = (conicityBot * h + conicityTop * (resH - h)) / resH; @@ -717,8 +717,8 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vectorsecond.vertices[idx0 + h].p)).magnitude(); - float R1 = (cp1.second[h] / cp1.first - toPxShared(SFIt->second.vertices[idx1 + h].p)).magnitude(); + float R0 = (cp0.second[h] / cp0.first - toNvShared(SFIt->second.vertices[idx0 + h].p)).magnitude(); + float R1 = (cp1.second[h] / cp1.first - toNvShared(SFIt->second.vertices[idx1 + h].p)).magnitude(); float R = R0 - R1; float r = 0.25f * (cp1.second[h] / cp1.first - cp0.second[h] / cp0.first).magnitude(); float conicity = (conicityBot * h + conicityTop * (resH - h)) / resH; @@ -744,18 +744,18 @@ void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector& points, const std::set& smoothingGroups, - const physx::PxTransform& transform, bool useSmoothing, float heightBot, float heightTop, - float conicityMultiplierBot, float conicityMultiplierTop, physx::PxVec3 samplingInterval, +Mesh* getNoisyCuttingCone(const std::vector& points, const std::set& smoothingGroups, + const nvidia::NvTransform& transform, bool useSmoothing, float heightBot, float heightTop, + float conicityMultiplierBot, float conicityMultiplierTop, nvidia::NvVec3 samplingInterval, int32_t interiorMaterialId, const SharedFacesMap& sharedFacesMap, bool inverseNormals) { NV_UNUSED(conicityMultiplierTop); @@ -857,8 +857,8 @@ Mesh* getNoisyCuttingCone(const std::vector& points, const std::s xPos.push_back(p.p.x); yPos.push_back(p.p.y); } - toPxShared(p.p) = transform.transform(toPxShared(p.p)); - toPxShared(p.n) = transform.rotate(toPxShared(p.n)); + toNvShared(p.p) = transform.transform(toNvShared(p.p)); + toNvShared(p.n) = transform.rotate(toNvShared(p.n)); } totalCount /= 2; @@ -890,7 +890,7 @@ Mesh* getNoisyCuttingCone(const std::vector& points, const std::s static_cast(edges.size()), static_cast(facets.size())); } -Mesh* getCuttingCone(const CutoutConfiguration& conf, const std::vector& points, +Mesh* getCuttingCone(const CutoutConfiguration& conf, const std::vector& points, const std::set& smoothingGroups, float heightBot, float heightTop, float conicityBot, float conicityTop, int64_t& id, int32_t seed, int32_t interiorMaterialId, const SharedFacesMap& sharedFacesMap, bool inverseNormals) @@ -900,8 +900,8 @@ Mesh* getCuttingCone(const CutoutConfiguration& conf, const std::vector FLT_EPSILON) { - return getNoisyCuttingCone(points, smoothingGroups, toPxShared(conf.transform), conf.useSmoothing, heightBot, heightTop, - conicityBot, conicityTop, toPxShared(conf.noise.samplingInterval), interiorMaterialId, + return getNoisyCuttingCone(points, smoothingGroups, toNvShared(conf.transform), conf.useSmoothing, heightBot, heightTop, + conicityBot, conicityTop, toNvShared(conf.noise.samplingInterval), interiorMaterialId, sharedFacesMap, inverseNormals); } @@ -924,12 +924,12 @@ Mesh* getCuttingCone(const CutoutConfiguration& conf, const std::vector #include "NvBlastExtAuthoringTypes.h" -namespace physx +namespace nvidia { - class PxVec3; + class NvVec3; }; namespace Nv @@ -28,7 +28,7 @@ Set cutting box at some particular position. \param[in] size Cutting box size \param[in] id Cutting box ID */ -void setCuttingBox(const physx::PxVec3& point, const physx::PxVec3& normal, Mesh* mesh, float size, int64_t id); +void setCuttingBox(const nvidia::NvVec3& point, const nvidia::NvVec3& normal, Mesh* mesh, float size, int64_t id); /** Create cutting box at some particular position. \param[in] point Cutting face center @@ -36,14 +36,14 @@ Create cutting box at some particular position. \param[in] size Cutting box size \param[in] id Cutting box ID */ -Mesh* getCuttingBox(const physx::PxVec3& point, const physx::PxVec3& normal, float size, int64_t id, int32_t interiorMaterialId); +Mesh* getCuttingBox(const nvidia::NvVec3& point, const nvidia::NvVec3& normal, float size, int64_t id, int32_t interiorMaterialId); /** Create box at some particular position. \param[in] point Cutting face center \param[in] size Cutting box size */ -Mesh* getBigBox(const physx::PxVec3& point, float size, int32_t interiorMaterialId); +Mesh* getBigBox(const nvidia::NvVec3& point, float size, int32_t interiorMaterialId); /** Create slicing box with noisy cutting surface. @@ -58,7 +58,7 @@ Create slicing box with noisy cutting surface. \param[in] octaves Noise octaves \param[in] seed Random generator seed, used for noise generation. */ -Mesh* getNoisyCuttingBoxPair(const physx::PxVec3& point, const physx::PxVec3& normal, float size, float jaggedPlaneSize, physx::PxVec3 resolution, int64_t id, float amplitude, float frequency, int32_t octaves, int32_t seed, int32_t interiorMaterialId); +Mesh* getNoisyCuttingBoxPair(const nvidia::NvVec3& point, const nvidia::NvVec3& normal, float size, float jaggedPlaneSize, nvidia::NvVec3 resolution, int64_t id, float amplitude, float frequency, int32_t octaves, int32_t seed, int32_t interiorMaterialId); /** @@ -69,10 +69,10 @@ void inverseNormalAndIndices(Mesh* mesh); struct CmpVec { - bool operator()(const physx::PxVec3& v1, const physx::PxVec3& v2) const; + bool operator()(const nvidia::NvVec3& v1, const nvidia::NvVec3& v2) const; }; -typedef std::map, CmpVec> PointMap; +typedef std::map, CmpVec> PointMap; struct SharedFace { @@ -90,14 +90,14 @@ struct SharedFace struct CmpSharedFace { - bool operator()(const std::pair& pv1, const std::pair& pv2) const; + bool operator()(const std::pair& pv1, const std::pair& pv2) const; }; -typedef std::map, SharedFace, CmpSharedFace> SharedFacesMap; +typedef std::map, SharedFace, CmpSharedFace> SharedFacesMap; struct CutoutConfiguration; -void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector>& points, +void buildCuttingConeFaces(const CutoutConfiguration& conf, const std::vector>& points, float heightBot, float heightTop, float conicityBot, float conicityTop, int64_t& id, int32_t seed, int32_t interiorMaterialId, SharedFacesMap& sharedFacesMap); @@ -117,7 +117,7 @@ Create cutting cone at some particular position. \param[in] sharedFacesMap Shared faces for noisy fracture */ Mesh* getCuttingCone(const CutoutConfiguration& conf, - const std::vector& points, const std::set& smoothingGroups, + const std::vector& points, const std::set& smoothingGroups, float heightBot, float heightTop, float conicityBot, float conicityTop, int64_t& id, int32_t seed, int32_t interiorMaterialId, const SharedFacesMap& sharedFacesMap, bool inverseNormals = false); diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.cpp index 143657596..961e52ac4 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #define _CRT_SECURE_NO_WARNINGS @@ -36,12 +36,12 @@ #include "NvBlastExtAuthoringBooleanToolImpl.h" #include "NvBlastExtAuthoringTriangulator.h" #include "NvBlastExtAuthoringPerlinNoise.h" -#include +#include #include using namespace Nv::Blast; -using namespace physx; +using namespace nvidia; struct DamagePatternImpl : public DamagePattern { @@ -123,8 +123,8 @@ DamagePattern* PatternGeneratorImpl::generateVoronoiPatternInternal(uint32_t cel { float d = sqrt(vr[j].p.x * vr[j].p.x + vr[j].p.y * vr[j].p.y); - vr[j].p.x *= (d + 4 * tan(angle * physx::PxPi / 180.f)) / d; - vr[j].p.y *= (d + 4 * tan(angle * physx::PxPi / 180.f)) / d; + vr[j].p.x *= (d + 4 * tan(angle * nvidia::NvPi / 180.f)) / d; + vr[j].p.y *= (d + 4 * tan(angle * nvidia::NvPi / 180.f)) / d; } } } @@ -176,7 +176,7 @@ DamagePattern* PatternGeneratorImpl::generateBeamPattern(const BeamPatternDesc* DamagePattern* PatternGeneratorImpl::generateRegularRadialPattern(const RegularRadialPatternDesc* desc) { SimplexNoise noise(desc->radialNoiseAmplitude, desc->radialNoiseFrequency, 3, desc->RNG() * 999999); - std::vector points; + std::vector points; float radialDelta = (desc->radiusMax - desc->radiusMin) / desc->radialSteps; float angularDelta = 2 * acos(-1.0f) / desc->angularSteps; @@ -187,11 +187,11 @@ DamagePattern* PatternGeneratorImpl::generateRegularRadialPattern(const RegularR for (uint32_t j = 0; j < desc->angularSteps; ++j) { float angle = j * angularDelta + desc->RNG() * desc->angularNoiseAmplitude; - float rd = ((i + noise.sample(PxVec3(angle, 0, 0))) * radialDelta + desc->radiusMin); + float rd = ((i + noise.sample(NvVec3(angle, 0, 0))) * radialDelta + desc->radiusMin); float x = rd * cos(angle); float y = rd * sin(angle); float z = 0; - points.push_back(PxVec3(x, y, z)); + points.push_back(NvVec3(x, y, z)); } } float mrd = 0.0; @@ -206,7 +206,7 @@ DamagePattern* PatternGeneratorImpl::generateRegularRadialPattern(const RegularR float ap = std::max(0.0f, desc->aperture); - auto pattern = generateVoronoiPatternInternal((uint32_t)points.size(), fromPxShared(points.data()), desc->interiorMaterialId, ap); + auto pattern = generateVoronoiPatternInternal((uint32_t)points.size(), fromNvShared(points.data()), desc->interiorMaterialId, ap); pattern->activationRadius = desc->radiusMax * desc->debrisRadiusMult; pattern->activationType = (ap == 0) ? DamagePattern::Line : DamagePattern::Cone; diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.h index e2e0fcfdf..c65b97c94 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPatternGeneratorImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGPATTERNGENERATORIMPL_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPerlinNoise.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPerlinNoise.h index c130c1d93..68ace3a30 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPerlinNoise.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringPerlinNoise.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGPERLINNOISE_H @@ -30,11 +30,11 @@ #include -#include -#include +#include "NvVec4.h" +#include "NvVec3.h" #define PERLIN_NOISE_SAMPLE_TABLE 512 -using physx::PxVec3; +using nvidia::NvVec3; namespace Nv { namespace Blast @@ -45,7 +45,7 @@ namespace Blast */ -NV_INLINE float at3(const float& rx, const float& ry, const float& rz, const PxVec3 q) +NV_INLINE float at3(const float& rx, const float& ry, const float& rz, const NvVec3 q) { return rx * q[0] + ry * q[1] + rz * q[2]; } @@ -54,7 +54,7 @@ NV_INLINE float fade(float t) { return t * t * t * (t * (t * 6.0f - 15.0f) + 10 NV_INLINE float lerp(float t, float a, float b) { return a + t * (b - a); } -NV_INLINE void setup(int i, PxVec3 point, float& t, int& b0, int& b1, float& r0, float& r1) +NV_INLINE void setup(int i, NvVec3 point, float& t, int& b0, int& b1, float& r0, float& r1) { t = point[i] + (0x1000); b0 = ((int)t) & (PERLIN_NOISE_SAMPLE_TABLE - 1); @@ -64,11 +64,11 @@ NV_INLINE void setup(int i, PxVec3 point, float& t, int& b0, int& b1, float& r0, } -NV_INLINE float noiseSample(PxVec3 point, int* p, PxVec3* g) +NV_INLINE float noiseSample(NvVec3 point, int* p, NvVec3* g) { int bx0, bx1, by0, by1, bz0, bz1, b00, b10, b01, b11; float rx0, rx1, ry0, ry1, rz0, rz1, sy, sz, a, b, c, d, t, u, v; - PxVec3 q; + NvVec3 q; int i, j; setup(0, point, t, bx0, bx1, rx0, rx1); @@ -149,7 +149,7 @@ class PerlinNoise /** Get Perlin Noise value at given point */ - float sample(const physx::PxVec3& point) + float sample(const nvidia::NvVec3& point) { return perlinNoise(point); } @@ -157,7 +157,7 @@ class PerlinNoise private: PerlinNoise& operator=(const PerlinNoise&); - float perlinNoise(physx::PxVec3 point) + float perlinNoise(nvidia::NvVec3 point) { if (!mbInit) init(); @@ -171,7 +171,7 @@ class PerlinNoise for (int i = 0; i < octaves; ++i) { - PxVec3 lpnt; + NvVec3 lpnt; lpnt[0] = point.x; lpnt[1] = point.y; lpnt[2] = point.z; @@ -222,7 +222,7 @@ class PerlinNoise // Permutation vector int p[(unsigned)(PERLIN_NOISE_SAMPLE_TABLE + PERLIN_NOISE_SAMPLE_TABLE + 2)]; // Gradient vector - PxVec3 g[(unsigned)(PERLIN_NOISE_SAMPLE_TABLE + PERLIN_NOISE_SAMPLE_TABLE + 2)]; + NvVec3 g[(unsigned)(PERLIN_NOISE_SAMPLE_TABLE + PERLIN_NOISE_SAMPLE_TABLE + 2)]; bool mbInit; }; @@ -276,11 +276,11 @@ class SimplexNoise \param[in] seed Random seed value \return Noise valued vector (x,y,z) and scalar (w) */ - physx::PxVec4 eval4D(float x, float y, float z, float w, int seed) + nvidia::NvVec4 eval4D(float x, float y, float z, float w, int seed) { // The skewing and unskewing factors are hairy again for the 4D case - const float F4 = (physx::PxSqrt(5.0f) - 1.0f) / 4.0f; - const float G4 = (5.0f - physx::PxSqrt(5.0f)) / 20.0f; + const float F4 = (nvidia::NvSqrt(5.0f) - 1.0f) / 4.0f; + const float G4 = (5.0f - nvidia::NvSqrt(5.0f)) / 20.0f; // Skew the (x,y,z,w) space to determine which cell of 24 simplices we're in float s = (x + y + z + w) * F4; // Factor for 4D skewing int ix = fastfloor(x + s); @@ -301,7 +301,7 @@ class SimplexNoise c += (y0 > w0) ? (1 << 2) : (1 << 6); c += (z0 > w0) ? (1 << 4) : (1 << 6); - physx::PxVec4 res; + nvidia::NvVec4 res; res.setZero(); // Calculate the contribution from the five corners @@ -331,7 +331,7 @@ class SimplexNoise gradIndex ^= (gradIndex >> SHIFT_NOISE_GEN); gradIndex &= 31; - physx::PxVec4 g; + nvidia::NvVec4 g; { const int h = gradIndex; const int hs = 2 - (h >> 4); @@ -365,7 +365,7 @@ class SimplexNoise \param[in] p Point in which noise will be evaluated \return Noise value at given point */ - float sample(physx::PxVec3 p) + float sample(nvidia::NvVec3 p) { p *= mFrequency; float result = 0.0f; diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.cpp index d3458d40e..3a9099579 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. // This warning arises when using some stl containers with older versions of VC @@ -37,7 +37,7 @@ #include "NvPreprocessor.h" #include "NvBlastExtAuthoringBooleanToolImpl.h" #include -#include +#include #include #include @@ -46,8 +46,8 @@ #include #include -using physx::PxVec2; -using physx::PxVec3; +using nvidia::NvVec2; +using nvidia::NvVec3; namespace Nv { @@ -72,24 +72,24 @@ NV_FORCE_INLINE bool compareTwoFloats(float a, float b) { return std::abs(b - a) <= FLT_EPSILON * std::abs(b + a); } -NV_FORCE_INLINE bool compareTwoVertices(const PxVec3& a, const PxVec3& b) +NV_FORCE_INLINE bool compareTwoVertices(const NvVec3& a, const NvVec3& b) { return compareTwoFloats(a.x, b.x) && compareTwoFloats(a.y, b.y) && compareTwoFloats(a.z, b.z); } -NV_FORCE_INLINE bool compareTwoVertices(const PxVec2& a, const PxVec2& b) +NV_FORCE_INLINE bool compareTwoVertices(const NvVec2& a, const NvVec2& b) { return compareTwoFloats(a.x, b.x) && compareTwoFloats(a.y, b.y); } -NV_FORCE_INLINE float getRotation(const PxVec2& a, const PxVec2& b) +NV_FORCE_INLINE float getRotation(const NvVec2& a, const NvVec2& b) { return a.x * b.y - a.y * b.x; } NV_FORCE_INLINE bool pointInside( - const PxVec2& ba, const PxVec2& cb, const PxVec2& ac, - const PxVec2& a, const PxVec2& b, const PxVec2& c, - const PxVec2& pnt + const NvVec2& ba, const NvVec2& cb, const NvVec2& ac, + const NvVec2& a, const NvVec2& b, const NvVec2& c, + const NvVec2& pnt ) { // Co-positional verts are not considered inside because that would break the exterior of the facet if (compareTwoVertices(a, pnt) || compareTwoVertices(b, pnt) || compareTwoVertices(c, pnt)) @@ -145,14 +145,14 @@ static void updatePotentialEar( const Vertex pV = vert[adjVertInfo.prev]; const Vertex nV = vert[adjVertInfo.next]; - const PxVec2 cVp = getProjectedPoint(cV.p, dir); - const PxVec2 pVp = getProjectedPoint(pV.p, dir); - const PxVec2 nVp = getProjectedPoint(nV.p, dir); + const NvVec2 cVp = getProjectedPoint(cV.p, dir); + const NvVec2 pVp = getProjectedPoint(pV.p, dir); + const NvVec2 nVp = getProjectedPoint(nV.p, dir); // if there are no other verts inside, then it is a potential ear - const PxVec2 ba = (nVp - cVp).getNormalized(); - const PxVec2 cb = (pVp - nVp).getNormalized(); - const PxVec2 ac = (cVp - pVp).getNormalized(); + const NvVec2 ba = (nVp - cVp).getNormalized(); + const NvVec2 cb = (pVp - nVp).getNormalized(); + const NvVec2 ac = (cVp - pVp).getNormalized(); for (uint32_t vrt : reflexVerts) { // ignore reflex verts that are part of the tri being tested @@ -161,7 +161,7 @@ static void updatePotentialEar( continue; } - const PxVec2 pnt = getProjectedPoint(vert[vrt].p, dir); + const NvVec2 pnt = getProjectedPoint(vert[vrt].p, dir); if (pointInside(ba, cb, ac, cVp, nVp, pVp, pnt)) { return; @@ -199,12 +199,12 @@ static void updateVertData( const Vertex pV = vert[prev]; const Vertex nV = vert[next]; - const PxVec2 cVp = getProjectedPoint(cV.p, dir); - const PxVec2 pVp = getProjectedPoint(pV.p, dir); - const PxVec2 nVp = getProjectedPoint(nV.p, dir); + const NvVec2 cVp = getProjectedPoint(cV.p, dir); + const NvVec2 pVp = getProjectedPoint(pV.p, dir); + const NvVec2 nVp = getProjectedPoint(nV.p, dir); - const PxVec2 prevEdge = (cVp - pVp); - const PxVec2 nextEdge = (nVp - cVp); + const NvVec2 prevEdge = (cVp - pVp); + const NvVec2 nextEdge = (nVp - cVp); // use normalized vectors to get a better calc for the angle between them float rot = getRotation(prevEdge.getNormalized(), nextEdge.getNormalized()); @@ -313,7 +313,7 @@ struct LoopInfo { used = false; } - PxVec3 normal; + NvVec3 normal; float area; int32_t index; bool used; @@ -353,18 +353,18 @@ int32_t unitePolygons(std::vector& externalLoop, std::vector float minX = MAXIMUM_EXTENT; int32_t vrtIndex = -1; bool isFromBuffer = 0; - PxVec2 holePoint = getProjectedPoint(vrx[internalLoop[mIndex]].p, dir); - PxVec2 computedPoint; + NvVec2 holePoint = getProjectedPoint(vrx[internalLoop[mIndex]].p, dir); + NvVec2 computedPoint; for (uint32_t i = 0; i < externalLoop.size(); ++i) { int32_t nx = (i + 1) % externalLoop.size(); - PxVec2 pnt1 = getProjectedPoint(vrx[externalLoop[i]].p, dir); - PxVec2 pnt2 = getProjectedPoint(vrx[externalLoop[nx]].p, dir); + NvVec2 pnt1 = getProjectedPoint(vrx[externalLoop[i]].p, dir); + NvVec2 pnt2 = getProjectedPoint(vrx[externalLoop[nx]].p, dir); if (pnt1.x < x_max && pnt2.x < x_max) { continue; } - PxVec2 vc = pnt2 - pnt1; + NvVec2 vc = pnt2 - pnt1; if (vc.y == 0 && pnt1.y == holePoint.y) { if (pnt1.x < minX && pnt1.x < pnt2.x && pnt1.x > x_max) @@ -385,7 +385,7 @@ int32_t unitePolygons(std::vector& externalLoop, std::vector float t = (holePoint.y - pnt1.y) / vc.y; if (t <= 1 && t >= 0) { - PxVec2 tempPoint = vc * t + pnt1; + NvVec2 tempPoint = vc * t + pnt1; if (tempPoint.x < minX && tempPoint.x > x_max) { minX = tempPoint.x; @@ -405,8 +405,8 @@ int32_t unitePolygons(std::vector& externalLoop, std::vector float bestAngle = 100; if (!isFromBuffer) { - PxVec2 ex1 = getProjectedPoint(vrx[externalLoop[vrtIndex]].p, dir); - PxVec2 ex2 = getProjectedPoint(vrx[externalLoop[(vrtIndex + 1) % externalLoop.size()]].p, dir); + NvVec2 ex1 = getProjectedPoint(vrx[externalLoop[vrtIndex]].p, dir); + NvVec2 ex2 = getProjectedPoint(vrx[externalLoop[(vrtIndex + 1) % externalLoop.size()]].p, dir); if (ex1.x > ex2.x) { @@ -415,25 +415,25 @@ int32_t unitePolygons(std::vector& externalLoop, std::vector } /* Check if some point is inside triangle */ bool notFound = true; - const PxVec2 ba = (ex1 - holePoint).getNormalized(); - const PxVec2 cb = (computedPoint - ex1).getNormalized(); - const PxVec2 ac = (holePoint - computedPoint).getNormalized(); + const NvVec2 ba = (ex1 - holePoint).getNormalized(); + const NvVec2 cb = (computedPoint - ex1).getNormalized(); + const NvVec2 ac = (holePoint - computedPoint).getNormalized(); for (int32_t i = 0; i < (int32_t)externalLoop.size(); ++i) { - const PxVec2 tempPoint = getProjectedPoint(vrx[externalLoop[i]].p, dir); + const NvVec2 tempPoint = getProjectedPoint(vrx[externalLoop[i]].p, dir); if (pointInside(ba, cb, ac, holePoint, ex1, computedPoint, tempPoint)) { notFound = false; - const PxVec2 cVp = getProjectedPoint(vrx[externalLoop[i]].p, dir); - const PxVec2 pVp = + const NvVec2 cVp = getProjectedPoint(vrx[externalLoop[i]].p, dir); + const NvVec2 pVp = getProjectedPoint(vrx[externalLoop[(i - 1 + externalLoop.size()) % externalLoop.size()]].p, dir); - const PxVec2 nVp = getProjectedPoint(vrx[externalLoop[(i + 1) % externalLoop.size()]].p, dir); + const NvVec2 nVp = getProjectedPoint(vrx[externalLoop[(i + 1) % externalLoop.size()]].p, dir); float rt = getRotation((cVp - pVp).getNormalized(), (nVp - pVp).getNormalized()); if (dir & OPPOSITE_WINDING) rt = -rt; if (rt < MIN_ANGLE) continue; - const float tempAngle = PxVec2(1, 0).dot((tempPoint - holePoint).getNormalized()); + const float tempAngle = NvVec2(1, 0).dot((tempPoint - holePoint).getNormalized()); if (bestAngle < tempAngle) { bestAngle = tempAngle; @@ -558,15 +558,15 @@ void Triangulator::buildPolygonAndTriangulate(std::vector& edges, Vertex* std::vector loopsInfo(serializedLoops.size()); // Compute normal to whole polygon, and areas of loops - PxVec3 wholeFacetNormal(0, 0, 0); + NvVec3 wholeFacetNormal(0, 0, 0); for (uint32_t loop = 0; loop < serializedLoops.size(); ++loop) { - PxVec3 loopNormal(0, 0, 0); + NvVec3 loopNormal(0, 0, 0); const std::vector& pos = serializedLoops[loop]; for (uint32_t vrt = 1; vrt + 1 < serializedLoops[loop].size(); ++vrt) { - loopNormal += toPxShared(vertices[pos[vrt]].p - vertices[pos[0]].p) - .cross(toPxShared(vertices[pos[vrt + 1]].p - vertices[pos[0]].p)); + loopNormal += toNvShared(vertices[pos[vrt]].p - vertices[pos[0]].p) + .cross(toNvShared(vertices[pos[vrt + 1]].p - vertices[pos[0]].p)); } loopsInfo[loop].area = loopNormal.magnitude(); loopsInfo[loop].normal = loopNormal; @@ -585,7 +585,7 @@ void Triangulator::buildPolygonAndTriangulate(std::vector& edges, Vertex* const ProjectionDirections dir = getProjectionDirection(wholeFacetNormal); std::sort(loopsInfo.begin(), loopsInfo.end()); - std::vector tempPositions; + std::vector tempPositions; int32_t oldSize = static_cast(mBaseMeshTriangles.size()); for (uint32_t extPoly = 0; extPoly < loopsInfo.size(); ++extPoly) { diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.h index cc868f73c..04cf68c09 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringTriangulator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGTRIANGULATOR_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringVSA.h b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringVSA.h index 2521e319a..30cc6a00d 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringVSA.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtAuthoringVSA.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGVSA_H diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.cpp b/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.cpp index 400741c3c..ff03ec50b 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.cpp +++ b/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtTriangleProcessor.h" @@ -30,7 +30,7 @@ #define COLLIN_EPS 1e-4f #define V_COMP_EPS 1e-5f -using namespace physx; +using namespace nvidia; namespace Nv { @@ -39,12 +39,12 @@ namespace Blast /** Segments bounding box interseciton test */ -bool boundingRectangleIntersection(const PxVec2& s1, const PxVec2& e1, const PxVec2& s2, const PxVec2& e2) +bool boundingRectangleIntersection(const NvVec2& s1, const NvVec2& e1, const NvVec2& s2, const NvVec2& e2) { // sl1/sl2 is always left bottom end of rectangle // se1/el2 is always right top end of rectangle - PxF32 sl1, sl2, el1, el2; + float sl1, sl2, el1, el2; if (s1.x < e1.x) { sl1 = s1.x; @@ -66,7 +66,7 @@ bool boundingRectangleIntersection(const PxVec2& s1, const PxVec2& e1, const PxV el2 = s2.x; sl2 = e2.x; } - if (PxMax(sl1, sl2) > PxMin(el1, el2)) + if (NvMax(sl1, sl2) > NvMin(el1, el2)) return false; if (s1.y < e1.y) @@ -90,22 +90,22 @@ bool boundingRectangleIntersection(const PxVec2& s1, const PxVec2& e1, const PxV el2 = s2.y; sl2 = e2.y; } - if (PxMax(sl1, sl2) > PxMin(el1, el2)) + if (NvMax(sl1, sl2) > NvMin(el1, el2)) return false; return true; } -inline PxF32 getRotation(PxVec2 a, PxVec2 b) +inline float getRotation(NvVec2 a, NvVec2 b) { return a.x * b.y - a.y * b.x; } -inline PxF32 getParameter(const PxVec2& a, const PxVec2& b, const PxVec2& point) +inline float getParameter(const NvVec2& a, const NvVec2& b, const NvVec2& point) { return (point - a).magnitude() / (b - a).magnitude(); } -inline PxVec3 lerp3D(const PxVec3& a, const PxVec3& b, const PxF32 t) +inline NvVec3 lerp3D(const NvVec3& a, const NvVec3& b, const float t) { return (b - a) * t + a; } @@ -114,9 +114,9 @@ inline PxVec3 lerp3D(const PxVec3& a, const PxVec3& b, const PxF32 t) struct Line2D { - PxVec2 normal; - PxF32 c; - Line2D(PxVec2 vec, PxVec2 point) + NvVec2 normal; + float c; + Line2D(NvVec2 vec, NvVec2 point) { normal.x = vec.y; normal.y = -vec.x; @@ -125,31 +125,31 @@ struct Line2D }; -uint32_t TriangleProcessor::getSegmentIntersection(const PxVec2& s1, const PxVec2& e1, const PxVec2& s2, const PxVec2& e2, PxF32& t1) +uint32_t TriangleProcessor::getSegmentIntersection(const NvVec2& s1, const NvVec2& e1, const NvVec2& s2, const NvVec2& e2, float& t1) { if (!boundingRectangleIntersection(s1, e1, s2, e2)) return 0; - PxVec2 vec1 = e1 - s1; - PxVec2 vec2 = e2 - s2; - PxF32 det1 = getRotation(vec1, vec2); - if (PxAbs(det1) < COLLIN_EPS) + NvVec2 vec1 = e1 - s1; + NvVec2 vec2 = e2 - s2; + float det1 = getRotation(vec1, vec2); + if (NvAbs(det1) < COLLIN_EPS) { return 0; } Line2D lineA(vec1, s1); Line2D lineB(vec2, s2); - PxVec2 fInt; + NvVec2 fInt; - PxF32 detX = lineA.normal.y * lineB.c - lineA.c * lineB.normal.y; - PxF32 detY = lineA.c * lineB.normal.x - lineB.c * lineA.normal.x; - PxF32 x = detX / det1; - PxF32 y = detY / det1; + float detX = lineA.normal.y * lineB.c - lineA.c * lineB.normal.y; + float detY = lineA.c * lineB.normal.x - lineB.c * lineA.normal.x; + float x = detX / det1; + float y = detY / det1; - if (x + V_COMP_EPS >= PxMax(PxMin(s1.x, e1.x), PxMin(s2.x, e2.x)) && - x - V_COMP_EPS <= PxMin(PxMax(s1.x, e1.x), PxMax(s2.x, e2.x)) && - y + V_COMP_EPS >= PxMax(PxMin(s1.y, e1.y), PxMin(s2.y, e2.y)) && - y - V_COMP_EPS <= PxMin(PxMax(s1.y, e1.y), PxMax(s2.y, e2.y))) + if (x + V_COMP_EPS >= NvMax(NvMin(s1.x, e1.x), NvMin(s2.x, e2.x)) && + x - V_COMP_EPS <= NvMin(NvMax(s1.x, e1.x), NvMax(s2.x, e2.x)) && + y + V_COMP_EPS >= NvMax(NvMin(s1.y, e1.y), NvMin(s2.y, e2.y)) && + y - V_COMP_EPS <= NvMin(NvMax(s1.y, e1.y), NvMax(s2.y, e2.y))) { fInt.x = x; fInt.y = y; @@ -162,21 +162,21 @@ uint32_t TriangleProcessor::getSegmentIntersection(const PxVec2& s1, const PxVec struct cwComparer { - PxVec3 basePoint; - PxVec3 normal; - cwComparer(PxVec3 basePointIn, PxVec3 norm) + NvVec3 basePoint; + NvVec3 normal; + cwComparer(NvVec3 basePointIn, NvVec3 norm) { basePoint = basePointIn; normal = norm; }; - bool operator()(const PxVec3& a, const PxVec3& b) + bool operator()(const NvVec3& a, const NvVec3& b) { - PxVec3 norm = (a - basePoint).cross(b - basePoint); + NvVec3 norm = (a - basePoint).cross(b - basePoint); return normal.dot(norm) > 0; } }; -bool vec3Comparer(const PxVec3& a, const PxVec3& b) +bool vec3Comparer(const NvVec3& a, const NvVec3& b) { if (a.x + V_COMP_EPS < b.x) return true; if (a.x - V_COMP_EPS > b.x) return false; @@ -186,13 +186,13 @@ bool vec3Comparer(const PxVec3& a, const PxVec3& b) return false; } -void TriangleProcessor::sortToCCW(std::vector& points, PxVec3& normal) +void TriangleProcessor::sortToCCW(std::vector& points, NvVec3& normal) { std::sort(points.begin(), points.end(), vec3Comparer); int lastUnique = 0; for (uint32_t i = 1; i < points.size(); ++i) { - PxVec3 df = (points[i] - points[lastUnique]).abs(); + NvVec3 df = (points[i] - points[lastUnique]).abs(); if (df.x > V_COMP_EPS || df.y > V_COMP_EPS || df.z > V_COMP_EPS) { points[++lastUnique] = points[i]; @@ -208,14 +208,14 @@ void TriangleProcessor::sortToCCW(std::vector& points, PxVec3& normal) -void TriangleProcessor::buildConvexHull(std::vector& points, std::vector& convexHull,const PxVec3& normal) +void TriangleProcessor::buildConvexHull(std::vector& points, std::vector& convexHull,const NvVec3& normal) { std::sort(points.begin(), points.end(), vec3Comparer); int lastUnique = 0; for (uint32_t i = 1; i < points.size(); ++i) { - PxVec3 df = (points[i] - points[lastUnique]).abs(); + NvVec3 df = (points[i] - points[lastUnique]).abs(); if (df.x > V_COMP_EPS || df.y > V_COMP_EPS || df.z > V_COMP_EPS) { points[++lastUnique] = points[i]; @@ -234,9 +234,9 @@ void TriangleProcessor::buildConvexHull(std::vector& points, std::vector ProjectionDirections projectionDirection = getProjectionDirection(normal); for (uint32_t i = 2; i < points.size(); ++i) { - PxVec2 pnt = getProjectedPointWithWinding(points[i], projectionDirection); - PxVec2 vec = pnt - getProjectedPointWithWinding(convexHull.back(), projectionDirection); - if (PxAbs(vec.x) < V_COMP_EPS && PxAbs(vec.y) < V_COMP_EPS) + NvVec2 pnt = getProjectedPointWithWinding(points[i], projectionDirection); + NvVec2 vec = pnt - getProjectedPointWithWinding(convexHull.back(), projectionDirection); + if (NvAbs(vec.x) < V_COMP_EPS && NvAbs(vec.y) < V_COMP_EPS) { continue; } @@ -257,7 +257,7 @@ void TriangleProcessor::buildConvexHull(std::vector& points, std::vector } -uint32_t TriangleProcessor::getTriangleIntersection(TrPrcTriangle& a, TrPrcTriangle2d& aProjected, TrPrcTriangle &b, PxVec3& centroid, std::vector& intersectionBuffer, PxVec3 normal) +uint32_t TriangleProcessor::getTriangleIntersection(TrPrcTriangle& a, TrPrcTriangle2d& aProjected, TrPrcTriangle &b, NvVec3& centroid, std::vector& intersectionBuffer, NvVec3 normal) { b.points[0] -= centroid; @@ -308,7 +308,7 @@ uint32_t TriangleProcessor::getTriangleIntersection(TrPrcTriangle& a, TrPrcTrian return 0; // Intersection between two triangles is convex, but points should be reordered to construct right polygon // - std::vector intrs; + std::vector intrs; buildConvexHull(intersectionBuffer, intrs, normal); intersectionBuffer = intrs; @@ -342,16 +342,16 @@ bool TriangleProcessor::triangleBoundingBoxIntersection(TrPrcTriangle2d& a, TrPr } -uint32_t TriangleProcessor::isPointInside(const PxVec2& point, const TrPrcTriangle2d& triangle) +uint32_t TriangleProcessor::isPointInside(const NvVec2& point, const TrPrcTriangle2d& triangle) { - PxF32 av = getRotation(point - triangle.points[0], triangle.points[1] - triangle.points[0]); - PxF32 bv = getRotation(point - triangle.points[1], triangle.points[2] - triangle.points[1]); - PxF32 cv = getRotation(point - triangle.points[2], triangle.points[0] - triangle.points[2]); + float av = getRotation(point - triangle.points[0], triangle.points[1] - triangle.points[0]); + float bv = getRotation(point - triangle.points[1], triangle.points[2] - triangle.points[1]); + float cv = getRotation(point - triangle.points[2], triangle.points[0] - triangle.points[2]); - if (PxAbs(av) < COLLIN_EPS) av = 0; - if (PxAbs(bv) < COLLIN_EPS) bv = 0; - if (PxAbs(cv) < COLLIN_EPS) cv = 0; + if (NvAbs(av) < COLLIN_EPS) av = 0; + if (NvAbs(bv) < COLLIN_EPS) bv = 0; + if (NvAbs(cv) < COLLIN_EPS) cv = 0; if (av >= 0 && bv >= 0 && cv >= 0) { diff --git a/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.h b/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.h index dcaa3d181..3007078c8 100644 --- a/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.h +++ b/blast/source/sdk/extensions/authoring/NvBlastExtTriangleProcessor.h @@ -22,18 +22,18 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTTRIANGLEPROCESSOR_H #define NVBLASTEXTTRIANGLEPROCESSOR_H -#include -#include +#include "NvVec2.h" +#include "NvVec3.h" #include #include -using namespace physx; +using namespace nvidia; namespace Nv @@ -46,8 +46,8 @@ namespace Blast */ struct TrPrcTriangle { - PxVec3 points[3]; - TrPrcTriangle(PxVec3 a = PxVec3(0.0f), PxVec3 b = PxVec3(0.0f), PxVec3 c = PxVec3(0.0f)) + NvVec3 points[3]; + TrPrcTriangle(NvVec3 a = NvVec3(0.0f), NvVec3 b = NvVec3(0.0f), NvVec3 c = NvVec3(0.0f)) { points[0] = a; points[1] = b; @@ -68,7 +68,7 @@ struct TrPrcTriangle points[1] = b.points[1]; points[2] = b.points[2]; } - PxVec3 getNormal() const + NvVec3 getNormal() const { return (points[1] - points[0]).cross(points[2] - points[0]); } @@ -79,8 +79,8 @@ struct TrPrcTriangle */ struct TrPrcTriangle2d { - PxVec2 points[3]; - TrPrcTriangle2d(PxVec2 a = PxVec2(0.0f), PxVec2 b = PxVec2(0.0f), PxVec2 c = PxVec2(0.0f)) + NvVec2 points[3]; + TrPrcTriangle2d(NvVec2 a = NvVec2(0.0f), NvVec2 b = NvVec2(0.0f), NvVec2 c = NvVec2(0.0f)) { points[0] = a; points[1] = b; @@ -120,8 +120,8 @@ class TriangleProcessor \param[in] normal Normal vector to triangle (Common for both A and B). \return 1 - if if intersection is found. */ - uint32_t getTriangleIntersection(TrPrcTriangle& a, TrPrcTriangle2d& aProjected, TrPrcTriangle& b, PxVec3& centroid, - std::vector& intersectionBuffer, PxVec3 normal); + uint32_t getTriangleIntersection(TrPrcTriangle& a, TrPrcTriangle2d& aProjected, TrPrcTriangle& b, NvVec3& centroid, + std::vector& intersectionBuffer, NvVec3 normal); /** Test whether BB of triangles intersect. @@ -138,7 +138,7 @@ class TriangleProcessor \param[in] triangle Triangle in 2d space. \return 1 - if inside, 2 if on edge, 0 if neither inside nor edge. */ - uint32_t isPointInside(const PxVec2& point, const TrPrcTriangle2d& triangle); + uint32_t isPointInside(const NvVec2& point, const TrPrcTriangle2d& triangle); /** Segment intersection point @@ -149,12 +149,12 @@ class TriangleProcessor \param[out] t1 Intersection point parameter relatively to Segment-1, lies in [0.0, 1.0] range. \return 0 if there is no intersections, 1 - if intersection is found. */ - uint32_t getSegmentIntersection(const PxVec2& s1, const PxVec2& e1, const PxVec2& s2, const PxVec2& e2, PxF32& t1); + uint32_t getSegmentIntersection(const NvVec2& s1, const NvVec2& e1, const NvVec2& s2, const NvVec2& e2, float& t1); /** Sort vertices of polygon in CCW-order */ - void sortToCCW(std::vector& points, PxVec3& normal); + void sortToCCW(std::vector& points, NvVec3& normal); /** Builds convex polygon for given set of points. Points should be coplanar. @@ -162,7 +162,7 @@ class TriangleProcessor \param[out] convexHull Output polygon \param[in] normal Normal vector to polygon. */ - void buildConvexHull(std::vector& points, std::vector& convexHull, const PxVec3& normal); + void buildConvexHull(std::vector& points, std::vector& convexHull, const NvVec3& normal); }; } // namespace Blast diff --git a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.cpp b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.cpp index f1aef088f..058d363ac 100644 --- a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.cpp +++ b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.cpp @@ -22,14 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtAuthoringAcceleratorImpl.h" #include "NvBlastExtAuthoringMesh.h" #include "NvBlastExtAuthoringInternalCommon.h" #include "NvBlastGlobals.h" -#include "NvBlastPxSharedHelpers.h" +#include "NvBlastNvSharedHelpers.h" #include "NvCMath.h" namespace Nv @@ -93,10 +93,10 @@ void Grid::release() void Grid::setMesh(const Mesh* m) { - physx::PxBounds3 bd = toPxShared(m->getBoundingBox()); + nvidia::NvBounds3 bd = toNvShared(m->getBoundingBox()); m_mappedFacetCount = m->getFacetCount(); bd.fattenFast(0.001f); - m_spos = fromPxShared(bd.minimum); + m_spos = fromNvShared(bd.minimum); m_deltas = { m_resolution / bd.getDimensions().x, m_resolution / bd.getDimensions().y, m_resolution / bd.getDimensions().z }; @@ -149,14 +149,14 @@ void GridAccelerator::release() void GridAccelerator::setState(const Vertex* pos, const Edge* ed, const Facet& fc) { - physx::PxBounds3 cfc(physx::PxBounds3::empty()); + nvidia::NvBounds3 cfc(nvidia::NvBounds3::empty()); for (uint32_t v = 0; v < fc.edgesCount; ++v) { - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].s].p)); - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].e].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].s].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].e].p)); } - setState(&fromPxShared(cfc)); + setState(&fromNvShared(cfc)); } void GridAccelerator::setState(const NvcBounds3* facetBounding) @@ -329,7 +329,7 @@ void BBoxBasedAccelerator::release() BBoxBasedAccelerator::~BBoxBasedAccelerator() { m_resolution = 0; - toPxShared(m_bounds).setEmpty(); + toNvShared(m_bounds).setEmpty(); m_spatialMap.clear(); m_cells.clear(); m_cellList.clear(); @@ -376,14 +376,14 @@ int32_t BBoxBasedAccelerator::getNextFacet() void BBoxBasedAccelerator::setState(const Vertex* pos, const Edge* ed, const Facet& fc) { - physx::PxBounds3 cfc(physx::PxBounds3::empty()); + nvidia::NvBounds3 cfc(nvidia::NvBounds3::empty()); for (uint32_t v = 0; v < fc.edgesCount; ++v) { - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].s].p)); - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].e].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].s].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].e].p)); } - setState(&fromPxShared(cfc)); + setState(&fromNvShared(cfc)); } void BBoxBasedAccelerator::setState(const NvcBounds3* facetBox) @@ -395,7 +395,7 @@ void BBoxBasedAccelerator::setState(const NvcBounds3* facetBox) for (uint32_t i = 0; i < m_cells.size(); ++i) { - if (weakBoundingBoxIntersection(toPxShared(m_cells[i]), *toPxShared(facetBox))) + if (weakBoundingBoxIntersection(toNvShared(m_cells[i]), *toNvShared(facetBox))) { if (!m_spatialMap[i].empty()) m_cellList[m_gotCells++] = i; @@ -418,7 +418,7 @@ void BBoxBasedAccelerator::setState(const NvcVec3& p) int32_t perSlice = m_resolution * m_resolution; for (uint32_t i = 0; i < m_cells.size(); ++i) { - if (toPxShared(m_cells[i]).contains(toPxShared(p))) + if (toNvShared(m_cells[i]).contains(toNvShared(p))) { int32_t xyCellId = i % perSlice; for (int32_t zCell = 0; zCell < m_resolution; ++zCell) @@ -441,20 +441,20 @@ void BBoxBasedAccelerator::buildAccelStructure(const Vertex* pos, const Edge* ed { for (int32_t facet = 0; facet < facetCount; ++facet) { - physx::PxBounds3 bBox; + nvidia::NvBounds3 bBox; bBox.setEmpty(); const Edge* edge = &edges[0] + fc->firstEdgeNumber; int32_t count = fc->edgesCount; for (int32_t ec = 0; ec < count; ++ec) { - bBox.include(toPxShared(pos[edge->s].p)); - bBox.include(toPxShared(pos[edge->e].p)); + bBox.include(toNvShared(pos[edge->s].p)); + bBox.include(toNvShared(pos[edge->e].p)); edge++; } for (uint32_t i = 0; i < m_cells.size(); ++i) { - if (weakBoundingBoxIntersection(toPxShared(m_cells[i]), bBox)) + if (weakBoundingBoxIntersection(toNvShared(m_cells[i]), bBox)) { m_spatialMap[i].push_back(facet); } @@ -499,7 +499,7 @@ void buildIndex(std::vector& segm, float offset, float mlt, std: SweepingAccelerator::SweepingAccelerator(const Nv::Blast::Mesh* in) { - physx::PxBounds3 bnd; + nvidia::NvBounds3 bnd; const Vertex* verts = in->getVertices(); const Edge* edges = in->getEdges(); @@ -521,7 +521,7 @@ SweepingAccelerator::SweepingAccelerator(const Nv::Blast::Mesh* in) bnd.setEmpty(); for (uint32_t v = 0; v < fc->edgesCount; ++v) { - bnd.include(toPxShared(verts[edges[v + fc->firstEdgeNumber].s].p)); + bnd.include(toNvShared(verts[edges[v + fc->firstEdgeNumber].s].p)); } bnd.scaleFast(1.1f); xevs.push_back(SegmentToIndex(bnd.minimum.x, i, false)); @@ -579,7 +579,7 @@ void SweepingAccelerator::setState(const NvcBounds3* facetBounds) m_current = 0; m_indices.clear(); - physx::PxBounds3 bnd = *toPxShared(facetBounds); + nvidia::NvBounds3 bnd = *toNvShared(facetBounds); bnd.scaleFast(1.1f); uint32_t start = (uint32_t)((std::max(0.0f, bnd.minimum.x - m_minimal.x)) * m_rescale.x); @@ -621,14 +621,14 @@ void SweepingAccelerator::setState(const NvcBounds3* facetBounds) void SweepingAccelerator::setState(const Vertex* pos, const Edge* ed, const Facet& fc) { - physx::PxBounds3 cfc(physx::PxBounds3::empty()); + nvidia::NvBounds3 cfc(nvidia::NvBounds3::empty()); for (uint32_t v = 0; v < fc.edgesCount; ++v) { - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].s].p)); - cfc.include(toPxShared(pos[ed[fc.firstEdgeNumber + v].e].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].s].p)); + cfc.include(toNvShared(pos[ed[fc.firstEdgeNumber + v].e].p)); } - setState(&fromPxShared(cfc)); + setState(&fromNvShared(cfc)); } void SweepingAccelerator::setState(const NvcVec3& point) { diff --git a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.h b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.h index bdd74f341..b475efddd 100644 --- a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.h +++ b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringAcceleratorImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTEXTAUTHORINGACCELERATORIMPL_H diff --git a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringInternalCommon.h b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringInternalCommon.h index df3f65c71..a25c74f62 100644 --- a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringInternalCommon.h +++ b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringInternalCommon.h @@ -22,19 +22,19 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTINTERNALCOMMON_H #define NVBLASTINTERNALCOMMON_H #include "NvBlastExtAuthoringTypes.h" -#include "NvBlastPxSharedHelpers.h" +#include "NvBlastNvSharedHelpers.h" #include "NvBlastVolumeIntegrals.h" -#include -#include -#include -#include -#include +#include "NvVec2.h" +#include "NvVec3.h" +#include "NvPlane.h" +#include "NvBounds3.h" +#include "NvMath.h" #include namespace Nv @@ -105,7 +105,7 @@ enum ProjectionDirections /** Computes best direction to project points. */ -NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3& normal) +NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const nvidia::NvVec3& normal) { float maxv = std::max(std::abs(normal.x), std::max(std::abs(normal.y), std::abs(normal.z))); ProjectionDirections retVal; @@ -130,51 +130,51 @@ NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3& /** Computes point projected on given axis aligned plane. */ -NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3& point, ProjectionDirections dir) +NV_FORCE_INLINE nvidia::NvVec2 getProjectedPoint(const nvidia::NvVec3& point, ProjectionDirections dir) { if (dir & YZ_PLANE) { - return physx::PxVec2(point.y, point.z); + return nvidia::NvVec2(point.y, point.z); } if (dir & ZX_PLANE) { - return physx::PxVec2(point.x, point.z); + return nvidia::NvVec2(point.x, point.z); } - return physx::PxVec2(point.x, point.y); + return nvidia::NvVec2(point.x, point.y); } -NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const NvcVec3& point, ProjectionDirections dir) +NV_FORCE_INLINE nvidia::NvVec2 getProjectedPoint(const NvcVec3& point, ProjectionDirections dir) { - return getProjectedPoint((const physx::PxVec3&)point, dir); + return getProjectedPoint((const nvidia::NvVec3&)point, dir); } /** Computes point projected on given axis aligned plane, this method is polygon-winding aware. */ -NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& point, ProjectionDirections dir) +NV_FORCE_INLINE nvidia::NvVec2 getProjectedPointWithWinding(const nvidia::NvVec3& point, ProjectionDirections dir) { if (dir & YZ_PLANE) { if (dir & OPPOSITE_WINDING) { - return physx::PxVec2(point.z, point.y); + return nvidia::NvVec2(point.z, point.y); } else - return physx::PxVec2(point.y, point.z); + return nvidia::NvVec2(point.y, point.z); } if (dir & ZX_PLANE) { if (dir & OPPOSITE_WINDING) { - return physx::PxVec2(point.z, point.x); + return nvidia::NvVec2(point.z, point.x); } - return physx::PxVec2(point.x, point.z); + return nvidia::NvVec2(point.x, point.z); } if (dir & OPPOSITE_WINDING) { - return physx::PxVec2(point.y, point.x); + return nvidia::NvVec2(point.y, point.x); } - return physx::PxVec2(point.x, point.y); + return nvidia::NvVec2(point.x, point.y); } @@ -185,7 +185,7 @@ NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& /** Test fattened bounding box intersetion. */ -NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const physx::PxBounds3& bBox) +NV_INLINE bool weakBoundingBoxIntersection(const nvidia::NvBounds3& aBox, const nvidia::NvBounds3& bBox) { if (std::max(aBox.minimum.x, bBox.minimum.x) > std::min(aBox.maximum.x, bBox.maximum.x) + BBOX_TEST_EPS) return false; @@ -201,11 +201,11 @@ NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const /** Test segment vs plane intersection. If segment intersects the plane true is returned. Point of intersection is written into 'result'. */ -NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane& pl, const physx::PxVec3& a, const physx::PxVec3& b, - physx::PxVec3& result) +NV_INLINE bool getPlaneSegmentIntersection(const nvidia::NvPlane& pl, const nvidia::NvVec3& a, const nvidia::NvVec3& b, + nvidia::NvVec3& result) { float div = (b - a).dot(pl.n); - if (physx::PxAbs(div) < 0.0001f) + if (nvidia::NvAbs(div) < 0.0001f) { if (pl.contains(a)) { diff --git a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.cpp b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.cpp index 0733169e4..5b9360cbb 100644 --- a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.cpp +++ b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.cpp @@ -22,15 +22,15 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #define _CRT_SECURE_NO_WARNINGS #include "NvBlastExtAuthoringMeshImpl.h" #include "NvBlastExtAuthoringTypes.h" #include -#include "foundation/PxMath.h" -#include +#include "NvMath.h" +#include #include #include #include @@ -257,12 +257,12 @@ void MeshImpl::release() const NvcBounds3& MeshImpl::getBoundingBox() const { - return fromPxShared(mBounds); + return fromNvShared(mBounds); } NvcBounds3& MeshImpl::getBoundingBoxWritable() { - return fromPxShared(mBounds); + return fromNvShared(mBounds); } @@ -271,7 +271,7 @@ void MeshImpl::recalculateBoundingBox() mBounds.setEmpty(); for (uint32_t i = 0; i < mVertices.size(); ++i) { - mBounds.include(toPxShared(mVertices[i].p)); + mBounds.include(toNvShared(mVertices[i].p)); } calcPerFacetBounds(); } @@ -282,7 +282,7 @@ const NvcBounds3* MeshImpl::getFacetBound(uint32_t index) const { return nullptr; } - return &fromPxShared(mPerFacetBounds[index]); + return &fromNvShared(mPerFacetBounds[index]); } void MeshImpl::calcPerFacetBounds() @@ -296,8 +296,8 @@ void MeshImpl::calcPerFacetBounds() for (uint32_t v = 0; v < mFacets[i].edgesCount; ++v) { - fb.include(toPxShared(mVertices[mEdges[mFacets[i].firstEdgeNumber + v].s].p)); - fb.include(toPxShared(mVertices[mEdges[mFacets[i].firstEdgeNumber + v].e].p)); + fb.include(toNvShared(mVertices[mEdges[mFacets[i].firstEdgeNumber + v].s].p)); + fb.include(toNvShared(mVertices[mEdges[mFacets[i].firstEdgeNumber + v].e].p)); } } } diff --git a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.h b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.h index 926fb22e3..9e67cda26 100644 --- a/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.h +++ b/blast/source/sdk/extensions/authoringCommon/NvBlastExtAuthoringMeshImpl.h @@ -22,13 +22,13 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTAUTHORINGMESHIMPL_H #define NVBLASTAUTHORINGMESHIMPL_H #include "NvBlastExtAuthoringMesh.h" -#include +#include "NvBounds3.h" #include #include #include @@ -185,8 +185,8 @@ class MeshImpl : public Mesh std::vector mVertices; std::vector mEdges; std::vector mFacets; - physx::PxBounds3 mBounds; - std::vector mPerFacetBounds; + nvidia::NvBounds3 mBounds; + std::vector mPerFacetBounds; }; } // namespace Blast diff --git a/blast/source/sdk/extensions/serialization/DTO/ActorDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/ActorDTO.cpp index c7aa0ed52..90301bd90 100644 --- a/blast/source/sdk/extensions/serialization/DTO/ActorDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/ActorDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "ActorDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/ActorDTO.h b/blast/source/sdk/extensions/serialization/DTO/ActorDTO.h index 01abafd1d..4a8e6930d 100644 --- a/blast/source/sdk/extensions/serialization/DTO/ActorDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/ActorDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/AssetDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/AssetDTO.cpp index dee4c09b5..9158576a7 100644 --- a/blast/source/sdk/extensions/serialization/DTO/AssetDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/AssetDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "AssetDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/AssetDTO.h b/blast/source/sdk/extensions/serialization/DTO/AssetDTO.h index 31b91537c..cd1d9e645 100644 --- a/blast/source/sdk/extensions/serialization/DTO/AssetDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/AssetDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/DTOMacros.h b/blast/source/sdk/extensions/serialization/DTO/DTOMacros.h index 4a928c71b..e44df477d 100644 --- a/blast/source/sdk/extensions/serialization/DTO/DTOMacros.h +++ b/blast/source/sdk/extensions/serialization/DTO/DTOMacros.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.cpp index 2d253803b..015f5c38b 100644 --- a/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "FamilyDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.h b/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.h index a80e7f4b1..f4420d258 100644 --- a/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/FamilyDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.cpp index 0618ab8d6..7a82919b4 100644 --- a/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "FamilyGraphDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.h b/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.h index 8cc76cd74..d5aedb383 100644 --- a/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/FamilyGraphDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.cpp index 212c5243b..46f1009a7 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastBondDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.h b/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.h index ce202fb64..67e30c0ff 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastBondDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.cpp index 445ebd230..e13d35bdb 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastChunkDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.h b/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.h index 313b48102..6507fdb9e 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastChunkDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.cpp index bf80ef81b..48010691f 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastIDDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.h b/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.h index a00e58904..98dc0d2c6 100644 --- a/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/NvBlastIDDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.cpp b/blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.cpp new file mode 100644 index 000000000..48e5bf479 --- /dev/null +++ b/blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.cpp @@ -0,0 +1,64 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. + + +#include "NvVec3DTO.h" +#include "NvBlastAssert.h" + +namespace Nv +{ +namespace Blast +{ + +bool NvVec3DTO::serialize(Nv::Blast::Serialization::NvVec3::Builder builder, const nvidia::NvVec3 * poco) +{ + NVBLAST_ASSERT(poco != nullptr); + + builder.setX(poco->x); + builder.setY(poco->y); + builder.setZ(poco->z); + + return true; +} + +nvidia::NvVec3* NvVec3DTO::deserialize(Nv::Blast::Serialization::NvVec3::Reader reader) +{ + //TODO: Allocate using ExtContext and return + NV_UNUSED(reader); + return nullptr; +} + +bool NvVec3DTO::deserializeInto(Nv::Blast::Serialization::NvVec3::Reader reader, nvidia::NvVec3* target) +{ + target->x = reader.getX(); + target->y = reader.getY(); + target->z = reader.getZ(); + + return true; +} + +} // namespace Blast +} // namespace Nv diff --git a/blast/include/lowlevel/NvBlastPreprocessor.h b/blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.h similarity index 81% rename from blast/include/lowlevel/NvBlastPreprocessor.h rename to blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.h index dfb9ddd4f..3c421070d 100644 --- a/blast/include/lowlevel/NvBlastPreprocessor.h +++ b/blast/source/sdk/extensions/serialization/DTO/NvVec3DTO.h @@ -22,21 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. -//! @file -//! -//! @brief Basic preprocessor definitions the blast sdk APIs -#ifndef NVBLASTPREPROCESSOR_H -#define NVBLASTPREPROCESSOR_H +#pragma once +#include "DTOMacros.h" +#include "NvBlastExtTkSerialization-capn.h" +#include "NvVec3.h" - -#include "NvPreprocessor.h" - - -/** Blast API declaration */ -#define NVBLAST_API NV_C_EXPORT NV_DLL_EXPORT - - -#endif // ifndef NVBLASTPREPROCESSOR_H +DTO_CLASS(NvVec3, nvidia::NvVec3, Nv::Blast::Serialization::NvVec3) diff --git a/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.cpp index 6c01fb374..916f549e3 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "PxConvexMeshGeometryDTO.h" @@ -32,7 +32,7 @@ #include "NvBlastExtKJPxOutputStream.h" #include "PxConvexMeshDesc.h" #include "NvBlastExtSerialization.h" -#include "foundation/PxVec3.h" +#include "PxVec3.h" #include #include #include "PxPhysics.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.h b/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.h index f19bfbc7a..c23a0a69a 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/PxConvexMeshGeometryDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.cpp index 542139067..e93f54de8 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvPreprocessor.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.h b/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.h index 3bba96bd2..7f4ab8784 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/PxMeshScaleDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.cpp index 2a517c87d..8ddc3b500 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvPreprocessor.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.h b/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.h index 09f5a88ed..62c80dc4d 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/PxQuatDTO.h @@ -22,12 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once #include "DTOMacros.h" -#include "foundation/PxQuat.h" +#include "PxQuat.h" #include "NvBlastExtPxSerialization-capn.h" #include "PxCooking.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.cpp index b1f34737a..ad198542c 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvPreprocessor.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.h b/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.h index 121b71374..942d69c09 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/PxTransformDTO.h @@ -22,12 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once #include "DTOMacros.h" -#include "foundation/PxTransform.h" +#include "PxTransform.h" #include "NvBlastExtPxSerialization-capn.h" #include "PxCooking.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.cpp b/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.cpp index 11179e6cc..77f0e4dca 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "PxVec3DTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.h b/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.h index b9a9b1a5f..68bb6d880 100644 --- a/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/PxVec3DTO.h @@ -22,12 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once #include "DTOMacros.h" #include "NvBlastExtTkSerialization-capn.h" -#include "foundation/PxVec3.h" +#include "PxVec3.h" DTO_CLASS(PxVec3, physx::PxVec3, Nv::Blast::Serialization::PxVec3) diff --git a/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.cpp index eaf5329ca..e13926751 100644 --- a/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "TkAssetDTO.h" diff --git a/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.h b/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.h index 829cccb55..ee7ab156a 100644 --- a/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/TkAssetDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.cpp b/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.cpp index 89a1fa113..1bb8df6f4 100644 --- a/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.cpp +++ b/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.cpp @@ -22,11 +22,11 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "TkAssetJointDescDTO.h" -#include "PxVec3DTO.h" +#include "NvVec3DTO.h" namespace Nv @@ -42,7 +42,7 @@ bool TkAssetJointDescDTO::serialize(Nv::Blast::Serialization::TkAssetJointDesc:: for (int i = 0; i < 2; i++) { - PxVec3DTO::serialize(builder.getAttachPositions()[i], &poco->attachPositions[i]); + NvVec3DTO::serialize(builder.getAttachPositions()[i], &poco->attachPositions[i]); } return true; @@ -62,8 +62,8 @@ Nv::Blast::TkAssetJointDesc* TkAssetJointDescDTO::deserialize(Nv::Blast::Seriali bool TkAssetJointDescDTO::deserializeInto(Nv::Blast::Serialization::TkAssetJointDesc::Reader reader, Nv::Blast::TkAssetJointDesc * poco) { auto readerAttachPositions = reader.getAttachPositions(); - PxVec3DTO::deserializeInto(readerAttachPositions[0], &poco->attachPositions[0]); - PxVec3DTO::deserializeInto(readerAttachPositions[1], &poco->attachPositions[1]); + NvVec3DTO::deserializeInto(readerAttachPositions[0], &poco->attachPositions[0]); + NvVec3DTO::deserializeInto(readerAttachPositions[1], &poco->attachPositions[1]); auto readerNodeIndices = reader.getNodeIndices(); poco->nodeIndices[0] = readerNodeIndices[0]; diff --git a/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.h b/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.h index a0bb83466..66399038e 100644 --- a/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.h +++ b/blast/source/sdk/extensions/serialization/DTO/TkAssetJointDescDTO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.cpp index ac0f59c90..c8c8ac9d0 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtInputStream.h" diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.h b/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.h index 05201c745..073852fe8 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtInputStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtLlSerialization.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtLlSerialization.cpp index 792f48c42..7069553e1 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtLlSerialization.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtLlSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtSerializationInternal.h" diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtLlSerializerCAPN.h b/blast/source/sdk/extensions/serialization/NvBlastExtLlSerializerCAPN.h index afa49ed60..489ca8ba4 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtLlSerializerCAPN.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtLlSerializerCAPN.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.cpp index f1114dcd0..609126f83 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtOutputStream.h" diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.h b/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.h index 8b3d0fe48..b56dd1e16 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtOutputStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtSerialization.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtSerialization.cpp index cc6d0013b..3c6660260 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtSerialization.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtSerialization.cpp @@ -22,11 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtSerialization.h" #include "NvBlastExtLlSerialization.h" +#include "NvBlastArray.h" #include "NvBlastHashMap.h" #include "NvBlastExtSerializationInternal.h" @@ -165,10 +166,16 @@ ExtSerializationImpl::ExtSerializationImpl() : m_serializationEncoding(EncodingI ExtSerializationImpl::~ExtSerializationImpl() { // Release and remove all registered serializers - auto it = m_serializers.getEraseIterator(); - while (auto entry = it.eraseCurrentGetNext(true)) + Array::type registeredSerializers; + registeredSerializers.reserve(m_serializers.size()); + for (auto it = m_serializers.getIterator(); !it.done(); ++it) { - entry->second->release(); + registeredSerializers.pushBack(it->second); + } + m_serializers.clear(); + for (uint32_t i = 0; i < registeredSerializers.size(); ++i) + { + registeredSerializers[i]->release(); } } diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtSerializationCAPN.h b/blast/source/sdk/extensions/serialization/NvBlastExtSerializationCAPN.h index b66c69f15..10ea77300 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtSerializationCAPN.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtSerializationCAPN.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtSerializationInternal.h b/blast/source/sdk/extensions/serialization/NvBlastExtSerializationInternal.h index 56bf0d018..ca09776c2 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtSerializationInternal.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtSerializationInternal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once @@ -48,7 +48,7 @@ virtual uint64_t serializeIntoBuffer uint64_t offset = 0 \ ) override \ { \ - NVBLAST_LOG_WARNING(#_name "::serializeIntoBuffer: ExtPxAsset_RAW serializer is read-only."); \ + NVBLAST_LOG_WARNING(#_name "::serializeIntoBuffer: serializer is read-only."); \ NV_UNUSED(buffer); \ NV_UNUSED(bufferProvider); \ NV_UNUSED(object); \ diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization-capn b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization-capn index 45ec41238..79a01a25b 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization-capn +++ b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization-capn @@ -43,10 +43,10 @@ struct TkAsset struct TkAssetJointDesc { nodeIndices @0 :List(UInt32); - attachPositions @1 :List(PxVec3); + attachPositions @1 :List(NvVec3); } -struct PxVec3 +struct NvVec3 { x @0 :Float32; y @1 :Float32; diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization.cpp index 3c1992f10..9020acb02 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtSerializationInternal.h" diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerCAPN.h b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerCAPN.h index 680453ad3..715d09a5f 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerCAPN.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerCAPN.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.cpp b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.cpp index 0ef2edfab..ea5ffb23b 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.cpp +++ b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtSerializationInternal.h" diff --git a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.h b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.h index e70473710..69009e1e0 100644 --- a/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.h +++ b/blast/source/sdk/extensions/serialization/NvBlastExtTkSerializerRAW.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.c++ b/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.c++ index 2f9c92b3b..762d10fad 100644 --- a/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.c++ +++ b/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.c++ @@ -129,7 +129,7 @@ static const ::capnp::_::AlignedData<60> b_b7dbad810488a897 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 205, 250, 147, 125, 129, 237, + 73, 39, 79, 121, 149, 30, 102, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, @@ -139,7 +139,7 @@ static const ::capnp::_::AlignedData<60> b_b7dbad810488a897 = { ::capnp::word const* const bp_b7dbad810488a897 = b_b7dbad810488a897.words; #if !CAPNP_LITE static const ::capnp::_::RawSchema* const d_b7dbad810488a897[] = { - &s_ed817d93facd8e00, + &s_bf661e95794f2749, }; static const uint16_t m_b7dbad810488a897[] = {1, 0}; static const uint16_t i_b7dbad810488a897[] = {0, 1}; @@ -148,9 +148,9 @@ const ::capnp::_::RawSchema s_b7dbad810488a897 = { 1, 2, i_b7dbad810488a897, nullptr, nullptr, { &s_b7dbad810488a897, nullptr, nullptr, 0, 0, nullptr } }; #endif // !CAPNP_LITE -static const ::capnp::_::AlignedData<64> b_ed817d93facd8e00 = { +static const ::capnp::_::AlignedData<64> b_bf661e95794f2749 = { { 0, 0, 0, 0, 5, 0, 6, 0, - 0, 142, 205, 250, 147, 125, 129, 237, + 73, 39, 79, 121, 149, 30, 102, 191, 31, 0, 0, 0, 1, 0, 2, 0, 88, 238, 117, 242, 152, 68, 254, 175, 0, 0, 7, 0, 0, 0, 0, 0, @@ -164,8 +164,8 @@ static const ::capnp::_::AlignedData<64> b_ed817d93facd8e00 = { 78, 118, 66, 108, 97, 115, 116, 69, 120, 116, 84, 107, 83, 101, 114, 105, 97, 108, 105, 122, 97, 116, 105, 111, - 110, 45, 99, 97, 112, 110, 58, 80, - 120, 86, 101, 99, 51, 0, 0, 0, + 110, 45, 99, 97, 112, 110, 58, 78, + 118, 86, 101, 99, 51, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 12, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -214,13 +214,13 @@ static const ::capnp::_::AlignedData<64> b_ed817d93facd8e00 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } }; -::capnp::word const* const bp_ed817d93facd8e00 = b_ed817d93facd8e00.words; +::capnp::word const* const bp_bf661e95794f2749 = b_bf661e95794f2749.words; #if !CAPNP_LITE -static const uint16_t m_ed817d93facd8e00[] = {0, 1, 2}; -static const uint16_t i_ed817d93facd8e00[] = {0, 1, 2}; -const ::capnp::_::RawSchema s_ed817d93facd8e00 = { - 0xed817d93facd8e00, b_ed817d93facd8e00.words, 64, nullptr, m_ed817d93facd8e00, - 0, 3, i_ed817d93facd8e00, nullptr, nullptr, { &s_ed817d93facd8e00, nullptr, nullptr, 0, 0, nullptr } +static const uint16_t m_bf661e95794f2749[] = {0, 1, 2}; +static const uint16_t i_bf661e95794f2749[] = {0, 1, 2}; +const ::capnp::_::RawSchema s_bf661e95794f2749 = { + 0xbf661e95794f2749, b_bf661e95794f2749.words, 64, nullptr, m_bf661e95794f2749, + 0, 3, i_bf661e95794f2749, nullptr, nullptr, { &s_bf661e95794f2749, nullptr, nullptr, 0, 0, nullptr } }; #endif // !CAPNP_LITE } // namespace schemas @@ -248,12 +248,12 @@ constexpr ::capnp::Kind TkAssetJointDesc::_capnpPrivate::kind; constexpr ::capnp::_::RawSchema const* TkAssetJointDesc::_capnpPrivate::schema; #endif // !CAPNP_LITE -// PxVec3 -constexpr uint16_t PxVec3::_capnpPrivate::dataWordSize; -constexpr uint16_t PxVec3::_capnpPrivate::pointerCount; +// NvVec3 +constexpr uint16_t NvVec3::_capnpPrivate::dataWordSize; +constexpr uint16_t NvVec3::_capnpPrivate::pointerCount; #if !CAPNP_LITE -constexpr ::capnp::Kind PxVec3::_capnpPrivate::kind; -constexpr ::capnp::_::RawSchema const* PxVec3::_capnpPrivate::schema; +constexpr ::capnp::Kind NvVec3::_capnpPrivate::kind; +constexpr ::capnp::_::RawSchema const* NvVec3::_capnpPrivate::schema; #endif // !CAPNP_LITE diff --git a/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.h b/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.h index 4e1f6c0dc..097d98cad 100644 --- a/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.h +++ b/blast/source/sdk/extensions/serialization/generated/NvBlastExtTkSerialization-capn.h @@ -17,7 +17,7 @@ namespace schemas { CAPNP_DECLARE_SCHEMA(ffd67c4b7067dde6); CAPNP_DECLARE_SCHEMA(b7dbad810488a897); -CAPNP_DECLARE_SCHEMA(ed817d93facd8e00); +CAPNP_DECLARE_SCHEMA(bf661e95794f2749); } // namespace schemas } // namespace capnp @@ -56,15 +56,15 @@ struct TkAssetJointDesc { }; }; -struct PxVec3 { - PxVec3() = delete; +struct NvVec3 { + NvVec3() = delete; class Reader; class Builder; class Pipeline; struct _capnpPrivate { - CAPNP_DECLARE_STRUCT_HEADER(ed817d93facd8e00, 2, 0) + CAPNP_DECLARE_STRUCT_HEADER(bf661e95794f2749, 2, 0) #if !CAPNP_LITE static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } #endif // !CAPNP_LITE @@ -186,7 +186,7 @@ class TkAssetJointDesc::Reader { inline ::capnp::List< ::uint32_t>::Reader getNodeIndices() const; inline bool hasAttachPositions() const; - inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Reader getAttachPositions() const; + inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Reader getAttachPositions() const; private: ::capnp::_::StructReader _reader; @@ -225,11 +225,11 @@ class TkAssetJointDesc::Builder { inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownNodeIndices(); inline bool hasAttachPositions(); - inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Builder getAttachPositions(); - inline void setAttachPositions( ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Reader value); - inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Builder initAttachPositions(unsigned int size); - inline void adoptAttachPositions(::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>&& value); - inline ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>> disownAttachPositions(); + inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Builder getAttachPositions(); + inline void setAttachPositions( ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Reader value); + inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Builder initAttachPositions(unsigned int size); + inline void adoptAttachPositions(::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>&& value); + inline ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>> disownAttachPositions(); private: ::capnp::_::StructBuilder _builder; @@ -257,9 +257,9 @@ class TkAssetJointDesc::Pipeline { }; #endif // !CAPNP_LITE -class PxVec3::Reader { +class NvVec3::Reader { public: - typedef PxVec3 Reads; + typedef NvVec3 Reads; Reader() = default; inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} @@ -292,9 +292,9 @@ class PxVec3::Reader { friend class ::capnp::Orphanage; }; -class PxVec3::Builder { +class NvVec3::Builder { public: - typedef PxVec3 Builds; + typedef NvVec3 Builds; Builder() = delete; // Deleted to discourage incorrect usage. // You can explicitly initialize to nullptr instead. @@ -327,9 +327,9 @@ class PxVec3::Builder { }; #if !CAPNP_LITE -class PxVec3::Pipeline { +class NvVec3::Pipeline { public: - typedef PxVec3 Pipelines; + typedef NvVec3 Pipelines; inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) @@ -464,70 +464,70 @@ inline bool TkAssetJointDesc::Builder::hasAttachPositions() { return !_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); } -inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Reader TkAssetJointDesc::Reader::getAttachPositions() const { - return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::get(_reader.getPointerField( +inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Reader TkAssetJointDesc::Reader::getAttachPositions() const { + return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::get(_reader.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } -inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Builder TkAssetJointDesc::Builder::getAttachPositions() { - return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::get(_builder.getPointerField( +inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Builder TkAssetJointDesc::Builder::getAttachPositions() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::get(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } -inline void TkAssetJointDesc::Builder::setAttachPositions( ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Reader value) { - ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::set(_builder.getPointerField( +inline void TkAssetJointDesc::Builder::setAttachPositions( ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Reader value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::set(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), value); } -inline ::capnp::List< ::Nv::Blast::Serialization::PxVec3>::Builder TkAssetJointDesc::Builder::initAttachPositions(unsigned int size) { - return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::init(_builder.getPointerField( +inline ::capnp::List< ::Nv::Blast::Serialization::NvVec3>::Builder TkAssetJointDesc::Builder::initAttachPositions(unsigned int size) { + return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::init(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), size); } inline void TkAssetJointDesc::Builder::adoptAttachPositions( - ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>&& value) { - ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::adopt(_builder.getPointerField( + ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>&& value) { + ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::adopt(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); } -inline ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>> TkAssetJointDesc::Builder::disownAttachPositions() { - return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::PxVec3>>::disown(_builder.getPointerField( +inline ::capnp::Orphan< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>> TkAssetJointDesc::Builder::disownAttachPositions() { + return ::capnp::_::PointerHelpers< ::capnp::List< ::Nv::Blast::Serialization::NvVec3>>::disown(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } -inline float PxVec3::Reader::getX() const { +inline float NvVec3::Reader::getX() const { return _reader.getDataField( ::capnp::bounded<0>() * ::capnp::ELEMENTS); } -inline float PxVec3::Builder::getX() { +inline float NvVec3::Builder::getX() { return _builder.getDataField( ::capnp::bounded<0>() * ::capnp::ELEMENTS); } -inline void PxVec3::Builder::setX(float value) { +inline void NvVec3::Builder::setX(float value) { _builder.setDataField( ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); } -inline float PxVec3::Reader::getY() const { +inline float NvVec3::Reader::getY() const { return _reader.getDataField( ::capnp::bounded<1>() * ::capnp::ELEMENTS); } -inline float PxVec3::Builder::getY() { +inline float NvVec3::Builder::getY() { return _builder.getDataField( ::capnp::bounded<1>() * ::capnp::ELEMENTS); } -inline void PxVec3::Builder::setY(float value) { +inline void NvVec3::Builder::setY(float value) { _builder.setDataField( ::capnp::bounded<1>() * ::capnp::ELEMENTS, value); } -inline float PxVec3::Reader::getZ() const { +inline float NvVec3::Reader::getZ() const { return _reader.getDataField( ::capnp::bounded<2>() * ::capnp::ELEMENTS); } -inline float PxVec3::Builder::getZ() { +inline float NvVec3::Builder::getZ() { return _builder.getDataField( ::capnp::bounded<2>() * ::capnp::ELEMENTS); } -inline void PxVec3::Builder::setZ(float value) { +inline void NvVec3::Builder::setZ(float value) { _builder.setDataField( ::capnp::bounded<2>() * ::capnp::ELEMENTS, value); } diff --git a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.cpp b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.cpp index ec3592e67..ec2bbdd58 100644 --- a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.cpp +++ b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.cpp @@ -22,15 +22,15 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtDamageAcceleratorAABBTree.h" #include "NvBlastIndexFns.h" #include "NvBlastAssert.h" -#include "foundation/PxVec4.h" +#include "NvVec4.h" #include -using namespace physx; +using namespace nvidia; namespace Nv @@ -80,7 +80,7 @@ void ExtDamageAcceleratorAABBTree::build(const NvBlastAsset* asset) if (node0 < node1) { const NvBlastBond& bond = bonds[bondIndex]; - const PxVec3& p = (reinterpret_cast(bond.centroid)); + const NvVec3& p = (reinterpret_cast(bond.centroid)); m_points[bondIndex] = p; m_indices[bondIndex] = bondIndex; m_bonds[bondIndex].node0 = node0; @@ -92,15 +92,15 @@ void ExtDamageAcceleratorAABBTree::build(const NvBlastAsset* asset) if (isInvalidIndex(chunk1)) { // for world node we don't have it's centroid, so approximate with projection on bond normal - m_segments[bondIndex].p0 = (reinterpret_cast(chunks[chunk0].centroid)); - const PxVec3 normal = (reinterpret_cast(bond.normal)); + m_segments[bondIndex].p0 = (reinterpret_cast(chunks[chunk0].centroid)); + const NvVec3 normal = (reinterpret_cast(bond.normal)); m_segments[bondIndex].p1 = m_segments[bondIndex].p0 + normal * (p - m_segments[bondIndex].p0).dot(normal) * 2; } else { - m_segments[bondIndex].p0 = (reinterpret_cast(chunks[chunk0].centroid)); - m_segments[bondIndex].p1 = (reinterpret_cast(chunks[chunk1].centroid)); + m_segments[bondIndex].p0 = (reinterpret_cast(chunks[chunk0].centroid)); + m_segments[bondIndex].p1 = (reinterpret_cast(chunks[chunk1].centroid)); } } } @@ -121,8 +121,8 @@ int ExtDamageAcceleratorAABBTree::createNode(uint32_t startIdx, uint32_t endIdx, node.last = endIdx; // calc node bounds - node.pointsBound = PxBounds3::empty(); - node.segmentsBound = PxBounds3::empty(); + node.pointsBound = NvBounds3::empty(); + node.segmentsBound = NvBounds3::empty(); for (uint32_t i = node.first; i <= node.last; i++) { const uint32_t idx = m_indices[i]; @@ -132,7 +132,7 @@ int ExtDamageAcceleratorAABBTree::createNode(uint32_t startIdx, uint32_t endIdx, } // select axis of biggest extent - const PxVec3 ext = node.pointsBound.getExtents(); + const NvVec3 ext = node.pointsBound.getExtents(); uint32_t axis = 0; for (uint32_t k = 1; k < 3; k++) { @@ -170,7 +170,7 @@ int ExtDamageAcceleratorAABBTree::createNode(uint32_t startIdx, uint32_t endIdx, // Queries /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void ExtDamageAcceleratorAABBTree::findInBounds(const physx::PxBounds3& bounds, ResultCallback& callback, bool segments) const +void ExtDamageAcceleratorAABBTree::findInBounds(const nvidia::NvBounds3& bounds, ResultCallback& callback, bool segments) const { if (m_root) { @@ -182,7 +182,7 @@ void ExtDamageAcceleratorAABBTree::findInBounds(const physx::PxBounds3& bounds, } } -void ExtDamageAcceleratorAABBTree::findPointsInBounds(const Node& node, ResultCallback& callback, const physx::PxBounds3& bounds) const +void ExtDamageAcceleratorAABBTree::findPointsInBounds(const Node& node, ResultCallback& callback, const nvidia::NvBounds3& bounds) const { if (!bounds.intersects(node.pointsBound)) { @@ -216,7 +216,7 @@ void ExtDamageAcceleratorAABBTree::findPointsInBounds(const Node& node, ResultCa } } -void ExtDamageAcceleratorAABBTree::findSegmentsInBounds(const Node& node, ResultCallback& callback, const physx::PxBounds3& bounds) const +void ExtDamageAcceleratorAABBTree::findSegmentsInBounds(const Node& node, ResultCallback& callback, const nvidia::NvBounds3& bounds) const { if (!bounds.intersects(node.segmentsBound)) { @@ -250,25 +250,25 @@ void ExtDamageAcceleratorAABBTree::findSegmentsInBounds(const Node& node, Result } } -bool intersectSegmentPlane(const PxVec3& v1, const PxVec3& v2, const PxPlane& p) +bool intersectSegmentPlane(const NvVec3& v1, const NvVec3& v2, const NvPlane& p) { const bool s1 = p.distance(v1) > 0.f; const bool s2 = p.distance(v2) > 0.f; return (s1 && !s2) || (s2 && !s1); } -bool intersectBoundsPlane(const PxBounds3& b, const PxPlane& p) +bool intersectBoundsPlane(const NvBounds3& b, const NvPlane& p) { - const PxVec3 extents = b.getExtents(); - const PxVec3 center = b.getCenter(); + const NvVec3 extents = b.getExtents(); + const NvVec3 center = b.getCenter(); - float r = extents.x * PxAbs(p.n.x) + extents.y * PxAbs(p.n.y) + extents.z * PxAbs(p.n.z); + float r = extents.x * NvAbs(p.n.x) + extents.y * NvAbs(p.n.y) + extents.z * NvAbs(p.n.z); float s = p.n.dot(center) + p.d; - return PxAbs(s) <= r; + return NvAbs(s) <= r; } -void ExtDamageAcceleratorAABBTree::findBondSegmentsPlaneIntersected(const physx::PxPlane& plane, ResultCallback& resultCallback) const +void ExtDamageAcceleratorAABBTree::findBondSegmentsPlaneIntersected(const nvidia::NvPlane& plane, ResultCallback& resultCallback) const { if (m_root) { @@ -277,7 +277,7 @@ void ExtDamageAcceleratorAABBTree::findBondSegmentsPlaneIntersected(const physx: } } -void ExtDamageAcceleratorAABBTree::findSegmentsPlaneIntersected(const Node& node, ResultCallback& callback, const physx::PxPlane& plane) const +void ExtDamageAcceleratorAABBTree::findSegmentsPlaneIntersected(const Node& node, ResultCallback& callback, const nvidia::NvPlane& plane) const { if (!intersectBoundsPlane(node.segmentsBound, plane)) { @@ -307,7 +307,7 @@ void ExtDamageAcceleratorAABBTree::findSegmentsPlaneIntersected(const Node& node // Debug Render /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -static uint32_t PxVec4ToU32Color(const PxVec4& color) +inline uint32_t NvVec4ToU32Color(const NvVec4& color) { uint32_t c = 0; c |= (int)(color.w * 255); c <<= 8; @@ -338,13 +338,13 @@ void ExtDamageAcceleratorAABBTree::fillDebugBuffer(const Node& node, int current { if (depth < 0 || currentDepth == depth) { - const PxVec4 LEAF_COLOR(1.0f, 1.0f, 1.0f, 1.0f); - const PxVec4 NON_LEAF_COLOR(0.3f, 0.3f, 0.3f, 1.0f); + const NvVec4 LEAF_COLOR(1.0f, 1.0f, 1.0f, 1.0f); + const NvVec4 NON_LEAF_COLOR(0.3f, 0.3f, 0.3f, 1.0f); // draw box - const PxBounds3 bounds = segments ? node.segmentsBound : node.pointsBound; - const PxVec3 center = bounds.getCenter(); - const PxVec3 extents = bounds.getExtents(); + const NvBounds3 bounds = segments ? node.segmentsBound : node.pointsBound; + const NvVec3 center = bounds.getCenter(); + const NvVec3 extents = bounds.getExtents(); const int vs[] = { 0,3,5,6 }; for (int i = 0; i < 4; i++) @@ -354,12 +354,12 @@ void ExtDamageAcceleratorAABBTree::fillDebugBuffer(const Node& node, int current { auto flip = [](int x, int k) { return ((x >> k) & 1) * 2.f - 1.f; }; const float s = std::pow(0.99f, currentDepth); - PxVec3 p0 = center + s * extents.multiply(PxVec3(flip(v, 0), flip(v, 1), flip(v, 2))); - PxVec3 p1 = center + s * extents.multiply(PxVec3(flip(v^d, 0), flip(v^d, 1), flip(v^d, 2))); + NvVec3 p0 = center + s * extents.multiply(NvVec3(flip(v, 0), flip(v, 1), flip(v, 2))); + NvVec3 p1 = center + s * extents.multiply(NvVec3(flip(v^d, 0), flip(v^d, 1), flip(v^d, 2))); m_debugLineBuffer.pushBack(Nv::Blast::DebugLine( reinterpret_cast(p0), reinterpret_cast(p1), - PxVec4ToU32Color(LEAF_COLOR * (1.f - (currentDepth + 1) * 0.1f))) + NvVec4ToU32Color(LEAF_COLOR * (1.f - (currentDepth + 1) * 0.1f))) ); } } diff --git a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.h b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.h index a7be5274a..afcab0559 100644 --- a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.h +++ b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorAABBTree.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #pragma once @@ -57,18 +57,18 @@ class ExtDamageAcceleratorAABBTree final : public ExtDamageAcceleratorInternal virtual void release() override; - virtual void findBondCentroidsInBounds(const physx::PxBounds3& bounds, ResultCallback& resultCallback) const override + virtual void findBondCentroidsInBounds(const nvidia::NvBounds3& bounds, ResultCallback& resultCallback) const override { const_cast(this)->findInBounds(bounds, resultCallback, false); } - virtual void findBondSegmentsInBounds(const physx::PxBounds3& bounds, ResultCallback& resultCallback) const override + virtual void findBondSegmentsInBounds(const nvidia::NvBounds3& bounds, ResultCallback& resultCallback) const override { const_cast(this)->findInBounds(bounds, resultCallback, true); } - virtual void findBondSegmentsPlaneIntersected(const physx::PxPlane& plane, ResultCallback& resultCallback) const override; + virtual void findBondSegmentsPlaneIntersected(const nvidia::NvPlane& plane, ResultCallback& resultCallback) const override; virtual Nv::Blast::DebugBuffer fillDebugRender(int depth, bool segments) override; @@ -90,8 +90,8 @@ class ExtDamageAcceleratorAABBTree final : public ExtDamageAcceleratorInternal int child[2]; uint32_t first; uint32_t last; - physx::PxBounds3 pointsBound; - physx::PxBounds3 segmentsBound; + nvidia::NvBounds3 pointsBound; + nvidia::NvBounds3 segmentsBound; }; @@ -104,13 +104,13 @@ class ExtDamageAcceleratorAABBTree final : public ExtDamageAcceleratorInternal callback.push(pointIndex, m_bonds[pointIndex].node0, m_bonds[pointIndex].node1); } - void findInBounds(const physx::PxBounds3& bounds, ResultCallback& callback, bool segments) const; + void findInBounds(const nvidia::NvBounds3& bounds, ResultCallback& callback, bool segments) const; - void findPointsInBounds(const Node& node, ResultCallback& callback, const physx::PxBounds3& bounds) const; + void findPointsInBounds(const Node& node, ResultCallback& callback, const nvidia::NvBounds3& bounds) const; - void findSegmentsInBounds(const Node& node, ResultCallback& callback, const physx::PxBounds3& bounds) const; + void findSegmentsInBounds(const Node& node, ResultCallback& callback, const nvidia::NvBounds3& bounds) const; - void findSegmentsPlaneIntersected(const Node& node, ResultCallback& callback, const physx::PxPlane& plane) const; + void findSegmentsPlaneIntersected(const Node& node, ResultCallback& callback, const nvidia::NvPlane& plane) const; void fillDebugBuffer(const Node& node, int currentDepth, int depth, bool segments); @@ -121,12 +121,12 @@ class ExtDamageAcceleratorAABBTree final : public ExtDamageAcceleratorInternal Array::type m_nodes; Array::type m_indices; - Array::type m_points; + Array::type m_points; struct Segment { - physx::PxVec3 p0; - physx::PxVec3 p1; + nvidia::NvVec3 p0; + nvidia::NvVec3 p1; }; Array::type m_segments; diff --git a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorInternal.h b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorInternal.h index 2156534de..fc84be1da 100644 --- a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorInternal.h +++ b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAcceleratorInternal.h @@ -22,12 +22,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #pragma once #include "NvBlastExtDamageShaders.h" -#include "foundation/PxBounds3.h" +#include "NvBounds3.h" namespace Nv @@ -82,9 +82,9 @@ class ExtDamageAcceleratorInternal : public NvBlastExtDamageAccelerator uint32_t m_bondCount; }; - virtual void findBondCentroidsInBounds(const physx::PxBounds3& bounds, ResultCallback& resultCallback) const = 0; - virtual void findBondSegmentsInBounds(const physx::PxBounds3& bounds, ResultCallback& resultCallback) const = 0; - virtual void findBondSegmentsPlaneIntersected(const physx::PxPlane& plane, ResultCallback& resultCallback) const = 0; + virtual void findBondCentroidsInBounds(const nvidia::NvBounds3& bounds, ResultCallback& resultCallback) const = 0; + virtual void findBondSegmentsInBounds(const nvidia::NvBounds3& bounds, ResultCallback& resultCallback) const = 0; + virtual void findBondSegmentsPlaneIntersected(const nvidia::NvPlane& plane, ResultCallback& resultCallback) const = 0; // Non-thread safe! Multiple calls return the same memory. virtual void* getImmediateScratch(size_t size) = 0; diff --git a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAccelerators.cpp b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAccelerators.cpp index cfb4f08b7..7c40b6f25 100644 --- a/blast/source/sdk/extensions/shaders/NvBlastExtDamageAccelerators.cpp +++ b/blast/source/sdk/extensions/shaders/NvBlastExtDamageAccelerators.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. //#include "NvBlastExtDamageAcceleratorOctree.h" diff --git a/blast/source/sdk/extensions/shaders/NvBlastExtDamageShaders.cpp b/blast/source/sdk/extensions/shaders/NvBlastExtDamageShaders.cpp index 7faf032f0..8aaae999a 100644 --- a/blast/source/sdk/extensions/shaders/NvBlastExtDamageShaders.cpp +++ b/blast/source/sdk/extensions/shaders/NvBlastExtDamageShaders.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtDamageShaders.h" @@ -40,7 +40,7 @@ using namespace Nv::Blast; using namespace Nv::Blast::VecMath; -using namespace physx; +using namespace nvidia; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Profiles @@ -120,21 +120,21 @@ float capsuleDistanceDamage(const float pos[3], const void* damageDesc) // AABB Functions /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -typedef PxBounds3(*BoundFunction)(const void* damageDesc); +typedef NvBounds3(*BoundFunction)(const void* damageDesc); -PxBounds3 sphereBounds(const void* damageDesc) +NvBounds3 sphereBounds(const void* damageDesc) { const NvBlastExtRadialDamageDesc& desc = *static_cast(damageDesc); - const physx::PxVec3& p = (reinterpret_cast(desc.position)); - return physx::PxBounds3::centerExtents(p, physx::PxVec3(desc.maxRadius, desc.maxRadius, desc.maxRadius)); + const nvidia::NvVec3& p = (reinterpret_cast(desc.position)); + return nvidia::NvBounds3::centerExtents(p, nvidia::NvVec3(desc.maxRadius, desc.maxRadius, desc.maxRadius)); } -PxBounds3 capsuleBounds(const void* damageDesc) +NvBounds3 capsuleBounds(const void* damageDesc) { const NvBlastExtCapsuleRadialDamageDesc& desc = *static_cast(damageDesc); - const physx::PxVec3& p0 = (reinterpret_cast(desc.position0)); - const physx::PxVec3& p1 = (reinterpret_cast(desc.position1)); - PxBounds3 b = PxBounds3::empty(); + const nvidia::NvVec3& p0 = (reinterpret_cast(desc.position0)); + const nvidia::NvVec3& p1 = (reinterpret_cast(desc.position1)); + NvBounds3 b = NvBounds3::empty(); b.include(p0); b.include(p1); b.fattenFast(desc.maxRadius); @@ -184,7 +184,7 @@ void RadialProfileGraphShader(NvBlastFractureBuffers* commandBuffers, const NvBl const uint32_t ACTOR_MINIMUM_NODE_COUNT_TO_ACCELERATE = actor->assetNodeCount / 3; if (damageAccelerator && actor->graphNodeCount > ACTOR_MINIMUM_NODE_COUNT_TO_ACCELERATE) { - physx::PxBounds3 bounds = boundsFn(programParams->damageDesc); + nvidia::NvBounds3 bounds = boundsFn(programParams->damageDesc); const uint32_t CALLBACK_BUFFER_SIZE = 1000; @@ -424,12 +424,12 @@ void NvBlastExtShearSubgraphShader(NvBlastFractureBuffers* commandBuffers, const #define SMALL_NUMBER (1.e-4f) -bool intersectSegmentTriangle(const PxVec3& p, const PxVec3& q, const PxVec3& a, const PxVec3& b, const PxVec3& c, const PxPlane& trianglePlane) +bool intersectSegmentTriangle(const NvVec3& p, const NvVec3& q, const NvVec3& a, const NvVec3& b, const NvVec3& c, const NvPlane& trianglePlane) { - const PxVec3 N = trianglePlane.n; + const NvVec3 N = trianglePlane.n; const float D = trianglePlane.d; - PxVec3 intersectPoint; + NvVec3 intersectPoint; float t = (-D - (p.dot(N))) / ((q - p).dot(N)); // If the parameter value is not between 0 and 1, there is no intersection if (t > -SMALL_NUMBER && t < 1.f + SMALL_NUMBER) @@ -442,7 +442,7 @@ bool intersectSegmentTriangle(const PxVec3& p, const PxVec3& q, const PxVec3& a, } // Compute the normal of the triangle - const PxVec3 TriNorm = (b - a).cross(c - a); + const NvVec3 TriNorm = (b - a).cross(c - a); // Compute twice area of triangle ABC const float AreaABCInv = 1.0f / (N.dot(TriNorm)); @@ -476,10 +476,10 @@ void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBu const float* familyBondHealths = actor->familyBondHealths; const NvBlastExtProgramParams* programParams = static_cast(params); const NvBlastExtTriangleIntersectionDamageDesc& desc = *static_cast(programParams->damageDesc); - const physx::PxVec3& t0 = (reinterpret_cast(desc.position0)); - const physx::PxVec3& t1 = (reinterpret_cast(desc.position1)); - const physx::PxVec3& t2 = (reinterpret_cast(desc.position2)); - const PxPlane trianglePlane(t0, t1, t2); + const nvidia::NvVec3& t0 = (reinterpret_cast(desc.position0)); + const nvidia::NvVec3& t1 = (reinterpret_cast(desc.position1)); + const nvidia::NvVec3& t2 = (reinterpret_cast(desc.position2)); + const NvPlane trianglePlane(t0, t1, t2); uint32_t outCount = 0; @@ -503,10 +503,10 @@ void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBu virtual void processResults(const ExtDamageAcceleratorInternal::QueryBondData* bondBuffer, uint32_t count) override { - const physx::PxVec3& t0 = (reinterpret_cast(m_desc.position0)); - const physx::PxVec3& t1 = (reinterpret_cast(m_desc.position1)); - const physx::PxVec3& t2 = (reinterpret_cast(m_desc.position2)); - const PxPlane trianglePlane(t0, t1, t2); + const nvidia::NvVec3& t0 = (reinterpret_cast(m_desc.position0)); + const nvidia::NvVec3& t1 = (reinterpret_cast(m_desc.position1)); + const nvidia::NvVec3& t2 = (reinterpret_cast(m_desc.position2)); + const NvPlane trianglePlane(t0, t1, t2); for (uint32_t i = 0; i < count; i++) { @@ -518,11 +518,11 @@ void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBu const NvBlastBond& bond = m_actor->assetBonds[bondData.bond]; const uint32_t chunkIndex0 = m_actor->chunkIndices[bondData.node0]; const uint32_t chunkIndex1 = m_actor->chunkIndices[bondData.node1]; - const physx::PxVec3& c0 = (reinterpret_cast(m_actor->assetChunks[chunkIndex0].centroid)); - const PxVec3& normal = (reinterpret_cast(bond.normal)); - const PxVec3& bondCentroid = (reinterpret_cast(bond.centroid)); - const physx::PxVec3& c1 = isInvalidIndex(chunkIndex1) ? (c0 + normal * (bondCentroid - c0).dot(normal)) : - (reinterpret_cast(m_actor->assetChunks[chunkIndex1].centroid)); + const nvidia::NvVec3& c0 = (reinterpret_cast(m_actor->assetChunks[chunkIndex0].centroid)); + const NvVec3& normal = (reinterpret_cast(bond.normal)); + const NvVec3& bondCentroid = (reinterpret_cast(bond.centroid)); + const nvidia::NvVec3& c1 = isInvalidIndex(chunkIndex1) ? (c0 + normal * (bondCentroid - c0).dot(normal)) : + (reinterpret_cast(m_actor->assetChunks[chunkIndex1].centroid)); if(intersectSegmentTriangle(c0, c1, t0, t1, t2, trianglePlane)) { @@ -568,11 +568,11 @@ void NvBlastExtTriangleIntersectionGraphShader(NvBlastFractureBuffers* commandBu const NvBlastBond& bond = assetBonds[bondIndex]; const uint32_t chunkIndex0 = chunkIndices[currentNodeIndex]; const uint32_t chunkIndex1 = chunkIndices[adjacentNodeIndex]; - const physx::PxVec3& c0 = (reinterpret_cast(assetChunks[chunkIndex0].centroid)); - const PxVec3& normal = (reinterpret_cast(bond.normal)); - const PxVec3& bondCentroid = (reinterpret_cast(bond.centroid)); - const physx::PxVec3& c1 = isInvalidIndex(chunkIndex1) ? (c0 + normal * (bondCentroid - c0).dot(normal)) : - (reinterpret_cast(assetChunks[chunkIndex1].centroid)); + const nvidia::NvVec3& c0 = (reinterpret_cast(assetChunks[chunkIndex0].centroid)); + const NvVec3& normal = (reinterpret_cast(bond.normal)); + const NvVec3& bondCentroid = (reinterpret_cast(bond.centroid)); + const nvidia::NvVec3& c1 = isInvalidIndex(chunkIndex1) ? (c0 + normal * (bondCentroid - c0).dot(normal)) : + (reinterpret_cast(assetChunks[chunkIndex1].centroid)); if (intersectSegmentTriangle(c0, c1, t0, t1, t2, trianglePlane)) { @@ -601,15 +601,15 @@ void NvBlastExtTriangleIntersectionSubgraphShader(NvBlastFractureBuffers* comman const NvBlastChunk& chunk = assetChunks[chunkIndex]; const NvBlastExtProgramParams* programParams = static_cast(params); const NvBlastExtTriangleIntersectionDamageDesc& desc = *static_cast(programParams->damageDesc); - const physx::PxVec3& t0 = (reinterpret_cast(desc.position0)); - const physx::PxVec3& t1 = (reinterpret_cast(desc.position1)); - const physx::PxVec3& t2 = (reinterpret_cast(desc.position2)); - const PxPlane trianglePlane(t0, t1, t2); + const nvidia::NvVec3& t0 = (reinterpret_cast(desc.position0)); + const nvidia::NvVec3& t1 = (reinterpret_cast(desc.position1)); + const nvidia::NvVec3& t2 = (reinterpret_cast(desc.position2)); + const NvPlane trianglePlane(t0, t1, t2); for (uint32_t subChunkIndex = chunk.firstChildIndex; subChunkIndex < chunk.childIndexStop; subChunkIndex++) { - const physx::PxVec3& c0 = (reinterpret_cast(assetChunks[subChunkIndex].centroid)); - const physx::PxVec3& c1 = (reinterpret_cast(assetChunks[subChunkIndex + 1].centroid)); + const nvidia::NvVec3& c0 = (reinterpret_cast(assetChunks[subChunkIndex].centroid)); + const nvidia::NvVec3& c1 = (reinterpret_cast(assetChunks[subChunkIndex + 1].centroid)); if (chunkFractureCount < chunkFractureCountMax && intersectSegmentTriangle(c0, c1, t0, t1, t2, trianglePlane)) { NvBlastChunkFractureData& frac = commandBuffers->chunkFractures[chunkFractureCount++]; @@ -694,7 +694,7 @@ void NvBlastExtImpactSpreadGraphShader(NvBlastFractureBuffers* commandBuffers, c const uint32_t bondIndex = adjacentBondIndices[adjacentNodeIndex]; const NvBlastBond& bond = assetBonds[bondIndex]; - const PxVec3& bondCentroid = (reinterpret_cast(bond.centroid)); + const NvVec3& bondCentroid = (reinterpret_cast(bond.centroid)); if (!canTakeDamage(familyBondHealths[bondIndex])) continue; @@ -705,9 +705,9 @@ void NvBlastExtImpactSpreadGraphShader(NvBlastFractureBuffers* commandBuffers, c const uint32_t chunkIndex0 = chunkIndices[currentNode.index]; const uint32_t chunkIndex1 = chunkIndices[neighbourIndex]; - const physx::PxVec3& c0 = reinterpret_cast(assetChunks[chunkIndex0].centroid); + const nvidia::NvVec3& c0 = reinterpret_cast(assetChunks[chunkIndex0].centroid); bool isNeighbourWorldChunk = isInvalidIndex(chunkIndex1); - const physx::PxVec3& c1 = isNeighbourWorldChunk ? bondCentroid : (reinterpret_cast(assetChunks[chunkIndex1].centroid)); + const nvidia::NvVec3& c1 = isNeighbourWorldChunk ? bondCentroid : (reinterpret_cast(assetChunks[chunkIndex1].centroid)); const float distance = (c1 - c0).magnitude() * (isNeighbourWorldChunk ? 2.f : 1.f); float totalDistance = currentNode.distance + distance; diff --git a/blast/source/sdk/extensions/stress/NvBlastExtStressSolver.cpp b/blast/source/sdk/extensions/stress/NvBlastExtStressSolver.cpp index 39fad8048..a0c1c10cb 100644 --- a/blast/source/sdk/extensions/stress/NvBlastExtStressSolver.cpp +++ b/blast/source/sdk/extensions/stress/NvBlastExtStressSolver.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastExtStressSolver.h" @@ -34,9 +34,8 @@ #include "NvBlastAssert.h" #include "NvBlastIndexFns.h" -#include -#include "PsFPU.h" -#include "NvBlastPxSharedHelpers.h" +#include "NsFPU.h" +#include "NvBlastNvSharedHelpers.h" #include "NvCMath.h" #include "stress.h" @@ -59,13 +58,13 @@ namespace Nv namespace Blast { -using namespace physx; +using namespace nvidia; -static_assert(sizeof(PxVec3) == sizeof(NvcVec3), "sizeof(PxVec3) must equal sizeof(NvcVec3)."); -static_assert(offsetof(PxVec3, x) == offsetof(NvcVec3, x) && - offsetof(PxVec3, y) == offsetof(NvcVec3, y) && - offsetof(PxVec3, z) == offsetof(NvcVec3, z), - "Elements of PxVec3 and NvcVec3 must have the same struct offset."); +static_assert(sizeof(NvVec3) == sizeof(NvcVec3), "sizeof(NvVec3) must equal sizeof(NvcVec3)."); +static_assert(offsetof(NvVec3, x) == offsetof(NvcVec3, x) && + offsetof(NvVec3, y) == offsetof(NvcVec3, y) && + offsetof(NvVec3, z) == offsetof(NvcVec3, z), + "Elements of NvVec3 and NvcVec3 must have the same struct offset."); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -82,7 +81,7 @@ class ConjugateGradientImpulseSolver reset(nodeCount); } - void getBondImpulses(uint32_t bond, PxVec3& impulseLinear, PxVec3& impulseAngular) const + void getBondImpulses(uint32_t bond, NvVec3& impulseLinear, NvVec3& impulseAngular) const { NVBLAST_ASSERT(bond < m_impulses.size()); const AngLin6& f = m_impulses[bond]; @@ -108,7 +107,7 @@ class ConjugateGradientImpulseSolver return m_nodes.size(); } - void setNodeMassInfo(uint32_t node, const PxVec3& CoM, float mass, float inertia) + void setNodeMassInfo(uint32_t node, const NvVec3& CoM, float mass, float inertia) { NVBLAST_ASSERT(node < m_nodes.size()); SolverNodeS& n = m_nodes[node]; @@ -126,7 +125,7 @@ class ConjugateGradientImpulseSolver m_stressProcessor.prepare(m_nodes.begin(), m_nodes.size(), m_bonds.begin(), m_bonds.size(), params); } - void setNodeVelocities(uint32_t node, const PxVec3& velocityLinear, const PxVec3& velocityAngular) + void setNodeVelocities(uint32_t node, const NvVec3& velocityLinear, const NvVec3& velocityAngular) { NVBLAST_ASSERT(node < m_velocities.size()); AngLin6& v = m_velocities[node]; @@ -135,7 +134,7 @@ class ConjugateGradientImpulseSolver m_inputsChanged = true; } - uint32_t addBond(uint32_t node0, uint32_t node1, const PxVec3& bondCentroid) + uint32_t addBond(uint32_t node0, uint32_t node1, const NvVec3& bondCentroid) { SolverBond b; b.nodes[0] = node0; @@ -235,19 +234,19 @@ class SupportGraphProcessor // The normal used to compute stress values // Can be different than the bond normal if graph reduction is used // and multiple bonds are grouped together - physx::PxVec3 normal; + nvidia::NvVec3 normal; // Centroid used to compute node offsets, instead of assuming the bond is halfway between node positions. // This also allows the bonds to the world node to be drawn - physx::PxVec3 centroid; + nvidia::NvVec3 centroid; }; struct NodeData { float mass; float volume; - PxVec3 localPos; - PxVec3 localVel; + NvVec3 localPos; + NvVec3 localVel; uint32_t solverNode; uint32_t neighborsCount; }; @@ -255,7 +254,7 @@ class SupportGraphProcessor struct SolverNodeData { uint32_t supportNodesCount; - PxVec3 localPos; + NvVec3 localPos; union { float mass; @@ -306,7 +305,7 @@ class SupportGraphProcessor return m_solverBondsData[bond]; } - void getSolverInternalBondImpulses(uint32_t bond, PxVec3& impulseLinear, PxVec3& impulseAngular) const + void getSolverInternalBondImpulses(uint32_t bond, NvVec3& impulseLinear, NvVec3& impulseAngular) const { m_solver.getBondImpulses(bond, impulseLinear, impulseAngular); } @@ -342,7 +341,7 @@ class SupportGraphProcessor } void calcSolverBondStresses( - uint32_t bondIdx, float bondArea, float nodeDist, const physx::PxVec3& bondNormal, + uint32_t bondIdx, float bondArea, float nodeDist, const nvidia::NvVec3& bondNormal, float& stressNormal, float& stressShear) const { if (!canTakeDamage(bondArea)) @@ -354,7 +353,7 @@ class SupportGraphProcessor // impulseLinear in the direction of the bond normal is stressNormal, perpendicular is stressShear // ignore impulseAngular for now, not sure how to account for that // convert to pressure to factor out area - PxVec3 impulseLinear, impulseAngular; + NvVec3 impulseLinear, impulseAngular; getSolverInternalBondImpulses(bondIdx, impulseLinear, impulseAngular); const float normalComponentLinear = impulseLinear.dot(bondNormal); stressNormal = normalComponentLinear / bondArea; @@ -426,7 +425,7 @@ class SupportGraphProcessor return stress; } - void setNodeInfo(uint32_t node, float mass, float volume, PxVec3 localPos) + void setNodeInfo(uint32_t node, float mass, float volume, NvVec3 localPos) { m_nodesData[node].mass = mass; m_nodesData[node].volume = volume; @@ -446,7 +445,7 @@ class SupportGraphProcessor } } - void addNodeForce(uint32_t node, const PxVec3& force, ExtForceMode::Enum mode) + void addNodeForce(uint32_t node, const NvVec3& force, ExtForceMode::Enum mode) { const float mass = m_nodesData[node].mass; if (mass > 0) @@ -544,7 +543,7 @@ class SupportGraphProcessor for (const NodeData& node : m_nodesData) { - m_solver.setNodeVelocities(node.solverNode, node.localVel, PxVec3(PxZero)); + m_solver.setNodeVelocities(node.solverNode, node.localVel, NvVec3(NvZero)); } m_solver.solve(settings.maxSolverIterationsPerFrame, warmStart); @@ -601,7 +600,7 @@ class SupportGraphProcessor { for (auto& node : m_nodesData) { - node.localVel = PxVec3(PxZero); + node.localVel = NvVec3(NvZero); } } @@ -616,9 +615,9 @@ class SupportGraphProcessor // calculate the total area of all bonds involved so pressure can be calculated float totalArea = 0.0f; // calculate an average normal and centroid for all bonds as well, weighted by their area - physx::PxVec3 bondNormal(PxZero); - physx::PxVec3 bondCentroid(PxZero); - physx::PxVec3 averageNodeDisp(PxZero); + nvidia::NvVec3 bondNormal(NvZero); + nvidia::NvVec3 bondCentroid(NvZero); + nvidia::NvVec3 averageNodeDisp(NvZero); const auto& blastBondIndices = m_solverBondsData[i].blastBondIndices; for (auto blastBondIndex : blastBondIndices) { @@ -626,17 +625,17 @@ class SupportGraphProcessor { const uint32_t bondIndex = m_blastBondIndexMap[blastBondIndex]; const BondData& bond = m_bondsData[bondIndex]; - const physx::PxVec3 nodeDisp = m_nodesData[bond.node1].localPos - m_nodesData[bond.node0].localPos; + const nvidia::NvVec3 nodeDisp = m_nodesData[bond.node1].localPos - m_nodesData[bond.node0].localPos; // the current health of a bond is the effective area remaining const float remainingArea = bondHealth[blastBondIndex]; const NvBlastBond& blastBond = bonds[blastBondIndex]; // Align normal(s) with node displacement, so that compressive/tensile distinction is correct - const physx::PxVec3 assetBondNormal(blastBond.normal[0], blastBond.normal[1], blastBond.normal[2]); - const physx::PxVec3 blastBondNormal = std::copysignf(1.0f, assetBondNormal.dot(nodeDisp))*assetBondNormal; + const nvidia::NvVec3 assetBondNormal(blastBond.normal[0], blastBond.normal[1], blastBond.normal[2]); + const nvidia::NvVec3 blastBondNormal = std::copysignf(1.0f, assetBondNormal.dot(nodeDisp))*assetBondNormal; - const physx::PxVec3 blastBondCentroid(blastBond.centroid[0], blastBond.centroid[1], blastBond.centroid[2]); + const nvidia::NvVec3 blastBondCentroid(blastBond.centroid[0], blastBond.centroid[1], blastBond.centroid[2]); if (!canTakeDamage(remainingArea)) // Check unbreakable limit { @@ -836,7 +835,7 @@ class SupportGraphProcessor for (SolverNodeData& solverNode : m_solverNodesData) { solverNode.supportNodesCount = 0; - solverNode.localPos = PxVec3(PxZero); + solverNode.localPos = NvVec3(NvZero); solverNode.mass = 0.0f; solverNode.volume = 0.0f; } @@ -860,7 +859,7 @@ class SupportGraphProcessor { const SolverNodeData& solverNode = m_solverNodesData[nodeIndex]; - const float R = PxPow(solverNode.volume * 3.0f * PxInvPi / 4.0f, 1.0f / 3.0f); // sphere volume approximation + const float R = NvPow(solverNode.volume * 3.0f * NvInvPi / 4.0f, 1.0f / 3.0f); // sphere volume approximation const float inertia = solverNode.mass * (R * R * 0.4f); // sphere inertia tensor approximation: I = 2/5 * M * R^2 ; invI = 1 / I; m_solver.setNodeMassInfo(nodeIndex, solverNode.localPos, solverNode.mass, inertia); } @@ -886,8 +885,8 @@ class SupportGraphProcessor bond.stressShear = 0.0f; // initialize normal and centroid using blast values - bond.normal = *(PxVec3*)bonds[bond.blastBondIndex].normal; - bond.centroid = *(PxVec3*)bonds[bond.blastBondIndex].centroid; + bond.normal = *(NvVec3*)bonds[bond.blastBondIndex].normal; + bond.centroid = *(NvVec3*)bonds[bond.blastBondIndex].centroid; // fix normal direction to point from node0 to node1 bond.normal *= std::copysignf(1.0f, bond.normal.dot(node1.localPos - node1.localPos)); @@ -1252,7 +1251,7 @@ void ExtStressSolverImpl::setAllNodesInfoFromLL(float density) if (chunkIndex0 >= chunkCount) { // chunkIndex is invalid means it is static node (represents world) - m_graphProcessor->setNodeInfo(node0, 0.0f, 0.0f, PxVec3()); + m_graphProcessor->setNodeInfo(node0, 0.0f, 0.0f, NvVec3()); } else { @@ -1260,7 +1259,7 @@ void ExtStressSolverImpl::setAllNodesInfoFromLL(float density) const NvBlastChunk& chunk = chunks[chunkIndex0]; const float volume = chunk.volume; const float mass = volume * density; - const PxVec3 localPos = *reinterpret_cast(chunk.centroid); + const NvVec3 localPos = *reinterpret_cast(chunk.centroid); m_graphProcessor->setNodeInfo(node0, mass, volume, localPos); } } @@ -1268,7 +1267,7 @@ void ExtStressSolverImpl::setAllNodesInfoFromLL(float density) void ExtStressSolverImpl::setNodeInfo(uint32_t graphNode, float mass, float volume, NvcVec3 localPos) { - m_graphProcessor->setNodeInfo(graphNode, mass, volume, toPxShared(localPos)); + m_graphProcessor->setNodeInfo(graphNode, mass, volume, toNvShared(localPos)); } bool ExtStressSolverImpl::getExcessForces(uint32_t actorIndex, const NvcVec3& com, NvcVec3& force, NvcVec3& torque) @@ -1294,8 +1293,8 @@ bool ExtStressSolverImpl::getExcessForces(uint32_t actorIndex, const NvcVec3& co } // walk the visible nodes for the actor looking for bonds that broke this frame - physx::PxVec3 totalForce(0.0f); - physx::PxVec3 totalTorque(0.0f); + nvidia::NvVec3 totalForce(0.0f); + nvidia::NvVec3 totalTorque(0.0f); for (uint32_t n = 0; n < nodeCount; n++) { // find bonds that broke this frame (health <= 0 but internal stress bond index is still valid) @@ -1334,37 +1333,37 @@ bool ExtStressSolverImpl::getExcessForces(uint32_t actorIndex, const NvcVec3& co NVBLAST_ASSERT(bondData.node0 == internalBondData.node0 && bondData.node1 == internalBondData.node1); // accumulators for forces just from this bond - physx::PxVec3 pxLinearPressure(0.0f); - physx::PxVec3 pxAngularPressure(0.0f); + nvidia::NvVec3 nvLinearPressure(0.0f); + nvidia::NvVec3 nvAngularPressure(0.0f); // deal with linear forces const float excessCompression = bondData.stressNormal + m_settings.compressionFatalLimit; const float excessTension = bondData.stressNormal - m_settings.tensionFatalLimit; if (excessCompression < 0.0f) { - pxLinearPressure += excessCompression * bondData.normal; + nvLinearPressure += excessCompression * bondData.normal; } else if (excessTension > 0.0f) { // tension is in the negative direction of the linear impulse - pxLinearPressure += excessTension * bondData.normal; + nvLinearPressure += excessTension * bondData.normal; } const float excessShear = bondData.stressShear - m_settings.shearFatalLimit; if (excessShear > 0.0f) { - PxVec3 impulseLinear, impulseAngular; + NvVec3 impulseLinear, impulseAngular; m_graphProcessor->getSolverInternalBondImpulses(internalBondIndex, impulseLinear, impulseAngular); - const physx::PxVec3 shearDir = impulseLinear - impulseLinear.dot(bondData.normal)*bondData.normal; - pxLinearPressure += excessShear * shearDir.getNormalized(); + const nvidia::NvVec3 shearDir = impulseLinear - impulseLinear.dot(bondData.normal)*bondData.normal; + nvLinearPressure += excessShear * shearDir.getNormalized(); } - if (pxLinearPressure.magnitudeSquared() > FLT_EPSILON) + if (nvLinearPressure.magnitudeSquared() > FLT_EPSILON) { const float* bondCenter = m_bonds[blastBondIndex].centroid; - const physx::PxVec3 forceOffset = physx::PxVec3(bondCenter[0], bondCenter[1], bondCenter[3]) - toPxShared(com); - const physx::PxVec3 torqueFromForce = forceOffset.cross(pxLinearPressure); - pxAngularPressure += torqueFromForce; + const nvidia::NvVec3 forceOffset = nvidia::NvVec3(bondCenter[0], bondCenter[1], bondCenter[3]) - toNvShared(com); + const nvidia::NvVec3 torqueFromForce = forceOffset.cross(nvLinearPressure); + nvAngularPressure += torqueFromForce; } // add the contributions from this bond to the total forces for the actor @@ -1374,14 +1373,14 @@ bool ExtStressSolverImpl::getExcessForces(uint32_t actorIndex, const NvcVec3& co const float sign = otherNodeIdx > nodeIdx ? 1.0f : -1.0f; - totalForce += pxLinearPressure * (sign*bondRemainingArea); - totalTorque += pxAngularPressure * (sign*bondRemainingArea); + totalForce += nvLinearPressure * (sign*bondRemainingArea); + totalTorque += nvAngularPressure * (sign*bondRemainingArea); } } // convert to the output format and return true if non-zero forces were accumulated - force = fromPxShared(totalForce); - torque = fromPxShared(totalTorque); + force = fromNvShared(totalForce); + torque = fromNvShared(totalTorque); return (totalForce.magnitudeSquared() + totalTorque.magnitudeSquared()) > 0.0f; } @@ -1469,7 +1468,7 @@ bool ExtStressSolverImpl::addForce(const NvBlastActor& actor, NvcVec3 localPosit for (uint32_t i = 0; i < nodeCount; ++i) { const uint32_t node = graphNodeIndices[i]; - const float sqrDist = (toPxShared(localPosition) - m_graphProcessor->getNodeData(node).localPos).magnitudeSquared(); + const float sqrDist = (toNvShared(localPosition) - m_graphProcessor->getNodeData(node).localPos).magnitudeSquared(); if (sqrDist < bestDist) { bestDist = sqrDist; @@ -1479,7 +1478,7 @@ bool ExtStressSolverImpl::addForce(const NvBlastActor& actor, NvcVec3 localPosit if (!isInvalidIndex(bestNode)) { - m_graphProcessor->addNodeForce(bestNode, toPxShared(localForce), mode); + m_graphProcessor->addNodeForce(bestNode, toNvShared(localForce), mode); return true; } } @@ -1488,7 +1487,7 @@ bool ExtStressSolverImpl::addForce(const NvBlastActor& actor, NvcVec3 localPosit void ExtStressSolverImpl::addForce(uint32_t graphNode, NvcVec3 localForce, ExtForceMode::Enum mode) { - m_graphProcessor->addNodeForce(graphNode, toPxShared(localForce), mode); + m_graphProcessor->addNodeForce(graphNode, toNvShared(localForce), mode); } bool ExtStressSolverImpl::addGravity(const NvBlastActor& actor, NvcVec3 localGravity) @@ -1502,7 +1501,7 @@ bool ExtStressSolverImpl::addGravity(const NvBlastActor& actor, NvcVec3 localGra for (uint32_t i = 0; i < nodeCount; ++i) { const uint32_t node = graphNodeIndices[i]; - m_graphProcessor->addNodeForce(node, toPxShared(localGravity), ExtForceMode::ACCELERATION); + m_graphProcessor->addNodeForce(node, toNvShared(localGravity), ExtForceMode::ACCELERATION); } return true; } @@ -1523,9 +1522,9 @@ bool ExtStressSolverImpl::addCentrifugalAcceleration(const NvBlastActor& actor, const uint32_t node = graphNodeIndices[i]; const auto& localPos = m_graphProcessor->getNodeData(node).localPos; // a = w x (w x r) - const PxVec3 centrifugalAcceleration = - toPxShared(localAngularVelocity) - .cross(toPxShared(localAngularVelocity).cross(localPos - toPxShared(localCenterMass))); + const NvVec3 centrifugalAcceleration = + toNvShared(localAngularVelocity) + .cross(toNvShared(localAngularVelocity).cross(localPos - toNvShared(localCenterMass))); m_graphProcessor->addNodeForce(node, centrifugalAcceleration, ExtForceMode::ACCELERATION); } return true; @@ -1549,7 +1548,7 @@ void ExtStressSolverImpl::update() void ExtStressSolverImpl::solve() { - PX_SIMD_GUARD; + NV_SIMD_GUARD; m_graphProcessor->solve(m_settings, m_bondHealths, m_bonds, WARM_START && !m_reset); m_reset = false; @@ -1683,12 +1682,12 @@ uint32_t ExtStressSolverImpl::generateFractureCommandsPerActor(const NvBlastActo // Debug Render /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -static PxU32 PxVec4ToU32Color(const PxVec4& color) +inline uint32_t NvVec4ToU32Color(const NvVec4& color) { - return ((PxU32)(color.w * 255) << 24) | // A - ((PxU32)(color.x * 255) << 16) | // R - ((PxU32)(color.y * 255) << 8) | // G - ((PxU32)(color.z * 255)); // B + return ((uint32_t)(color.w * 255) << 24) | // A + ((uint32_t)(color.x * 255) << 16) | // R + ((uint32_t)(color.y * 255) << 8) | // G + ((uint32_t)(color.z * 255)); // B } static float Lerp(float v0, float v1, float val) @@ -1701,14 +1700,14 @@ inline float clamp01(float v) return v < 0.0f ? 0.0f : (v > 1.0f ? 1.0f : v); } -inline PxVec4 colorConvertHSVAtoRGBA(float h, float s, float v, float a) +inline NvVec4 colorConvertHSVAtoRGBA(float h, float s, float v, float a) { const float t = 6.0f * (h - std::floor(h)); const int n = (int)t; const float m = t - (float)n; const float c = 1.0f - s; const float b[6] = { 1.0f, 1.0f - s * m, c, c, 1.0f - s * (1.0f - m), 1.0f }; - return PxVec4(v * b[n % 6], v * b[(n + 4) % 6], v * b[(n + 2) % 6], a); // n % 6 protects against roundoff errors + return NvVec4(v * b[n % 6], v * b[(n + 4) % 6], v * b[(n + 2) % 6], a); // n % 6 protects against roundoff errors } inline uint32_t bondHealthColor(float stressPct) @@ -1723,14 +1722,14 @@ inline uint32_t bondHealthColor(float stressPct) const float hue = stressPct < 0.5f ? Lerp(BOND_HEALTHY_HUE, BOND_ELASTIC_HUE, 2.0f * stressPct) : Lerp(BOND_STRESSED_HUE, BOND_FATAL_HUE, 2.0f * stressPct - 1.0f); - return PxVec4ToU32Color(colorConvertHSVAtoRGBA(hue, 1.0f, 1.0f, 1.0f)); + return NvVec4ToU32Color(colorConvertHSVAtoRGBA(hue, 1.0f, 1.0f, 1.0f)); } const ExtStressSolver::DebugBuffer ExtStressSolverImpl::fillDebugRender(const uint32_t* nodes, uint32_t nodeCount, DebugRenderMode mode, float scale) { NV_UNUSED(scale); - const uint32_t BOND_UNBREAKABLE_COLOR = PxVec4ToU32Color(PxVec4(0.0f, 0.682f, 1.0f, 1.0f)); + const uint32_t BOND_UNBREAKABLE_COLOR = NvVec4ToU32Color(NvVec4(0.0f, 0.682f, 1.0f, 1.0f)); ExtStressSolver::DebugBuffer debugBuffer = { nullptr, 0 }; @@ -1760,8 +1759,8 @@ const ExtStressSolver::DebugBuffer ExtStressSolverImpl::fillDebugRender(const ui //NVBLAST_ASSERT(nodesSet[node1] != 0); const auto& solverNode0 = m_graphProcessor->getSolverNodeData(node0); const auto& solverNode1 = m_graphProcessor->getSolverNodeData(node1); - const NvcVec3 p0 = fromPxShared(solverNode0.mass > 0.0f ? solverNode0.localPos : bondData.centroid); - const NvcVec3 p1 = fromPxShared(solverNode1.mass > 0.0f ? solverNode1.localPos : bondData.centroid); + const NvcVec3 p0 = fromNvShared(solverNode0.mass > 0.0f ? solverNode0.localPos : bondData.centroid); + const NvcVec3 p1 = fromNvShared(solverNode1.mass > 0.0f ? solverNode1.localPos : bondData.centroid); // don't render lines for broken bonds const float stressPct = m_graphProcessor->getSolverBondStressPct(i, m_bondHealths, m_settings, mode); diff --git a/blast/source/sdk/globals/NvBlastGlobals.cpp b/blast/source/sdk/globals/NvBlastGlobals.cpp index 67f7d839b..c0ae0af70 100644 --- a/blast/source/sdk/globals/NvBlastGlobals.cpp +++ b/blast/source/sdk/globals/NvBlastGlobals.cpp @@ -22,11 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastGlobals.h" #include "NvBlastAssert.h" +#include "NvAllocatorCallback.h" +#include "NvErrorCallback.h" +#include "NsGlobals.h" #include #include #include @@ -88,7 +91,7 @@ NV_FORCE_INLINE void platformAlignedFree(void* ptr) } #endif -class DefaultAllocatorCallback : public AllocatorCallback +class DefaultAllocatorCallback : public nvidia::NvAllocatorCallback { public: virtual void* allocate(size_t size, const char* typeName, const char* filename, int line) override @@ -104,28 +107,28 @@ class DefaultAllocatorCallback : public AllocatorCallback platformAlignedFree(ptr); } }; -DefaultAllocatorCallback g_defaultAllocatorCallback; +DefaultAllocatorCallback s_defaultAllocatorCallback; -class DefaultErrorCallback : public ErrorCallback +class DefaultErrorCallback : public nvidia::NvErrorCallback { - virtual void reportError(ErrorCode::Enum code, const char* msg, const char* file, int line) override + virtual void reportError(nvidia::NvErrorCode::Enum code, const char* msg, const char* file, int line) override { -#if NV_DEBUG || NV_CHECKED +#if 1 || NV_DEBUG || NV_CHECKED std::stringstream str; str << "NvBlast "; bool critical = false; switch (code) { - case ErrorCode::eNO_ERROR: str << "[Info]"; critical = false; break; - case ErrorCode::eDEBUG_INFO: str << "[Debug Info]"; critical = false; break; - case ErrorCode::eDEBUG_WARNING: str << "[Debug Warning]"; critical = false; break; - case ErrorCode::eINVALID_PARAMETER: str << "[Invalid Parameter]"; critical = true; break; - case ErrorCode::eINVALID_OPERATION: str << "[Invalid Operation]"; critical = true; break; - case ErrorCode::eOUT_OF_MEMORY: str << "[Out of] Memory"; critical = true; break; - case ErrorCode::eINTERNAL_ERROR: str << "[Internal Error]"; critical = true; break; - case ErrorCode::eABORT: str << "[Abort]"; critical = true; break; - case ErrorCode::ePERF_WARNING: str << "[Perf Warning]"; critical = false; break; + case nvidia::NvErrorCode::eNO_ERROR: str << "[Info]"; critical = false; break; + case nvidia::NvErrorCode::eDEBUG_INFO: str << "[Debug Info]"; critical = false; break; + case nvidia::NvErrorCode::eDEBUG_WARNING: str << "[Debug Warning]"; critical = false; break; + case nvidia::NvErrorCode::eINVALID_PARAMETER: str << "[Invalid Parameter]"; critical = true; break; + case nvidia::NvErrorCode::eINVALID_OPERATION: str << "[Invalid Operation]"; critical = true; break; + case nvidia::NvErrorCode::eOUT_OF_MEMORY: str << "[Out of] Memory"; critical = true; break; + case nvidia::NvErrorCode::eINTERNAL_ERROR: str << "[Internal Error]"; critical = true; break; + case nvidia::NvErrorCode::eABORT: str << "[Abort]"; critical = true; break; + case nvidia::NvErrorCode::ePERF_WARNING: str << "[Perf Warning]"; critical = false; break; default: NVBLAST_ASSERT(false); } str << file << "(" << line << "): " << msg << "\n"; @@ -144,12 +147,13 @@ class DefaultErrorCallback : public ErrorCallback #endif } }; -DefaultErrorCallback g_defaultErrorCallback; +static DefaultErrorCallback s_defaultErrorCallback; -AllocatorCallback* g_allocatorCallback = &g_defaultAllocatorCallback; -ErrorCallback* g_errorCallback = &g_defaultErrorCallback; +static nvidia::NvAllocatorCallback* s_allocatorCallback = &s_defaultAllocatorCallback; +static nvidia::NvErrorCallback* s_errorCallback = &s_defaultErrorCallback; +nvidia::NvProfilerCallback *g_profilerCallback = nullptr; } // namespace Blast } // namespace Nv @@ -157,22 +161,32 @@ ErrorCallback* g_errorCallback = &g_defaultErrorCallback; //////// Global API implementation //////// -Nv::Blast::AllocatorCallback* NvBlastGlobalGetAllocatorCallback() +nvidia::NvAllocatorCallback* NvBlastGlobalGetAllocatorCallback() { - return Nv::Blast::g_allocatorCallback; + return Nv::Blast::s_allocatorCallback; } -void NvBlastGlobalSetAllocatorCallback(Nv::Blast::AllocatorCallback* allocator) +void NvBlastGlobalSetAllocatorCallback(nvidia::NvAllocatorCallback* allocator) { - Nv::Blast::g_allocatorCallback = allocator ? allocator : &Nv::Blast::g_defaultAllocatorCallback; + Nv::Blast::s_allocatorCallback = allocator ? allocator : &Nv::Blast::s_defaultAllocatorCallback; } -Nv::Blast::ErrorCallback* NvBlastGlobalGetErrorCallback() +nvidia::NvErrorCallback* NvBlastGlobalGetErrorCallback() { - return Nv::Blast::g_errorCallback; + return Nv::Blast::s_errorCallback; } -void NvBlastGlobalSetErrorCallback(Nv::Blast::ErrorCallback* errorCallback) +void NvBlastGlobalSetErrorCallback(nvidia::NvErrorCallback* errorCallback) { - Nv::Blast::g_errorCallback = errorCallback ? errorCallback : &Nv::Blast::g_defaultErrorCallback; + Nv::Blast::s_errorCallback = errorCallback ? errorCallback : &Nv::Blast::s_defaultErrorCallback; +} + +nvidia::NvProfilerCallback* NvBlastGlobalGetProfilerCallback() +{ + return Nv::Blast::g_profilerCallback; +} + +void NvBlastGlobalSetProfilerCallback(nvidia::NvProfilerCallback* profilerCallback) +{ + Nv::Blast::g_profilerCallback = profilerCallback; } diff --git a/blast/source/sdk/common/NvBlastPxCustomProfiler.h b/blast/source/sdk/globals/NvBlastInternalProfiler.cpp similarity index 59% rename from blast/source/sdk/common/NvBlastPxCustomProfiler.h rename to blast/source/sdk/globals/NvBlastInternalProfiler.cpp index 5be2cc235..2964fb8be 100644 --- a/blast/source/sdk/common/NvBlastPxCustomProfiler.h +++ b/blast/source/sdk/globals/NvBlastInternalProfiler.cpp @@ -22,35 +22,23 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#ifndef NVBLASTDEFAULTPROFILER_H -#define NVBLASTDEFAULTPROFILER_H - -#include "NvBlastProfiler.h" -#include "PxFoundation.h" -#include "foundation/PxProfiler.h" - -#if NV_NVTX -#include "nvToolsExt.h" -NV_INLINE void platformZoneStart(const char* name) { nvtxRangePushA(name); } -NV_INLINE void platformZoneEnd() { nvtxRangePop(); } - -#else -NV_INLINE void platformZoneStart(const char*) { } -NV_INLINE void platformZoneEnd() { } - -#endif - -#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC > 12) +#include "stdint.h" +#include "NvProfiler.h" +#include "NvBlastGlobals.h" +#include "NvBlastInternalProfiler.h" +#include "NvBlastAssert.h" namespace Nv { namespace Blast { -struct ExtProfileData +#define SUPPORTS_THREAD_LOCAL (!NV_VC || NV_VC > 12) + +struct InternalProfilerData { const char* name; void* data; @@ -58,33 +46,30 @@ struct ExtProfileData #if SUPPORTS_THREAD_LOCAL static const int32_t PROFILER_MAX_NESTED_DEPTH = 64; -static thread_local ExtProfileData th_ProfileData[PROFILER_MAX_NESTED_DEPTH]; +static thread_local InternalProfilerData th_ProfileData[PROFILER_MAX_NESTED_DEPTH]; static thread_local int32_t th_depth = 0; #endif +extern nvidia::NvProfilerCallback *g_profilerCallback; /** -Implements Nv::Blast::ProfilerCallback to serve the physx::PxProfilerCallback set in PxFoundation -for PhysX Visual Debugger support and platform specific profilers like NVIDIA(R) NSight(TM). +Wraps the nvidia::NvProfilerCallback set in NvBlastGlobalSetProfilerCallback. */ -class ExtCustomProfiler : public ProfilerCallback +class InternalProfiler { public: /** - Construct an ExtCustomProfiler with platform specific profiler signals disabled. + Construct a InternalProfiler with platform specific profiler signals disabled. */ - ExtCustomProfiler() : m_platformEnabled(false) {} - + InternalProfiler() : m_platformEnabled(false) {} - ////// ProfilerCallback interface ////// - - virtual void zoneStart(const char* name) override + void zoneStart(const char* name) { #if SUPPORTS_THREAD_LOCAL - if (PxGetProfilerCallback()) + if (g_profilerCallback) { - void* data = PxGetProfilerCallback()->zoneStart(name, false, 0xb1a57); + void* data = g_profilerCallback->zoneStart(name, false, 0xb1a57); if (th_depth < PROFILER_MAX_NESTED_DEPTH && th_depth >= 0) { @@ -94,7 +79,7 @@ class ExtCustomProfiler : public ProfilerCallback } else { - assert(th_depth < PROFILER_MAX_NESTED_DEPTH && th_depth >= 0); + NVBLAST_ASSERT(th_depth < PROFILER_MAX_NESTED_DEPTH && th_depth >= 0); } } #endif @@ -105,22 +90,22 @@ class ExtCustomProfiler : public ProfilerCallback } } - virtual void zoneEnd() override + void zoneEnd() { #if SUPPORTS_THREAD_LOCAL - if (PxGetProfilerCallback()) + if (g_profilerCallback) { th_depth--; if (th_depth >= 0) { - ExtProfileData& pd = th_ProfileData[th_depth]; - PxGetProfilerCallback()->zoneEnd(pd.data, pd.name, false, 0xb1a57); + InternalProfilerData& pd = th_ProfileData[th_depth]; + g_profilerCallback->zoneEnd(pd.data, pd.name, false, 0xb1a57); } else { - assert(th_depth >= 0); + NVBLAST_ASSERT(th_depth >= 0); } } #endif @@ -148,8 +133,39 @@ class ExtCustomProfiler : public ProfilerCallback bool m_platformEnabled; }; -} // namespace Blast -} // namespace Nv +static InternalProfiler g_InternalProfiler; +static InternalProfilerDetail::Level g_ProfilerDetail = InternalProfilerDetail::LOW; + +void NvBlastInternalProfilerSetPlatformEnabled(bool platformEnabled) +{ + return g_InternalProfiler.setPlatformEnabled(platformEnabled); +} + +void NvBlastInternalProfilerSetDetail(InternalProfilerDetail::Level level) +{ + g_ProfilerDetail = level; +} +InternalProfilerDetail::Level NvBlastProfilerGetDetail() +{ + return g_ProfilerDetail; +} -#endif // NVBLASTDEFAULTPROFILER_H +void NvBlastProfilerBegin(const char* name, InternalProfilerDetail::Level level) +{ + if (level <= NvBlastProfilerGetDetail()) + { + g_InternalProfiler.zoneStart(name); + } +} + +void NvBlastProfilerEnd(const void* /*name*/, InternalProfilerDetail::Level level) +{ + if (level <= NvBlastProfilerGetDetail()) + { + g_InternalProfiler.zoneEnd(); + } +} + +} // namespace Blast +} // namespace Nv diff --git a/blast/source/sdk/globals/NvBlastProfilerInternal.h b/blast/source/sdk/globals/NvBlastInternalProfiler.h similarity index 58% rename from blast/source/sdk/globals/NvBlastProfilerInternal.h rename to blast/source/sdk/globals/NvBlastInternalProfiler.h index 6d02f532c..40241e865 100644 --- a/blast/source/sdk/globals/NvBlastProfilerInternal.h +++ b/blast/source/sdk/globals/NvBlastInternalProfiler.h @@ -22,22 +22,22 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#ifndef NVBLASTPROFILERINTERNAL_H -#define NVBLASTPROFILERINTERNAL_H +#ifndef NVBLASTINTERNALPROFILER_H +#define NVBLASTINTERNALPROFILER_H -#include "NvBlastPreprocessor.h" -#include "NvBlastProfiler.h" +#include "NvPreprocessor.h" -#if NV_PROFILE || NV_CHECKED || NV_DEBUG - -NVBLAST_API void NvBlastProfilerBegin(const char* name, Nv::Blast::ProfilerDetail::Level); -NVBLAST_API void NvBlastProfilerEnd(const void* name, Nv::Blast::ProfilerDetail::Level); - -Nv::Blast::ProfilerCallback* NvBlastProfilerGetCallback(); -Nv::Blast::ProfilerDetail::Level NvBlastProfilerGetDetail(); +#if NV_NVTX +#include "nvToolsExt.h" +NV_INLINE void platformZoneStart(const char* name) { nvtxRangePushA(name); } +NV_INLINE void platformZoneEnd() { nvtxRangePop(); } +#else +NV_INLINE void platformZoneStart(const char*) { } +NV_INLINE void platformZoneEnd() { } +#endif namespace Nv @@ -45,11 +45,33 @@ namespace Nv namespace Blast { - +/** +Profiler detail to be reported. The higher setting is used, the more details are reported. +*/ +struct InternalProfilerDetail +{ + enum Level + { + LOW, + MEDIUM, + HIGH + }; +}; + +NV_C_API void NvBlastInternalProfilerSetPlatformEnabled(bool platformEnabled); +NV_C_API void NvBlastInternalProfilerSetDetail(Nv::Blast::InternalProfilerDetail::Level); +NV_C_API Nv::Blast::InternalProfilerDetail::Level NvBlastInternalProfilerGetDetail(); + +#if NV_PROFILE + +NV_C_API void NvBlastProfilerBegin(const char* name, Nv::Blast::InternalProfilerDetail::Level); +NV_C_API void NvBlastProfilerEnd(const void* name, Nv::Blast::InternalProfilerDetail::Level); + + class ProfileScope { public: - ProfileScope(const char* name, ProfilerDetail::Level level) :m_name(name), m_level(level) + ProfileScope(const char* name, InternalProfilerDetail::Level level) :m_name(name), m_level(level) { NvBlastProfilerBegin(m_name, m_level); } @@ -61,21 +83,16 @@ class ProfileScope private: const char* m_name; - ProfilerDetail::Level m_level; + InternalProfilerDetail::Level m_level; }; - -} // namespace Blast -} // namespace Nv - - #define BLAST_PROFILE_PREFIX "Blast: " -#define BLAST_PROFILE_ZONE_BEGIN(name) NvBlastProfilerBegin(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH) -#define BLAST_PROFILE_ZONE_END(name) NvBlastProfilerEnd(BLAST_PROFILE_PREFIX name, Nv::Blast::ProfilerDetail::HIGH) +#define BLAST_PROFILE_ZONE_BEGIN(name) Nv::Blast::NvBlastProfilerBegin(BLAST_PROFILE_PREFIX name, Nv::Blast::InternalProfilerDetail::HIGH) +#define BLAST_PROFILE_ZONE_END(name) Nv::Blast::NvBlastProfilerEnd(BLAST_PROFILE_PREFIX name, Nv::Blast::InternalProfilerDetail::HIGH) #define BLAST_PROFILE_SCOPE(name, detail) Nv::Blast::ProfileScope NV_CONCAT(_scope,__LINE__) (BLAST_PROFILE_PREFIX name, detail) -#define BLAST_PROFILE_SCOPE_L(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::LOW) -#define BLAST_PROFILE_SCOPE_M(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::MEDIUM) -#define BLAST_PROFILE_SCOPE_H(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::ProfilerDetail::HIGH) +#define BLAST_PROFILE_SCOPE_L(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::InternalProfilerDetail::LOW) +#define BLAST_PROFILE_SCOPE_M(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::InternalProfilerDetail::MEDIUM) +#define BLAST_PROFILE_SCOPE_H(name) BLAST_PROFILE_SCOPE(name, Nv::Blast::InternalProfilerDetail::HIGH) #else @@ -87,4 +104,7 @@ class ProfileScope #endif -#endif +} // namespace Blast +} // namespace Nv + +#endif \ No newline at end of file diff --git a/blast/source/sdk/globals/NvBlastProfiler.cpp b/blast/source/sdk/globals/NvBlastProfiler.cpp deleted file mode 100644 index f8fa9ccfb..000000000 --- a/blast/source/sdk/globals/NvBlastProfiler.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. - - -#include "stdint.h" -#include "NvBlastProfilerInternal.h" - -#if NV_PROFILE || NV_CHECKED || NV_DEBUG - -namespace Nv -{ -namespace Blast -{ - -class EmptyProfilerCallback : public ProfilerCallback -{ - void zoneStart(const char*) {} - void zoneEnd() {} -}; -EmptyProfilerCallback g_EmptyCallback; - -ProfilerCallback* g_ProfilerCallback = &g_EmptyCallback; -ProfilerDetail::Level g_ProfilerDetail = ProfilerDetail::LOW; - -} // namespace Blast -} // namespace Nv - - -void NvBlastProfilerSetCallback(Nv::Blast::ProfilerCallback* pcb) -{ - Nv::Blast::g_ProfilerCallback = pcb != nullptr ? pcb : &Nv::Blast::g_EmptyCallback; -} - -Nv::Blast::ProfilerCallback* NvBlastProfilerGetCallback() -{ - return Nv::Blast::g_ProfilerCallback; -} - - -void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level level) -{ - Nv::Blast::g_ProfilerDetail = level; -} - -Nv::Blast::ProfilerDetail::Level NvBlastProfilerGetDetail() -{ - return Nv::Blast::g_ProfilerDetail; -} - - -void NvBlastProfilerBegin(const char* name, Nv::Blast::ProfilerDetail::Level level) -{ - if (level <= NvBlastProfilerGetDetail()) - { - NvBlastProfilerGetCallback()->zoneStart(name); - } -} - -void NvBlastProfilerEnd(const void* /*name*/, Nv::Blast::ProfilerDetail::Level level) -{ - if (level <= NvBlastProfilerGetDetail()) - { - NvBlastProfilerGetCallback()->zoneEnd(); - } -} - -#else - -void NvBlastProfilerSetCallback(Nv::Blast::ProfilerCallback*) {} -void NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::Level) {} - -#endif // NV_PROFILE diff --git a/blast/source/sdk/lowlevel/NvBlastActor.cpp b/blast/source/sdk/lowlevel/NvBlastActor.cpp index 5b0b0dcbe..d75f322d3 100644 --- a/blast/source/sdk/lowlevel/NvBlastActor.cpp +++ b/blast/source/sdk/lowlevel/NvBlastActor.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastActor.h" diff --git a/blast/source/sdk/lowlevel/NvBlastActor.h b/blast/source/sdk/lowlevel/NvBlastActor.h index 3697b98ba..6f1c8028e 100644 --- a/blast/source/sdk/lowlevel/NvBlastActor.h +++ b/blast/source/sdk/lowlevel/NvBlastActor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTACTOR_H diff --git a/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.cpp b/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.cpp index 4dccf34ee..2f010e65c 100644 --- a/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.cpp +++ b/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastActor.h" diff --git a/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.h b/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.h index 0d4985df7..8eacdab6c 100644 --- a/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.h +++ b/blast/source/sdk/lowlevel/NvBlastActorSerializationBlock.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTACTORSERIALIZATIONBLOCK_H diff --git a/blast/source/sdk/lowlevel/NvBlastAsset.cpp b/blast/source/sdk/lowlevel/NvBlastAsset.cpp index afa2d585e..ab648ae3f 100644 --- a/blast/source/sdk/lowlevel/NvBlastAsset.cpp +++ b/blast/source/sdk/lowlevel/NvBlastAsset.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAssert.h" diff --git a/blast/source/sdk/lowlevel/NvBlastAsset.h b/blast/source/sdk/lowlevel/NvBlastAsset.h index 8c9d204e7..11f46b634 100644 --- a/blast/source/sdk/lowlevel/NvBlastAsset.h +++ b/blast/source/sdk/lowlevel/NvBlastAsset.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTASSET_H @@ -303,7 +303,7 @@ NV_INLINE uint32_t Asset::getContiguousLowerSupportIndex(uint32_t chunkIndex) co //JDM: Expose this so serialization layer can use it. -NVBLAST_API Asset* initializeAsset(void* mem, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn); +NV_C_API Asset* initializeAsset(void* mem, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn); } // namespace Blast } // namespace Nv diff --git a/blast/source/sdk/lowlevel/NvBlastAssetHelper.cpp b/blast/source/sdk/lowlevel/NvBlastAssetHelper.cpp index 8866acc48..15dd2ed2a 100644 --- a/blast/source/sdk/lowlevel/NvBlastAssetHelper.cpp +++ b/blast/source/sdk/lowlevel/NvBlastAssetHelper.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAsset.h" diff --git a/blast/source/sdk/lowlevel/NvBlastChunkHierarchy.h b/blast/source/sdk/lowlevel/NvBlastChunkHierarchy.h index eaaa7fc97..e5cb31ccb 100644 --- a/blast/source/sdk/lowlevel/NvBlastChunkHierarchy.h +++ b/blast/source/sdk/lowlevel/NvBlastChunkHierarchy.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTCHUNKHIERARCHY_H diff --git a/blast/source/sdk/lowlevel/NvBlastFamily.cpp b/blast/source/sdk/lowlevel/NvBlastFamily.cpp index 2aab70bae..bdd92e2d7 100644 --- a/blast/source/sdk/lowlevel/NvBlastFamily.cpp +++ b/blast/source/sdk/lowlevel/NvBlastFamily.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTypes.h" diff --git a/blast/source/sdk/lowlevel/NvBlastFamily.h b/blast/source/sdk/lowlevel/NvBlastFamily.h index 377a5cb35..7c4594fe3 100644 --- a/blast/source/sdk/lowlevel/NvBlastFamily.h +++ b/blast/source/sdk/lowlevel/NvBlastFamily.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFAMILY_H @@ -30,7 +30,7 @@ #include "NvBlastAsset.h" -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #include "NvBlastDLink.h" #include "NvBlastAtomic.h" #include "NvBlastMemory.h" diff --git a/blast/source/sdk/lowlevel/NvBlastFamilyGraph.cpp b/blast/source/sdk/lowlevel/NvBlastFamilyGraph.cpp index 0e568826d..e08ca7872 100644 --- a/blast/source/sdk/lowlevel/NvBlastFamilyGraph.cpp +++ b/blast/source/sdk/lowlevel/NvBlastFamilyGraph.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastFamilyGraph.h" diff --git a/blast/source/sdk/lowlevel/NvBlastFamilyGraph.h b/blast/source/sdk/lowlevel/NvBlastFamilyGraph.h index c4c5ae0a9..7f0877151 100644 --- a/blast/source/sdk/lowlevel/NvBlastFamilyGraph.h +++ b/blast/source/sdk/lowlevel/NvBlastFamilyGraph.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTFAMILYGRAPH_H diff --git a/blast/source/sdk/lowlevel/NvBlastSupportGraph.h b/blast/source/sdk/lowlevel/NvBlastSupportGraph.h index 1b5bfda84..d1b194414 100644 --- a/blast/source/sdk/lowlevel/NvBlastSupportGraph.h +++ b/blast/source/sdk/lowlevel/NvBlastSupportGraph.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTSUPPORTGRAPH_H diff --git a/blast/source/sdk/toolkit/NvBlastTkActorImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkActorImpl.cpp index 00c4d56ad..a2d25a576 100644 --- a/blast/source/sdk/toolkit/NvBlastTkActorImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkActorImpl.cpp @@ -22,10 +22,10 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#include "NvBlastPreprocessor.h" +#include "NvPreprocessor.h" #include "NvBlastTkFrameworkImpl.h" #include "NvBlastTkActorImpl.h" diff --git a/blast/source/sdk/toolkit/NvBlastTkActorImpl.h b/blast/source/sdk/toolkit/NvBlastTkActorImpl.h index 4b69d6fa3..54e20d97a 100644 --- a/blast/source/sdk/toolkit/NvBlastTkActorImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkActorImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKACTORIMPL_H @@ -41,7 +41,7 @@ #include "NvBlastTkActor.h" -#include "foundation/PxFlags.h" +#include "NvFlags.h" namespace Nv { @@ -238,7 +238,7 @@ class TkActorImpl : public TkActor TkFamilyImpl* m_family; //!< The TkFamilyImpl to which this actor belongs TkGroupImpl* m_group; //!< The TkGroupImpl (if any) to which this actor belongs uint32_t m_groupJobIndex; //!< The index of this actor's job within its group's job list - physx::PxFlags m_flags; //!< Status flags for this actor + nvidia::NvFlags m_flags; //!< Status flags for this actor Array::type m_damageBuffer; //!< Buffered damage input uint32_t m_jointCount; //!< The number of joints referenced in m_jointList DList m_jointList; //!< A doubly-linked list of joint references diff --git a/blast/source/sdk/toolkit/NvBlastTkAssetImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkAssetImpl.cpp index 0ff920631..bc4ca2d7a 100644 --- a/blast/source/sdk/toolkit/NvBlastTkAssetImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkAssetImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTkFrameworkImpl.h" @@ -263,7 +263,7 @@ bool TkAssetImpl::addJointDesc(uint32_t chunkIndex0, uint32_t chunkIndex1) const NvBlastBond& bond = NvBlastAssetGetBonds(m_assetLL, logLL)[bondIndex]; TkAssetJointDesc jointDesc; - jointDesc.attachPositions[0] = jointDesc.attachPositions[1] = physx::PxVec3(bond.centroid[0], bond.centroid[1], bond.centroid[2]); + jointDesc.attachPositions[0] = jointDesc.attachPositions[1] = nvidia::NvVec3(bond.centroid[0], bond.centroid[1], bond.centroid[2]); jointDesc.nodeIndices[0] = node0; jointDesc.nodeIndices[1] = node1; m_jointDescs.pushBack(jointDesc); diff --git a/blast/source/sdk/toolkit/NvBlastTkAssetImpl.h b/blast/source/sdk/toolkit/NvBlastTkAssetImpl.h index 1c036c880..2cb27a3fc 100644 --- a/blast/source/sdk/toolkit/NvBlastTkAssetImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkAssetImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKASSETIMPL_H diff --git a/blast/source/sdk/toolkit/NvBlastTkCommon.h b/blast/source/sdk/toolkit/NvBlastTkCommon.h index 921b75dde..1ab6dcfdd 100644 --- a/blast/source/sdk/toolkit/NvBlastTkCommon.h +++ b/blast/source/sdk/toolkit/NvBlastTkCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKCOMMON_H diff --git a/blast/source/sdk/toolkit/NvBlastTkEventQueue.h b/blast/source/sdk/toolkit/NvBlastTkEventQueue.h index 5bf4cfbcd..4412e0af3 100644 --- a/blast/source/sdk/toolkit/NvBlastTkEventQueue.h +++ b/blast/source/sdk/toolkit/NvBlastTkEventQueue.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKEVENTQUEUE_H diff --git a/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.cpp index 29095a123..ca594008d 100644 --- a/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTkFrameworkImpl.h" @@ -513,9 +513,12 @@ bool TkFamilyImpl::deleteExternalJointHandle(TkJointImpl*& joint, const NvBlastI if (jointSetIndexEntry != nullptr) { const uint32_t jointSetIndex = jointSetIndexEntry->second; - HashMap::type::Entry e; - if (m_jointSets[jointSetIndex]->m_joints.erase(ExternalJointKey(chunkIndex0, chunkIndex1), e)) + ExternalJointKey jointKey = ExternalJointKey(chunkIndex0, chunkIndex1); + const HashMap::type::Entry* e = m_jointSets[jointSetIndex]->m_joints.find(jointKey); + if (e != nullptr) { + joint = e->second; // Return value that was stored + m_jointSets[jointSetIndex]->m_joints.erase(jointKey); // Delete the joint set if it is empty if (m_jointSets[jointSetIndex]->m_joints.size() == 0) { @@ -527,9 +530,6 @@ bool TkFamilyImpl::deleteExternalJointHandle(TkJointImpl*& joint, const NvBlastI m_familyIDMap[m_jointSets[jointSetIndex]->m_familyID] = jointSetIndex; } } - - // Return value that was stored - joint = e.second; return true; } } diff --git a/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.h b/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.h index acb39b257..565ed5bb1 100644 --- a/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkFamilyImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKFAMILYIMPL_H @@ -118,7 +118,7 @@ NVBLASTTK_IMPL_DECLARE(Family) TkActorImpl* getActorByChunk(uint32_t chunkIndex); - typedef physx::shdfnd::Pair ExternalJointKey; //!< The chunk indices within the TkFamily objects joined by the joint. These chunks will be support chunks. + typedef nvidia::shdfnd::Pair ExternalJointKey; //!< The chunk indices within the TkFamily objects joined by the joint. These chunks will be support chunks. TkJointImpl* findExternalJoint(const TkFamilyImpl* otherFamily, ExternalJointKey key) const; diff --git a/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.cpp index b88ca4b1d..65dd5da6c 100644 --- a/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAssert.h" @@ -40,8 +40,8 @@ #include -using namespace physx; -using namespace physx::shdfnd; +using namespace nvidia; +using namespace nvidia::shdfnd; NV_INLINE bool operator < (const NvBlastID& id1, const NvBlastID& id2) diff --git a/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.h b/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.h index 0da0581af..1885fcd90 100644 --- a/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkFrameworkImpl.h @@ -22,14 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKFRAMEWORKIMPL_H #define NVBLASTTKFRAMEWORKIMPL_H #include "NvBlastTkFramework.h" -#include "NvBlastProfilerInternal.h" +#include "NvBlastInternalProfiler.h" #include "NvBlastTkCommon.h" diff --git a/blast/source/sdk/toolkit/NvBlastTkGUID.h b/blast/source/sdk/toolkit/NvBlastTkGUID.h index bdb52b270..3d91f2ebb 100644 --- a/blast/source/sdk/toolkit/NvBlastTkGUID.h +++ b/blast/source/sdk/toolkit/NvBlastTkGUID.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKGUID_H @@ -37,7 +37,7 @@ #include "NvBlastTime.h" #endif -#include "PsHash.h" +#include "NsHash.h" namespace Nv { @@ -117,7 +117,7 @@ NV_INLINE bool TkGUIDIsZero(const NvBlastID* id) } // namespace Nv -namespace physx +namespace nvidia { namespace shdfnd { @@ -141,7 +141,7 @@ struct Hash }; } // namespace shdfnd -} // namespace physx +} // namespace nvidia #endif // #ifndef NVBLASTTKGUID_H diff --git a/blast/source/sdk/toolkit/NvBlastTkGroupImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkGroupImpl.cpp index b7c8aba42..9d9911792 100644 --- a/blast/source/sdk/toolkit/NvBlastTkGroupImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkGroupImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvPreprocessor.h" @@ -41,7 +41,7 @@ #undef min #include -using namespace physx; +using namespace nvidia; namespace Nv diff --git a/blast/source/sdk/toolkit/NvBlastTkGroupImpl.h b/blast/source/sdk/toolkit/NvBlastTkGroupImpl.h index 62f2079cf..4d53d0644 100644 --- a/blast/source/sdk/toolkit/NvBlastTkGroupImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkGroupImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKGROUPIMPL_H diff --git a/blast/source/sdk/toolkit/NvBlastTkJointImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkJointImpl.cpp index f409bf057..0bd56f3cc 100644 --- a/blast/source/sdk/toolkit/NvBlastTkJointImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkJointImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTkFrameworkImpl.h" diff --git a/blast/source/sdk/toolkit/NvBlastTkJointImpl.h b/blast/source/sdk/toolkit/NvBlastTkJointImpl.h index 6d7bce7d6..9add3e5f5 100644 --- a/blast/source/sdk/toolkit/NvBlastTkJointImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkJointImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKJOINTIMPL_H diff --git a/blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkTask.cpp similarity index 76% rename from blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.cpp rename to blast/source/sdk/toolkit/NvBlastTkTask.cpp index 04e956b46..97bc40f88 100644 --- a/blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkTask.cpp @@ -22,21 +22,21 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastGlobals.h" -#include "NvBlastExtPxTaskImpl.h" - +#include "NvBlastTkTask.h" +#include "NvCpuDispatcher.h" #include "NvBlastTkGroup.h" using namespace Nv::Blast; -uint32_t ExtGroupTaskManagerImpl::process(uint32_t workerCount) +uint32_t TkGroupTaskManagerImpl::process(uint32_t workerCount) { - NVBLAST_CHECK_WARNING(m_group != nullptr, "ExtGroupTaskManager::process cannot process, no group set.", return 0); - NVBLAST_CHECK_WARNING(m_sync.isDone(), "ExtGroupTaskManager::process group is already being processed.", return 0); + NVBLAST_CHECK_WARNING(m_group != nullptr, "TkGroupTaskManager::process cannot process, no group set.", return 0); + NVBLAST_CHECK_WARNING(m_sync.isDone(), "TkGroupTaskManager::process group is already being processed.", return 0); // at least one task must start, even when dispatcher has none specified uint32_t dispatcherThreads = m_taskManager.getCpuDispatcher()->getWorkerCount(); @@ -83,7 +83,7 @@ uint32_t ExtGroupTaskManagerImpl::process(uint32_t workerCount) } -bool ExtGroupTaskManagerImpl::wait(bool block) +bool TkGroupTaskManagerImpl::wait(bool block) { if (block && !m_sync.isDone()) { @@ -97,23 +97,23 @@ bool ExtGroupTaskManagerImpl::wait(bool block) } -void ExtGroupTaskManagerImpl::setGroup(TkGroup* group) +void TkGroupTaskManagerImpl::setGroup(TkGroup* group) { - NVBLAST_CHECK_WARNING(m_sync.isDone(), "ExtGroupTaskManager::setGroup trying to change group while processing.", return); + NVBLAST_CHECK_WARNING(m_sync.isDone(), "TkGroupTaskManager::setGroup trying to change group while processing.", return); m_group = group; } -ExtGroupTaskManager* ExtGroupTaskManager::create(physx::PxTaskManager& taskManager, TkGroup* group) +TkGroupTaskManager* TkGroupTaskManager::create(nvidia::task::NvTaskManager& taskManager, TkGroup* group) { - return NVBLAST_NEW(ExtGroupTaskManagerImpl) (taskManager, group); + return NVBLAST_NEW(TkGroupTaskManagerImpl) (taskManager, group); } -void ExtGroupTaskManagerImpl::release() +void TkGroupTaskManagerImpl::release() { - NVBLAST_CHECK_WARNING(m_sync.isDone(), "ExtGroupTaskManager::release group is still being processed.", return); + NVBLAST_CHECK_WARNING(m_sync.isDone(), "TkGroupTaskManager::release group is still being processed.", return); - NVBLAST_DELETE(this, ExtGroupTaskManagerImpl); + NVBLAST_DELETE(this, TkGroupTaskManagerImpl); } diff --git a/blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.h b/blast/source/sdk/toolkit/NvBlastTkTask.h similarity index 78% rename from blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.h rename to blast/source/sdk/toolkit/NvBlastTkTask.h index c1fb31e5d..1c3a48c78 100644 --- a/blast/source/sdk/extensions/physx/NvBlastExtPxTaskImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkTask.h @@ -22,14 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. -#ifndef NVBLASTEXTPXTASKIMPL_H -#define NVBLASTEXTPXTASKIMPL_H +#ifndef NVBLASTTKTASK_H +#define NVBLASTTKTASK_H -#include "NvBlastExtPxTask.h" -#include "task/PxTask.h" +#include "NvBlastTkGroupTaskManager.h" +#include "NvTask.h" #include "NvBlastTkGroup.h" #include @@ -44,13 +44,13 @@ namespace Blast /** Counting synchronization object for waiting on TkWorkers to finish. */ -class ExtTaskSync +class TkTaskSync { public: /** Initializes with an expected number of notifications. */ - ExtTaskSync(uint32_t count) : m_count(count) {} + TkTaskSync(uint32_t count) : m_count(count) {} /** Blocks until the expected number of notifications happened. @@ -106,10 +106,10 @@ class ExtTaskSync /** Common job counter for all tasks. */ -class ExtAtomicCounter +class TkAtomicCounter { public: - ExtAtomicCounter() : m_current(0), m_maxCount(0) {} + TkAtomicCounter() : m_current(0), m_maxCount(0) {} bool isValid(uint32_t val) { @@ -135,14 +135,14 @@ class ExtAtomicCounter /** A task running one group job after the other until done. Synchronizes atomically with its siblings. */ -class ExtGroupWorkerTask : public physx::PxLightCpuTask +class TkGroupWorkerTask : public nvidia::task::NvLightCpuTask { public: - ExtGroupWorkerTask() : PxLightCpuTask(), m_group(nullptr), m_counter(nullptr), m_sync(nullptr) + TkGroupWorkerTask() : NvLightCpuTask(), m_group(nullptr), m_counter(nullptr), m_sync(nullptr) { } - void setup(TkGroup* group, ExtAtomicCounter* counter, ExtTaskSync* sync) + void setup(TkGroup* group, TkAtomicCounter* counter, TkTaskSync* sync) { m_group = group; m_counter = counter; @@ -163,7 +163,7 @@ class ExtGroupWorkerTask : public physx::PxLightCpuTask virtual void release() override { - PxLightCpuTask::release(); + NvLightCpuTask::release(); // release the sync last m_sync->notify(); @@ -173,36 +173,36 @@ class ExtGroupWorkerTask : public physx::PxLightCpuTask private: TkGroup* m_group; - ExtAtomicCounter* m_counter; - ExtTaskSync* m_sync; + TkAtomicCounter* m_counter; + TkTaskSync* m_sync; }; /** -Implements ExtGroupTaskManager +Implements TkGroupTaskManager */ -class ExtGroupTaskManagerImpl : public ExtGroupTaskManager +class TkGroupTaskManagerImpl : public TkGroupTaskManager { public: - ExtGroupTaskManagerImpl(physx::PxTaskManager& taskManager, TkGroup* group) + TkGroupTaskManagerImpl(nvidia::task::NvTaskManager& taskManager, TkGroup* group) : m_taskManager(taskManager), m_sync(0), m_group(group) {} - // ExtGroupTaskManager API + // TkGroupTaskManager API virtual void setGroup(TkGroup*) override; virtual uint32_t process(uint32_t) override; virtual void release() override; virtual bool wait(bool block) override; private: - static const uint32_t TASKS_MAX_COUNT = 16; - physx::PxTaskManager& m_taskManager; - ExtAtomicCounter m_counter; - ExtGroupWorkerTask m_tasks[TASKS_MAX_COUNT]; - ExtTaskSync m_sync; - TkGroup* m_group; + static const uint32_t TASKS_MAX_COUNT = 16; + nvidia::task::NvTaskManager& m_taskManager; + TkAtomicCounter m_counter; + TkGroupWorkerTask m_tasks[TASKS_MAX_COUNT]; + TkTaskSync m_sync; + TkGroup* m_group; }; } // namespace Blast } // namespace Nv -#endif // NVBLASTEXTPXTASKIMPL_H +#endif // NVBLASTTKTASK_H diff --git a/blast/source/sdk/toolkit/NvBlastTkTaskImpl.cpp b/blast/source/sdk/toolkit/NvBlastTkTaskImpl.cpp index 6db5f8279..13073b715 100644 --- a/blast/source/sdk/toolkit/NvBlastTkTaskImpl.cpp +++ b/blast/source/sdk/toolkit/NvBlastTkTaskImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastTime.h" diff --git a/blast/source/sdk/toolkit/NvBlastTkTaskImpl.h b/blast/source/sdk/toolkit/NvBlastTkTaskImpl.h index 010eac7f7..003622107 100644 --- a/blast/source/sdk/toolkit/NvBlastTkTaskImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkTaskImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKTASKIMPL_H diff --git a/blast/source/sdk/toolkit/NvBlastTkTaskManager.cpp b/blast/source/sdk/toolkit/NvBlastTkTaskManager.cpp new file mode 100644 index 000000000..6bc5a802e --- /dev/null +++ b/blast/source/sdk/toolkit/NvBlastTkTaskManager.cpp @@ -0,0 +1,580 @@ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. + +#include "NvTask.h" +#include "NvTaskDefine.h" +#include "NvCpuDispatcher.h" +#include "NvGpuDispatcher.h" +#include "NvErrorCallback.h" + +#include "NvBlastGlobals.h" +#include "NvBlastAssert.h" +#include "NvBlastAtomic.h" +#include "NvBlastAllocator.h" +#include "NvBlastArray.h" +#include "NvBlastHashMap.h" + +#include + +using namespace nvidia; +using namespace nvidia::task; + +namespace Nv +{ +namespace Blast +{ + +class MutexScopedLock +{ + std::mutex& mMutex; + NV_NOCOPY(MutexScopedLock) + +public: + NV_INLINE MutexScopedLock(std::mutex& mutex) : mMutex(mutex) { mMutex.lock(); } + NV_INLINE ~MutexScopedLock() { mMutex.unlock(); } +}; + +#define LOCK() MutexScopedLock __lock__(mMutex) + +constexpr int EOL = -1; +typedef HashMap::type NvBlastTkTaskNameToIDMap; + +struct NvBlastTkTaskDepTableRow +{ + NvTaskID mTaskID; + int mNextDep; +}; +typedef Array::type NvBlastTkTaskDepTable; + + +struct NvTaskAccess : public NvTask +{ + void setTaskID(NvTaskID taskID) { mTaskID = taskID; } + void setTm(NvTaskManager* tm) { mTm = tm; } +}; +NvTaskAccess& ACCESS(NvTask& task) { return reinterpret_cast(task); } +NvTaskAccess* ACCESS(NvTask* task) { return reinterpret_cast(task); } + +struct NvLightCpuTaskAccess : public NvLightCpuTask +{ + bool atomicIncrementRefCount() { return Nv::Blast::atomicIncrement(&mRefCount); } + bool atomicDecrementRefCount() { return Nv::Blast::atomicDecrement(&mRefCount); } +}; +NvLightCpuTaskAccess& ACCESS(NvLightCpuTask& task) { return reinterpret_cast(task); } + +class NvBlastTkTaskTableRow +{ +public: + NvBlastTkTaskTableRow() : mRefCount( 1 ), mStartDep(EOL), mLastDep(EOL) {} + void addDependency( NvBlastTkTaskDepTable& depTable, NvTaskID taskID ) + { + int newDep = int(depTable.size()); + NvBlastTkTaskDepTableRow row; + row.mTaskID = taskID; + row.mNextDep = EOL; + depTable.pushBack( row ); + + if( mLastDep == EOL ) + { + mStartDep = mLastDep = newDep; + } + else + { + depTable[ uint32_t(mLastDep) ].mNextDep = newDep; + mLastDep = newDep; + } + } + + NvTask * mTask; + volatile int mRefCount; + NvTaskType::Enum mType; + int mStartDep; + int mLastDep; +}; +typedef Array::type NvTaskTable; + + +/* Implementation of NvTaskManager abstract API */ +class NvBlastTkTaskManager : public NvTaskManager +{ + NV_NOCOPY(NvBlastTkTaskManager) +public: + NvBlastTkTaskManager(NvErrorCallback& , NvCpuDispatcher*, NvGpuDispatcher*); + ~NvBlastTkTaskManager(); + + void setCpuDispatcher( NvCpuDispatcher& ref ) + { + mCpuDispatcher = &ref; + } + + NvCpuDispatcher* getCpuDispatcher() const + { + return mCpuDispatcher; + } + + void setGpuDispatcher( NvGpuDispatcher& ref ) + { + mGpuDispatcher = &ref; + } + + NvGpuDispatcher* getGpuDispatcher() const + { + return mGpuDispatcher; + } + + void resetDependencies(); + void startSimulation(); + void stopSimulation(); + void taskCompleted( NvTask& task ); + + NvTaskID getNamedTask( const char *name ); + NvTaskID submitNamedTask( NvTask *task, const char *name, NvTaskType::Enum type = NvTaskType::TT_CPU ); + NvTaskID submitUnnamedTask( NvTask& task, NvTaskType::Enum type = NvTaskType::TT_CPU ); + NvTask* getTaskFromID( NvTaskID ); + + bool dispatchTask( NvTaskID taskID, bool gpuGroupStart ); + bool resolveRow( NvTaskID taskID, bool gpuGroupStart ); + + void release(); + + void finishBefore( NvTask& task, NvTaskID taskID ); + void startAfter( NvTask& task, NvTaskID taskID ); + + void addReference( NvTaskID taskID ); + void decrReference( NvTaskID taskID ); + int32_t getReference( NvTaskID taskID ) const; + + void decrReference( NvLightCpuTask& lighttask ); + void addReference( NvLightCpuTask& lighttask ); + + void emitStartEvent(NvBaseTask& basetask, uint32_t threadId); + void emitStopEvent(NvBaseTask& basetask, uint32_t threadId); + + NvErrorCallback& mErrorCallback; + NvCpuDispatcher* mCpuDispatcher; + NvGpuDispatcher* mGpuDispatcher; + NvBlastTkTaskNameToIDMap mName2IDmap; + volatile int mPendingTasks; + std::mutex mMutex; + + NvBlastTkTaskDepTable mDepTable; + NvTaskTable mTaskTable; + + Array::type mStartDispatch; +}; + +NvBlastTkTaskManager::NvBlastTkTaskManager(NvErrorCallback& errorCallback, NvCpuDispatcher* cpuDispatcher, NvGpuDispatcher* gpuDispatcher) + : mErrorCallback (errorCallback) + , mCpuDispatcher( cpuDispatcher ) + , mGpuDispatcher( gpuDispatcher ) + , mPendingTasks( 0 ) + , mDepTable(NV_DEBUG_EXP("NvBlastTkTaskDepTable")) + , mTaskTable(NV_DEBUG_EXP("NvTaskTable")) + , mStartDispatch(NV_DEBUG_EXP("StartDispatch")) +{ +} + +NvBlastTkTaskManager::~NvBlastTkTaskManager() +{ +} + +void NvBlastTkTaskManager::release() +{ + NVBLAST_DELETE(this, NvBlastTkTaskManager); +} + +void NvBlastTkTaskManager::decrReference(NvLightCpuTask& lighttask) +{ + /* This does not need a lock! */ + if (!ACCESS(lighttask).atomicDecrementRefCount()) + { + NVBLAST_ASSERT(mCpuDispatcher); + if (mCpuDispatcher) + { + mCpuDispatcher->submitTask(lighttask); + } + else + { + lighttask.release(); + } + } +} + +void NvBlastTkTaskManager::addReference(NvLightCpuTask& lighttask) +{ + /* This does not need a lock! */ + ACCESS(lighttask).atomicIncrementRefCount(); +} + +void NvBlastTkTaskManager::emitStartEvent(NvBaseTask& basetask, uint32_t threadId) +{ + NvBaseTask* tmp = &basetask; + NV_UNUSED(tmp); + NV_UNUSED(threadId); + + /* This does not need a lock! */ +#if NV_SUPPORT_NVTASK_PROFILING && NV_PROFILE + //NV_COMPILE_TIME_ASSERT(sizeof(NvProfileEventId::mEventId) == sizeof(NvBaseTask::mEventID)); + if (NvBlastGlobalGetProfilerCallback()) NvBlastGlobalGetProfilerCallback()->zoneStart(basetask.getName(), true, 0); +#endif +} + +void NvBlastTkTaskManager::emitStopEvent(NvBaseTask& basetask, uint32_t threadId) +{ + NvBaseTask* tmp = &basetask; + NV_UNUSED(tmp); + NV_UNUSED(threadId); + + /* This does not need a lock! */ + if (NvBlastGlobalGetProfilerCallback()) NvBlastGlobalGetProfilerCallback()->zoneEnd(nullptr, basetask.getName(), true, 0); +#if NV_SUPPORT_NVTASK_PROFILING && NV_PROFILE + //NV_COMPILE_TIME_ASSERT(sizeof(NvProfileEventId::mEventId) == sizeof(NvBaseTask::mEventID)); +#endif +} + +/* + * Called by the owner (Scene) at the start of every frame, before + * asking for tasks to be submitted. + */ +void NvBlastTkTaskManager::resetDependencies() +{ + NVBLAST_ASSERT( !mPendingTasks ); // only valid if you don't resubmit named tasks, this is true for the SDK + NVBLAST_ASSERT( mCpuDispatcher ); + mTaskTable.clear(); + mDepTable.clear(); + mName2IDmap.clear(); + mPendingTasks = 0; +} + +/* + * Called by the owner (Scene) to start simulating the task graph. + * Dispatch all tasks with refCount == 1 + */ +void NvBlastTkTaskManager::startSimulation() +{ + NVBLAST_ASSERT( mCpuDispatcher ); + + if( mGpuDispatcher ) + { + mGpuDispatcher->startSimulation(); + } + + /* Handle empty task graph */ + if( mPendingTasks == 0 ) + { + + return; + } + + bool gpuDispatch = false; + for( NvTaskID i = 0 ; i < mTaskTable.size() ; i++ ) + { + if( mTaskTable[ i ].mType == NvTaskType::TT_COMPLETED ) + { + continue; + } + if( !Nv::Blast::atomicDecrement( &mTaskTable[ i ].mRefCount ) ) + { + mStartDispatch.pushBack(i); + } + } + for( uint32_t i=0; ifinishGroup(); + } +} + +void NvBlastTkTaskManager::stopSimulation() +{ + if( mGpuDispatcher ) + { + mGpuDispatcher->stopSimulation(); + } +} + +NvTaskID NvBlastTkTaskManager::getNamedTask( const char *name ) +{ + const NvBlastTkTaskNameToIDMap::Entry *ret; + { + LOCK(); + ret = mName2IDmap.find( name ); + } + if( ret ) + { + return ret->second; + } + else + { + // create named entry in task table, without a task + return submitNamedTask( NULL, name, NvTaskType::TT_NOT_PRESENT ); +} +} + +NvTask* NvBlastTkTaskManager::getTaskFromID( NvTaskID id ) +{ + LOCK(); // todo: reader lock necessary? + return mTaskTable[ id ].mTask; +} + + +/* If called at runtime, must be thread-safe */ +NvTaskID NvBlastTkTaskManager::submitNamedTask( NvTask *task, const char *name, NvTaskType::Enum type ) +{ + if( task ) + { + ACCESS(task)->setTm(this); + task->submitted(); + } + + LOCK(); + + const NvBlastTkTaskNameToIDMap::Entry *ret = mName2IDmap.find( name ); + if( ret ) + { + NvTaskID prereg = ret->second; + if( task ) + { + /* name was registered for us by a dependent task */ + NVBLAST_ASSERT( !mTaskTable[ prereg ].mTask ); + NVBLAST_ASSERT( mTaskTable[ prereg ].mType == NvTaskType::TT_NOT_PRESENT ); + mTaskTable[ prereg ].mTask = task; + mTaskTable[ prereg ].mType = type; + ACCESS(task)->setTaskID(prereg); + } + return prereg; + } + else + { + Nv::Blast::atomicIncrement(&mPendingTasks); + NvTaskID id = static_cast(mTaskTable.size()); + mName2IDmap[ name ] = id; + if( task ) + { + ACCESS(task)->setTaskID(id); + } + NvBlastTkTaskTableRow r; + r.mTask = task; + r.mType = type; + mTaskTable.pushBack(r); + return id; + } +} + +/* + * Add an unnamed task to the task table + */ +NvTaskID NvBlastTkTaskManager::submitUnnamedTask( NvTask& task, NvTaskType::Enum type ) +{ + Nv::Blast::atomicIncrement(&mPendingTasks); + + ACCESS(task).setTm(this); + task.submitted(); + + LOCK(); + ACCESS(task).setTaskID(static_cast(mTaskTable.size())); + NvBlastTkTaskTableRow r; + r.mTask = &task; + r.mType = type; + mTaskTable.pushBack(r); + return task.getTaskID(); +} + + +/* Called by worker threads (or cooperating application threads) when a + * NvTask has completed. Propogate depdenencies, decrementing all + * referenced tasks' refCounts. If any of those reach zero, activate + * those tasks. + */ +void NvBlastTkTaskManager::taskCompleted( NvTask& task ) +{ + LOCK(); + if( resolveRow( task.getTaskID(), false ) ) + { + mGpuDispatcher->finishGroup(); + } +} + +/* ================== Private Functions ======================= */ + +/* + * Add a dependency to force 'task' to complete before the + * referenced 'taskID' is allowed to be dispatched. + */ +void NvBlastTkTaskManager::finishBefore( NvTask& task, NvTaskID taskID ) +{ + LOCK(); + NVBLAST_ASSERT( mTaskTable[ taskID ].mType != NvTaskType::TT_COMPLETED ); + + mTaskTable[ task.getTaskID() ].addDependency( mDepTable, taskID ); + Nv::Blast::atomicIncrement( &mTaskTable[ taskID ].mRefCount ); +} + + +/* + * Add a dependency to force 'task' to wait for the referenced 'taskID' + * to complete before it is allowed to be dispatched. + */ +void NvBlastTkTaskManager::startAfter( NvTask& task, NvTaskID taskID ) +{ + LOCK(); + NVBLAST_ASSERT( mTaskTable[ taskID ].mType != NvTaskType::TT_COMPLETED ); + + mTaskTable[ taskID ].addDependency( mDepTable, task.getTaskID() ); + Nv::Blast::atomicIncrement( &mTaskTable[ task.getTaskID() ].mRefCount ); +} + + +void NvBlastTkTaskManager::addReference( NvTaskID taskID ) +{ + LOCK(); + Nv::Blast::atomicIncrement( &mTaskTable[ taskID ].mRefCount ); +} + +/* + * Remove one reference count from a task. Must be done here to make it thread safe. + */ +void NvBlastTkTaskManager::decrReference( NvTaskID taskID ) +{ + LOCK(); + + if( !Nv::Blast::atomicDecrement( &mTaskTable[ taskID ].mRefCount ) ) + { + if( dispatchTask( taskID, false ) ) + { + mGpuDispatcher->finishGroup(); + } + } +} + +int32_t NvBlastTkTaskManager::getReference(NvTaskID taskID) const +{ + return mTaskTable[ taskID ].mRefCount; +} + +/* + * A task has completed, decrement all dependencies and submit tasks + * that are ready to run. Signal simulation end if ther are no more + * pending tasks. + */ +bool NvBlastTkTaskManager::resolveRow( NvTaskID taskID, bool gpuGroupStart ) +{ + int depRow = mTaskTable[ taskID ].mStartDep; + + + while( depRow != EOL ) + { + NvBlastTkTaskDepTableRow& row = mDepTable[ uint32_t(depRow) ]; + NvBlastTkTaskTableRow& dtt = mTaskTable[ row.mTaskID ]; + + if( !Nv::Blast::atomicDecrement( &dtt.mRefCount ) ) + { + gpuGroupStart |= dispatchTask( row.mTaskID, gpuGroupStart ); + } + + depRow = row.mNextDep; + } + + Nv::Blast::atomicDecrement( &mPendingTasks ); + return gpuGroupStart; +} + +/* + * Submit a ready task to its appropriate dispatcher. + */ +bool NvBlastTkTaskManager::dispatchTask( NvTaskID taskID, bool gpuGroupStart ) +{ + LOCK(); // todo: reader lock necessary? + NvBlastTkTaskTableRow& tt = mTaskTable[ taskID ]; + + // prevent re-submission + if( tt.mType == NvTaskType::TT_COMPLETED ) + { + mErrorCallback.reportError(NvErrorCode::eDEBUG_WARNING, "NvTask dispatched twice", __FILE__, __LINE__); + return false; + } + + switch ( tt.mType ) + { + case NvTaskType::TT_CPU: + mCpuDispatcher->submitTask( *tt.mTask ); + break; + case NvTaskType::TT_GPU: +#if NV_WINDOWS_FAMILY + if( mGpuDispatcher ) + { + if( !gpuGroupStart ) + { + mGpuDispatcher->startGroup(); + } + mGpuDispatcher->submitTask( *tt.mTask ); + gpuGroupStart = true; + } + else +#endif + { + mErrorCallback.reportError(NvErrorCode::eDEBUG_WARNING, "No GPU dispatcher", __FILE__, __LINE__); + } + break; + case NvTaskType::TT_NOT_PRESENT: + /* No task registered with this taskID, resolve its dependencies */ + NVBLAST_ASSERT(!tt.mTask); + gpuGroupStart |= resolveRow( taskID, gpuGroupStart ); + break; + case NvTaskType::TT_COMPLETED: + default: + mErrorCallback.reportError(NvErrorCode::eDEBUG_WARNING, "Unknown task type", __FILE__, __LINE__); + gpuGroupStart |= resolveRow( taskID, gpuGroupStart ); + break; + } + + tt.mType = NvTaskType::TT_COMPLETED; + return gpuGroupStart; +} + +} // namespace Blast +} // namespace Nv + +// Implement NvTaskManager factory +namespace nvidia +{ +namespace task +{ + +NvTaskManager* NvTaskManager::createTaskManager(NvErrorCallback& errorCallback, NvCpuDispatcher* cpuDispatcher, NvGpuDispatcher* gpuDispatcher) +{ + return NVBLAST_NEW(Nv::Blast::NvBlastTkTaskManager)(errorCallback, cpuDispatcher, gpuDispatcher); +} + +} +} diff --git a/blast/source/sdk/toolkit/NvBlastTkTypeImpl.h b/blast/source/sdk/toolkit/NvBlastTkTypeImpl.h index 7afd6c3d5..651c1756e 100644 --- a/blast/source/sdk/toolkit/NvBlastTkTypeImpl.h +++ b/blast/source/sdk/toolkit/NvBlastTkTypeImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef NVBLASTTKTYPEIMPL_H diff --git a/blast/source/shared/NsFileBuffer/include/NsMemoryBuffer.h b/blast/source/shared/NsFileBuffer/include/NsMemoryBuffer.h new file mode 100644 index 000000000..3b55bd3d9 --- /dev/null +++ b/blast/source/shared/NsFileBuffer/include/NsMemoryBuffer.h @@ -0,0 +1,457 @@ +/* + * Copyright 2009-2011 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO USER: + * + * This source code is subject to NVIDIA ownership rights under U.S. and + * international Copyright laws. Users and possessors of this source code + * are hereby granted a nonexclusive, royalty-free license to use this code + * in individual and commercial software. + * + * NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE + * CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR + * IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE + * OR PERFORMANCE OF THIS SOURCE CODE. + * + * U.S. Government End Users. This source code is a "commercial item" as + * that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting of + * "commercial computer software" and "commercial computer software + * documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) + * and is provided to the U.S. Government only as a commercial end item. + * Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through + * 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the + * source code with only those rights set forth herein. + * + * Any use of this source code in individual and commercial software must + * include, in the user documentation and internal comments to the code, + * the above Disclaimer and U.S. Government End Users Notice. + */ + +#ifndef NS_MEMORY_BUFFER_H +#define NS_MEMORY_BUFFER_H + +#include "Ns.h" +#include "NsUserAllocated.h" +#include "NsAlignedMalloc.h" +#include "NvFileBuf.h" +#include "NvAssert.h" + +namespace nvidia +{ +namespace general_NvIOStream2 +{ + using namespace shdfnd; + + const uint32_t BUFFER_SIZE_DEFAULT = 4096; + +//Use this class if you want to use your own allocator +template +class NvMemoryBufferBase : public NvFileBuf, public Allocator +{ + NV_NOCOPY(NvMemoryBufferBase) + void init(const void *readMem, uint32_t readLen) + { + mAllocator = this; + + mReadBuffer = mReadLoc = static_cast(readMem); + mReadStop = &mReadLoc[readLen]; + + mWriteBuffer = mWriteLoc = mWriteStop = NULL; + mWriteBufferSize = 0; + mDefaultWriteBufferSize = BUFFER_SIZE_DEFAULT; + + mOpenMode = OPEN_READ_ONLY; + mSeekType = SEEKABLE_READ; + } + + void init(uint32_t defaultWriteBufferSize) + { + mAllocator = this; + + mReadBuffer = mReadLoc = mReadStop = NULL; + + mWriteBuffer = mWriteLoc = mWriteStop = NULL; + mWriteBufferSize = 0; + mDefaultWriteBufferSize = defaultWriteBufferSize; + + mOpenMode = OPEN_READ_WRITE_NEW; + mSeekType = SEEKABLE_READWRITE; + } + +public: + NvMemoryBufferBase(const void *readMem,uint32_t readLen) + { + init(readMem, readLen); + } + + NvMemoryBufferBase(const void *readMem,uint32_t readLen, const Allocator &alloc): Allocator(alloc) + { + init(readMem, readLen); + } + + NvMemoryBufferBase(uint32_t defaultWriteBufferSize = BUFFER_SIZE_DEFAULT) + { + init(defaultWriteBufferSize); + } + + NvMemoryBufferBase(uint32_t defaultWriteBufferSize, const Allocator &alloc): Allocator(alloc) + { + init(defaultWriteBufferSize); + } + + virtual ~NvMemoryBufferBase(void) + { + reset(); + } + + void setAllocator(Allocator *allocator) + { + mAllocator = allocator; + } + + void initWriteBuffer(uint32_t size) + { + if ( mWriteBuffer == NULL ) + { + if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize; + mWriteBuffer = static_cast(mAllocator->allocate(size)); + NV_ASSERT( mWriteBuffer ); + mWriteLoc = mWriteBuffer; + mWriteStop = &mWriteBuffer[size]; + mWriteBufferSize = size; + mReadBuffer = mWriteBuffer; + mReadStop = &mWriteBuffer[size]; + mReadLoc = mWriteBuffer; + } + } + + void reset(void) + { + mAllocator->deallocate(mWriteBuffer); + mWriteBuffer = NULL; + mWriteBufferSize = 0; + mWriteLoc = NULL; + mWriteStop = NULL; + mReadBuffer = NULL; + mReadStop = NULL; + mReadLoc = NULL; + } + + virtual OpenMode getOpenMode(void) const + { + return mOpenMode; + } + + + SeekType isSeekable(void) const + { + return mSeekType; + } + + virtual uint32_t read(void* buffer, uint32_t size) + { + if ( (mReadLoc+size) > mReadStop ) + { + size = uint32_t(mReadStop - mReadLoc); + } + if ( size != 0 ) + { + memmove(buffer,mReadLoc,size); + mReadLoc+=size; + } + return size; + } + + virtual uint32_t peek(void* buffer, uint32_t size) + { + if ( (mReadLoc+size) > mReadStop ) + { + size = uint32_t(mReadStop - mReadLoc); + } + if ( size != 0 ) + { + memmove(buffer,mReadLoc,size); + } + return size; + } + + virtual uint32_t write(const void* buffer, uint32_t size) + { + NV_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW ); + if ( mOpenMode == OPEN_READ_WRITE_NEW ) + { + if ( (mWriteLoc+size) > mWriteStop ) + growWriteBuffer(size); + memmove(mWriteLoc,buffer,size); + mWriteLoc+=size; + mReadStop = mWriteLoc; + } + else + { + size = 0; + } + return size; + } + + NV_INLINE const uint8_t * getReadLoc(void) const { return mReadLoc; } + NV_INLINE void advanceReadLoc(uint32_t len) + { + NV_ASSERT(mReadBuffer); + if ( mReadBuffer ) + { + mReadLoc+=len; + if ( mReadLoc >= mReadStop ) + { + mReadLoc = mReadStop; + } + } + } + + virtual uint32_t tellRead(void) const + { + uint32_t ret=0; + + if ( mReadBuffer ) + { + ret = uint32_t(mReadLoc-mReadBuffer); + } + return ret; + } + + virtual uint32_t tellWrite(void) const + { + return uint32_t(mWriteLoc-mWriteBuffer); + } + + virtual uint32_t seekRead(uint32_t loc) + { + uint32_t ret = 0; + NV_ASSERT(mReadBuffer); + if ( mReadBuffer ) + { + mReadLoc = &mReadBuffer[loc]; + if ( mReadLoc >= mReadStop ) + { + mReadLoc = mReadStop; + } + ret = uint32_t(mReadLoc-mReadBuffer); + } + return ret; + } + + virtual uint32_t seekWrite(uint32_t loc) + { + uint32_t ret = 0; + NV_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW ); + if ( mWriteBuffer ) + { + if ( loc > mWriteBufferSize ) + { + mWriteLoc = mWriteStop; + growWriteBuffer(loc - mWriteBufferSize); + } + mWriteLoc = &mWriteBuffer[loc]; + ret = uint32_t(mWriteLoc-mWriteBuffer); + } + return ret; + } + + virtual void flush(void) + { + + } + + virtual uint32_t getFileLength(void) const + { + uint32_t ret = 0; + if ( mReadBuffer ) + { + ret = uint32_t(mReadStop-mReadBuffer); + } + else if ( mWriteBuffer ) + { + ret = uint32_t(mWriteLoc-mWriteBuffer); + } + return ret; + } + + uint32_t getWriteBufferSize(void) const + { + return uint32_t(mWriteLoc-mWriteBuffer); + } + + void setWriteLoc(uint8_t *writeLoc) + { + NV_ASSERT(writeLoc >= mWriteBuffer && writeLoc < mWriteStop ); + mWriteLoc = writeLoc; + mReadStop = mWriteLoc; + } + + const uint8_t * getWriteBuffer(void) const + { + return mWriteBuffer; + } + + /** + * Attention: if you use aligned allocator you cannot free memory with NV_FREE macros instead use deallocate method from base + */ + uint8_t * getWriteBufferOwnership(uint32_t &dataLen) // return the write buffer, and zero it out, the caller is taking ownership of the memory + { + uint8_t *ret = mWriteBuffer; + dataLen = uint32_t(mWriteLoc-mWriteBuffer); + mWriteBuffer = NULL; + mWriteLoc = NULL; + mWriteStop = NULL; + mWriteBufferSize = 0; + return ret; + } + + + void alignRead(uint32_t a) + { + uint32_t loc = tellRead(); + uint32_t aloc = ((loc+(a-1))/a)*a; + if ( aloc != loc ) + { + seekRead(aloc); + } + } + + void alignWrite(uint32_t a) + { + uint32_t loc = tellWrite(); + uint32_t aloc = ((loc+(a-1))/a)*a; + if ( aloc != loc ) + { + seekWrite(aloc); + } + } + +private: + + + // double the size of the write buffer or at least as large as the 'size' value passed in. + void growWriteBuffer(uint32_t size) + { + if ( mWriteBuffer == NULL ) + { + if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize; + initWriteBuffer(size); + } + else + { + uint32_t oldWriteIndex = uint32_t(mWriteLoc - mWriteBuffer); + uint32_t newSize = mWriteBufferSize*2; + uint32_t avail = newSize-oldWriteIndex; + if ( size >= avail ) newSize = newSize+size; + uint8_t *writeBuffer = static_cast(mAllocator->allocate(newSize)); + NV_ASSERT( writeBuffer ); + memmove(writeBuffer,mWriteBuffer,mWriteBufferSize); + mAllocator->deallocate(mWriteBuffer); + mWriteBuffer = writeBuffer; + mWriteBufferSize = newSize; + mWriteLoc = &mWriteBuffer[oldWriteIndex]; + mWriteStop = &mWriteBuffer[mWriteBufferSize]; + uint32_t oldReadLoc = uint32_t(mReadLoc-mReadBuffer); + mReadBuffer = mWriteBuffer; + mReadStop = mWriteLoc; + mReadLoc = &mReadBuffer[oldReadLoc]; + } + } + + const uint8_t *mReadBuffer; + const uint8_t *mReadLoc; + const uint8_t *mReadStop; + + uint8_t *mWriteBuffer; + uint8_t *mWriteLoc; + uint8_t *mWriteStop; + + uint32_t mWriteBufferSize; + uint32_t mDefaultWriteBufferSize; + Allocator *mAllocator; + OpenMode mOpenMode; + SeekType mSeekType; + +}; + +class NvMemoryBufferAllocator +{ +public: + NvMemoryBufferAllocator(uint32_t a = 0) : alignment(a) {} + + virtual void * allocate(uint32_t size) + { + switch(alignment) + { + case 0: + return NV_ALLOC(size, NV_DEBUG_EXP("NvMemoryBufferAllocator")); + case 16 : + return nvidia::AlignedAllocator<16>().allocate(size, __FILE__, __LINE__); + case 32 : + return nvidia::AlignedAllocator<32>().allocate(size, __FILE__, __LINE__); + case 64 : + return nvidia::AlignedAllocator<64>().allocate(size, __FILE__, __LINE__); + case 128 : + return nvidia::AlignedAllocator<128>().allocate(size, __FILE__, __LINE__); + default : + NV_ASSERT(0); + } + return NULL; + } + virtual void deallocate(void *mem) + { + switch(alignment) + { + case 0: + NV_FREE(mem); + break; + case 16 : + nvidia::AlignedAllocator<16>().deallocate(mem); + break; + case 32 : + nvidia::AlignedAllocator<32>().deallocate(mem); + break; + case 64 : + nvidia::AlignedAllocator<64>().deallocate(mem); + break; + case 128 : + nvidia::AlignedAllocator<128>().deallocate(mem); + break; + default : + NV_ASSERT(0); + } + } + virtual ~NvMemoryBufferAllocator(void) {} +private: + NvMemoryBufferAllocator& operator=(const NvMemoryBufferAllocator&); + + const uint32_t alignment; +}; + +//Use this class if you want to use PhysX memory allocator +class NsMemoryBuffer: public NvMemoryBufferBase, public UserAllocated +{ + NV_NOCOPY(NsMemoryBuffer) + typedef NvMemoryBufferBase BaseClass; + +public: + NsMemoryBuffer(const void *readMem,uint32_t readLen): BaseClass(readMem, readLen) {} + NsMemoryBuffer(const void *readMem,uint32_t readLen, uint32_t alignment): BaseClass(readMem, readLen, NvMemoryBufferAllocator(alignment)) {} + + NsMemoryBuffer(uint32_t defaultWriteBufferSize=BUFFER_SIZE_DEFAULT): BaseClass(defaultWriteBufferSize) {} + NsMemoryBuffer(uint32_t defaultWriteBufferSize,uint32_t alignment): BaseClass(defaultWriteBufferSize, NvMemoryBufferAllocator(alignment)) {} +}; + +} +using namespace general_NvIOStream2; +} + +#endif // NV_MEMORY_BUFFER_H + diff --git a/blast/source/shared/NsFileBuffer/include/NvFileBuf.h b/blast/source/shared/NsFileBuffer/include/NvFileBuf.h new file mode 100644 index 000000000..f82abeaeb --- /dev/null +++ b/blast/source/shared/NsFileBuffer/include/NvFileBuf.h @@ -0,0 +1,338 @@ +/* + * Copyright 2009-2011 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO USER: + * + * This source code is subject to NVIDIA ownership rights under U.S. and + * international Copyright laws. Users and possessors of this source code + * are hereby granted a nonexclusive, royalty-free license to use this code + * in individual and commercial software. + * + * NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE + * CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR + * IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE + * OR PERFORMANCE OF THIS SOURCE CODE. + * + * U.S. Government End Users. This source code is a "commercial item" as + * that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting of + * "commercial computer software" and "commercial computer software + * documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) + * and is provided to the U.S. Government only as a commercial end item. + * Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through + * 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the + * source code with only those rights set forth herein. + * + * Any use of this source code in individual and commercial software must + * include, in the user documentation and internal comments to the code, + * the above Disclaimer and U.S. Government End Users Notice. + */ + +#ifndef NV_FILE_BUF_H +#define NV_FILE_BUF_H + +#include "NvCTypes.h" + +/** \addtogroup foundation + @{ +*/ + +namespace nvidia +{ + +namespace general_NvIOStream2 +{ + +NV_PUSH_PACK_DEFAULT + +/** +\brief Callback class for data serialization. + +The user needs to supply an NvFileBuf implementation to a number of methods to allow the SDK to read or write +chunks of binary data. This allows flexibility for the source/destination of the data. For example the NvFileBuf +could store data in a file, memory buffer or custom file format. + +\note It is the users responsibility to ensure that the data is written to the appropriate offset. + +*/ +class NvFileBuf +{ +public: + + enum EndianMode + { + ENDIAN_NONE = 0, // do no conversion for endian mode + ENDIAN_BIG = 1, // always read/write data as natively big endian (Power PC, etc.) + ENDIAN_LITTLE = 2 // always read/write data as natively little endian (Intel, etc.) Default Behavior! + }; + + NvFileBuf(EndianMode mode=ENDIAN_LITTLE) + { + setEndianMode(mode); + } + + virtual ~NvFileBuf(void) + { + + } + + /** + \brief Declares a constant to seek to the end of the stream. + * + * Does not support streams longer than 32 bits + */ + static const uint32_t STREAM_SEEK_END=0xFFFFFFFF; + + enum OpenMode + { + OPEN_FILE_NOT_FOUND, + OPEN_READ_ONLY, // open file buffer stream for read only access + OPEN_WRITE_ONLY, // open file buffer stream for write only access + OPEN_READ_WRITE_NEW, // open a new file for both read/write access + OPEN_READ_WRITE_EXISTING // open an existing file for both read/write access + }; + + virtual OpenMode getOpenMode(void) const = 0; + + bool isOpen(void) const + { + return getOpenMode()!=OPEN_FILE_NOT_FOUND; + } + + enum SeekType + { + SEEKABLE_NO = 0, + SEEKABLE_READ = 0x1, + SEEKABLE_WRITE = 0x2, + SEEKABLE_READWRITE = 0x3 + }; + + virtual SeekType isSeekable(void) const = 0; + + void setEndianMode(EndianMode e) + { + mEndianMode = e; + if ( (e==ENDIAN_BIG && !isBigEndian() ) || + (e==ENDIAN_LITTLE && isBigEndian() ) ) + { + mEndianSwap = true; + } + else + { + mEndianSwap = false; + } + } + + EndianMode getEndianMode(void) const + { + return mEndianMode; + } + + virtual uint32_t getFileLength(void) const = 0; + + /** + \brief Seeks the stream to a particular location for reading + * + * If the location passed exceeds the length of the stream, then it will seek to the end. + * Returns the location it ended up at (useful if you seek to the end) to get the file position + */ + virtual uint32_t seekRead(uint32_t loc) = 0; + + /** + \brief Seeks the stream to a particular location for writing + * + * If the location passed exceeds the length of the stream, then it will seek to the end. + * Returns the location it ended up at (useful if you seek to the end) to get the file position + */ + virtual uint32_t seekWrite(uint32_t loc) = 0; + + /** + \brief Reads from the stream into a buffer. + + \param[out] mem The buffer to read the stream into. + \param[in] len The number of bytes to stream into the buffer + + \return Returns the actual number of bytes read. If not equal to the length requested, then reached end of stream. + */ + virtual uint32_t read(void *mem,uint32_t len) = 0; + + + /** + \brief Reads from the stream into a buffer but does not advance the read location. + + \param[out] mem The buffer to read the stream into. + \param[in] len The number of bytes to stream into the buffer + + \return Returns the actual number of bytes read. If not equal to the length requested, then reached end of stream. + */ + virtual uint32_t peek(void *mem,uint32_t len) = 0; + + /** + \brief Writes a buffer of memory to the stream + + \param[in] mem The address of a buffer of memory to send to the stream. + \param[in] len The number of bytes to send to the stream. + + \return Returns the actual number of bytes sent to the stream. If not equal to the length specific, then the stream is full or unable to write for some reason. + */ + virtual uint32_t write(const void *mem,uint32_t len) = 0; + + /** + \brief Reports the current stream location read aqccess. + + \return Returns the current stream read location. + */ + virtual uint32_t tellRead(void) const = 0; + + /** + \brief Reports the current stream location for write access. + + \return Returns the current stream write location. + */ + virtual uint32_t tellWrite(void) const = 0; + + /** + \brief Causes any temporarily cached data to be flushed to the stream. + */ + virtual void flush(void) = 0; + + /** + \brief Close the stream. + */ + virtual void close(void) {} + + void release(void) + { + delete this; + } + + static NV_INLINE bool isBigEndian() + { + int32_t i = 1; + return *(reinterpret_cast(&i))==0; + } + + NV_INLINE void swap2Bytes(void* _data) const + { + char *data = static_cast(_data); + char one_byte; + one_byte = data[0]; data[0] = data[1]; data[1] = one_byte; + } + + NV_INLINE void swap4Bytes(void* _data) const + { + char *data = static_cast(_data); + char one_byte; + one_byte = data[0]; data[0] = data[3]; data[3] = one_byte; + one_byte = data[1]; data[1] = data[2]; data[2] = one_byte; + } + + NV_INLINE void swap8Bytes(void *_data) const + { + char *data = static_cast(_data); + char one_byte; + one_byte = data[0]; data[0] = data[7]; data[7] = one_byte; + one_byte = data[1]; data[1] = data[6]; data[6] = one_byte; + one_byte = data[2]; data[2] = data[5]; data[5] = one_byte; + one_byte = data[3]; data[3] = data[4]; data[4] = one_byte; + } + + + NV_INLINE void storeDword(uint32_t v) + { + if ( mEndianSwap ) + swap4Bytes(&v); + + write(&v,sizeof(v)); + } + + NV_INLINE void storeFloat(float v) + { + if ( mEndianSwap ) + swap4Bytes(&v); + write(&v,sizeof(v)); + } + + NV_INLINE void storeDouble(double v) + { + if ( mEndianSwap ) + swap8Bytes(&v); + write(&v,sizeof(v)); + } + + NV_INLINE void storeByte(uint8_t b) + { + write(&b,sizeof(b)); + } + + NV_INLINE void storeWord(uint16_t w) + { + if ( mEndianSwap ) + swap2Bytes(&w); + write(&w,sizeof(w)); + } + + uint8_t readByte(void) + { + uint8_t v=0; + read(&v,sizeof(v)); + return v; + } + + uint16_t readWord(void) + { + uint16_t v=0; + read(&v,sizeof(v)); + if ( mEndianSwap ) + swap2Bytes(&v); + return v; + } + + uint32_t readDword(void) + { + uint32_t v=0; + read(&v,sizeof(v)); + if ( mEndianSwap ) + swap4Bytes(&v); + return v; + } + + float readFloat(void) + { + float v=0; + read(&v,sizeof(v)); + if ( mEndianSwap ) + swap4Bytes(&v); + return v; + } + + double readDouble(void) + { + double v=0; + read(&v,sizeof(v)); + if ( mEndianSwap ) + swap8Bytes(&v); + return v; + } + +private: + bool mEndianSwap; // whether or not the endian should be swapped on the current platform + EndianMode mEndianMode; // the current endian mode behavior for the stream +}; + +NV_POP_PACK + +} // end of namespace + +using namespace general_NvIOStream2; + +namespace general_NvIOStream = general_NvIOStream2; + +} // end of namespace + +#endif // NV_FILE_BUF_H diff --git a/blast/source/shared/NsFoundation/include/Ns.h b/blast/source/shared/NsFoundation/include/Ns.h new file mode 100644 index 000000000..8c858cc61 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/Ns.h @@ -0,0 +1,69 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NS_H +#define NV_NSFOUNDATION_NS_H + +/*! \file top level include file for shared foundation */ + +#include "Nv.h" + +/** +Platform specific defines +*/ +#if NV_WINDOWS_FAMILY || NV_XBOXONE +#pragma intrinsic(memcmp) +#pragma intrinsic(memcpy) +#pragma intrinsic(memset) +#pragma intrinsic(abs) +#pragma intrinsic(labs) +#endif + +// An expression that should expand to nothing in non NV_CHECKED builds. +// We currently use this only for tagging the purpose of containers for memory use tracking. +#if NV_CHECKED +#define NV_DEBUG_EXP(x) (x) +#else +#define NV_DEBUG_EXP(x) +#endif + +#define NV_SIGN_BITMASK 0x80000000 + +namespace nvidia +{ +namespace shdfnd +{ +// Int-as-bool type - has some uses for efficiency and with SIMD +typedef int IntBool; +static const IntBool IntFalse = 0; +static const IntBool IntTrue = 1; +} + +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NS_H diff --git a/blast/source/shared/NsFoundation/include/NsAlignedMalloc.h b/blast/source/shared/NsFoundation/include/NsAlignedMalloc.h new file mode 100644 index 000000000..e75f97fb0 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsAlignedMalloc.h @@ -0,0 +1,86 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSALIGNEDMALLOC_H +#define NV_NSFOUNDATION_NSALIGNEDMALLOC_H + +#include "NsUserAllocated.h" + +/*! +Allocate aligned memory. +Alignment must be a power of 2! +-- should be templated by a base allocator +*/ + +namespace nvidia +{ +namespace shdfnd +{ +/** +Allocator, which is used to access the global NvAllocatorCallback instance +(used for dynamic data types template instantiation), which can align memory +*/ + +// SCS: AlignedMalloc with 3 params not found, seems not used on PC either +// disabled for now to avoid GCC error + +template +class AlignedAllocator : public BaseAllocator +{ + public: + AlignedAllocator(const BaseAllocator& base = BaseAllocator()) : BaseAllocator(base) + { + } + + void* allocate(size_t size, const char* file, int line) + { + size_t pad = N - 1 + sizeof(size_t); // store offset for delete. + uint8_t* base = reinterpret_cast(BaseAllocator::allocate(size + pad, file, line)); + if(!base) + return NULL; + + uint8_t* ptr = reinterpret_cast(size_t(base + pad) & ~(size_t(N) - 1)); // aligned pointer, ensuring N is a size_t + // wide mask + reinterpret_cast(ptr)[-1] = size_t(ptr - base); // store offset + + return ptr; + } + void deallocate(void* ptr) + { + if(ptr == NULL) + return; + + uint8_t* base = reinterpret_cast(ptr) - reinterpret_cast(ptr)[-1]; + BaseAllocator::deallocate(base); + } +}; + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSALIGNEDMALLOC_H diff --git a/blast/source/shared/NsFoundation/include/NsAllocator.h b/blast/source/shared/NsFoundation/include/NsAllocator.h new file mode 100644 index 000000000..993de8808 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsAllocator.h @@ -0,0 +1,311 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSALLOCATOR_H +#define NV_NSFOUNDATION_NSALLOCATOR_H + +#include "NvAllocatorCallback.h" +#include "Ns.h" +#include "NsGlobals.h" + +#if(NV_WINDOWS_FAMILY || NV_WINRT || NV_X360 || NV_XBOXONE) +#include +#include +#endif +#if(NV_APPLE_FAMILY) +#include +#endif + +#if NV_WIIU +#pragma ghs nowarning 193 // warning #193-D: zero used for undefined preprocessing identifier +#endif + +#include + +#if NV_WIIU +#pragma ghs endnowarning +#endif + +// Allocation macros going through user allocator +#if NV_CHECKED +#define NV_ALLOC(n, name) nvidia::shdfnd::NamedAllocator(name).allocate(n, __FILE__, __LINE__) +#else +#define NV_ALLOC(n, name) nvidia::shdfnd::NonTrackingAllocator().allocate(n, __FILE__, __LINE__) +#endif +#define NV_ALLOC_TEMP(n, name) NV_ALLOC(n, name) +#define NV_FREE(x) nvidia::shdfnd::NonTrackingAllocator().deallocate(x) +#define NV_FREE_AND_RESET(x) \ + { \ + NV_FREE(x); \ + x = 0; \ + } + +// The following macros support plain-old-types and classes derived from UserAllocated. +#define NV_NEW(T) new (nvidia::shdfnd::ReflectionAllocator(), __FILE__, __LINE__) T +#define NV_NEW_TEMP(T) NV_NEW(T) +#define NV_DELETE(x) delete x +#define NV_DELETE_AND_RESET(x) \ + { \ + NV_DELETE(x); \ + x = 0; \ + } +#define NV_DELETE_POD(x) \ + { \ + NV_FREE(x); \ + x = 0; \ + } +#define NV_DELETE_ARRAY(x) \ + { \ + NV_DELETE([] x); \ + x = 0; \ + } + +// aligned allocation +#define NV_ALIGNED16_ALLOC(n) nvidia::shdfnd::AlignedAllocator<16>().allocate(n, __FILE__, __LINE__) +#define NV_ALIGNED16_FREE(x) nvidia::shdfnd::AlignedAllocator<16>().deallocate(x) + +//! placement new macro to make it easy to spot bad use of 'new' +#define NV_PLACEMENT_NEW(p, T) new (p) T + +#if NV_DEBUG || NV_CHECKED +#define NV_USE_NAMED_ALLOCATOR 1 +#else +#define NV_USE_NAMED_ALLOCATOR 0 +#endif + +// Don't use inline for alloca !!! +#if NV_WINDOWS_FAMILY || NV_WINRT +#include +#define NvAlloca(x) _alloca(x) +#elif NV_LINUX || NV_ANDROID +#include +#define NvAlloca(x) alloca(x) +#elif NV_PSP2 +#include +#define NvAlloca(x) alloca(x) +#elif NV_APPLE_FAMILY +#include +#define NvAlloca(x) alloca(x) +#elif NV_PS3 +#include +#define NvAlloca(x) alloca(x) +#elif NV_X360 +#include +#define NvAlloca(x) _alloca(x) +#elif NV_WIIU +#include +#define NvAlloca(x) alloca(x) +#elif NV_PS4 +#include +#define NvAlloca(x) alloca(x) +#elif NV_XBOXONE +#include +#define NvAlloca(x) alloca(x) +#endif + +#define NvAllocaAligned(x, alignment) ((size_t(NvAlloca(x + alignment)) + (alignment - 1)) & ~size_t(alignment - 1)) + +namespace nvidia +{ +namespace shdfnd +{ +/* + * Bootstrap allocator using malloc/free. + * Don't use unless your objects get allocated before foundation is initialized. + */ +class RawAllocator +{ + public: + RawAllocator(const char* = 0) + { + } + void* allocate(size_t size, const char*, int) + { + // malloc returns valid pointer for size==0, no need to check + return ::malloc(size); + } + void deallocate(void* ptr) + { + // free(0) is guaranteed to have no side effect, no need to check + ::free(ptr); + } +}; + +/* + * Allocator that simply calls straight back to the application without tracking. + * This is used by the heap (Foundation::mNamedAllocMap) that tracks allocations + * because it needs to be able to grow as a result of an allocation. + * Making the hash table re-entrant to deal with this may not make sense. + */ +class NonTrackingAllocator +{ + public: + NV_FORCE_INLINE NonTrackingAllocator(const char* = 0) + { + } + NV_FORCE_INLINE void* allocate(size_t size, const char* file, int line) + { + return !size ? 0 : getAllocator().allocate(size, "NonTrackedAlloc", file, line); + } + NV_FORCE_INLINE void deallocate(void* ptr) + { + if(ptr) + getAllocator().deallocate(ptr); + } +}; + +/** +Allocator used to access the global NvAllocatorCallback instance using a dynamic name. +*/ +void initializeNamedAllocatorGlobals(); +void terminateNamedAllocatorGlobals(); + +#if NV_USE_NAMED_ALLOCATOR // can be slow, so only use in debug/checked +class NV_FOUNDATION_API NamedAllocator +{ + public: + NamedAllocator(const NvEMPTY); + NamedAllocator(const char* name = 0); // todo: should not have default argument! + NamedAllocator(const NamedAllocator&); + ~NamedAllocator(); + NamedAllocator& operator=(const NamedAllocator&); + void* allocate(size_t size, const char* filename, int line); + void deallocate(void* ptr); +}; +#else +class NamedAllocator; +#endif // NV_DEBUG + +/** +Allocator used to access the global NvAllocatorCallback instance using a static name derived from T. +*/ + +template +class ReflectionAllocator +{ + static const char* getName() + { + if(!getReflectionAllocatorReportsNames()) + return ""; +#if NV_GCC_FAMILY + return __PRETTY_FUNCTION__; +#else + // name() calls malloc(), raw_name() wouldn't + return typeid(T).name(); +#endif + } + + public: + ReflectionAllocator(const NvEMPTY) + { + } + ReflectionAllocator(const char* = 0) + { + } + inline ReflectionAllocator(const ReflectionAllocator&) + { + } + void* allocate(size_t size, const char* filename, int line) + { + return size ? getAllocator().allocate(size, getName(), filename, line) : 0; + } + void deallocate(void* ptr) + { + if(ptr) + getAllocator().deallocate(ptr); + } +}; + +template +struct AllocatorTraits +{ +#if NV_USE_NAMED_ALLOCATOR + typedef NamedAllocator Type; +#else + typedef ReflectionAllocator Type; +#endif +}; + +// if you get a build error here, you are trying to NV_NEW a class +// that is neither plain-old-type nor derived from UserAllocated +template +union EnableIfPod +{ + int i; + T t; + typedef X Type; +}; + +} // namespace shdfnd +} // namespace nvidia + +// Global placement new for ReflectionAllocator templated by +// plain-old-type. Allows using NV_NEW for pointers and built-in-types. +// +// ATTENTION: You need to use NV_DELETE_POD or NV_FREE to deallocate +// memory, not NV_DELETE. NV_DELETE_POD redirects to NV_FREE. +// +// Rationale: NV_DELETE uses global operator delete(void*), which we dont' want to overload. +// Any other definition of NV_DELETE couldn't support array syntax 'NV_DELETE([]a);'. +// NV_DELETE_POD was preferred over NV_DELETE_ARRAY because it is used +// less often and applies to both single instances and arrays. +template +NV_INLINE void* operator new(size_t size, nvidia::shdfnd::ReflectionAllocator alloc, const char* fileName, + typename nvidia::shdfnd::EnableIfPod::Type line) +{ + return alloc.allocate(size, fileName, line); +} + +template +NV_INLINE void* operator new [](size_t size, nvidia::shdfnd::ReflectionAllocator alloc, const char* fileName, + typename nvidia::shdfnd::EnableIfPod::Type line) +{ return alloc.allocate(size, fileName, line); } + +// If construction after placement new throws, this placement delete is being called. +template +NV_INLINE void operator delete(void* ptr, nvidia::shdfnd::ReflectionAllocator alloc, const char* fileName, + typename nvidia::shdfnd::EnableIfPod::Type line) +{ + NV_UNUSED(fileName); + NV_UNUSED(line); + + alloc.deallocate(ptr); +} + +// If construction after placement new throws, this placement delete is being called. +template +NV_INLINE void operator delete [](void* ptr, nvidia::shdfnd::ReflectionAllocator alloc, const char* fileName, + typename nvidia::shdfnd::EnableIfPod::Type line) +{ + NV_UNUSED(fileName); + NV_UNUSED(line); + + alloc.deallocate(ptr); +} + +#endif // #ifndef NV_NSFOUNDATION_NSALLOCATOR_H diff --git a/blast/source/shared/NsFoundation/include/NsAoS.h b/blast/source/shared/NsFoundation/include/NsAoS.h new file mode 100644 index 000000000..ceb484c11 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsAoS.h @@ -0,0 +1,52 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NS_AOS_H +#define NS_AOS_H + +#include "NvPreprocessor.h" + +#if NV_WINDOWS_FAMILY && !NV_NEON + #include "platform/windows/NsWindowsAoS.h" +#elif NV_X360 + #include "xbox360/NsXbox360AoS.h" +#elif (NV_LINUX || NV_ANDROID || NV_APPLE || NV_PS4 || (NV_WINRT && NV_NEON)) + #include "platform/unix/NsUnixAoS.h" +#elif NV_PS3 + #include "ps3/NsPS3AoS.h" +#elif NV_PSP2 + #include "psp2/NsPSP2AoS.h" +#elif NV_XBOXONE +#include "XboxOne/NsXboxOneAoS.h" +#else + #error "Platform not supported!" +#endif + + +#endif + diff --git a/blast/source/shared/NsFoundation/include/NsArray.h b/blast/source/shared/NsFoundation/include/NsArray.h new file mode 100644 index 000000000..9e94a5807 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsArray.h @@ -0,0 +1,800 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSARRAY_H +#define NV_NSFOUNDATION_NSARRAY_H + +#include "NvAssert.h" +#include "NsAllocator.h" +#include "NsBasicTemplates.h" +#include "NvIntrinsics.h" + +#if NV_LINUX || NV_ANDROID || (NV_IOS && !NV_A64) || NV_OSX || NV_PS3 || NV_PSP2 || NV_WIIU +#include +#elif NV_WINRT || NV_XBOXONE || (NV_IOS && NV_A64) || NV_WIN64 || NV_X360 || NV_WIN32 || NV_PS4 +#include +#if NV_IOS && NV_A64 +namespace std { namespace tr1 { using std::is_pod; } } +#endif +#else +#error "OS with no defined path to type_traits.h" +#endif + +#if NV_VC == 9 || NV_VC == 10 +#pragma warning(push) +#pragma warning(disable : 4347) // behavior change: 'function template' is called instead of 'function' +#endif + +namespace nvidia +{ +namespace shdfnd +{ +template +void exportArray(Serializer& stream, const void* data, uint32_t size, uint32_t sizeOfElement, uint32_t capacity); +char* importArray(char* address, void** data, uint32_t size, uint32_t sizeOfElement, uint32_t capacity); + +/*! +An array is a sequential container. + +Implementation note +* entries between 0 and size are valid objects +* we use inheritance to build this because the array is included inline in a lot + of objects and we want the allocator to take no space if it's not stateful, which + aggregation doesn't allow. Also, we want the metadata at the front for the inline + case where the allocator contains some inline storage space +*/ +template ::Type> +class Array : protected Alloc +{ + public: + typedef T* Iterator; + typedef const T* ConstIterator; + + explicit Array(const NvEMPTY v) : Alloc(v) + { + if(mData) + mCapacity |= NV_SIGN_BITMASK; + } + + /*! + Default array constructor. Initialize an empty array + */ + NV_INLINE explicit Array(const Alloc& alloc = Alloc()) : Alloc(alloc), mData(0), mSize(0), mCapacity(0) + { + } + + /*! + Initialize array with given capacity + */ + NV_INLINE explicit Array(uint32_t size, const T& a = T(), const Alloc& alloc = Alloc()) + : Alloc(alloc), mData(0), mSize(0), mCapacity(0) + { + resize(size, a); + } + + /*! + Copy-constructor. Copy all entries from other array + */ + template + NV_INLINE explicit Array(const Array& other, const Alloc& alloc = Alloc()) + : Alloc(alloc) + { + copy(other); + } + + // This is necessary else the basic default copy constructor is used in the case of both arrays being of the same + // template instance + // The C++ standard clearly states that a template constructor is never a copy constructor [2]. In other words, + // the presence of a template constructor does not suppress the implicit declaration of the copy constructor. + // Also never make a copy constructor explicit, or copy-initialization* will no longer work. This is because + // 'binding an rvalue to a const reference requires an accessible copy constructor' (http://gcc.gnu.org/bugs/) + // *http://stackoverflow.com/questions/1051379/is-there-a-difference-in-c-between-copy-initialization-and-assignment-initializ + NV_INLINE Array(const Array& other, const Alloc& alloc = Alloc()) : Alloc(alloc) + { + copy(other); + } + + /*! + Initialize array with given length + */ + NV_INLINE explicit Array(const T* first, const T* last, const Alloc& alloc = Alloc()) + : Alloc(alloc), mSize(last < first ? 0 : uint32_t(last - first)), mCapacity(mSize) + { + mData = allocate(mSize); + copy(mData, mData + mSize, first); + } + + /*! + Destructor + */ + NV_INLINE ~Array() + { + destroy(mData, mData + mSize); + + if(capacity() && !isInUserMemory()) + deallocate(mData); + } + + /*! + Assignment operator. Copy content (deep-copy) + */ + template + NV_INLINE Array& operator=(const Array& rhs) + { + if(&rhs == this) + return *this; + + clear(); + reserve(rhs.mSize); + copy(mData, mData + rhs.mSize, rhs.mData); + + mSize = rhs.mSize; + return *this; + } + + NV_INLINE Array& operator=(const Array& t) // Needs to be declared, see comment at copy-constructor + { + return operator=(t); + } + + NV_FORCE_INLINE static bool isArrayOfPOD() + { +#if NV_VC>=14 + return std::is_trivially_copyable::value; +#else + return std::tr1::is_pod::value; +#endif + } + + /*! + Array indexing operator. + \param i + The index of the element that will be returned. + \return + The element i in the array. + */ + NV_FORCE_INLINE const T& operator[](uint32_t i) const + { + NV_ASSERT(i < mSize); + return mData[i]; + } + + /*! + Array indexing operator. + \param i + The index of the element that will be returned. + \return + The element i in the array. + */ + NV_FORCE_INLINE T& operator[](uint32_t i) + { + NV_ASSERT(i < mSize); + return mData[i]; + } + + /*! + Returns a pointer to the initial element of the array. + \return + a pointer to the initial element of the array. + */ + NV_FORCE_INLINE ConstIterator begin() const + { + return mData; + } + + NV_FORCE_INLINE Iterator begin() + { + return mData; + } + + /*! + Returns an iterator beyond the last element of the array. Do not dereference. + \return + a pointer to the element beyond the last element of the array. + */ + + NV_FORCE_INLINE ConstIterator end() const + { + return mData + mSize; + } + + NV_FORCE_INLINE Iterator end() + { + return mData + mSize; + } + + /*! + Returns a reference to the first element of the array. Undefined if the array is empty. + \return a reference to the first element of the array + */ + + NV_FORCE_INLINE const T& front() const + { + NV_ASSERT(mSize); + return mData[0]; + } + + NV_FORCE_INLINE T& front() + { + NV_ASSERT(mSize); + return mData[0]; + } + + /*! + Returns a reference to the last element of the array. Undefined if the array is empty + \return a reference to the last element of the array + */ + + NV_FORCE_INLINE const T& back() const + { + NV_ASSERT(mSize); + return mData[mSize - 1]; + } + + NV_FORCE_INLINE T& back() + { + NV_ASSERT(mSize); + return mData[mSize - 1]; + } + + /*! + Returns the number of entries in the array. This can, and probably will, + differ from the array capacity. + \return + The number of of entries in the array. + */ + NV_FORCE_INLINE uint32_t size() const + { + return mSize; + } + + /*! + Clears the array. + */ + NV_INLINE void clear() + { + destroy(mData, mData + mSize); + mSize = 0; + } + + /*! + Returns whether the array is empty (i.e. whether its size is 0). + \return + true if the array is empty + */ + NV_FORCE_INLINE bool empty() const + { + return mSize == 0; + } + + /*! + Finds the first occurrence of an element in the array. + \param a + The element to find. + */ + + NV_INLINE Iterator find(const T& a) + { + uint32_t index; + for(index = 0; index < mSize && mData[index] != a; index++) + ; + return mData + index; + } + + NV_INLINE ConstIterator find(const T& a) const + { + uint32_t index; + for(index = 0; index < mSize && mData[index] != a; index++) + ; + return mData + index; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Adds one element to the end of the array. Operation is O(1). + \param a + The element that will be added to this array. + */ + ///////////////////////////////////////////////////////////////////////// + + NV_FORCE_INLINE T& pushBack(const T& a) + { + if(capacity() <= mSize) + return growAndPushBack(a); + + NV_PLACEMENT_NEW(reinterpret_cast(mData + mSize), T)(a); + + return mData[mSize++]; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Returns the element at the end of the array. Only legal if the array is non-empty. + */ + ///////////////////////////////////////////////////////////////////////// + NV_INLINE T popBack() + { + NV_ASSERT(mSize); + T t = mData[mSize - 1]; + + if (!isArrayOfPOD()) + { + mData[--mSize].~T(); + } + else + { + --mSize; + } + + return t; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Construct one element at the end of the array. Operation is O(1). + */ + ///////////////////////////////////////////////////////////////////////// + NV_INLINE T& insert() + { + if(capacity() <= mSize) + grow(capacityIncrement()); + + T* ptr = mData + mSize++; + new (ptr) T; // not 'T()' because PODs should not get default-initialized. + return *ptr; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Subtracts the element on position i from the array and replace it with + the last element. + Operation is O(1) + \param i + The position of the element that will be subtracted from this array. + */ + ///////////////////////////////////////////////////////////////////////// + NV_INLINE void replaceWithLast(uint32_t i) + { + NV_ASSERT(i < mSize); + mData[i] = mData[--mSize]; + + if (!isArrayOfPOD()) + { + mData[mSize].~T(); + } + } + + NV_INLINE void replaceWithLast(Iterator i) + { + replaceWithLast(static_cast(i - mData)); + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Replaces the first occurrence of the element a with the last element + Operation is O(n) + \param a + The position of the element that will be subtracted from this array. + \return true if the element has been removed. + */ + ///////////////////////////////////////////////////////////////////////// + + NV_INLINE bool findAndReplaceWithLast(const T& a) + { + uint32_t index = 0; + while(index < mSize && mData[index] != a) + ++index; + if(index == mSize) + return false; + replaceWithLast(index); + return true; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Subtracts the element on position i from the array. Shift the entire + array one step. + Operation is O(n) + \param i + The position of the element that will be subtracted from this array. + */ + ///////////////////////////////////////////////////////////////////////// + NV_INLINE void remove(uint32_t i) + { + NV_ASSERT(i < mSize); + + if (isArrayOfPOD()) + { + if (i + 1 != mSize) + { + nvidia::intrinsics::memMove(mData + i, mData + i + 1, (mSize - i - 1) * sizeof(T)); + } + } + else + { + for(T* it = mData + i; it->~T(), ++i < mSize; ++it) + new (it) T(mData[i]); + } + + --mSize; + } + + ///////////////////////////////////////////////////////////////////////// + /*! + Removes a range from the array. Shifts the array so order is maintained. + Operation is O(n) + \param begin + The starting position of the element that will be subtracted from this array. + \param count + The number of elments that will be subtracted from this array. + */ + ///////////////////////////////////////////////////////////////////////// + NV_INLINE void removeRange(uint32_t begin, uint32_t count) + { + NV_ASSERT(begin < mSize); + NV_ASSERT((begin + count) <= mSize); + + if (!isArrayOfPOD()) + { + for(uint32_t i = 0; i < count; i++) + { + mData[begin + i].~T(); // call the destructor on the ones being removed first. + } + } + + T* dest = &mData[begin]; // location we are copying the tail end objects to + T* src = &mData[begin + count]; // start of tail objects + uint32_t move_count = mSize - (begin + count); // compute remainder that needs to be copied down + + if (isArrayOfPOD()) + { + nvidia::intrinsics::memMove(dest, src, move_count * sizeof(T)); + } + else + { + for(uint32_t i = 0; i < move_count; i++) + { + new (dest) T(*src); // copy the old one to the new location + src->~T(); // call the destructor on the old location + dest++; + src++; + } + } + mSize -= count; + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Resize array + */ + ////////////////////////////////////////////////////////////////////////// + NV_NOINLINE void resize(const uint32_t size, const T& a = T()); + + NV_NOINLINE void resizeUninitialized(const uint32_t size); + + ////////////////////////////////////////////////////////////////////////// + /*! + Resize array such that only as much memory is allocated to hold the + existing elements + */ + ////////////////////////////////////////////////////////////////////////// + NV_INLINE void shrink() + { + recreate(mSize); + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Deletes all array elements and frees memory. + */ + ////////////////////////////////////////////////////////////////////////// + NV_INLINE void reset() + { + resize(0); + shrink(); + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Ensure that the array has at least size capacity. + */ + ////////////////////////////////////////////////////////////////////////// + NV_INLINE void reserve(const uint32_t capacity) + { + if(capacity > this->capacity()) + grow(capacity); + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Query the capacity(allocated mem) for the array. + */ + ////////////////////////////////////////////////////////////////////////// + NV_FORCE_INLINE uint32_t capacity() const + { + return mCapacity & ~NV_SIGN_BITMASK; + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Unsafe function to force the size of the array + */ + ////////////////////////////////////////////////////////////////////////// + NV_FORCE_INLINE void forceSize_Unsafe(uint32_t size) + { + NV_ASSERT(size <= mCapacity); + mSize = size; + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Swap contents of an array without allocating temporary storage + */ + ////////////////////////////////////////////////////////////////////////// + NV_INLINE void swap(Array& other) + { + shdfnd::swap(mData, other.mData); + shdfnd::swap(mSize, other.mSize); + shdfnd::swap(mCapacity, other.mCapacity); + } + + ////////////////////////////////////////////////////////////////////////// + /*! + Assign a range of values to this vector (resizes to length of range) + */ + ////////////////////////////////////////////////////////////////////////// + NV_INLINE void assign(const T* first, const T* last) + { + resizeUninitialized(uint32_t(last - first)); + copy(begin(), end(), first); + } + + // We need one bit to mark arrays that have been deserialized from a user-provided memory block. + // For alignment & memory saving purpose we store that bit in the rarely used capacity member. + NV_FORCE_INLINE uint32_t isInUserMemory() const + { + return mCapacity & NV_SIGN_BITMASK; + } + + /// return reference to allocator + NV_INLINE Alloc& getAllocator() + { + return *this; + } + + protected: + // constructor for where we don't own the memory + Array(T* memory, uint32_t size, uint32_t capacity, const Alloc& alloc = Alloc()) + : Alloc(alloc), mData(memory), mSize(size), mCapacity(capacity | NV_SIGN_BITMASK) + { + } + + template + NV_NOINLINE void copy(const Array& other); + + NV_INLINE T* allocate(uint32_t size) + { + if(size > 0) + { + T* p = reinterpret_cast(Alloc::allocate(sizeof(T) * size, __FILE__, __LINE__)); +/** +Mark a specified amount of memory with 0xcd pattern. This is used to check that the meta data +definition for serialized classes is complete in checked builds. +*/ +#if NV_CHECKED + if(p) + { + for(uint32_t i = 0; i < (sizeof(T) * size); ++i) + reinterpret_cast(p)[i] = 0xcd; + } +#endif + return p; + } + return 0; + } + + NV_INLINE void deallocate(void* mem) + { + Alloc::deallocate(mem); + } + + static NV_INLINE bool isZeroInit(const T& object) + { + char ZeroBuffOnStack[sizeof(object)] = {}; + return memcmp(&object, ZeroBuffOnStack, sizeof(object)) == 0; + } + + static NV_INLINE void create(T* first, T* last, const T& a) + { + if (isArrayOfPOD() && isZeroInit(a)) + { + if(last>first) + nvidia::intrinsics::memZero(first, uint32_t((last-first) * sizeof(T))); + } + else + { + for(; first~T(); + } + } + + /*! + Called when pushBack() needs to grow the array. + \param a The element that will be added to this array. + */ + NV_NOINLINE T& growAndPushBack(const T& a); + + /*! + Resizes the available memory for the array. + + \param capacity + The number of entries that the set should be able to hold. + */ + NV_INLINE void grow(uint32_t capacity) + { + NV_ASSERT(this->capacity() < capacity); + recreate(capacity); + } + + /*! + Creates a new memory block, copies all entries to the new block and destroys old entries. + + \param capacity + The number of entries that the set should be able to hold. + */ + NV_NOINLINE void recreate(uint32_t capacity); + + // The idea here is to prevent accidental bugs with pushBack or insert. Unfortunately + // it interacts badly with InlineArrays with smaller inline allocations. + // TODO(dsequeira): policy template arg, this is exactly what they're for. + NV_INLINE uint32_t capacityIncrement() const + { + const uint32_t capacity = this->capacity(); + return capacity == 0 ? 1 : capacity * 2; + } + + T* mData; + uint32_t mSize; + uint32_t mCapacity; +}; + +template +NV_NOINLINE void Array::resize(const uint32_t size, const T& a) +{ + reserve(size); + create(mData + mSize, mData + size, a); + destroy(mData + size, mData + mSize); + mSize = size; +} + +template +template +NV_NOINLINE void Array::copy(const Array& other) +{ + if(!other.empty()) + { + mData = allocate(mSize = mCapacity = other.size()); + copy(mData, mData + mSize, other.begin()); + } + else + { + mData = NULL; + mSize = 0; + mCapacity = 0; + } + + // mData = allocate(other.mSize); + // mSize = other.mSize; + // mCapacity = other.mSize; + // copy(mData, mData + mSize, other.mData); +} + +template +NV_NOINLINE void Array::resizeUninitialized(const uint32_t size) +{ + reserve(size); + mSize = size; +} + +template +NV_NOINLINE T& Array::growAndPushBack(const T& a) +{ + uint32_t capacity = capacityIncrement(); + + T* newData = allocate(capacity); + NV_ASSERT((!capacity) || (newData && (newData != mData))); + copy(newData, newData + mSize, mData); + + // inserting element before destroying old array + // avoids referencing destroyed object when duplicating array element. + NV_PLACEMENT_NEW(reinterpret_cast(newData + mSize), T)(a); + + destroy(mData, mData + mSize); + if(!isInUserMemory()) + deallocate(mData); + + mData = newData; + mCapacity = capacity; + + return mData[mSize++]; +} + +template +NV_NOINLINE void Array::recreate(uint32_t capacity) +{ + T* newData = allocate(capacity); + NV_ASSERT((!capacity) || (newData && (newData != mData))); + + copy(newData, newData + mSize, mData); + destroy(mData, mData + mSize); + if(!isInUserMemory()) + deallocate(mData); + + mData = newData; + mCapacity = capacity; +} + +template +NV_INLINE void swap(Array& x, Array& y) +{ + x.swap(y); +} + +} // namespace shdfnd +} // namespace nvidia + +#if NV_VC == 9 || NV_VC == 10 +#pragma warning(pop) +#endif + +#endif // #ifndef NV_NSFOUNDATION_NSARRAY_H diff --git a/blast/source/shared/NsFoundation/include/NsBasicTemplates.h b/blast/source/shared/NsFoundation/include/NsBasicTemplates.h new file mode 100644 index 000000000..a6a3a9e1a --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsBasicTemplates.h @@ -0,0 +1,145 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSBASICTEMPLATES_H +#define NV_NSFOUNDATION_NSBASICTEMPLATES_H + +#include "Ns.h" + +namespace nvidia +{ +namespace shdfnd +{ +template +struct Equal +{ + bool operator()(const A& a, const A& b) const + { + return a == b; + } +}; + +template +struct Less +{ + bool operator()(const A& a, const A& b) const + { + return a < b; + } +}; + +template +struct Greater +{ + bool operator()(const A& a, const A& b) const + { + return a > b; + } +}; + +template +class Pair +{ + public: + F first; + S second; + Pair() : first(F()), second(S()) + { + } + Pair(const F& f, const S& s) : first(f), second(s) + { + } + Pair(const Pair& p) : first(p.first), second(p.second) + { + } + // CN - fix for /.../NsBasicTemplates.h(61) : warning C4512: 'nvidia::shdfnd::Pair' : assignment operator could + // not be generated + Pair& operator=(const Pair& p) + { + first = p.first; + second = p.second; + return *this; + } + bool operator==(const Pair& p) const + { + return first == p.first && second == p.second; + } + bool operator<(const Pair& p) const + { + if(first < p.first) + return true; + else + return !(p.first < first) && (second < p.second); + } +}; + +template +struct LogTwo +{ + static const unsigned int value = LogTwo<(A >> 1)>::value + 1; +}; +template <> +struct LogTwo<1> +{ + static const unsigned int value = 0; +}; + +template +struct UnConst +{ + typedef T Type; +}; +template +struct UnConst +{ + typedef T Type; +}; + +template +T pointerOffset(void* p, ptrdiff_t offset) +{ + return reinterpret_cast(reinterpret_cast(p) + offset); +} +template +T pointerOffset(const void* p, ptrdiff_t offset) +{ + return reinterpret_cast(reinterpret_cast(p) + offset); +} + +template +NV_CUDA_CALLABLE NV_INLINE void swap(T& x, T& y) +{ + const T tmp = x; + x = y; + y = tmp; +} + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSBASICTEMPLATES_H diff --git a/blast/source/shared/NsFoundation/include/NsBitUtils.h b/blast/source/shared/NsFoundation/include/NsBitUtils.h new file mode 100644 index 000000000..8cf410148 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsBitUtils.h @@ -0,0 +1,108 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSBITUTILS_H +#define NV_NSFOUNDATION_NSBITUTILS_H + +#include "NvIntrinsics.h" +#include "NsIntrinsics.h" +#include "NvAssert.h" +#include "Ns.h" + +namespace nvidia +{ +namespace shdfnd +{ +NV_INLINE uint32_t bitCount(uint32_t v) +{ + // from http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel + uint32_t const w = v - ((v >> 1) & 0x55555555); + uint32_t const x = (w & 0x33333333) + ((w >> 2) & 0x33333333); + return (((x + (x >> 4)) & 0xF0F0F0F) * 0x1010101) >> 24; +} + +NV_INLINE bool isPowerOfTwo(uint32_t x) +{ + return x != 0 && (x & (x - 1)) == 0; +} + +// "Next Largest Power of 2 +// Given a binary integer value x, the next largest power of 2 can be computed by a SWAR algorithm +// that recursively "folds" the upper bits into the lower bits. This process yields a bit vector with +// the same most significant 1 as x, but all 1's below it. Adding 1 to that value yields the next +// largest power of 2. For a 32-bit value:" +NV_INLINE uint32_t nextPowerOfTwo(uint32_t x) +{ + x |= (x >> 1); + x |= (x >> 2); + x |= (x >> 4); + x |= (x >> 8); + x |= (x >> 16); + return x + 1; +} + +/*! +Return the index of the highest set bit. Not valid for zero arg. +*/ + +NV_INLINE uint32_t lowestSetBit(uint32_t x) +{ + NV_ASSERT(x); + return lowestSetBitUnsafe(x); +} + +/*! +Return the index of the highest set bit. Not valid for zero arg. +*/ + +NV_INLINE uint32_t highestSetBit(uint32_t x) +{ + NV_ASSERT(x); + return highestSetBitUnsafe(x); +} + +// Helper function to approximate log2 of an integer value +// assumes that the input is actually power of two. +// todo: replace 2 usages with 'highestSetBit' +NV_INLINE uint32_t ilog2(uint32_t num) +{ + for(uint32_t i = 0; i < 32; i++) + { + num >>= 1; + if(num == 0) + return i; + } + + NV_ASSERT(0); + return uint32_t(-1); +} + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSBITUTILS_H diff --git a/blast/source/shared/NsFoundation/include/NsFPU.h b/blast/source/shared/NsFoundation/include/NsFPU.h new file mode 100644 index 000000000..51034ab09 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsFPU.h @@ -0,0 +1,141 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSFPU_H +#define NV_NSFOUNDATION_NSFPU_H + +#include "Ns.h" +#include "NsIntrinsics.h" + +// unsigned integer representation of a floating-point value. +#if NV_PS3 + +NV_FORCE_INLINE unsigned int NV_IR(const float x) +{ + union + { + int i; + float f; + } u; + u.f = x; + return u.i; +} + +NV_FORCE_INLINE int NV_SIR(const float x) +{ + union + { + int i; + float f; + } u; + + u.f = x; + return u.i; +} + +NV_FORCE_INLINE float NV_FR(const unsigned int x) +{ + union + { + unsigned int i; + float f; + } u; + u.i = x; + return u.f; +} + +#else +#define NV_IR(x) ((uint32_t&)(x)) +#define NV_SIR(x) ((int32_t&)(x)) +#define NV_FR(x) ((float&)(x)) +#endif + +// signed integer representation of a floating-point value. + +// Floating-point representation of a integer value. + +#define NV_SIGN_BITMASK 0x80000000 + +#define NV_FPU_GUARD shdfnd::FPUGuard scopedFpGuard; +#define NV_SIMD_GUARD shdfnd::SIMDGuard scopedFpGuard; + +#define NV_SUPPORT_GUARDS (NV_WINDOWS_FAMILY || NV_XBOXONE || NV_LINUX || NV_PS4 || NV_OSX) + +namespace nvidia +{ +namespace shdfnd +{ +// sets the default SDK state for scalar and SIMD units +class NV_FOUNDATION_API FPUGuard +{ + public: + FPUGuard(); // set fpu control word for PhysX + ~FPUGuard(); // restore fpu control word + private: + uint32_t mControlWords[8]; +}; + +// sets default SDK state for simd unit only, lighter weight than FPUGuard +class SIMDGuard +{ + public: + NV_INLINE SIMDGuard(); // set simd control word for PhysX + NV_INLINE ~SIMDGuard(); // restore simd control word + private: +#if NV_SUPPORT_GUARDS + uint32_t mControlWord; +#endif +}; + +/** +\brief Enables floating point exceptions for the scalar and SIMD unit +*/ +NV_FOUNDATION_API void enableFPExceptions(); + +/** +\brief Disables floating point exceptions for the scalar and SIMD unit +*/ +NV_FOUNDATION_API void disableFPExceptions(); + +} // namespace shdfnd +} // namespace nvidia + +#if NV_WINDOWS_FAMILY || NV_XBOXONE +#include "platform/windows/NsWindowsFPU.h" +#elif NV_LINUX || NV_PS4 || NV_OSX +#include "platform/unix/NsUnixFPU.h" +#else +NV_INLINE nvidia::shdfnd::SIMDGuard::SIMDGuard() +{ +} +NV_INLINE nvidia::shdfnd::SIMDGuard::~SIMDGuard() +{ +} +#endif + +#endif // #ifndef NV_NSFOUNDATION_NSFPU_H diff --git a/blast/source/shared/NsFoundation/include/NsGlobals.h b/blast/source/shared/NsFoundation/include/NsGlobals.h new file mode 100644 index 000000000..31dc41c88 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsGlobals.h @@ -0,0 +1,71 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSGLOBALS_H +#define NV_NSFOUNDATION_NSGLOBALS_H + +#include "NvErrors.h" + +namespace nvidia +{ + +class NvAssertHandler; +class NvErrorCallback; +class NvAllocatorCallback; +class NvProfilerCallback; + +namespace shdfnd +{ + +// note: it's illegal to initialize the shared foundation twice without terminating in between + +NV_FOUNDATION_API void initializeSharedFoundation(uint32_t version, NvAllocatorCallback&, NvErrorCallback&); +NV_FOUNDATION_API bool sharedFoundationIsInitialized(); +NV_FOUNDATION_API void terminateSharedFoundation(); + +// number of times foundation has been init'd. 0 means never initialized, so if we wrap we go from UINT32_MAX to 1. Used +// for things that happen at most once (e.g. some warnings) +NV_FOUNDATION_API uint32_t getInitializationCount(); + +NV_FOUNDATION_API NvAllocatorCallback& getAllocator(); +NV_FOUNDATION_API NvErrorCallback& getErrorCallback(); + +// on some platforms (notably 360) the CRT does non-recoverable allocations when asked for type names. Hence +// we provide a mechanism to disable this capability +NV_FOUNDATION_API void setReflectionAllocatorReportsNames(bool val); +NV_FOUNDATION_API bool getReflectionAllocatorReportsNames(); + + +NV_FOUNDATION_API NvProfilerCallback *getProfilerCallback(); +NV_FOUNDATION_API void setProfilerCallback(NvProfilerCallback *profiler); + + +} +} + +#endif // #ifndef NV_NSFOUNDATION_NSGLOBALS_H diff --git a/blast/source/shared/NsFoundation/include/NsHash.h b/blast/source/shared/NsFoundation/include/NsHash.h new file mode 100644 index 000000000..f49ebf831 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsHash.h @@ -0,0 +1,161 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSHASH_H +#define NV_NSFOUNDATION_NSHASH_H + +#include "Ns.h" +#include "NsBasicTemplates.h" + +#if NV_VC +#pragma warning(push) +#pragma warning(disable : 4302) +#endif + +#if NV_LINUX +#include "NvSimpleTypes.h" +#endif + +/*! +Central definition of hash functions +*/ + +namespace nvidia +{ +namespace shdfnd +{ +// Hash functions + +// Thomas Wang's 32 bit mix +// http://www.cris.com/~Ttwang/tech/inthash.htm +NV_FORCE_INLINE uint32_t hash(const uint32_t key) +{ + uint32_t k = key; + k += ~(k << 15); + k ^= (k >> 10); + k += (k << 3); + k ^= (k >> 6); + k += ~(k << 11); + k ^= (k >> 16); + return uint32_t(k); +} + +NV_FORCE_INLINE uint32_t hash(const int32_t key) +{ + return hash(uint32_t(key)); +} + +// Thomas Wang's 64 bit mix +// http://www.cris.com/~Ttwang/tech/inthash.htm +NV_FORCE_INLINE uint32_t hash(const uint64_t key) +{ + uint64_t k = key; + k += ~(k << 32); + k ^= (k >> 22); + k += ~(k << 13); + k ^= (k >> 8); + k += (k << 3); + k ^= (k >> 15); + k += ~(k << 27); + k ^= (k >> 31); + return uint32_t(UINT32_MAX & k); +} + +#if NV_APPLE_FAMILY +// hash for size_t, to make gcc happy +NV_INLINE uint32_t hash(const size_t key) +{ +#if NV_P64_FAMILY + return hash(uint64_t(key)); +#else + return hash(uint32_t(key)); +#endif +} +#endif + +// Hash function for pointers +NV_INLINE uint32_t hash(const void* ptr) +{ +#if NV_P64_FAMILY + return hash(uint64_t(ptr)); +#else + return hash(uint32_t(UINT32_MAX & size_t(ptr))); +#endif +} + +// Hash function for pairs +template +NV_INLINE uint32_t hash(const Pair& p) +{ + uint32_t seed = 0x876543; + uint32_t m = 1000007; + return hash(p.second) ^ (m * (hash(p.first) ^ (m * seed))); +} + +// hash object for hash map template parameter +template +struct Hash +{ + uint32_t operator()(const Key& k) const + { + return hash(k); + } + bool equal(const Key& k0, const Key& k1) const + { + return k0 == k1; + } +}; + +// specialization for strings +template <> +struct Hash +{ + public: + uint32_t operator()(const char* _string) const + { + // "DJB" string hash + const uint8_t* string = reinterpret_cast(_string); + uint32_t h = 5381; + for(const uint8_t* ptr = string; *ptr; ptr++) + h = ((h << 5) + h) ^ uint32_t(*ptr); + return h; + } + bool equal(const char* string0, const char* string1) const + { + return !strcmp(string0, string1); + } +}; + +} // namespace shdfnd +} // namespace nvidia + +#if NV_VC +#pragma warning(pop) +#endif + +#endif // #ifndef NV_NSFOUNDATION_NSHASH_H diff --git a/blast/source/shared/NsFoundation/include/NsHashInternals.h b/blast/source/shared/NsFoundation/include/NsHashInternals.h new file mode 100644 index 000000000..dd732877c --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsHashInternals.h @@ -0,0 +1,680 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSHASHINTERNALS_H +#define NV_NSFOUNDATION_NSHASHINTERNALS_H + +#include "NsBasicTemplates.h" +#include "NsArray.h" +#include "NsBitUtils.h" +#include "NsHash.h" +#include "NvIntrinsics.h" + +#if NV_VC +#pragma warning(push) +#pragma warning(disable : 4127) // conditional expression is constant +#endif +namespace nvidia +{ +namespace shdfnd +{ +namespace internal +{ +template +class HashBase : private Allocator +{ + void init(uint32_t initialTableSize, float loadFactor) + { + mBuffer = NULL; + mEntries = NULL; + mEntriesNext = NULL; + mHash = NULL; + mEntriesCapacity = 0; + mHashSize = 0; + mLoadFactor = loadFactor; + mFreeList = uint32_t(EOL); + mTimestamp = 0; + mEntriesCount = 0; + + if(initialTableSize) + reserveInternal(initialTableSize); + } + + public: + typedef Entry EntryType; + + HashBase(uint32_t initialTableSize = 64, float loadFactor = 0.75f) : Allocator(NV_DEBUG_EXP("hashBase")) + { + init(initialTableSize, loadFactor); + } + + HashBase(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) : Allocator(alloc) + { + init(initialTableSize, loadFactor); + } + + HashBase(const Allocator& alloc) : Allocator(alloc) + { + init(64, 0.75f); + } + + ~HashBase() + { + destroy(); // No need to clear() + + if(mBuffer) + Allocator::deallocate(mBuffer); + } + + static const uint32_t EOL = 0xffffffff; + + NV_INLINE Entry* create(const Key& k, bool& exists) + { + uint32_t h = 0; + if(mHashSize) + { + h = hash(k); + uint32_t index = mHash[h]; + while(index != EOL && !HashFn().equal(GetKey()(mEntries[index]), k)) + index = mEntriesNext[index]; + exists = index != EOL; + if(exists) + return mEntries + index; + } + else + exists = false; + + if(freeListEmpty()) + { + grow(); + h = hash(k); + } + + uint32_t entryIndex = freeListGetNext(); + + mEntriesNext[entryIndex] = mHash[h]; + mHash[h] = entryIndex; + + mEntriesCount++; + mTimestamp++; + + return mEntries + entryIndex; + } + + NV_INLINE const Entry* find(const Key& k) const + { + if(!mHashSize) + return NULL; + + const uint32_t h = hash(k); + uint32_t index = mHash[h]; + while(index != EOL && !HashFn().equal(GetKey()(mEntries[index]), k)) + index = mEntriesNext[index]; + return index != EOL ? mEntries + index : NULL; + } + + NV_INLINE bool erase(const Key& k) + { + if(!mHashSize) + return false; + + const uint32_t h = hash(k); + uint32_t* ptr = mHash + h; + while(*ptr != EOL && !HashFn().equal(GetKey()(mEntries[*ptr]), k)) + ptr = mEntriesNext + *ptr; + + if(*ptr == EOL) + return false; + + const uint32_t index = *ptr; + *ptr = mEntriesNext[index]; + + mEntries[index].~Entry(); + + mEntriesCount--; + mTimestamp++; + + if(compacting && index != mEntriesCount) + replaceWithLast(index); + + freeListAdd(index); + + return true; + } + + NV_INLINE uint32_t size() const + { + return mEntriesCount; + } + + NV_INLINE uint32_t capacity() const + { + return mHashSize; + } + + void clear() + { + if(!mHashSize || mEntriesCount == 0) + return; + + destroy(); + + intrinsics::memSet(mHash, EOL, mHashSize * sizeof(uint32_t)); + + const uint32_t sizeMinus1 = mEntriesCapacity - 1; + for(uint32_t i = 0; i < sizeMinus1; i++) + { + prefetchLine(mEntriesNext + i, 128); + mEntriesNext[i] = i + 1; + } + mEntriesNext[mEntriesCapacity - 1] = uint32_t(EOL); + mFreeList = 0; + mEntriesCount = 0; + } + + void reserve(uint32_t size) + { + if(size > mHashSize) + reserveInternal(size); + } + + NV_INLINE const Entry* getEntries() const + { + return mEntries; + } + + NV_INLINE Entry* insertUnique(const Key& k) + { + NV_ASSERT(find(k) == NULL); + uint32_t h = hash(k); + + uint32_t entryIndex = freeListGetNext(); + + mEntriesNext[entryIndex] = mHash[h]; + mHash[h] = entryIndex; + + mEntriesCount++; + mTimestamp++; + + return mEntries + entryIndex; + } + + private: + void destroy() + { + for(uint32_t i = 0; i < mHashSize; i++) + { + for(uint32_t j = mHash[i]; j != EOL; j = mEntriesNext[j]) + mEntries[j].~Entry(); + } + } + + template + NV_NOINLINE void copy(const HashBase& other); + + // free list management - if we're coalescing, then we use mFreeList to hold + // the top of the free list and it should always be equal to size(). Otherwise, + // we build a free list in the next() pointers. + + NV_INLINE void freeListAdd(uint32_t index) + { + if(compacting) + { + mFreeList--; + NV_ASSERT(mFreeList == mEntriesCount); + } + else + { + mEntriesNext[index] = mFreeList; + mFreeList = index; + } + } + + NV_INLINE void freeListAdd(uint32_t start, uint32_t end) + { + if(!compacting) + { + for(uint32_t i = start; i < end - 1; i++) // add the new entries to the free list + mEntriesNext[i] = i + 1; + + // link in old free list + mEntriesNext[end - 1] = mFreeList; + NV_ASSERT(mFreeList != end - 1); + mFreeList = start; + } + else if(mFreeList == EOL) // don't reset the free ptr for the compacting hash unless it's empty + mFreeList = start; + } + + NV_INLINE uint32_t freeListGetNext() + { + NV_ASSERT(!freeListEmpty()); + if(compacting) + { + NV_ASSERT(mFreeList == mEntriesCount); + return mFreeList++; + } + else + { + uint32_t entryIndex = mFreeList; + mFreeList = mEntriesNext[mFreeList]; + return entryIndex; + } + } + + NV_INLINE bool freeListEmpty() const + { + if(compacting) + return mEntriesCount == mEntriesCapacity; + else + return mFreeList == EOL; + } + + NV_INLINE void replaceWithLast(uint32_t index) + { + NV_PLACEMENT_NEW(mEntries + index, Entry)(mEntries[mEntriesCount]); + mEntries[mEntriesCount].~Entry(); + mEntriesNext[index] = mEntriesNext[mEntriesCount]; + + uint32_t h = hash(GetKey()(mEntries[index])); + uint32_t* ptr; + for(ptr = mHash + h; *ptr != mEntriesCount; ptr = mEntriesNext + *ptr) + NV_ASSERT(*ptr != EOL); + *ptr = index; + } + + NV_INLINE uint32_t hash(const Key& k, uint32_t hashSize) const + { + return HashFn()(k) & (hashSize - 1); + } + + NV_INLINE uint32_t hash(const Key& k) const + { + return hash(k, mHashSize); + } + + void reserveInternal(uint32_t size) + { + if(!isPowerOfTwo(size)) + size = nextPowerOfTwo(size); + + NV_ASSERT(!(size & (size - 1))); + + // decide whether iteration can be done on the entries directly + bool resizeCompact = compacting || freeListEmpty(); + + // define new table sizes + uint32_t oldEntriesCapacity = mEntriesCapacity; + uint32_t newEntriesCapacity = uint32_t(float(size) * mLoadFactor); + uint32_t newHashSize = size; + + // allocate new common buffer and setup pointers to new tables + uint8_t* newBuffer; + uint32_t* newHash; + uint32_t* newEntriesNext; + Entry* newEntries; + { + uint32_t newHashByteOffset = 0; + uint32_t newEntriesNextBytesOffset = newHashByteOffset + newHashSize * sizeof(uint32_t); + uint32_t newEntriesByteOffset = newEntriesNextBytesOffset + newEntriesCapacity * sizeof(uint32_t); + newEntriesByteOffset += (16 - (newEntriesByteOffset & 15)) & 15; + uint32_t newBufferByteSize = newEntriesByteOffset + newEntriesCapacity * sizeof(Entry); + + newBuffer = reinterpret_cast(Allocator::allocate(newBufferByteSize, __FILE__, __LINE__)); + NV_ASSERT(newBuffer); + + newHash = reinterpret_cast(newBuffer + newHashByteOffset); + newEntriesNext = reinterpret_cast(newBuffer + newEntriesNextBytesOffset); + newEntries = reinterpret_cast(newBuffer + newEntriesByteOffset); + } + + // initialize new hash table + intrinsics::memSet(newHash, uint32_t(EOL), newHashSize * sizeof(uint32_t)); + + // iterate over old entries, re-hash and create new entries + if(resizeCompact) + { + // check that old free list is empty - we don't need to copy the next entries + NV_ASSERT(compacting || mFreeList == EOL); + + for(uint32_t index = 0; index < mEntriesCount; ++index) + { + uint32_t h = hash(GetKey()(mEntries[index]), newHashSize); + newEntriesNext[index] = newHash[h]; + newHash[h] = index; + + NV_PLACEMENT_NEW(newEntries + index, Entry)(mEntries[index]); + mEntries[index].~Entry(); + } + } + else + { + // copy old free list, only required for non compact resizing + intrinsics::memCopy(newEntriesNext, mEntriesNext, mEntriesCapacity * sizeof(uint32_t)); + + for(uint32_t bucket = 0; bucket < mHashSize; bucket++) + { + uint32_t index = mHash[bucket]; + while(index != EOL) + { + uint32_t h = hash(GetKey()(mEntries[index]), newHashSize); + newEntriesNext[index] = newHash[h]; + NV_ASSERT(index != newHash[h]); + + newHash[h] = index; + + NV_PLACEMENT_NEW(newEntries + index, Entry)(mEntries[index]); + mEntries[index].~Entry(); + + index = mEntriesNext[index]; + } + } + } + + // swap buffer and pointers + Allocator::deallocate(mBuffer); + mBuffer = newBuffer; + mHash = newHash; + mHashSize = newHashSize; + mEntriesNext = newEntriesNext; + mEntries = newEntries; + mEntriesCapacity = newEntriesCapacity; + + freeListAdd(oldEntriesCapacity, newEntriesCapacity); + } + + void grow() + { + NV_ASSERT((mFreeList == EOL) || (compacting && (mEntriesCount == mEntriesCapacity))); + + uint32_t size = mHashSize == 0 ? 16 : mHashSize * 2; + reserve(size); + } + + uint8_t* mBuffer; + Entry* mEntries; + uint32_t* mEntriesNext; // same size as mEntries + uint32_t* mHash; + uint32_t mEntriesCapacity; + uint32_t mHashSize; + float mLoadFactor; + uint32_t mFreeList; + uint32_t mTimestamp; + uint32_t mEntriesCount; // number of entries + + public: + class Iter + { + public: + NV_INLINE Iter(HashBase& b) : mBucket(0), mEntry(uint32_t(b.EOL)), mTimestamp(b.mTimestamp), mBase(b) + { + if(mBase.mEntriesCapacity > 0) + { + mEntry = mBase.mHash[0]; + skip(); + } + } + + NV_INLINE void check() const + { + NV_ASSERT(mTimestamp == mBase.mTimestamp); + } + NV_INLINE Entry operator*() const + { + check(); + return mBase.mEntries[mEntry]; + } + NV_INLINE Entry* operator->() const + { + check(); + return mBase.mEntries + mEntry; + } + NV_INLINE Iter operator++() + { + check(); + advance(); + return *this; + } + NV_INLINE Iter operator++(int) + { + check(); + Iter i = *this; + advance(); + return i; + } + NV_INLINE bool done() const + { + check(); + return mEntry == mBase.EOL; + } + + private: + NV_INLINE void advance() + { + mEntry = mBase.mEntriesNext[mEntry]; + skip(); + } + NV_INLINE void skip() + { + while(mEntry == mBase.EOL) + { + if(++mBucket == mBase.mHashSize) + break; + mEntry = mBase.mHash[mBucket]; + } + } + + Iter& operator=(const Iter&); + + uint32_t mBucket; + uint32_t mEntry; + uint32_t mTimestamp; + HashBase& mBase; + }; +}; + +template +template +NV_NOINLINE void +HashBase::copy(const HashBase& other) +{ + reserve(other.mEntriesCount); + + for(uint32_t i = 0; i < other.mEntriesCount; i++) + { + for(uint32_t j = other.mHash[i]; j != EOL; j = other.mEntriesNext[j]) + { + const Entry& otherEntry = other.mEntries[j]; + + bool exists; + Entry* newEntry = create(GK()(otherEntry), exists); + NV_ASSERT(!exists); + + NV_PLACEMENT_NEW(newEntry, Entry)(otherEntry); + } + } +} + +template ::Type, bool Coalesced = false> +class HashSetBase +{ + NV_NOCOPY(HashSetBase) + public: + struct GetKey + { + NV_INLINE const Key& operator()(const Key& e) + { + return e; + } + }; + + typedef HashBase BaseMap; + typedef typename BaseMap::Iter Iterator; + + HashSetBase(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) + : mBase(initialTableSize, loadFactor, alloc) + { + } + + HashSetBase(const Allocator& alloc) : mBase(64, 0.75f, alloc) + { + } + + HashSetBase(uint32_t initialTableSize = 64, float loadFactor = 0.75f) : mBase(initialTableSize, loadFactor) + { + } + + bool insert(const Key& k) + { + bool exists; + Key* e = mBase.create(k, exists); + if(!exists) + NV_PLACEMENT_NEW(e, Key)(k); + return !exists; + } + + NV_INLINE bool contains(const Key& k) const + { + return mBase.find(k) != 0; + } + NV_INLINE bool erase(const Key& k) + { + return mBase.erase(k); + } + NV_INLINE uint32_t size() const + { + return mBase.size(); + } + NV_INLINE uint32_t capacity() const + { + return mBase.capacity(); + } + NV_INLINE void reserve(uint32_t size) + { + mBase.reserve(size); + } + NV_INLINE void clear() + { + mBase.clear(); + } + + protected: + BaseMap mBase; +}; + +template >::Type> +class HashMapBase +{ + NV_NOCOPY(HashMapBase) + public: + typedef Pair Entry; + + struct GetKey + { + NV_INLINE const Key& operator()(const Entry& e) + { + return e.first; + } + }; + + typedef HashBase BaseMap; + typedef typename BaseMap::Iter Iterator; + + HashMapBase(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) + : mBase(initialTableSize, loadFactor, alloc) + { + } + + HashMapBase(const Allocator& alloc) : mBase(64, 0.75f, alloc) + { + } + + HashMapBase(uint32_t initialTableSize = 64, float loadFactor = 0.75f) : mBase(initialTableSize, loadFactor) + { + } + + bool insert(const Key /*&*/ k, const Value /*&*/ v) + { + bool exists; + Entry* e = mBase.create(k, exists); + if(!exists) + NV_PLACEMENT_NEW(e, Entry)(k, v); + return !exists; + } + + Value& operator[](const Key& k) + { + bool exists; + Entry* e = mBase.create(k, exists); + if(!exists) + NV_PLACEMENT_NEW(e, Entry)(k, Value()); + + return e->second; + } + + NV_INLINE const Entry* find(const Key& k) const + { + return mBase.find(k); + } + NV_INLINE bool erase(const Key& k) + { + return mBase.erase(k); + } + NV_INLINE uint32_t size() const + { + return mBase.size(); + } + NV_INLINE uint32_t capacity() const + { + return mBase.capacity(); + } + NV_INLINE Iterator getIterator() + { + return Iterator(mBase); + } + NV_INLINE void reserve(uint32_t size) + { + mBase.reserve(size); + } + NV_INLINE void clear() + { + mBase.clear(); + } + + protected: + BaseMap mBase; +}; +} + +} // namespace shdfnd +} // namespace nvidia + +#if NV_VC +#pragma warning(pop) +#endif +#endif // #ifndef NV_NSFOUNDATION_NSHASHINTERNALS_H diff --git a/blast/source/shared/NsFoundation/include/NsHashMap.h b/blast/source/shared/NsFoundation/include/NsHashMap.h new file mode 100644 index 000000000..0b9843422 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsHashMap.h @@ -0,0 +1,117 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSHASHMAP_H +#define NV_NSFOUNDATION_NSHASHMAP_H + +#include "NsHashInternals.h" + +// TODO: make this doxy-format +// +// This header defines two hash maps. Hash maps +// * support custom initial table sizes (rounded up internally to power-of-2) +// * support custom static allocator objects +// * auto-resize, based on a load factor (i.e. a 64-entry .75 load factor hash will resize +// when the 49th element is inserted) +// * are based on open hashing +// * have O(1) contains, erase +// +// Maps have STL-like copying semantics, and properly initialize and destruct copies of objects +// +// There are two forms of map: coalesced and uncoalesced. Coalesced maps keep the entries in the +// initial segment of an array, so are fast to iterate over; however deletion is approximately +// twice as expensive. +// +// HashMap: +// bool insert(const Key& k, const Value& v) O(1) amortized (exponential resize policy) +// Value & operator[](const Key& k) O(1) for existing objects, else O(1) amortized +// const Entry * find(const Key& k); O(1) +// bool erase(const T& k); O(1) +// uint32_t size(); constant +// void reserve(uint32_t size); O(MAX(currentOccupancy,size)) +// void clear(); O(currentOccupancy) (with zero constant for objects +// without +// destructors) +// Iterator getIterator(); +// +// operator[] creates an entry if one does not exist, initializing with the default constructor. +// CoalescedHashMap does not support getIterator, but instead supports +// const Key *getEntries(); +// +// Use of iterators: +// +// for(HashMap::Iterator iter = test.getIterator(); !iter.done(); ++iter) +// myFunction(iter->first, iter->second); + +namespace nvidia +{ +namespace shdfnd +{ +template , class Allocator = NonTrackingAllocator> +class HashMap : public internal::HashMapBase +{ + public: + typedef internal::HashMapBase HashMapBase; + typedef typename HashMapBase::Iterator Iterator; + + HashMap(uint32_t initialTableSize = 64, float loadFactor = 0.75f) : HashMapBase(initialTableSize, loadFactor) + { + } + HashMap(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) + : HashMapBase(initialTableSize, loadFactor, alloc) + { + } + HashMap(const Allocator& alloc) : HashMapBase(64, 0.75f, alloc) + { + } + Iterator getIterator() + { + return Iterator(HashMapBase::mBase); + } +}; + +template , class Allocator = NonTrackingAllocator> +class CoalescedHashMap : public internal::HashMapBase +{ + public: + typedef internal::HashMapBase HashMapBase; + + CoalescedHashMap(uint32_t initialTableSize = 64, float loadFactor = 0.75f) + : HashMapBase(initialTableSize, loadFactor) + { + } + const Pair* getEntries() const + { + return HashMapBase::mBase.getEntries(); + } +}; + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSHASHMAP_H diff --git a/blast/source/shared/NsFoundation/include/NsHashSet.h b/blast/source/shared/NsFoundation/include/NsHashSet.h new file mode 100644 index 000000000..754e5f73d --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsHashSet.h @@ -0,0 +1,126 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSHASHSET_H +#define NV_NSFOUNDATION_NSHASHSET_H + +#include "NsHashInternals.h" + +// TODO: make this doxy-format + +// This header defines two hash sets. Hash sets +// * support custom initial table sizes (rounded up internally to power-of-2) +// * support custom static allocator objects +// * auto-resize, based on a load factor (i.e. a 64-entry .75 load factor hash will resize +// when the 49th element is inserted) +// * are based on open hashing +// +// Sets have STL-like copying semantics, and properly initialize and destruct copies of objects +// +// There are two forms of set: coalesced and uncoalesced. Coalesced sets keep the entries in the +// initial segment of an array, so are fast to iterate over; however deletion is approximately +// twice as expensive. +// +// HashSet: +// bool insert(const T& k) amortized O(1) (exponential resize policy) +// bool contains(const T& k) const; O(1) +// bool erase(const T& k); O(1) +// uint32_t size() const; constant +// void reserve(uint32_t size); O(MAX(size, currentOccupancy)) +// void clear(); O(currentOccupancy) (with zero constant for objects without +// destructors) +// Iterator getIterator(); +// +// Use of iterators: +// +// for(HashSet::Iterator iter = test.getIterator(); !iter.done(); ++iter) +// myFunction(*iter); +// +// CoalescedHashSet does not support getIterator, but instead supports +// const Key *getEntries(); +// +// insertion into a set already containing the element fails returning false, as does +// erasure of an element not in the set +// + +namespace nvidia +{ +namespace shdfnd +{ +template , class Allocator = NonTrackingAllocator> +class HashSet : public internal::HashSetBase +{ + public: + typedef internal::HashSetBase HashSetBase; + typedef typename HashSetBase::Iterator Iterator; + + HashSet(uint32_t initialTableSize = 64, float loadFactor = 0.75f) : HashSetBase(initialTableSize, loadFactor) + { + } + HashSet(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) + : HashSetBase(initialTableSize, loadFactor, alloc) + { + } + HashSet(const Allocator& alloc) : HashSetBase(64, 0.75f, alloc) + { + } + Iterator getIterator() + { + return Iterator(HashSetBase::mBase); + } +}; + +template , class Allocator = NonTrackingAllocator> +class CoalescedHashSet : public internal::HashSetBase +{ + public: + typedef typename internal::HashSetBase HashSetBase; + + CoalescedHashSet(uint32_t initialTableSize = 64, float loadFactor = 0.75f) + : HashSetBase(initialTableSize, loadFactor) + { + } + + CoalescedHashSet(uint32_t initialTableSize, float loadFactor, const Allocator& alloc) + : HashSetBase(initialTableSize, loadFactor, alloc) + { + } + CoalescedHashSet(const Allocator& alloc) : HashSetBase(64, 0.75f, alloc) + { + } + + const Key* getEntries() const + { + return HashSetBase::mBase.getEntries(); + } +}; + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSHASHSET_H diff --git a/blast/source/shared/NsFoundation/include/NsInlineAllocator.h b/blast/source/shared/NsFoundation/include/NsInlineAllocator.h new file mode 100644 index 000000000..4a030299d --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsInlineAllocator.h @@ -0,0 +1,90 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSINLINEALLOCATOR_H +#define NV_NSFOUNDATION_NSINLINEALLOCATOR_H + +#include "NsUserAllocated.h" + +namespace nvidia +{ +namespace shdfnd +{ +// this is used by the array class to allocate some space for a small number +// of objects along with the metadata +template +class InlineAllocator : private BaseAllocator +{ + public: + InlineAllocator(const NvEMPTY v) : BaseAllocator(v) + { + } + + InlineAllocator(const BaseAllocator& alloc = BaseAllocator()) : BaseAllocator(alloc), mBufferUsed(false) + { + } + + InlineAllocator(const InlineAllocator& aloc) : BaseAllocator(aloc), mBufferUsed(false) + { + } + + void* allocate(uint32_t size, const char* filename, int line) + { + if(!mBufferUsed && size <= N) + { + mBufferUsed = true; + return mBuffer; + } + return BaseAllocator::allocate(size, filename, line); + } + + void deallocate(void* ptr) + { + if(ptr == mBuffer) + mBufferUsed = false; + else + BaseAllocator::deallocate(ptr); + } + + NV_FORCE_INLINE uint8_t* getInlineBuffer() + { + return mBuffer; + } + NV_FORCE_INLINE bool isBufferUsed() const + { + return mBufferUsed; + } + + protected: + uint8_t mBuffer[N]; + bool mBufferUsed; +}; +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSINLINEALLOCATOR_H diff --git a/blast/source/shared/NsFoundation/include/NsInlineAoS.h b/blast/source/shared/NsFoundation/include/NsInlineAoS.h new file mode 100644 index 000000000..f2dcd860f --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsInlineAoS.h @@ -0,0 +1,54 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_INLINE_AOS_H +#define PS_INLINE_AOS_H + +#include "NvPreprocessor.h" + +#if NV_WINDOWS_FAMILY + #include "platform/windows/NsWindowsTrigConstants.h" + #include "platform/windows/NsWindowsInlineAoS.h" +#elif NV_X360 + #include "xbox360/NsXbox360InlineAoS.h" +#elif (NV_LINUX || NV_ANDROID || NV_APPLE || NV_PS4 || (NV_WINRT && NV_NEON)) + #include "platform/unix/NsUnixTrigConstants.h" + #include "platform/unix/NsUnixInlineAoS.h" +#elif NV_PS3 + #include "ps3/NsPS3InlineAoS.h" +#elif NV_PSP2 + #include "psp2/NsPSP2InlineAoS.h" +#elif NV_XBOXONE + #include "XboxOne/NsXboxOneTrigConstants.h" + #include "XboxOne/NsXboxOneInlineAoS.h" +#else + #error "Platform not supported!" +#endif + +#endif + diff --git a/blast/source/sdk/common/NvBlastPxCallbacks.h b/blast/source/shared/NsFoundation/include/NsInlineArray.h similarity index 51% rename from blast/source/sdk/common/NvBlastPxCallbacks.h rename to blast/source/shared/NsFoundation/include/NsInlineArray.h index 765925e2c..999460335 100644 --- a/blast/source/sdk/common/NvBlastPxCallbacks.h +++ b/blast/source/shared/NsFoundation/include/NsInlineArray.h @@ -22,51 +22,46 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. +#ifndef NV_NSFOUNDATION_NSINLINEARRAY_H +#define NV_NSFOUNDATION_NSINLINEARRAY_H -#ifndef NVBLASTPXCALLBACKS_H -#define NVBLASTPXCALLBACKS_H +#include "NsArray.h" +#include "NsInlineAllocator.h" -#include "NvBlastGlobals.h" -#include "foundation/PxErrorCallback.h" -#include "foundation/PxAllocatorCallback.h" - -/** -This file contains helper functions to get PxShared compatible versions of global AllocatorCallback and ErrorCallback. -*/ - - -NV_INLINE physx::PxErrorCallback& NvBlastGetPxErrorCallback() +namespace nvidia +{ +namespace shdfnd { - class PxErrorCallbackWrapper : public physx::PxErrorCallback - { - virtual void reportError(physx::PxErrorCode::Enum code, const char* message, const char* file, int line) override - { - NvBlastGlobalGetErrorCallback()->reportError((Nv::Blast::ErrorCode::Enum)code, message, file, line); - } - }; - static PxErrorCallbackWrapper wrapper; - return wrapper; -} -NV_INLINE physx::PxAllocatorCallback& NvBlastGetPxAllocatorCallback() +// array that pre-allocates for N elements +template ::Type> +class InlineArray : public Array > { - class PxAllocatorCallbackWrapper : public physx::PxAllocatorCallback + typedef InlineAllocator Allocator; + + public: + InlineArray(const NvEMPTY v) : Array(v) { - virtual void* allocate(size_t size, const char* typeName, const char* filename, int line) override - { - return NvBlastGlobalGetAllocatorCallback()->allocate(size, typeName, filename, line); - } + if(isInlined()) + this->mData = reinterpret_cast(Array::getInlineBuffer()); + } - virtual void deallocate(void* ptr) override - { - NvBlastGlobalGetAllocatorCallback()->deallocate(ptr); - } - }; - static PxAllocatorCallbackWrapper wrapper; - return wrapper; -} + NV_INLINE bool isInlined() const + { + return Allocator::isBufferUsed(); + } + NV_INLINE explicit InlineArray(const Alloc& alloc = Alloc()) : Array(alloc) + { + this->mData = this->allocate(N); + this->mCapacity = N; + } +}; +} // namespace shdfnd +} // namespace nvidia -#endif // #ifndef NVBLASTPXCALLBACKS_H +#endif // #ifndef NV_NSFOUNDATION_NSINLINEARRAY_H diff --git a/blast/source/shared/NsFoundation/include/NsIntrinsics.h b/blast/source/shared/NsFoundation/include/NsIntrinsics.h new file mode 100644 index 000000000..f0c208124 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsIntrinsics.h @@ -0,0 +1,52 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSINTRINSICS_H +#define NV_NSFOUNDATION_NSINTRINSICS_H + +#include "NvPreprocessor.h" + +#if(NV_WINDOWS_FAMILY || NV_WINRT) +#include "platform/windows/NsWindowsIntrinsics.h" +#elif NV_X360 +#include "xbox360/NsXbox360Intrinsics.h" +#elif(NV_LINUX || NV_ANDROID || NV_APPLE_FAMILY || NV_PS4) +#include "platform/unix/NsUnixIntrinsics.h" +#elif NV_PS3 +#include "ps3/NsPS3Intrinsics.h" +#elif NV_PSP2 +#include "psp2/NsPSP2Intrinsics.h" +#elif NV_WIIU +#include "wiiu/NsWiiUIntrinsics.h" +#elif NV_XBOXONE +#include "XboxOne/NsXboxOneIntrinsics.h" +#else +#error "Platform not supported!" +#endif + +#endif // #ifndef NV_NSFOUNDATION_NSINTRINSICS_H diff --git a/blast/source/shared/NsFoundation/include/NsUserAllocated.h b/blast/source/shared/NsFoundation/include/NsUserAllocated.h new file mode 100644 index 000000000..25339f329 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsUserAllocated.h @@ -0,0 +1,91 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_NSFOUNDATION_NSUSERALLOCATED_H +#define NV_NSFOUNDATION_NSUSERALLOCATED_H + +#include "NsAllocator.h" + +namespace nvidia +{ +namespace shdfnd +{ +/** +Provides new and delete using a UserAllocator. +Guarantees that 'delete x;' uses the UserAllocator too. +*/ +class UserAllocated +{ + public: + // NV_SERIALIZATION + NV_INLINE void* operator new(size_t, void* address) + { + return address; + } + //~NV_SERIALIZATION + // Matching operator delete to the above operator new. Don't ask me + // how this makes any sense - Nuernberger. + NV_INLINE void operator delete(void*, void*) + { + } + + template + NV_INLINE void* operator new(size_t size, Alloc alloc, const char* fileName, int line) + { + return alloc.allocate(size, fileName, line); + } + template + NV_INLINE void* operator new [](size_t size, Alloc alloc, const char* fileName, int line) + { return alloc.allocate(size, fileName, line); } + + // placement delete + template + NV_INLINE void operator delete(void* ptr, Alloc alloc, const char* fileName, int line) + { + NV_UNUSED(fileName); + NV_UNUSED(line); + alloc.deallocate(ptr); + } + template + NV_INLINE void operator delete [](void* ptr, Alloc alloc, const char* fileName, int line) + { + NV_UNUSED(fileName); + NV_UNUSED(line); + alloc.deallocate(ptr); + } NV_INLINE void + operator delete(void* ptr) + { + NonTrackingAllocator().deallocate(ptr); + } + NV_INLINE void operator delete [](void* ptr) + { NonTrackingAllocator().deallocate(ptr); } +}; +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_NSFOUNDATION_NSUSERALLOCATED_H diff --git a/blast/source/shared/NsFoundation/include/NsVecMath.h b/blast/source/shared/NsFoundation/include/NsVecMath.h new file mode 100644 index 000000000..c23919b23 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsVecMath.h @@ -0,0 +1,1330 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_PHYSICS_COMMON_VECMATH +#define NV_PHYSICS_COMMON_VECMATH + +#include "Ns.h" +#include "NsIntrinsics.h" +#include "NvPreprocessor.h" + +#include "NvVec3.h" +#include "NvVec4.h" +#include "NvMat33.h" + +#include "NvUnionCast.h" + +//We can activate asserts in vectorised functions for testing. +//NEVER submit with asserts activated. +//Only activate asserts for local testing. +#define AOS_ASSERTS_ON 0 + +//We can opt to use the scalar version of vectorised functions. +//This can catch type safety issues and might even work out more optimal on pc. +//It will also be useful for benchmarking and testing. +//NEVER submit with vector intrinsics deactivated without good reason. +//AM: deactivating SIMD for debug win64 just so autobuild will also exercise +//non-SIMD path, until a dedicated non-SIMD platform sich as Arm comes online. +//TODO: dima: reference all platforms with SIMD support here, +//all unknown/experimental cases should better default to NO SIMD. + +#if NV_X86 || NV_X64 || NV_WINRT || NV_PS3 || NV_X360 || (NV_LINUX && (NV_X86 || NV_X64)) || (NV_ANDROID && NV_NEON) || NV_XBOXONE +#define COMPILE_VECTOR_INTRINSICS 1 // use SIMD +#else +#define COMPILE_VECTOR_INTRINSICS 0 // do not use SIMD +#endif + +#if AOS_ASSERTS_ON +#define VECMATHAOS_ASSERT NV_ASSERT +#else +#define VECMATHAOS_ASSERT(x) {} +#endif + +#if COMPILE_VECTOR_INTRINSICS && (NV_X86 || NV_X64) && (NV_LINUX || NV_ANDROID || NV_APPLE || NV_PS4 || (NV_WINRT && NV_NEON)) +// only SSE2 compatible platforms should reach this +#include +#endif + +namespace nvidia +{ +namespace shdfnd +{ +namespace aos +{ + +//Basic AoS types are +//FloatV - 16-byte aligned representation of float. +//Vec3V - 16-byte aligned representation of NvVec3 stored as (x y z 0). +//Vec4V - 16-byte aligned representation of vector of 4 floats stored as (x y z w). +//BoolV - 16-byte aligned representation of vector of 4 bools stored as (x y z w). +//VecU32V - 16-byte aligned representation of 4 unsigned ints stored as (x y z w). +//VecI32V - 16-byte aligned representation of 4 signed ints stored as (x y z w). +//Mat33V - 16-byte aligned representation of any 3x3 matrix. +//Mat34V - 16-byte aligned representation of transformation matrix (rotation in col1,col2,col3 and translation in col4). +//Mat44V - 16-byte aligned representation of any 4x4 matrix. + +#if COMPILE_VECTOR_INTRINSICS +#include "NsAoS.h" +#else +#include "NsVecMathAoSScalar.h" +#endif + + +////////////////////////////////////////// +//Construct a simd type from a scalar type +////////////////////////////////////////// + +//FloatV +//(f,f,f,f) +NV_FORCE_INLINE FloatV FLoad(const float f); + +//Vec3V +//(f,f,f,0) +NV_FORCE_INLINE Vec3V V3Load(const float f); +//(f.x,f.y,f.z,0) +NV_FORCE_INLINE Vec3V V3LoadU(const NvVec3& f); +//(f.x,f.y,f.z,0), f must be 16-byte aligned +NV_FORCE_INLINE Vec3V V3LoadA(const NvVec3& f); +//(f.x,f.y,f.z,w_undefined), f must be 16-byte aligned +NV_FORCE_INLINE Vec3V V3LoadUnsafeA(const NvVec3& f); +//(f.x,f.y,f.z,0) +NV_FORCE_INLINE Vec3V V3LoadU(const float* f); +//(f.x,f.y,f.z,0), f must be 16-byte aligned +NV_FORCE_INLINE Vec3V V3LoadA(const float* f); + +//Vec4V +//(f,f,f,f) +NV_FORCE_INLINE Vec4V V4Load(const float f); +//(f[0],f[1],f[2],f[3]) +NV_FORCE_INLINE Vec4V V4LoadU(const float* const f); +//(f[0],f[1],f[2],f[3]), f must be 16-byte aligned +NV_FORCE_INLINE Vec4V V4LoadA(const float* const f); +//(x,y,z,w) +NV_FORCE_INLINE Vec4V V4LoadXYZW(const float& x, const float& y, const float& z, const float& w); + +//BoolV +//(f,f,f,f) +NV_FORCE_INLINE BoolV BLoad(const bool f); +//(f[0],f[1],f[2],f[3]) +NV_FORCE_INLINE BoolV BLoad(const bool* const f); + + +//VecU32V +//(f,f,f,f) +NV_FORCE_INLINE VecU32V U4Load(const uint32_t f); +//(f[0],f[1],f[2],f[3]) +NV_FORCE_INLINE VecU32V U4LoadU(const uint32_t* f); +//(f[0],f[1],f[2],f[3]), f must be 16-byte aligned +NV_FORCE_INLINE VecU32V U4LoadA(const uint32_t* f); +//((U32)x, (U32)y, (U32)z, (U32)w) +NV_DEPRECATED NV_FORCE_INLINE VecU32V VecU32VLoadXYZW(uint32_t x, uint32_t y, uint32_t z, uint32_t w); + +//VecI32V +//(i,i,i,i) +NV_FORCE_INLINE VecI32V I4Load(const int32_t i); +//(i,i,i,i) +NV_FORCE_INLINE VecI32V I4LoadU(const int32_t* i); +//(i,i,i,i) +NV_FORCE_INLINE VecI32V I4LoadA(const int32_t* i); + +//QuatV +//(x = v[0], y=v[1], z=v[2], w=v3[3]) and array don't need to aligned +NV_FORCE_INLINE QuatV QuatVLoadU(const float* v); +//(x = v[0], y=v[1], z=v[2], w=v3[3]) and array need to aligned, fast load +NV_FORCE_INLINE QuatV QuatVLoadA(const float* v); +//(x, y, z, w) +NV_DEPRECATED NV_FORCE_INLINE QuatV QuatVLoadXYZW(const float x, const float y, const float z, const float w); + + +//not added to public api +Vec4V Vec4V_From_NvVec3_WUndefined(const NvVec3& v); + +/////////////////////////////////////////////////// +//Construct a simd type from a different simd type +/////////////////////////////////////////////////// + +//Vec3V +//(v.x,v.y,v.z,0) +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V(Vec4V v) ; +//(v.x,v.y,v.z,undefined) +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V_WUndefined(const Vec4V v); + +//Vec4V +//(f.x,f.y,f.z,f.w) +NV_FORCE_INLINE Vec4V Vec4V_From_Vec3V(Vec3V f); +//((float)f.x, (float)f.y, (float)f.z, (float)f.w) +NV_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a); +//((float)f.x, (float)f.y, (float)f.z, (float)f.w) +NV_FORCE_INLINE Vec4V Vec4V_From_VecI32V(VecI32V a); +//(*(reinterpret_cast(&f.x), (reinterpret_cast(&f.y), (reinterpret_cast(&f.z), (reinterpret_cast(&f.w)) +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecU32V(VecU32V a); +//(*(reinterpret_cast(&f.x), (reinterpret_cast(&f.y), (reinterpret_cast(&f.z), (reinterpret_cast(&f.w)) +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecI32V(VecI32V a); + +//VecU32V +//(*(reinterpret_cast(&f.x), (reinterpret_cast(&f.y), (reinterpret_cast(&f.z), (reinterpret_cast(&f.w)) +NV_FORCE_INLINE VecU32V VecU32V_ReinterpretFrom_Vec4V(Vec4V a); +//(b[0], b[1], b[2], b[3]) +NV_DEPRECATED NV_FORCE_INLINE VecU32V VecU32V_From_BoolV(const BoolVArg b); + +//VecI32V +//(*(reinterpret_cast(&f.x), (reinterpret_cast(&f.y), (reinterpret_cast(&f.z), (reinterpret_cast(&f.w)) +NV_FORCE_INLINE VecI32V VecI32V_ReinterpretFrom_Vec4V(Vec4V a); +//((I32)a.x, (I32)a.y, (I32)a.z, (I32)a.w) +NV_DEPRECATED NV_FORCE_INLINE VecI32V VecI32V_From_Vec4V(Vec4V a); +//((I32)b.x, (I32)b.y, (I32)b.z, (I32)b.w) +NV_DEPRECATED NV_FORCE_INLINE VecI32V VecI32V_From_BoolV(const BoolVArg b); + + +/////////////////////////////////////////////////// +//Convert from a simd type back to a scalar type +/////////////////////////////////////////////////// + +//FloatV +//a.x +NV_DEPRECATED NV_FORCE_INLINE float FStore(const FloatV a); +//a.x +NV_FORCE_INLINE void FStore(const FloatV a, float* NV_RESTRICT f); + +//Vec3V +//(a.x,a.y,a.z) +NV_FORCE_INLINE void V3StoreA(const Vec3V a, NvVec3& f); +//(a.x,a.y,a.z) +NV_FORCE_INLINE void V3StoreU(const Vec3V a, NvVec3& f); + +//Vec4V +NV_FORCE_INLINE void V4StoreA(const Vec4V a, float* f); +NV_FORCE_INLINE void V4StoreU(const Vec4V a, float* f); + +//BoolV +NV_FORCE_INLINE void BStoreA(const BoolV b, uint32_t* f); + +//VecU32V +NV_FORCE_INLINE void U4StoreA(const VecU32V uv, uint32_t* u); + +//VecI32V +NV_FORCE_INLINE void I4StoreA(const VecI32V iv, int32_t* i); + + +////////////////////////////////////////////////////////////////// +//Test that simd types have elements in the floating point range +////////////////////////////////////////////////////////////////// + +//check for each component is valid ie in floating point range +NV_FORCE_INLINE bool isFiniteFloatV(const FloatV a); +//check for each component is valid ie in floating point range +NV_FORCE_INLINE bool isFiniteVec3V(const Vec3V a); +//check for each component is valid ie in floating point range +NV_FORCE_INLINE bool isFiniteVec4V(const Vec4V a); + +//Check that w-component is zero. +NV_FORCE_INLINE bool isValidVec3V(const Vec3V a); + + +////////////////////////////////////////////////////////////////// +//Tests that all elements of two 16-byte types are completely equivalent. +//Use these tests for unit testing and asserts only. +////////////////////////////////////////////////////////////////// + +namespace _VecMathTests +{ + NV_FORCE_INLINE bool allElementsEqualFloatV(const FloatV a, const FloatV b); + NV_FORCE_INLINE bool allElementsEqualVec3V(const Vec3V a, const Vec3V b); + NV_FORCE_INLINE bool allElementsEqualVec4V(const Vec4V a, const Vec4V b); + NV_FORCE_INLINE bool allElementsEqualBoolV(const BoolV a, const BoolV b); + NV_FORCE_INLINE bool allElementsEqualVecU32V(const VecU32V a, const VecU32V b); + NV_FORCE_INLINE bool allElementsEqualVecI32V(const VecI32V a, const VecI32V b); + + NV_FORCE_INLINE bool allElementsEqualMat33V(const Mat33V& a, const Mat33V& b) + { + return + ( + allElementsEqualVec3V(a.col0,b.col0) && + allElementsEqualVec3V(a.col1,b.col1) && + allElementsEqualVec3V(a.col2,b.col2) + ); + } + NV_FORCE_INLINE bool allElementsEqualMat34V(const Mat34V& a, const Mat34V& b) + { + return + ( + allElementsEqualVec3V(a.col0,b.col0) && + allElementsEqualVec3V(a.col1,b.col1) && + allElementsEqualVec3V(a.col2,b.col2) && + allElementsEqualVec3V(a.col3,b.col3) + ); + } + NV_FORCE_INLINE bool allElementsEqualMat44V(const Mat44V& a, const Mat44V& b) + { + return + ( + allElementsEqualVec4V(a.col0,b.col0) && + allElementsEqualVec4V(a.col1,b.col1) && + allElementsEqualVec4V(a.col2,b.col2) && + allElementsEqualVec4V(a.col3,b.col3) + ); + } + + NV_FORCE_INLINE bool allElementsNearEqualFloatV(const FloatV a, const FloatV b); + NV_FORCE_INLINE bool allElementsNearEqualVec3V(const Vec3V a, const Vec3V b); + NV_FORCE_INLINE bool allElementsNearEqualVec4V(const Vec4V a, const Vec4V b); + NV_FORCE_INLINE bool allElementsNearEqualMat33V(const Mat33V& a, const Mat33V& b) + { + return + ( + allElementsNearEqualVec3V(a.col0,b.col0) && + allElementsNearEqualVec3V(a.col1,b.col1) && + allElementsNearEqualVec3V(a.col2,b.col2) + ); + } + NV_FORCE_INLINE bool allElementsNearEqualMat34V(const Mat34V& a, const Mat34V& b) + { + return + ( + allElementsNearEqualVec3V(a.col0,b.col0) && + allElementsNearEqualVec3V(a.col1,b.col1) && + allElementsNearEqualVec3V(a.col2,b.col2) && + allElementsNearEqualVec3V(a.col3,b.col3) + ); + } + NV_FORCE_INLINE bool allElementsNearEqualMat44V(const Mat44V& a, const Mat44V& b) + { + return + ( + allElementsNearEqualVec4V(a.col0,b.col0) && + allElementsNearEqualVec4V(a.col1,b.col1) && + allElementsNearEqualVec4V(a.col2,b.col2) && + allElementsNearEqualVec4V(a.col3,b.col3) + ); + } + +}; + +////////////////////////////////////////////////////////////////// +//Math operations on FloatV +////////////////////////////////////////////////////////////////// + +//(0,0,0,0) +NV_FORCE_INLINE FloatV FZero(); +//(1,1,1,1) +NV_FORCE_INLINE FloatV FOne(); +//(0.5,0.5,0.5,0.5) +NV_FORCE_INLINE FloatV FHalf(); +//(NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL) +NV_FORCE_INLINE FloatV FEps(); +//(NV_MAX_REAL, NV_MAX_REAL, NV_MAX_REAL NV_MAX_REAL) +NV_FORCE_INLINE FloatV FMax(); +//(-NV_MAX_REAL, -NV_MAX_REAL, -NV_MAX_REAL -NV_MAX_REAL) +NV_FORCE_INLINE FloatV FNegMax(); +//(1e-6f, 1e-6f, 1e-6f, 1e-6f) +NV_FORCE_INLINE FloatV FEps6(); +//((float*)&1, (float*)&1, (float*)&1, (float*)&1) + +//-f (per component) +NV_FORCE_INLINE FloatV FNeg(const FloatV f) ; +//a+b (per component) +NV_FORCE_INLINE FloatV FAdd(const FloatV a, const FloatV b); +//a-b (per component) +NV_FORCE_INLINE FloatV FSub(const FloatV a, const FloatV b) ; +//a*b (per component) +NV_FORCE_INLINE FloatV FMul(const FloatV a, const FloatV b) ; +//a/b (per component) +NV_FORCE_INLINE FloatV FDiv(const FloatV a, const FloatV b); +//a/b (per component) +NV_FORCE_INLINE FloatV FDivFast(const FloatV a, const FloatV b); +//1.0f/a +NV_FORCE_INLINE FloatV FRecip(const FloatV a); +//1.0f/a +NV_FORCE_INLINE FloatV FRecipFast(const FloatV a); +//1.0f/sqrt(a) +NV_FORCE_INLINE FloatV FRsqrt(const FloatV a); +//1.0f/sqrt(a) +NV_FORCE_INLINE FloatV FRsqrtFast(const FloatV a); +//sqrt(a) +NV_FORCE_INLINE FloatV FSqrt(const FloatV a); +//a*b+c +NV_FORCE_INLINE FloatV FScaleAdd(const FloatV a, const FloatV b, const FloatV c); +//c-a*b +NV_FORCE_INLINE FloatV FNegScaleSub(const FloatV a, const FloatV b, const FloatV c); +//fabs(a) +NV_FORCE_INLINE FloatV FAbs(const FloatV a); +//c ? a : b (per component) +NV_FORCE_INLINE FloatV FSel(const BoolV c, const FloatV a, const FloatV b); +//a>b (per component) +NV_FORCE_INLINE BoolV FIsGrtr(const FloatV a, const FloatV b); +//a>=b (per component) +NV_FORCE_INLINE BoolV FIsGrtrOrEq(const FloatV a, const FloatV b); +//a==b (per component) +NV_FORCE_INLINE BoolV FIsEq(const FloatV a, const FloatV b); +//Max(a,b) (per component) +NV_FORCE_INLINE FloatV FMax(const FloatV a, const FloatV b); +//Min(a,b) (per component) +NV_FORCE_INLINE FloatV FMin(const FloatV a, const FloatV b); +//Clamp(a,b) (per component) +NV_FORCE_INLINE FloatV FClamp(const FloatV a, const FloatV minV, const FloatV maxV); + +//a*b+c +NV_DEPRECATED NV_FORCE_INLINE FloatV FMulAdd(const FloatV a, const FloatV b, const FloatV c) { return FScaleAdd(a,b,c); } +//c-a*b +NV_DEPRECATED NV_FORCE_INLINE FloatV FNegMulSub(const FloatV a, const FloatV b, const FloatV c) { return FNegScaleSub(a,b,c); } + +//a.x>b.x +NV_FORCE_INLINE uint32_t FAllGrtr(const FloatV a, const FloatV b); +//a.x>=b.x +NV_FORCE_INLINE uint32_t FAllGrtrOrEq(const FloatV a, const FloatV b); +//a.x==b.x +NV_FORCE_INLINE uint32_t FAllEq(const FloatV a, const FloatV b); +//amax +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV min, const FloatV max); +//a>=min && a<=max +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV min, const FloatV max); +//a<-bounds || a>bounds +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV bounds); +//a>=-bounds && a<=bounds +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV bounds); + +//round float a to the near int +NV_FORCE_INLINE FloatV FRound(const FloatV a); +//calculate the sin of float a +NV_FORCE_INLINE FloatV FSin(const FloatV a); +//calculate the cos of float b +NV_FORCE_INLINE FloatV FCos(const FloatV a); + + +////////////////////////////////////////////////////////////////// +//Math operations on Vec3V +////////////////////////////////////////////////////////////////// + + +//(f,f,f,f) +NV_FORCE_INLINE Vec3V V3Splat(const FloatV f); + +//(x,y,z) +NV_FORCE_INLINE Vec3V V3Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z); + +//(1,0,0,0) +NV_FORCE_INLINE Vec3V V3UnitX(); +//(0,1,0,0) +NV_FORCE_INLINE Vec3V V3UnitY(); +//(0,0,1,0) +NV_FORCE_INLINE Vec3V V3UnitZ(); + +//(f.x,f.x,f.x,f.x) +NV_FORCE_INLINE FloatV V3GetX(const Vec3V f); +//(f.y,f.y,f.y,f.y) +NV_FORCE_INLINE FloatV V3GetY(const Vec3V f); +//(f.z,f.z,f.z,f.z) +NV_FORCE_INLINE FloatV V3GetZ(const Vec3V f); + +//(f,v.y,v.z,v.w) +NV_FORCE_INLINE Vec3V V3SetX(const Vec3V v, const FloatV f); +//(v.x,f,v.z,v.w) +NV_FORCE_INLINE Vec3V V3SetY(const Vec3V v, const FloatV f); +//(v.x,v.y,f,v.w) +NV_FORCE_INLINE Vec3V V3SetZ(const Vec3V v, const FloatV f); + +//v.x=f +NV_FORCE_INLINE void V3WriteX(Vec3V& v, const float f); +//v.y=f +NV_FORCE_INLINE void V3WriteY(Vec3V& v, const float f); +//v.z=f +NV_FORCE_INLINE void V3WriteZ(Vec3V& v, const float f); +//v.x=f.x, v.y=f.y, v.z=f.z +NV_FORCE_INLINE void V3WriteXYZ(Vec3V& v, const NvVec3& f); +//return v.x +NV_FORCE_INLINE float V3ReadX(const Vec3V& v); +//return v.y +NV_FORCE_INLINE float V3ReadY(const Vec3V& v); +//return v.y +NV_FORCE_INLINE float V3ReadZ(const Vec3V& v); +//return (v.x,v.y,v.z) +NV_FORCE_INLINE const NvVec3& V3ReadXYZ(const Vec3V& v); + +//(a.x, b.x, c.x) +NV_FORCE_INLINE Vec3V V3ColX(const Vec3V a, const Vec3V b, const Vec3V c); +//(a.y, b.y, c.y) +NV_FORCE_INLINE Vec3V V3ColY(const Vec3V a, const Vec3V b, const Vec3V c); +//(a.z, b.z, c.z) +NV_FORCE_INLINE Vec3V V3ColZ(const Vec3V a, const Vec3V b, const Vec3V c); + +//(0,0,0,0) +NV_FORCE_INLINE Vec3V V3Zero(); +//(1,1,1,1) +NV_FORCE_INLINE Vec3V V3One(); +//(NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL) +NV_FORCE_INLINE Vec3V V3Eps(); +//-c (per component) +NV_FORCE_INLINE Vec3V V3Neg(const Vec3V c); +//a+b (per component) +NV_FORCE_INLINE Vec3V V3Add(const Vec3V a, const Vec3V b); +//a-b (per component) +NV_FORCE_INLINE Vec3V V3Sub(const Vec3V a, const Vec3V b); +//a*b (per component) +NV_FORCE_INLINE Vec3V V3Scale(const Vec3V a, const FloatV b); +//a*b (per component) +NV_FORCE_INLINE Vec3V V3Mul(const Vec3V a, const Vec3V b); +//a/b (per component) +NV_FORCE_INLINE Vec3V V3ScaleInv(const Vec3V a, const FloatV b); +//a/b (per component) +NV_FORCE_INLINE Vec3V V3Div(const Vec3V a, const Vec3V b); +//a/b (per component) +NV_FORCE_INLINE Vec3V V3ScaleInvFast(const Vec3V a, const FloatV b); +//a/b (per component) +NV_FORCE_INLINE Vec3V V3DivFast(const Vec3V a, const Vec3V b); +//1.0f/a +NV_FORCE_INLINE Vec3V V3Recip(const Vec3V a); +//1.0f/a +NV_FORCE_INLINE Vec3V V3RecipFast(const Vec3V a); +//1.0f/sqrt(a) +NV_FORCE_INLINE Vec3V V3Rsqrt(const Vec3V a); +//1.0f/sqrt(a) +NV_FORCE_INLINE Vec3V V3RsqrtFast(const Vec3V a); +//a*b+c +NV_FORCE_INLINE Vec3V V3ScaleAdd(const Vec3V a, const FloatV b, const Vec3V c); +//c-a*b +NV_FORCE_INLINE Vec3V V3NegScaleSub(const Vec3V a, const FloatV b, const Vec3V c); +//a*b+c +NV_FORCE_INLINE Vec3V V3MulAdd(const Vec3V a, const Vec3V b, const Vec3V c); +//c-a*b +NV_FORCE_INLINE Vec3V V3NegMulSub(const Vec3V a, const Vec3V b, const Vec3V c); +//fabs(a) +NV_FORCE_INLINE Vec3V V3Abs(const Vec3V a); + +//a.b +NV_FORCE_INLINE FloatV V3Dot(const Vec3V a, const Vec3V b); +//aXb +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const Vec3V b); +//|a.a|^1/2 +NV_FORCE_INLINE FloatV V3Length(const Vec3V a); +//a.a +NV_FORCE_INLINE FloatV V3LengthSq(const Vec3V a); +//a*|a.a|^-1/2 +NV_FORCE_INLINE Vec3V V3Normalize(const Vec3V a); +//a.a>0 ? a*|a.a|^-1/2 : (0,0,0,0) +NV_FORCE_INLINE FloatV V3Length(const Vec3V a); +//a*|a.a|^-1/2 +NV_FORCE_INLINE Vec3V V3NormalizeSafe(const Vec3V a); +//a.x + a.y +a.z +NV_FORCE_INLINE FloatV V3SumElems(const Vec3V a); + +//c ? a : b (per component) +NV_FORCE_INLINE Vec3V V3Sel(const BoolV c, const Vec3V a, const Vec3V b); +//a>b (per component) +NV_FORCE_INLINE BoolV V3IsGrtr(const Vec3V a, const Vec3V b); +//a>=b (per component) +NV_FORCE_INLINE BoolV V3IsGrtrOrEq(const Vec3V a, const Vec3V b); +//a==b (per component) +NV_FORCE_INLINE BoolV V3IsEq(const Vec3V a, const Vec3V b); +//Max(a,b) (per component) +NV_FORCE_INLINE Vec3V V3Max(const Vec3V a, const Vec3V b); +//Min(a,b) (per component) +NV_FORCE_INLINE Vec3V V3Min(const Vec3V a, const Vec3V b); + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMax(const Vec3V a); + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMin(const Vec3V a); + +//Clamp(a,b) (per component) +NV_FORCE_INLINE Vec3V V3Clamp(const Vec3V a, const Vec3V minV, const Vec3V maxV); + +//Extract the sign for each component +NV_FORCE_INLINE Vec3V V3Sign(const Vec3V a); + +//Test all components. +//(a.x>b.x && a.y>b.y && a.z>b.z) +NV_FORCE_INLINE uint32_t V3AllGrtr(const Vec3V a, const Vec3V b); +//(a.x>=b.x && a.y>=b.y && a.z>=b.z) +NV_FORCE_INLINE uint32_t V3AllGrtrOrEq(const Vec3V a, const Vec3V b); +//(a.x==b.x && a.y==b.y && a.z==b.z) +NV_FORCE_INLINE uint32_t V3AllEq(const Vec3V a, const Vec3V b); +//a.xmax.x || a.y>max.y || a.z>max.z +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V min, const Vec3V max); +//a.x>=min.x && a.y>=min.y && a.z>=min.z && a.x<=max.x && a.y<=max.y && a.z<=max.z +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V min, const Vec3V max); +//a.x<-bounds.x || a.y<=-bounds.y || a.zbounds.x || a.y>bounds.y || a.z>bounds.z +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V bounds); +//a.x>=-bounds.x && a.y>=-bounds.y && a.z>=-bounds.z && a.x<=bounds.x && a.y<=bounds.y && a.z<=bounds.z +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V bounds); + +//(floor(a.x + 0.5f), floor(a.y + 0.5f), floor(a.z + 0.5f)) +NV_FORCE_INLINE Vec3V V3Round(const Vec3V a); + +//(sinf(a.x), sinf(a.y), sinf(a.z)) +NV_FORCE_INLINE Vec3V V3Sin(const Vec3V a); +//(cosf(a.x), cosf(a.y), cosf(a.z)) +NV_FORCE_INLINE Vec3V V3Cos(const Vec3V a); + +//(a.y,a.z,a.z) +NV_FORCE_INLINE Vec3V V3PermYZZ(const Vec3V a); +//(a.x,a.y,a.x) +NV_FORCE_INLINE Vec3V V3PermXYX(const Vec3V a); +//(a.y,a.z,a.x) +NV_FORCE_INLINE Vec3V V3PermYZX(const Vec3V a); +//(a.z, a.x, a.y) +NV_FORCE_INLINE Vec3V V3PermZXY(const Vec3V a); +//(a.z,a.z,a.y) +NV_FORCE_INLINE Vec3V V3PermZZY(const Vec3V a); +//(a.y,a.x,a.x) +NV_FORCE_INLINE Vec3V V3PermYXX(const Vec3V a); +//(0, v1.z, v0.y) +NV_FORCE_INLINE Vec3V V3Perm_Zero_1Z_0Y(const Vec3V v0, const Vec3V v1); +//(v0.z, 0, v1.x) +NV_FORCE_INLINE Vec3V V3Perm_0Z_Zero_1X(const Vec3V v0, const Vec3V v1); +//(v1.y, v0.x, 0) +NV_FORCE_INLINE Vec3V V3Perm_1Y_0X_Zero(const Vec3V v0, const Vec3V v1); + + +////////////////////////////////////////////////////////////////// +//Math operations on Vec4V +////////////////////////////////////////////////////////////////// + +//(f,f,f,f) +NV_FORCE_INLINE Vec4V V4Splat(const FloatV f); + +//(f[0],f[1],f[2],f[3]) +NV_FORCE_INLINE Vec4V V4Merge(const FloatV* const f); +//(x,y,z,w) +NV_FORCE_INLINE Vec4V V4Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w); +//(x.w, y.w, z.w, w.w) +NV_FORCE_INLINE Vec4V V4MergeW(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w); +//(x.z, y.z, z.z, w.z) +NV_FORCE_INLINE Vec4V V4MergeZ(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w); +//(x.y, y.y, z.y, w.y) +NV_FORCE_INLINE Vec4V V4MergeY(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w); +//(x.x, y.x, z.x, w.x) +NV_FORCE_INLINE Vec4V V4MergeX(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w); + +//(a.x, b.x, a.y, b.y) +NV_FORCE_INLINE Vec4V V4UnpackXY(const Vec4VArg a, const Vec4VArg b); +//(a.z, b.z, a.w, b.w) +NV_FORCE_INLINE Vec4V V4UnpackZW(const Vec4VArg a, const Vec4VArg b); + +//(1,0,0,0) +NV_FORCE_INLINE Vec4V V4UnitW(); +//(0,1,0,0) +NV_FORCE_INLINE Vec4V V4UnitY(); +//(0,0,1,0) +NV_FORCE_INLINE Vec4V V4UnitZ(); +//(0,0,0,1) +NV_FORCE_INLINE Vec4V V4UnitW(); + +//(f.x,f.x,f.x,f.x) +NV_FORCE_INLINE FloatV V4GetX(const Vec4V f); +//(f.y,f.y,f.y,f.y) +NV_FORCE_INLINE FloatV V4GetY(const Vec4V f); +//(f.z,f.z,f.z,f.z) +NV_FORCE_INLINE FloatV V4GetZ(const Vec4V f); +//(f.w,f.w,f.w,f.w) +NV_FORCE_INLINE FloatV V4GetW(const Vec4V f); + +//(f,v.y,v.z,v.w) +NV_FORCE_INLINE Vec4V V4SetX(const Vec4V v, const FloatV f); +//(v.x,f,v.z,v.w) +NV_FORCE_INLINE Vec4V V4SetY(const Vec4V v, const FloatV f); +//(v.x,v.y,f,v.w) +NV_FORCE_INLINE Vec4V V4SetZ(const Vec4V v, const FloatV f); +//(v.x,v.y,v.z,f) +NV_FORCE_INLINE Vec4V V4SetW(const Vec4V v, const FloatV f); + +//(v.x,v.y,v.z,0) +NV_FORCE_INLINE Vec4V V4ClearW(const Vec4V v); + +//(a[elementIndex], a[elementIndex], a[elementIndex], a[elementIndex]) +template NV_FORCE_INLINE Vec4V V4SplatElement(Vec4V a); + +//v.x=f +NV_FORCE_INLINE void V4WriteX(Vec4V& v, const float f); +//v.y=f +NV_FORCE_INLINE void V4WriteY(Vec4V& v, const float f); +//v.z=f +NV_FORCE_INLINE void V4WriteZ(Vec4V& v, const float f); +//v.w=f +NV_FORCE_INLINE void V4WriteW(Vec4V& v, const float f); +//v.x=f.x, v.y=f.y, v.z=f.z +NV_FORCE_INLINE void V4WriteXYZ(Vec4V& v, const NvVec3& f); +//return v.x +NV_FORCE_INLINE float V4ReadX(const Vec4V& v); +//return v.y +NV_FORCE_INLINE float V4ReadY(const Vec4V& v); +//return v.z +NV_FORCE_INLINE float V4ReadZ(const Vec4V& v); +//return v.w +NV_FORCE_INLINE float V4ReadW(const Vec4V& v); +//return (v.x,v.y,v.z) +NV_FORCE_INLINE const NvVec3& V4ReadXYZ(const Vec4V& v); + +//(0,0,0,0) +NV_FORCE_INLINE Vec4V V4Zero(); +//(1,1,1,1) +NV_FORCE_INLINE Vec4V V4One(); +//(NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL,NV_EPS_REAL) +NV_FORCE_INLINE Vec4V V4Eps(); + +//-c (per component) +NV_FORCE_INLINE Vec4V V4Neg(const Vec4V c); +//a+b (per component) +NV_FORCE_INLINE Vec4V V4Add(const Vec4V a, const Vec4V b); +//a-b (per component) +NV_FORCE_INLINE Vec4V V4Sub(const Vec4V a, const Vec4V b); +//a*b (per component) +NV_FORCE_INLINE Vec4V V4Scale(const Vec4V a, const FloatV b); +//a*b (per component) +NV_FORCE_INLINE Vec4V V4Mul(const Vec4V a, const Vec4V b); +//a/b (per component) +NV_FORCE_INLINE Vec4V V4ScaleInv(const Vec4V a, const FloatV b); +//a/b (per component) +NV_FORCE_INLINE Vec4V V4Div(const Vec4V a, const Vec4V b); +//a/b (per component) +NV_FORCE_INLINE Vec4V V4ScaleInvFast(const Vec4V a, const FloatV b); +//a/b (per component) +NV_FORCE_INLINE Vec4V V4DivFast(const Vec4V a, const Vec4V b); +//1.0f/a +NV_FORCE_INLINE Vec4V V4Recip(const Vec4V a); +//1.0f/a +NV_FORCE_INLINE Vec4V V4RecipFast(const Vec4V a); +//1.0f/sqrt(a) +NV_FORCE_INLINE Vec4V V4Rsqrt(const Vec4V a); +//1.0f/sqrt(a) +NV_FORCE_INLINE Vec4V V4RsqrtFast(const Vec4V a); +//a*b+c +NV_FORCE_INLINE Vec4V V4ScaleAdd(const Vec4V a, const FloatV b, const Vec4V c); +//c-a*b +NV_FORCE_INLINE Vec4V V4NegScaleSub(const Vec4V a, const FloatV b, const Vec4V c); +//a*b+c +NV_FORCE_INLINE Vec4V V4MulAdd(const Vec4V a, const Vec4V b, const Vec4V c); +//c-a*b +NV_FORCE_INLINE Vec4V V4NegMulSub(const Vec4V a, const Vec4V b, const Vec4V c); + +//fabs(a) +NV_FORCE_INLINE Vec4V V4Abs(const Vec4V a); +//bitwise a & ~b +NV_FORCE_INLINE Vec4V V4Andc(const Vec4V a, const VecU32V b); + +//a.b +NV_FORCE_INLINE FloatV V4Dot(const Vec4V a, const Vec4V b); + +//|a.a|^1/2 +NV_FORCE_INLINE FloatV V4Length(const Vec4V a); +//a.a +NV_FORCE_INLINE FloatV V4LengthSq(const Vec4V a); + +//a*|a.a|^-1/2 +NV_FORCE_INLINE Vec4V V4Normalize(const Vec4V a); +//a.a>0 ? a*|a.a|^-1/2 : (0,0,0,0) +NV_FORCE_INLINE Vec4V V4NormalizeSafe(const Vec4V a); +//a*|a.a|^-1/2 +NV_FORCE_INLINE Vec4V V4NormalizeFast(const Vec4V a); + +//c ? a : b (per component) +NV_FORCE_INLINE Vec4V V4Sel(const BoolV c, const Vec4V a, const Vec4V b); +//a>b (per component) +NV_FORCE_INLINE BoolV V4IsGrtr(const Vec4V a, const Vec4V b); +//a>=b (per component) +NV_FORCE_INLINE BoolV V4IsGrtrOrEq(const Vec4V a, const Vec4V b); +//a==b (per component) +NV_FORCE_INLINE BoolV V4IsEq(const Vec4V a, const Vec4V b); +//Max(a,b) (per component) +NV_FORCE_INLINE Vec4V V4Max(const Vec4V a, const Vec4V b); +//Min(a,b) (per component) +NV_FORCE_INLINE Vec4V V4Min(const Vec4V a, const Vec4V b); +//Get the maximum component from a +NV_FORCE_INLINE FloatV V4ExtractMax(const Vec4V a); +//Get the minimum component from a +NV_FORCE_INLINE FloatV V4ExtractMin(const Vec4V a); + +//Clamp(a,b) (per component) +NV_FORCE_INLINE Vec4V V4Clamp(const Vec4V a, const Vec4V minV, const Vec4V maxV); + +//return 1 if all components of a are greater than all components of b. +NV_FORCE_INLINE uint32_t V4AllGrtr(const Vec4V a, const Vec4V b); +//return 1 if all components of a are greater than or equal to all components of b +NV_FORCE_INLINE uint32_t V4AllGrtrOrEq(const Vec4V a, const Vec4V b); +//return 1 if all components of a are equal to all components of b +NV_FORCE_INLINE uint32_t V4AllEq(const Vec4V a, const Vec4V b); + +// round(a)(per component) +NV_FORCE_INLINE Vec4V V4Round(const Vec4V a); +// sin(a) (per component) +NV_FORCE_INLINE Vec4V V4Sin(const Vec4V a); +//cos(a) (per component) +NV_FORCE_INLINE Vec4V V4Cos(const Vec4V a); + +//Permute v into a new vec4v with YXWZ format +NV_FORCE_INLINE Vec4V V4Perm_YXWZ(const Vec4V v); +//Permute v into a new vec4v with XZXZ format +NV_FORCE_INLINE Vec4V V4Perm_XZXZ(const Vec4V v); +//Permute v into a new vec4v with YWYW format +NV_FORCE_INLINE Vec4V V4Perm_YWYW(const Vec4V v); + +//Permute v into a new vec4v with format {a[x], a[y], a[z], a[w]} +//V4Perm<1,3,1,3> is equal to V4Perm_YWYW +//V4Perm<0,2,0,2> is equal to V4Perm_XZXZ +//V3Perm<1,0,3,2> is equal to V4Perm_YXWZ +template NV_FORCE_INLINE Vec4V V4Perm(const Vec4V a); + +//q = cos(a/2) + u*sin(a/2) +NV_FORCE_INLINE QuatV QuatV_From_RotationAxisAngle(const Vec3V u, const FloatV a); +// convert q to a unit quaternion +NV_FORCE_INLINE QuatV QuatNormalize(const QuatV q); +//|q.q|^1/2 +NV_FORCE_INLINE FloatV QuatLength(const QuatV q); +//q.q +NV_FORCE_INLINE FloatV QuatLengthSq(const QuatV q); +//a.b +NV_FORCE_INLINE FloatV QuatDot(const QuatV a, const QuatV b); +//(-q.x, -q.y, -q.z, q.w) +NV_FORCE_INLINE QuatV QuatConjugate(const QuatV q); +//(q.x, q.y, q.z) +NV_FORCE_INLINE Vec3V QuatGetImaginaryPart(const QuatV q); +//convert quaterion to matrix 33 +NV_FORCE_INLINE Mat33V QuatGetMat33V(const QuatVArg q); +//convert matrix 33 to quaterion +NV_FORCE_INLINE QuatV Mat33GetQuatV(const Mat33V& a); +// brief computes rotation of x-axis +NV_FORCE_INLINE Vec3V QuatGetBasisVector0(const QuatV q); +// brief computes rotation of y-axis +NV_FORCE_INLINE Vec3V QuatGetBasisVector1(const QuatV q); +// brief computes rotation of z-axis +NV_FORCE_INLINE Vec3V QuatGetBasisVector2(const QuatV q); +// calculate the rotation vector from q and v +NV_FORCE_INLINE Vec3V QuatRotate(const QuatV q, const Vec3V v); +// calculate the roation vector from the conjuate quaterion and v +NV_FORCE_INLINE Vec3V QuatRotateInv(const QuatV q, const Vec3V v); +// quaternion multiplication +NV_FORCE_INLINE QuatV QuatMul(const QuatV a, const QuatV b); +// quaternion add +NV_FORCE_INLINE QuatV QuatAdd(const QuatV a, const QuatV b); +// (-q.x, -q.y, -q.z, -q.w) +NV_FORCE_INLINE QuatV QuatNeg(const QuatV q); +// (a.x - b.x, a.y-b.y, a.z-b.z, a.w-b.w ) +NV_FORCE_INLINE QuatV QuatSub(const QuatV a, const QuatV b); +// (a.x*b, a.y*b, a.z*b, a.w*b) +NV_FORCE_INLINE QuatV QuatScale(const QuatV a, const FloatV b); +// (x = v[0], y = v[1], z = v[2], w =v[3]) +NV_FORCE_INLINE QuatV QuatMerge(const FloatV* const v); +// (x = v[0], y = v[1], z = v[2], w =v[3]) +NV_FORCE_INLINE QuatV QuatMerge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w); +// (x = 0.f, y = 0.f, z = 0.f, w = 1.f) +NV_FORCE_INLINE QuatV QuatIdentity(); +//check for each component is valid +NV_FORCE_INLINE bool isFiniteQuatV(const QuatV q); +//check for each component is valid +NV_FORCE_INLINE bool isValidQuatV(const QuatV q); +//check for each component is valid +NV_FORCE_INLINE bool isSaneQuatV(const QuatV q); + +//transpose 4x4 matrix represented by its columns +NV_FORCE_INLINE void V4Transpose(Vec4V& col0, Vec4V& col1, Vec4V& col2, Vec4V& col3); + +//Math operations on 16-byte aligned booleans. +//x=false y=false z=false w=false +NV_FORCE_INLINE BoolV BFFFF(); +//x=false y=false z=false w=true +NV_FORCE_INLINE BoolV BFFFT(); +//x=false y=false z=true w=false +NV_FORCE_INLINE BoolV BFFTF(); +//x=false y=false z=true w=true +NV_FORCE_INLINE BoolV BFFTT(); +//x=false y=true z=false w=false +NV_FORCE_INLINE BoolV BFTFF(); +//x=false y=true z=false w=true +NV_FORCE_INLINE BoolV BFTFT(); +//x=false y=true z=true w=false +NV_FORCE_INLINE BoolV BFTTF(); +//x=false y=true z=true w=true +NV_FORCE_INLINE BoolV BFTTT(); +//x=true y=false z=false w=false +NV_FORCE_INLINE BoolV BTFFF(); +//x=true y=false z=false w=true +NV_FORCE_INLINE BoolV BTFFT(); +//x=true y=false z=true w=false +NV_FORCE_INLINE BoolV BTFTF(); +//x=true y=false z=true w=true +NV_FORCE_INLINE BoolV BTFTT(); +//x=true y=true z=false w=false +NV_FORCE_INLINE BoolV BTTFF(); +//x=true y=true z=false w=true +NV_FORCE_INLINE BoolV BTTFT(); +//x=true y=true z=true w=false +NV_FORCE_INLINE BoolV BTTTF(); +//x=true y=true z=true w=true +NV_FORCE_INLINE BoolV BTTTT(); + +//x=false y=false z=false w=true +NV_FORCE_INLINE BoolV BWMask(); +//x=true y=false z=false w=false +NV_FORCE_INLINE BoolV BXMask(); +//x=false y=true z=false w=false +NV_FORCE_INLINE BoolV BYMask(); +//x=false y=false z=true w=false +NV_FORCE_INLINE BoolV BZMask(); + +//get x component +NV_FORCE_INLINE BoolV BGetX(const BoolV f); +//get y component +NV_FORCE_INLINE BoolV BGetY(const BoolV f); +//get z component +NV_FORCE_INLINE BoolV BGetZ(const BoolV f); +//get w component +NV_FORCE_INLINE BoolV BGetW(const BoolV f); + +//Use elementIndex to splat xxxx or yyyy or zzzz or wwww +template NV_FORCE_INLINE BoolV BSplatElement(Vec4V a); + +//component-wise && (AND) +NV_FORCE_INLINE BoolV BAnd(const BoolV a, const BoolV b); +//component-wise || (OR) +NV_FORCE_INLINE BoolV BOr(const BoolV a, const BoolV b); +//component-wise not +NV_FORCE_INLINE BoolV BNot(const BoolV a); + +//if all four components are true, return true, otherwise return false +NV_FORCE_INLINE BoolV BAllTrue4(const BoolV a); + +//if any four components is true, return true, otherwise return false +NV_FORCE_INLINE BoolV BAnyTrue4(const BoolV a); + +//if all three(0, 1, 2) components are true, return true, otherwise return false +NV_FORCE_INLINE BoolV BAllTrue3(const BoolV a); + +//if any three (0, 1, 2) components is true, return true, otherwise return false +NV_FORCE_INLINE BoolV BAnyTrue3(const BoolV a); + +//Return 1 if all components equal, zero otherwise. +NV_FORCE_INLINE uint32_t BAllEq(const BoolV a, const BoolV b); + +// Specialized/faster BAllEq function for b==TTTT +NV_FORCE_INLINE uint32_t BAllEqTTTT(const BoolV a); +// Specialized/faster BAllEq function for b==FFFF +NV_FORCE_INLINE uint32_t BAllEqFFFF(const BoolV a); + +/// Get BoolV as bits set in an uint32_t. A bit in the output is set if the element is 'true' in the input. +/// There is a bit for each element in a, with element 0s value held in bit0, element 1 in bit 1s and so forth. +/// If nothing is true in the input it will return 0, and if all are true if will return 0xf. +/// NOTE! That performance of the function varies considerably by platform, thus it is recommended to use +/// where your algorithm really needs a BoolV in an integer variable. +NV_FORCE_INLINE uint32_t BGetBitMask(const BoolV a); + +//VecI32V stuff + +NV_FORCE_INLINE VecI32V VecI32V_Zero(); + +NV_FORCE_INLINE VecI32V VecI32V_One(); + +NV_FORCE_INLINE VecI32V VecI32V_Two(); + +NV_FORCE_INLINE VecI32V VecI32V_MinusOne(); + +//Compute a shift parameter for VecI32V_LeftShift and VecI32V_RightShift +//Each element of shift must be identical ie the vector must have form {count, count, count, count} with count>=0 +NV_FORCE_INLINE VecShiftV VecI32V_PrepareShift(const VecI32VArg shift); + +//Shift each element of a leftwards by the same amount +//Compute shift with VecI32V_PrepareShift +//{a.x<>shift[0], a.y>>shift[0], a.z>>shift[0], a.w>>shift[0]} +NV_FORCE_INLINE VecI32V VecI32V_RightShift(const VecI32VArg a, const VecShiftVArg shift); + +NV_FORCE_INLINE VecI32V VecI32V_Add(const VecI32VArg a, const VecI32VArg b); + +NV_FORCE_INLINE VecI32V VecI32V_Or(const VecI32VArg a, const VecI32VArg b); + +NV_FORCE_INLINE VecI32V VecI32V_GetX(const VecI32VArg a); + +NV_FORCE_INLINE VecI32V VecI32V_GetY(const VecI32VArg a); + +NV_FORCE_INLINE VecI32V VecI32V_GetZ(const VecI32VArg a); + +NV_FORCE_INLINE VecI32V VecI32V_GetW(const VecI32VArg a); + +NV_FORCE_INLINE VecI32V VecI32V_Sub(const VecI32VArg a, const VecI32VArg b); + +NV_FORCE_INLINE BoolV VecI32V_IsGrtr(const VecI32VArg a, const VecI32VArg b); + +NV_FORCE_INLINE BoolV VecI32V_IsEq(const VecI32VArg a, const VecI32VArg b); + +NV_FORCE_INLINE VecI32V V4I32Sel(const BoolV c, const VecI32V a, const VecI32V b); + +//VecU32V stuff + +NV_FORCE_INLINE VecU32V U4Zero(); + +NV_FORCE_INLINE VecU32V U4One(); + +NV_FORCE_INLINE VecU32V U4Two(); + +NV_FORCE_INLINE BoolV V4IsEqU32(const VecU32V a, const VecU32V b); + +NV_FORCE_INLINE VecU32V V4U32Sel(const BoolV c, const VecU32V a, const VecU32V b); + +NV_FORCE_INLINE VecU32V V4U32or(VecU32V a, VecU32V b); + +NV_FORCE_INLINE VecU32V V4U32and(VecU32V a, VecU32V b); + +NV_FORCE_INLINE VecU32V V4U32Andc(VecU32V a, VecU32V b); + +//VecU32 - why does this not return a bool? +NV_FORCE_INLINE VecU32V V4IsGrtrV32u(const Vec4V a, const Vec4V b); + + +//Math operations on 16-byte aligned Mat33s (represents any 3x3 matrix) +//a*b +NV_FORCE_INLINE Vec3V M33MulV3(const Mat33V& a, const Vec3V b); +//A*x + b +NV_FORCE_INLINE Vec3V M33MulV3AddV3(const Mat33V& A, const Vec3V b, const Vec3V c); +//transpose(a) * b +NV_FORCE_INLINE Vec3V M33TrnspsMulV3(const Mat33V& a, const Vec3V b); +//a*b +NV_FORCE_INLINE Mat33V M33MulM33(const Mat33V& a, const Mat33V& b); +//a+b +NV_FORCE_INLINE Mat33V M33Add(const Mat33V& a, const Mat33V& b); +//a+b +NV_FORCE_INLINE Mat33V M33Sub(const Mat33V& a, const Mat33V& b); +//-a +NV_FORCE_INLINE Mat33V M33Neg(const Mat33V& a); +//absolute value of the matrix +NV_FORCE_INLINE Mat33V M33Abs(const Mat33V& a); +//inverse mat +NV_FORCE_INLINE Mat33V M33Inverse(const Mat33V& a); +//transpose(a) +NV_FORCE_INLINE Mat33V M33Trnsps(const Mat33V& a); +//create an identity matrix +NV_FORCE_INLINE Mat33V M33Identity(); + +//create a vec3 to store the diagonal element of the M33 +NV_FORCE_INLINE Mat33V M33Diagonal(const Vec3VArg); + + +//Not implemented +//return 1 if all components of a are equal to all components of b +//NV_FORCE_INLINE uint32_t V4U32AllEq(const VecU32V a, const VecU32V b); +//v.w=f +//NV_FORCE_INLINE void V3WriteW(Vec3V& v, const float f); +//NV_FORCE_INLINE float V3ReadW(const Vec3V& v); + + +//Not used +//NV_FORCE_INLINE Vec4V V4LoadAligned(Vec4V* addr); +//NV_FORCE_INLINE Vec4V V4LoadUnaligned(Vec4V* addr); +//floor(a)(per component) +//NV_FORCE_INLINE Vec4V V4Floor(Vec4V a); +//ceil(a) (per component) +//NV_FORCE_INLINE Vec4V V4Ceil(Vec4V a); +//NV_FORCE_INLINE VecU32V V4ConvertToU32VSaturate(const Vec4V a, uint32_t power); + + + + + + +//Math operations on 16-byte aligned Mat34s (represents transformation matrix - rotation and translation). +//namespace _Mat34V +//{ +// //a*b +// NV_FORCE_INLINE Vec3V multiplyV(const Mat34V& a, const Vec3V b); +// //a_rotation * b +// NV_FORCE_INLINE Vec3V multiply3X3V(const Mat34V& a, const Vec3V b); +// //transpose(a_rotation)*b +// NV_FORCE_INLINE Vec3V multiplyTranspose3X3V(const Mat34V& a, const Vec3V b); +// //a*b +// NV_FORCE_INLINE Mat34V multiplyV(const Mat34V& a, const Mat34V& b); +// //a_rotation*b +// NV_FORCE_INLINE Mat33V multiply3X3V(const Mat34V& a, const Mat33V& b); +// //a_rotation*b_rotation +// NV_FORCE_INLINE Mat33V multiply3X3V(const Mat34V& a, const Mat34V& b); +// //a+b +// NV_FORCE_INLINE Mat34V addV(const Mat34V& a, const Mat34V& b); +// //a^-1 +// NV_FORCE_INLINE Mat34V getInverseV(const Mat34V& a); +// //transpose(a_rotation) +// NV_FORCE_INLINE Mat33V getTranspose3X3(const Mat34V& a); +//}; //namespace _Mat34V + +//a*b +//#define M34MulV3(a,b) (M34MulV3(a,b)) +////a_rotation * b +//#define M34Mul33V3(a,b) (M34Mul33V3(a,b)) +////transpose(a_rotation)*b +//#define M34TrnspsMul33V3(a,b) (M34TrnspsMul33V3(a,b)) +////a*b +//#define M34MulM34(a,b) (_Mat34V::multiplyV(a,b)) +//a_rotation*b +//#define M34MulM33(a,b) (M34MulM33(a,b)) +//a_rotation*b_rotation +//#define M34Mul33MM34(a,b) (M34MulM33(a,b)) +//a+b +//#define M34Add(a,b) (M34Add(a,b)) +////a^-1 +//#define M34Inverse(a,b) (M34Inverse(a)) +//transpose(a_rotation) +//#define M34Trnsps33(a) (M33Trnsps3X3(a)) + + +//Math operations on 16-byte aligned Mat44s (represents any 4x4 matrix) +//namespace _Mat44V +//{ +// //a*b +// NV_FORCE_INLINE Vec4V multiplyV(const Mat44V& a, const Vec4V b); +// //transpose(a)*b +// NV_FORCE_INLINE Vec4V multiplyTransposeV(const Mat44V& a, const Vec4V b); +// //a*b +// NV_FORCE_INLINE Mat44V multiplyV(const Mat44V& a, const Mat44V& b); +// //a+b +// NV_FORCE_INLINE Mat44V addV(const Mat44V& a, const Mat44V& b); +// //a&-1 +// NV_FORCE_INLINE Mat44V getInverseV(const Mat44V& a); +// //transpose(a) +// NV_FORCE_INLINE Mat44V getTransposeV(const Mat44V& a); +//}; //namespace _Mat44V + +//namespace _VecU32V +//{ +// // pack 8 U32s to 8 U16s with saturation +// NV_FORCE_INLINE VecU16V pack2U32VToU16VSaturate(VecU32V a, VecU32V b); +// NV_FORCE_INLINE VecU32V orV(VecU32V a, VecU32V b); +// NV_FORCE_INLINE VecU32V andV(VecU32V a, VecU32V b); +// NV_FORCE_INLINE VecU32V andcV(VecU32V a, VecU32V b); +// // conversion from integer to float +// NV_FORCE_INLINE Vec4V convertToVec4V(VecU32V a); +// // splat a[elementIndex] into all fields of a +// template +// NV_FORCE_INLINE VecU32V splatElement(VecU32V a); +// NV_FORCE_INLINE void storeAligned(VecU32V a, VecU32V* address); +//}; + +//namespace _VecI32V +//{ +// template NV_FORCE_INLINE VecI32V splatI32(); +//}; +// +//namespace _VecU16V +//{ +// NV_FORCE_INLINE VecU16V orV(VecU16V a, VecU16V b); +// NV_FORCE_INLINE VecU16V andV(VecU16V a, VecU16V b); +// NV_FORCE_INLINE VecU16V andcV(VecU16V a, VecU16V b); +// NV_FORCE_INLINE void storeAligned(VecU16V val, VecU16V *address); +// NV_FORCE_INLINE VecU16V loadAligned(VecU16V* addr); +// NV_FORCE_INLINE VecU16V loadUnaligned(VecU16V* addr); +// NV_FORCE_INLINE VecU16V compareGt(VecU16V a, VecU16V b); +// template +// NV_FORCE_INLINE VecU16V splatElement(VecU16V a); +// NV_FORCE_INLINE VecU16V subtractModulo(VecU16V a, VecU16V b); +// NV_FORCE_INLINE VecU16V addModulo(VecU16V a, VecU16V b); +// NV_FORCE_INLINE VecU32V getLo16(VecU16V a); // [0,2,4,6] 16-bit values to [0,1,2,3] 32-bit vector +// NV_FORCE_INLINE VecU32V getHi16(VecU16V a); // [1,3,5,7] 16-bit values to [0,1,2,3] 32-bit vector +//}; +// +//namespace _VecI16V +//{ +// template NV_FORCE_INLINE VecI16V splatImmediate(); +//}; +// +//namespace _VecU8V +//{ +//}; + + +//a*b +//#define M44MulV4(a,b) (M44MulV4(a,b)) +////transpose(a)*b +//#define M44TrnspsMulV4(a,b) (M44TrnspsMulV4(a,b)) +////a*b +//#define M44MulM44(a,b) (M44MulM44(a,b)) +////a+b +//#define M44Add(a,b) (M44Add(a,b)) +////a&-1 +//#define M44Inverse(a) (M44Inverse(a)) +////transpose(a) +//#define M44Trnsps(a) (M44Trnsps(a)) + + +// dsequeira: these used to be assert'd out in SIMD builds, but they're necessary if +// we want to be able to write some scalar functions which run using SIMD data structures + +NV_FORCE_INLINE void V3WriteX(Vec3V& v, const float f) +{ + ((NvVec3 &)v).x=f; +} + +NV_FORCE_INLINE void V3WriteY(Vec3V& v, const float f) +{ + ((NvVec3 &)v).y=f; +} + +NV_FORCE_INLINE void V3WriteZ(Vec3V& v, const float f) +{ + ((NvVec3 &)v).z=f; +} + +NV_FORCE_INLINE void V3WriteXYZ(Vec3V& v, const NvVec3& f) +{ + (NvVec3 &)v = f; +} + +NV_FORCE_INLINE float V3ReadX(const Vec3V& v) +{ + return ((NvVec3 &)v).x; +} + +NV_FORCE_INLINE float V3ReadY(const Vec3V& v) +{ + return ((NvVec3 &)v).y; +} + +NV_FORCE_INLINE float V3ReadZ(const Vec3V& v) +{ + return ((NvVec3 &)v).z; +} + +NV_FORCE_INLINE const NvVec3& V3ReadXYZ(const Vec3V& v) +{ + return (NvVec3&)v; +} + +NV_FORCE_INLINE void V4WriteX(Vec4V& v, const float f) +{ + ((NvVec4&)v).x=f; +} + +NV_FORCE_INLINE void V4WriteY(Vec4V& v, const float f) +{ + ((NvVec4&)v).y=f; +} + +NV_FORCE_INLINE void V4WriteZ(Vec4V& v, const float f) +{ + ((NvVec4&)v).z=f; +} + +NV_FORCE_INLINE void V4WriteW(Vec4V& v, const float f) +{ + ((NvVec4&)v).w=f; +} + +NV_FORCE_INLINE void V4WriteXYZ(Vec4V& v, const NvVec3& f) +{ + ((NvVec3&)v)=f; +} + +NV_FORCE_INLINE float V4ReadX(const Vec4V& v) +{ + return ((NvVec4&)v).x; +} + +NV_FORCE_INLINE float V4ReadY(const Vec4V& v) +{ + return ((NvVec4&)v).y; +} + +NV_FORCE_INLINE float V4ReadZ(const Vec4V& v) +{ + return ((NvVec4&)v).z; +} + +NV_FORCE_INLINE float V4ReadW(const Vec4V& v) +{ + return ((NvVec4&)v).w; +} + +NV_FORCE_INLINE const NvVec3& V4ReadXYZ(const Vec4V& v) +{ + return (NvVec3&)v; +} + +//this macro trnasposes 4 Vec4V into 3 Vec4V (assuming that the W component can be ignored +#define NV_TRANSPOSE_44_34(inA, inB, inC, inD, outA, outB, outC) \ +outA = V4UnpackXY(inA, inC); \ +inA = V4UnpackZW(inA, inC); \ +inC = V4UnpackXY(inB, inD); \ +inB = V4UnpackZW(inB, inD); \ +outB = V4UnpackZW(outA, inC); \ +outA = V4UnpackXY(outA, inC); \ +outC = V4UnpackXY(inA, inB); + +//this macro transposes 3 Vec4V into 4 Vec4V (with W components as garbage!) +#define NV_TRANSPOSE_34_44(inA, inB, inC, outA, outB, outC, outD) \ + outA = V4UnpackXY(inA, inC); \ + inA = V4UnpackZW(inA, inC); \ + outC = V4UnpackXY(inB, inB); \ + inC = V4UnpackZW(inB, inB); \ + outB = V4UnpackZW(outA, outC); \ + outA = V4UnpackXY(outA, outC); \ + outC = V4UnpackXY(inA, inC); \ + outD = V4UnpackZW(inA, inC); + +#define NV_TRANSPOSE_44(inA, inB, inC, inD, outA, outB, outC, outD) \ + outA = V4UnpackXY(inA, inC); \ + inA = V4UnpackZW(inA, inC); \ + inC = V4UnpackXY(inB, inD); \ + inB = V4UnpackZW(inB, inD); \ + outB = V4UnpackZW(outA, inC); \ + outA = V4UnpackXY(outA, inC); \ + outC = V4UnpackXY(inA, inB); \ + outD = V4UnpackZW(inA, inB); + +//In all platforms except 360, this is a fast way of calculating 4 dot product at once. On 360, it may be faster to call V3Dot 4 times because there is an +//instruction to perform a dot product that completes in 14 cycles +//It returns a Vec4V, where each element is the dot product of one pair of Vec3Vs +NV_FORCE_INLINE Vec4V V3Dot4(const Vec3VArg a0, const Vec3VArg b0, const Vec3VArg a1, const Vec3VArg b1, const Vec3VArg a2, + const Vec3VArg b2, const Vec3VArg a3, const Vec3VArg b3) +{ + Vec4V a0b0 = Vec4V_From_Vec3V(V3Mul(a0, b0)); + Vec4V a1b1 = Vec4V_From_Vec3V(V3Mul(a1, b1)); + Vec4V a2b2 = Vec4V_From_Vec3V(V3Mul(a2, b2)); + Vec4V a3b3 = Vec4V_From_Vec3V(V3Mul(a3, b3)); + + Vec4V aTrnsps, bTrnsps, cTrnsps; + + NV_TRANSPOSE_44_34(a0b0, a1b1, a2b2, a3b3, aTrnsps, bTrnsps, cTrnsps); + + return V4Add(V4Add(aTrnsps, bTrnsps), cTrnsps); +} + + + +//Now for the cross-platform implementations of the 16-byte aligned maths functions (win32/360/ppu/spu etc). +#if COMPILE_VECTOR_INTRINSICS +#include "NsInlineAoS.h" +#else // #if COMPILE_VECTOR_INTRINSICS +#include "NsVecMathAoSScalarInline.h" +#endif // #if !COMPILE_VECTOR_INTRINSICS +#include "NsVecQuat.h" + + + +} // namespace aos +} // namespace shdfnd +} // namespace nvidia + +#endif //PS_VECMATH_H diff --git a/blast/source/shared/NsFoundation/include/NsVecMathAoSScalar.h b/blast/source/shared/NsFoundation/include/NsVecMathAoSScalar.h new file mode 100644 index 000000000..ee2690506 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsVecMathAoSScalar.h @@ -0,0 +1,234 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_PHYSICS_COMMON_VECMATH_INLINE_SCALAR +#define NV_PHYSICS_COMMON_VECMATH_INLINE_SCALAR + +#if COMPILE_VECTOR_INTRINSICS +#error Scalar version should not be included when using vector intrinsics. +#endif + +//Remove this define when all platforms use simd solver. +#define NV_SUPPORT_SIMD + + +struct VecU8V; +struct VecI16V; +struct VecU16V; +struct VecI32V; +struct VecU32V; +struct Vec4V; +typedef Vec4V QuatV; + +NV_ALIGN_PREFIX(16) +struct FloatV +{ + float x; + float pad[3]; + FloatV(){} + FloatV(const float _x) + : x(_x) + { + } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Vec4V +{ + float x, y, z, w; + Vec4V(){} + Vec4V(const float _x, const float _y, const float _z, const float _w) + : x(_x), + y(_y), + z(_z), + w(_w) + { + } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Vec3V +{ + float x,y,z; + float pad; + Vec3V(){} + Vec3V(const float _x, const float _y, const float _z) + : x(_x), + y(_y), + z(_z), + pad(0.0f) + { + } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct BoolV +{ + uint32_t ux, uy, uz, uw; + BoolV(){} + BoolV(const uint32_t _x, const uint32_t _y, const uint32_t _z, const uint32_t _w) + : ux(_x), + uy(_y), + uz(_z), + uw(_w) + { + } +} +NV_ALIGN_SUFFIX(16); + +struct Mat33V +{ + Mat33V(){} + Mat33V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec3V col0; + Vec3V col1; + Vec3V col2; +}; + +struct Mat34V +{ + Mat34V(){} + Mat34V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2, const Vec3V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec3V col0; + Vec3V col1; + Vec3V col2; + Vec3V col3; +}; + +struct Mat43V +{ + Mat43V(){} + Mat43V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec4V col0; + Vec4V col1; + Vec4V col2; +}; + +struct Mat44V +{ + Mat44V(){} + Mat44V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2, const Vec4V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec4V col0; + Vec4V col1; + Vec4V col2; + Vec4V col3; +}; + +NV_ALIGN_PREFIX(16) +struct VecU32V +{ + uint32_t u32[4]; + NV_FORCE_INLINE VecU32V() {} + NV_FORCE_INLINE VecU32V(uint32_t a, uint32_t b, uint32_t c, uint32_t d) { u32[0] = a; u32[1] = b; u32[2] = c; u32[3] = d; } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct VecI32V +{ + int32_t i32[4]; + NV_FORCE_INLINE VecI32V() {} + NV_FORCE_INLINE VecI32V(int32_t a, int32_t b, int32_t c, int32_t d) { i32[0] = a; i32[1] = b; i32[2] = c; i32[3] = d; } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct VecI16V +{ + int16_t i16[8]; + NV_FORCE_INLINE VecI16V() {} + NV_FORCE_INLINE VecI16V(int16_t a, int16_t b, int16_t c, int16_t d, int16_t e, int16_t f, int16_t g, int16_t h) + { i16[0] = a; i16[1] = b; i16[2] = c; i16[3] = d; i16[4] = e; i16[5] = f; i16[6] = g; i16[7] = h; } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct VecU16V +{ + union { uint16_t u16[8]; int16_t i16[8]; }; + NV_FORCE_INLINE VecU16V() {} + NV_FORCE_INLINE VecU16V(uint16_t a, uint16_t b, uint16_t c, uint16_t d, uint16_t e, uint16_t f, uint16_t g, uint16_t h) + { u16[0] = a; u16[1] = b; u16[2] = c; u16[3] = d; u16[4] = e; u16[5] = f; u16[6] = g; u16[7] = h; } +} +NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct VecU8V +{ + uint8_t u8[8]; + NV_FORCE_INLINE VecU8V() {} + NV_FORCE_INLINE VecU8V(uint8_t a, uint8_t b, uint8_t c, uint8_t d) { u8[0] = a; u8[1] = b; u8[2] = c; u8[3] = d; } +} +NV_ALIGN_SUFFIX(16); + + +#define FloatVArg FloatV& +#define Vec3VArg Vec3V& +#define Vec4VArg Vec4V& +#define BoolVArg BoolV& +#define VecU32VArg VecU32V& +#define VecI32VArg VecI32V& +#define VecU16VArg VecU16V& +#define VecI16VArg VecI16V& +#define VecU8VArg VecU8V& +#define QuatVArg QuatV& + +#define VecCrossV Vec3V + +typedef VecI32V VecShiftV; +#define VecShiftVArg VecShiftV& + +#endif //NV_PHYSICS_COMMON_VECMATH_INLINE_SCALAR + + + diff --git a/blast/source/shared/NsFoundation/include/NsVecMathAoSScalarInline.h b/blast/source/shared/NsFoundation/include/NsVecMathAoSScalarInline.h new file mode 100644 index 000000000..af0524fb9 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsVecMathAoSScalarInline.h @@ -0,0 +1,2277 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_PHYSICS_COMMON_VECMATH_SCALAR_INLINE +#define NV_PHYSICS_COMMON_VECMATH_SCALAR_INLINE + +#if COMPILE_VECTOR_INTRINSICS +#error Scalar version should not be included when using vector intrinsics. +#endif + +///////////////////////////////////////////////////////////////////// +////INTERNAL USE ONLY AND TESTS +///////////////////////////////////////////////////////////////////// + +namespace internalScalarSimd +{ + NV_FORCE_INLINE bool hasZeroElementInFloatV(const FloatV a) + { + return (0==a.x); + } + + NV_FORCE_INLINE bool hasZeroElementInVec3V(const Vec3V a) + { + return (0==a.x || 0==a.y || 0==a.z); + } + + NV_FORCE_INLINE bool hasZeroElementInVec4V(const Vec4V a) + { + return (0==a.x || 0==a.y || 0==a.z || 0==a.w); + } +} + +namespace _VecMathTests +{ + NV_FORCE_INLINE bool allElementsEqualFloatV(const FloatV a, const FloatV b) + { + return (a.x==b.x); + } + + NV_FORCE_INLINE bool allElementsEqualVec3V(const Vec3V a, const Vec3V b) + { + return (a.x==b.x && a.y==b.y && a.z==b.z); + } + + NV_FORCE_INLINE bool allElementsEqualVec4V(const Vec4V a, const Vec4V b) + { + return (a.x==b.x && a.y==b.y && a.z==b.z && a.w==b.w); + } + + NV_FORCE_INLINE bool allElementsEqualBoolV(const BoolV a, const BoolV b) + { + return (a.ux==b.ux && a.uy==b.uy && a.uz==b.uz && a.uw==b.uw); + } + + NV_FORCE_INLINE bool allElementsEqualVecU32V(const VecU32V a, const VecU32V b) + { + return (a.u32[0]==b.u32[0] && a.u32[1]==b.u32[1] && a.u32[2]==b.u32[2] && a.u32[3]==b.u32[3]); + } + + NV_FORCE_INLINE bool allElementsEqualVecI32V(const VecI32V a, const VecI32V b) + { + return (a.i32[0]==b.i32[0] && a.i32[1]==b.i32[1] && a.i32[2]==b.i32[2] && a.i32[3]==b.i32[3]); + } + + #define VECMATH_AOS_EPSILON (1e-3f) + + NV_FORCE_INLINE bool allElementsNearEqualFloatV(const FloatV a, const FloatV b) + { + const float cx=a.x-b.x; + return (cx>-VECMATH_AOS_EPSILON && cx-VECMATH_AOS_EPSILON && cx-VECMATH_AOS_EPSILON && cy-VECMATH_AOS_EPSILON && cz-VECMATH_AOS_EPSILON && cx-VECMATH_AOS_EPSILON && cy-VECMATH_AOS_EPSILON && cz-VECMATH_AOS_EPSILON && cw(&f) & 0x0f)); + return Vec3V(f.x,f.y,f.z); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const NvVec3& f) +{ + return Vec3V(f.x,f.y,f.z); +} + +NV_FORCE_INLINE Vec3V V3LoadUnsafeA(const NvVec3& f) +{ + return Vec3V(f.x,f.y,f.z); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const float* const f) +{ + return Vec3V(f[0], f[1], f[2]); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const float* const f) +{ + return Vec3V(f[0], f[1], f[2]); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V(Vec4V f) +{ + return Vec3V(f.x,f.y,f.z); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V_WUndefined(const Vec4V v) +{ + return Vec3V(v.x, v.y, v.z); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_Vec3V(Vec3V f) +{ + return Vec4V(f.x,f.y,f.z, 0.0f); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_FloatV(FloatV f) +{ + return Vec4V(f.x,f.x,f.x,f.x); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV(FloatV f) +{ + return Vec3V(f.x,f.x,f.x); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV_WUndefined(FloatV f) +{ + return Vec3V(f.x,f.x,f.x); +} + +NV_FORCE_INLINE Vec4V V4LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return Vec4V(f[0],f[1],f[2],f[3]); +} + +NV_FORCE_INLINE void V4StoreA(const Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + *reinterpret_cast(f) = a; +} + +NV_FORCE_INLINE void V4StoreU(const Vec4V a, float* f) +{ + *reinterpret_cast(f) = a; +} + +NV_FORCE_INLINE void BStoreA(const BoolV a, uint32_t* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + *reinterpret_cast(f) = a; +} + +NV_FORCE_INLINE void U4StoreA(const VecU32V uv, uint32_t* u) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)u & 0x0f)); + *reinterpret_cast(u) = uv; +} + +NV_FORCE_INLINE void I4StoreA(const VecI32V iv, int32_t* i) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)i & 0x0f)); + *reinterpret_cast(i) = iv; +} + +NV_FORCE_INLINE Vec4V V4LoadU(const float* const f) +{ + return Vec4V(f[0],f[1],f[2],f[3]); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_NvVec3_WUndefined(const NvVec3& f) +{ + return Vec4V(f[0],f[1],f[2],0.f); +} + +NV_FORCE_INLINE BoolV BLoad(const bool* const f) +{ + return BoolV(-(int32_t)f[0],-(int32_t)f[1],-(int32_t)f[2],-(int32_t)f[3]); +} + + +NV_FORCE_INLINE float FStore(const FloatV a) +{ + return a.x; +} + +NV_FORCE_INLINE void FStore(const FloatV a, float* NV_RESTRICT f) +{ + *f = a.x; +} + +NV_FORCE_INLINE void V3StoreA(const Vec3V a, NvVec3& f) +{ + f=NvVec3(a.x,a.y,a.z); +} + +NV_FORCE_INLINE void V3StoreU(const Vec3V a, NvVec3& f) +{ + f=NvVec3(a.x,a.y,a.z); +} + +////////////////////////// +//FLOATV +////////////////////////// + +NV_FORCE_INLINE FloatV FZero() +{ + return FLoad(0.0f); +} + +NV_FORCE_INLINE FloatV FOne() +{ + return FLoad(1.0f); +} + +NV_FORCE_INLINE FloatV FHalf() +{ + return FLoad(0.5f); +} + +NV_FORCE_INLINE FloatV FEps() +{ + return FLoad(NV_EPS_REAL); +} + +NV_FORCE_INLINE FloatV FEps6() +{ + return FLoad(1e-6f); +} + +NV_FORCE_INLINE FloatV FMax() +{ + return FLoad(NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV FNegMax() +{ + return FLoad(-NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV FNeg(const FloatV f) +{ + return FloatV(-f.x); +} + +NV_FORCE_INLINE FloatV FAdd(const FloatV a, const FloatV b) +{ + return FloatV(a.x+b.x); +} + +NV_FORCE_INLINE FloatV FSub(const FloatV a, const FloatV b) +{ + return FloatV(a.x-b.x); +} + +NV_FORCE_INLINE FloatV FMul(const FloatV a, const FloatV b) +{ + return FloatV(a.x*b.x); +} + +NV_FORCE_INLINE FloatV FDiv(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(b)); + return FloatV(a.x/b.x); +} + +NV_FORCE_INLINE FloatV FDivFast(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(b)); + return FloatV(a.x/b.x); +} + +NV_FORCE_INLINE FloatV FRecip(const FloatV a) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(a)); + return (1.0f/a.x); +} + +NV_FORCE_INLINE FloatV FRecipFast(const FloatV a) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(a)); + return (1.0f/a.x); +} + +NV_FORCE_INLINE FloatV FRsqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(a)); + return NvRecipSqrt(a.x); +} + +NV_FORCE_INLINE FloatV FSqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(a)); + return NvSqrt(a.x); +} + +NV_FORCE_INLINE FloatV FRsqrtFast(const FloatV a) +{ + VECMATHAOS_ASSERT(!internalScalarSimd::hasZeroElementInFloatV(a)); + return NvRecipSqrt(a.x); +} + +NV_FORCE_INLINE FloatV FScaleAdd(const FloatV a, const FloatV b, const FloatV c) +{ + return FAdd(FMul(a,b),c); +} + +NV_FORCE_INLINE FloatV FNegScaleSub(const FloatV a, const FloatV b, const FloatV c) +{ + return FSub(c,FMul(a,b)); +} + +NV_FORCE_INLINE FloatV FAbs(const FloatV a) +{ + return FloatV(NvAbs(a.x)); +} + +NV_FORCE_INLINE FloatV FSel(const BoolV c, const FloatV a, const FloatV b) +{ + return FloatV(c.ux ? a.x : b.x); +} + +NV_FORCE_INLINE BoolV FIsGrtr(const FloatV a, const FloatV b) +{ + return BLoad(a.x>b.x); +} + +NV_FORCE_INLINE BoolV FIsGrtrOrEq(const FloatV a, const FloatV b) +{ + return BLoad(a.x>=b.x); +} + +NV_FORCE_INLINE BoolV FIsEq(const FloatV a, const FloatV b) +{ + return BLoad(a.x==b.x); +} + +NV_FORCE_INLINE FloatV FMax(const FloatV a, const FloatV b) +{ + return (a.x>b.x ? FloatV(a.x) : FloatV(b.x)); +} + +NV_FORCE_INLINE FloatV FMin(const FloatV a, const FloatV b) +{ + return (a.x>b.x ? FloatV(b.x) : FloatV(a.x)); +} + +NV_FORCE_INLINE FloatV FClamp(const FloatV a, const FloatV minV, const FloatV maxV) +{ + return FMax(FMin(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t FAllGrtr(const FloatV a, const FloatV b) +{ + return (a.x > b.x); +} + +NV_FORCE_INLINE uint32_t FAllGrtrOrEq(const FloatV a, const FloatV b) +{ + return (a.x >= b.x); +} +NV_FORCE_INLINE uint32_t FAllEq(const FloatV a, const FloatV b) +{ + return(a.x == b.x); +} + +NV_FORCE_INLINE FloatV FRound(const FloatV a) +{ + return floor(a.x + 0.5f); +} + +NV_FORCE_INLINE FloatV FSin(const FloatV a) +{ + return sinf(a.x); +} +NV_FORCE_INLINE FloatV FCos(const FloatV a) +{ + return cosf(a.x); +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV min, const FloatV max) +{ + return (a.x>max.x || a.x=min.x && a.x<=max.x); +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV bounds) +{ + return FOutOfBounds(a, FNeg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV bounds) +{ + return FInBounds(a, FNeg(bounds), bounds); +} + + +///////////////////// +//VEC3V +///////////////////// + +NV_FORCE_INLINE Vec3V V3Splat(const FloatV f) +{ + return Vec3V(f.x,f.x,f.x); +} + +NV_FORCE_INLINE Vec3V V3Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z) +{ + return Vec3V(x.x,y.x,z.x); +} + +NV_FORCE_INLINE Vec3V V3UnitX() +{ + return Vec3V(1.0f,0.0f,0.0f); +} + +NV_FORCE_INLINE Vec3V V3UnitY() +{ + return Vec3V(0.0f,1.0f,0.0f); +} + +NV_FORCE_INLINE Vec3V V3UnitZ() +{ + return Vec3V(0.0f,0.0f,1.0f); +} + +NV_FORCE_INLINE FloatV V3GetX(const Vec3V f) +{ + return FloatV(f.x); +} + +NV_FORCE_INLINE FloatV V3GetY(const Vec3V f) +{ + return FloatV(f.y); +} + +NV_FORCE_INLINE FloatV V3GetZ(const Vec3V f) +{ + return FloatV(f.z); +} + +NV_FORCE_INLINE Vec3V V3SetX(const Vec3V v, const FloatV f) +{ + return Vec3V(f.x,v.y,v.z); +} + +NV_FORCE_INLINE Vec3V V3SetY(const Vec3V v, const FloatV f) +{ + return Vec3V(v.x,f.x,v.z); +} + +NV_FORCE_INLINE Vec3V V3SetZ(const Vec3V v, const FloatV f) +{ + return Vec3V(v.x,v.y,f.x); +} + +NV_FORCE_INLINE Vec3V V3ColX(const Vec3V a, const Vec3V b, const Vec3V c) +{ + return Vec3V(a.x,b.x,c.x); +} + +NV_FORCE_INLINE Vec3V V3ColY(const Vec3V a, const Vec3V b, const Vec3V c) +{ + return Vec3V(a.y,b.y,c.y); +} + +NV_FORCE_INLINE Vec3V V3ColZ(const Vec3V a, const Vec3V b, const Vec3V c) +{ + return Vec3V(a.z,b.z,c.z); +} + +NV_FORCE_INLINE Vec3V V3Zero() +{ + return V3Load(0.0f); +} + +NV_FORCE_INLINE Vec3V V3One() +{ + return V3Load(1.0f); +} + +NV_FORCE_INLINE Vec3V V3Eps() +{ + return V3Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec3V V3Neg(const Vec3V c) +{ + return Vec3V(-c.x,-c.y,-c.z); +} + +NV_FORCE_INLINE Vec3V V3Add(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x+b.x,a.y+b.y,a.z+b.z); +} + +NV_FORCE_INLINE Vec3V V3Sub(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x-b.x,a.y-b.y,a.z-b.z); +} + +NV_FORCE_INLINE Vec3V V3Scale(const Vec3V a, const FloatV b) +{ + return Vec3V(a.x*b.x,a.y*b.x,a.z*b.x); +} + +NV_FORCE_INLINE Vec3V V3Mul(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x*b.x,a.y*b.y,a.z*b.z); +} + +NV_FORCE_INLINE Vec3V V3ScaleInv(const Vec3V a, const FloatV b) +{ + const float bInv=1.0f/b.x; + return Vec3V(a.x*bInv,a.y*bInv,a.z*bInv); +} + +NV_FORCE_INLINE Vec3V V3Div(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x/b.x,a.y/b.y,a.z/b.z); +} + +NV_FORCE_INLINE Vec3V V3ScaleInvFast(const Vec3V a, const FloatV b) +{ + const float bInv=1.0f/b.x; + return Vec3V(a.x*bInv,a.y*bInv,a.z*bInv); +} + +NV_FORCE_INLINE Vec3V V3DivFast(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x/b.x,a.y/b.y,a.z/b.z); +} + +NV_FORCE_INLINE Vec3V V3Recip(const Vec3V a) +{ + return Vec3V(1.0f/a.x,1.0f/a.y,1.0f/a.z); +} + +NV_FORCE_INLINE Vec3V V3RecipFast(const Vec3V a) +{ + return Vec3V(1.0f/a.x,1.0f/a.y,1.0f/a.z); +} + +NV_FORCE_INLINE Vec3V V3Rsqrt(const Vec3V a) +{ + return Vec3V(NvRecipSqrt(a.x),NvRecipSqrt(a.y),NvRecipSqrt(a.z)); +} + +NV_FORCE_INLINE Vec3V V3RsqrtFast(const Vec3V a) +{ + return Vec3V(NvRecipSqrt(a.x),NvRecipSqrt(a.y),NvRecipSqrt(a.z)); +} + +NV_FORCE_INLINE Vec3V V3ScaleAdd(const Vec3V a, const FloatV b, const Vec3V c) +{ + return V3Add(V3Scale(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegScaleSub(const Vec3V a, const FloatV b, const Vec3V c) +{ + return V3Sub(c,V3Scale(a,b)); +} + +NV_FORCE_INLINE Vec3V V3MulAdd(const Vec3V a, const Vec3V b, const Vec3V c) +{ + return V3Add(V3Mul(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegMulSub(const Vec3V a, const Vec3V b, const Vec3V c) +{ + return V3Sub(c,V3Mul(a,b)); +} + +NV_FORCE_INLINE FloatV V3Dot(const Vec3V a, const Vec3V b) +{ + return FloatV(a.x*b.x+a.y*b.y+a.z*b.z); +} + +NV_FORCE_INLINE VecCrossV V3PrepareCross(const Vec3VArg normal) +{ + return normal; +} + +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const Vec3V b) +{ + return Vec3V + ( + a.y*b.z-a.z*b.y, + a.z*b.x-a.x*b.z, + a.x*b.y-a.y*b.x + ); +} + +NV_FORCE_INLINE FloatV V3Length(const Vec3V a) +{ + return FloatV(NvSqrt(a.x*a.x + a.y*a.y + a.z*a.z)); +} + +NV_FORCE_INLINE FloatV V3LengthSq(const Vec3V a) +{ + return FloatV(a.x*a.x + a.y*a.y + a.z*a.z); +} + +NV_FORCE_INLINE Vec3V V3Normalize(const Vec3V a) +{ + VECMATHAOS_ASSERT(a.x!=0 || a.y!=0 || a.z!=0); + const float lengthInv=1.0f/(NvSqrt(a.x*a.x + a.y*a.y + a.z*a.z)); + return Vec3V(a.x*lengthInv,a.y*lengthInv,a.z*lengthInv); +} + +NV_FORCE_INLINE Vec3V V3NormalizeSafe(const Vec3V a) +{ + const float length=NvSqrt(a.x*a.x + a.y*a.y + a.z*a.z); + if(NV_EPS_REAL >= length) + { + return Vec3V(0.0f,0.0f,0.0f); + } + else + { + const float lengthInv=1.0f/length; + return Vec3V(a.x*lengthInv,a.y*lengthInv,a.z*lengthInv); + } +} + +NV_FORCE_INLINE Vec3V V3NormalizeFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(a.x!=0 || a.y!=0 || a.z!=0); + const float lengthInv=1.0f/(NvSqrt(a.x*a.x + a.y*a.y + a.z*a.z)); + return Vec3V(a.x*lengthInv,a.y*lengthInv,a.z*lengthInv); +} + +NV_FORCE_INLINE Vec3V V3Sel(const BoolV c, const Vec3V a, const Vec3V b) +{ + return Vec3V(c.ux ? a.x : b.x, c.uy ? a.y : b.y, c.uz ? a.z : b.z); +} + +NV_FORCE_INLINE BoolV V3IsGrtr(const Vec3V a, const Vec3V b) +{ + return BoolV(a.x>b.x ? -1 : 0, a.y>b.y ? -1 : 0, a.z>b.z ? -1 : 0, 0); +} + +NV_FORCE_INLINE BoolV V3IsGrtrOrEq(const Vec3V a, const Vec3V b) +{ + return BoolV(a.x>=b.x ? (uint32_t)-1 : 0, a.y>=b.y ? (uint32_t)-1 : 0, a.z>=b.z ? (uint32_t)-1 : 0, (uint32_t)-1); +} + +NV_FORCE_INLINE BoolV V3IsEq(const Vec3V a, const Vec3V b) +{ + return BoolV(a.x==b.x ? (uint32_t)-1 : 0, a.y==b.y ? (uint32_t)-1 : 0, a.z==b.z ? (uint32_t)-1 : 0, (uint32_t)-1); +} + +NV_FORCE_INLINE Vec3V V3Max(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x>b.x ? a.x : b.x, a.y>b.y ? a.y : b.y, a.z>b.z ? a.z : b.z); +} + +NV_FORCE_INLINE Vec3V V3Min(const Vec3V a, const Vec3V b) +{ + return Vec3V(a.x= a.y) ? a.x : a.y; + return t0 >= a.z ? t0 : a.z; +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMin(const Vec3V a) +{ + const float t0 = (a.x <= a.y) ? a.x : a.y; + return t0 <= a.z ? t0 : a.z; +} + +//return (a >= 0.0f) ? 1.0f : -1.0f; +NV_FORCE_INLINE Vec3V V3Sign(const Vec3V a) +{ + return Vec3V((a.x >= 0.f ? 1.f : -1.f), (a.y >= 0.f ? 1.f : -1.f), (a.z >= 0.f ? 1.f : -1.f)); +} + +NV_FORCE_INLINE Vec3V V3Clamp(const Vec3V a, const Vec3V minV, const Vec3V maxV) +{ + return V3Max(V3Min(a,maxV),minV); +} + +NV_FORCE_INLINE Vec3V V3Abs(const Vec3V a) +{ + return V3Max(a,V3Neg(a)); +} + +NV_FORCE_INLINE uint32_t V3AllGrtr(const Vec3V a, const Vec3V b) +{ + return ((a.x > b.x) & (a.y > b.y) & (a.z > b.z)) ? 1 : 0; +} + +NV_FORCE_INLINE uint32_t V3AllGrtrOrEq(const Vec3V a, const Vec3V b) +{ + return ((a.x >= b.x) & (a.y >= b.y) & (a.z >= b.z)) ? 1 : 0; +} + +NV_FORCE_INLINE uint32_t V3AllEq(const Vec3V a, const Vec3V b) +{ + return ((a.x == b.x) & (a.y == b.y) & (a.z == b.z)) ? 1 : 0; +} + +NV_FORCE_INLINE Vec3V V3Round(const Vec3V a) +{ + return Vec3V(floor(a.x + 0.5f), floor(a.y + 0.5f), floor(a.z + 0.5f)); +} + +NV_FORCE_INLINE Vec3V V3Sin(const Vec3V a) +{ + return Vec3V(sinf(a.x), sinf(a.y), sinf(a.z)); +} +NV_FORCE_INLINE Vec3V V3Cos(const Vec3V a) +{ + return Vec3V(cosf(a.x), cosf(a.y), cosf(a.z)); +} + +NV_FORCE_INLINE Vec3V V3PermYZZ(const Vec3V a) +{ + return Vec3V(a.y,a.z,a.z); +} + +NV_FORCE_INLINE Vec3V V3PermXYX(const Vec3V a) +{ + return Vec3V(a.x,a.y,a.x); +} + +NV_FORCE_INLINE Vec3V V3PermYZX(const Vec3V a) +{ + return Vec3V(a.y,a.z,a.x); +} + +NV_FORCE_INLINE Vec3V V3PermZXY(const Vec3V a) +{ + return Vec3V(a.z,a.x,a.y); +} + +NV_FORCE_INLINE Vec3V V3PermZZY(const Vec3V a) +{ + return Vec3V(a.z,a.z,a.y); +} + +NV_FORCE_INLINE Vec3V V3PermYXX(const Vec3V a) +{ + return Vec3V(a.y,a.x,a.x); +} + +NV_FORCE_INLINE Vec3V V3Perm_Zero_1Z_0Y(const Vec3V v0, const Vec3V v1) +{ + return Vec3V(0.0f, v1.z, v0.y); +} + +NV_FORCE_INLINE Vec3V V3Perm_0Z_Zero_1X(const Vec3V v0, const Vec3V v1) +{ + return Vec3V(v0.z, 0.0f, v1.x); +} + +NV_FORCE_INLINE Vec3V V3Perm_1Y_0X_Zero(const Vec3V v0, const Vec3V v1) +{ + return Vec3V(v1.y, v0.x, 0.0f); +} + +NV_FORCE_INLINE FloatV V3SumElems(const Vec3V a) +{ + return FloatV(a.x + a.y + a.z); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + return (a.x>max.x || a.y>max.y || a.z>max.z || + a.x=min.x && a.y>=min.y && a.z>=min.z); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V bounds) +{ + return V3OutOfBounds(a, V3Neg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V bounds) +{ + return V3InBounds(a, V3Neg(bounds), bounds); +} + + + + +///////////////////////// +//VEC4V +///////////////////////// + +NV_FORCE_INLINE Vec4V V4Splat(const FloatV f) +{ + return Vec4V(f.x,f.x,f.x,f.x); +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatV* const floatVArray) +{ + return Vec4V(floatVArray[0].x,floatVArray[1].x,floatVArray[2].x,floatVArray[3].x); +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatVArg x,const FloatVArg y, const FloatVArg z, const FloatVArg w) +{ + return Vec4V(x.x,y.x,z.x,w.x); +} + +NV_FORCE_INLINE Vec4V V4MergeW(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + return Vec4V(x.w, y.w, z.w, w.w); +} + +NV_FORCE_INLINE Vec4V V4MergeZ(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + return Vec4V(x.z, y.z, z.z, w.z); +} + +NV_FORCE_INLINE Vec4V V4MergeY(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + return Vec4V(x.y, y.y, z.y, w.y); +} + +NV_FORCE_INLINE Vec4V V4MergeX(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + return Vec4V(x.x, y.x, z.x, w.x); +} + +NV_FORCE_INLINE Vec4V V4UnpackXY(const Vec4VArg a, const Vec4VArg b) +{ + return Vec4V(a.x, b.x, a.y, b.y); +} + +NV_FORCE_INLINE Vec4V V4UnpackZW(const Vec4VArg a, const Vec4VArg b) +{ + return Vec4V(a.z, b.z, a.w, b.w); +} + + +NV_FORCE_INLINE Vec4V V4UnitX() +{ + return Vec4V(1.0f,0.0f,0.0f,0.0f); +} + +NV_FORCE_INLINE Vec4V V4UnitY() +{ + return Vec4V(0.0f,1.0f,0.0f,0.0f); +} + +NV_FORCE_INLINE Vec4V V4UnitZ() +{ + return Vec4V(0.0f,0.0f,1.0f,0.0f); +} + +NV_FORCE_INLINE Vec4V V4UnitW() +{ + return Vec4V(0.0f,0.0f,0.0f,1.0f); +} + +NV_FORCE_INLINE FloatV V4GetX(const Vec4V f) +{ + return FloatV(f.x); +} + +NV_FORCE_INLINE FloatV V4GetY(const Vec4V f) +{ + return FloatV(f.y); +} + +NV_FORCE_INLINE FloatV V4GetZ(const Vec4V f) +{ + return FloatV(f.z); +} + +NV_FORCE_INLINE FloatV V4GetW(const Vec4V f) +{ + return FloatV(f.w); +} + +NV_FORCE_INLINE Vec4V V4SetX(const Vec4V v, const FloatV f) +{ + return Vec4V(f.x,v.y,v.z,v.w); +} + +NV_FORCE_INLINE Vec4V V4SetY(const Vec4V v, const FloatV f) +{ + return Vec4V(v.x,f.x,v.z,v.w); +} + +NV_FORCE_INLINE Vec4V V4SetZ(const Vec4V v, const FloatV f) +{ + return Vec4V(v.x,v.y,f.x,v.w); +} + +NV_FORCE_INLINE Vec4V V4SetW(const Vec4V v, const FloatV f) +{ + return Vec4V(v.x,v.y,v.z,f.x); +} + +NV_FORCE_INLINE Vec4V V4SetW(const Vec3V v, const FloatV f) +{ + return Vec4V(v.x,v.y,v.z,f.x); +} + +NV_FORCE_INLINE Vec4V V4ClearW(const Vec4V v) +{ + return Vec4V(v.x,v.y,v.z,0); +} + +NV_FORCE_INLINE Vec4V V4Perm_YXWZ(const Vec4V v) +{ + return Vec4V(v.y, v.x, v.w, v.z); +} + +NV_FORCE_INLINE Vec4V V4Perm_XZXZ(const Vec4V v) +{ + return Vec4V(v.x, v.z, v.x, v.z); +} + +NV_FORCE_INLINE Vec4V V4Perm_YWYW(const Vec4V v) +{ + return Vec4V(v.y, v.w, v.y, v.w); +} + +template NV_FORCE_INLINE Vec4V V4Perm(const Vec4V v) +{ + const float f[4] = {v.x,v.y,v.z,v.w}; + return Vec4V(f[_x], f[_y], f[_z], f[_w]); +} + +NV_FORCE_INLINE Vec4V V4Zero() +{ + return V4Load(0.0f); +} + +NV_FORCE_INLINE Vec4V V4One() +{ + return V4Load(1.0f); +} + +NV_FORCE_INLINE Vec4V V4Eps() +{ + return V4Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec4V V4Neg(const Vec4V c) +{ + return Vec4V(-c.x,-c.y,-c.z,-c.w); +} + +NV_FORCE_INLINE Vec4V V4Add(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x+b.x,a.y+b.y,a.z+b.z,a.w+b.w); +} + +NV_FORCE_INLINE Vec4V V4Sub(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x-b.x,a.y-b.y,a.z-b.z,a.w-b.w); +} + +NV_FORCE_INLINE Vec4V V4Scale(const Vec4V a, const FloatV b) +{ + return Vec4V(a.x*b.x,a.y*b.x,a.z*b.x,a.w*b.x); +} + +NV_FORCE_INLINE Vec4V V4Mul(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x*b.x,a.y*b.y,a.z*b.z,a.w*b.w); +} + +NV_FORCE_INLINE Vec4V V4ScaleInv(const Vec4V a, const FloatV b) +{ + const float bInv=1.0f/b.x; + return Vec4V(a.x*bInv,a.y*bInv,a.z*bInv,a.w*bInv); +} + +NV_FORCE_INLINE Vec4V V4Div(const Vec4V a, const Vec4V b) +{ + VECMATHAOS_ASSERT(b.x!=0 && b.y!=0 && b.z!=0 && b.w!=0); + return Vec4V(a.x/b.x,a.y/b.y,a.z/b.z,a.w/b.w); +} + +NV_FORCE_INLINE Vec4V V4ScaleInvFast(const Vec4V a, const FloatV b) +{ + const float bInv=1.0f/b.x; + return Vec4V(a.x*bInv,a.y*bInv,a.z*bInv,a.w*bInv); +} + +NV_FORCE_INLINE Vec4V V4DivFast(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x/b.x,a.y/b.y,a.z/b.z,a.w/b.w); +} + +NV_FORCE_INLINE Vec4V V4Recip(const Vec4V a) +{ + return Vec4V(1.0f/a.x,1.0f/a.y,1.0f/a.z,1.0f/a.w); +} + +NV_FORCE_INLINE Vec4V V4RecipFast(const Vec4V a) +{ + return Vec4V(1.0f/a.x,1.0f/a.y,1.0f/a.z,1.0f/a.w); +} + +NV_FORCE_INLINE Vec4V V4Rsqrt(const Vec4V a) +{ + return Vec4V(NvRecipSqrt(a.x),NvRecipSqrt(a.y),NvRecipSqrt(a.z),NvRecipSqrt(a.w)); +} + +NV_FORCE_INLINE Vec4V V4RsqrtFast(const Vec4V a) +{ + return Vec4V(NvRecipSqrt(a.x),NvRecipSqrt(a.y),NvRecipSqrt(a.z),NvRecipSqrt(a.w)); +} + +NV_FORCE_INLINE Vec4V V4Sqrt(const Vec4V a) +{ + return Vec4V(NvSqrt(a.x),NvSqrt(a.y),NvSqrt(a.z),NvSqrt(a.w)); +} + + +NV_FORCE_INLINE Vec4V V4ScaleAdd(const Vec4V a, const FloatV b, const Vec4V c) +{ + return V4Add(V4Scale(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegScaleSub(const Vec4V a, const FloatV b, const Vec4V c) +{ + return V4Sub(c,V4Scale(a,b)); +} + +NV_FORCE_INLINE Vec4V V4MulAdd(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Add(V4Mul(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegMulSub(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Sub(c,V4Mul(a,b)); +} + +NV_FORCE_INLINE FloatV V4SumElements(const Vec4V a) +{ + return FloatV(a.x + a.y + a.z + a.w); +} + +NV_FORCE_INLINE FloatV V4Dot(const Vec4V a, const Vec4V b) +{ + return FloatV(a.x*b.x+a.y*b.y+a.z*b.z+a.w*b.w); +} + +NV_FORCE_INLINE FloatV V4Length(const Vec4V a) +{ + return FloatV(NvSqrt(a.x*a.x + a.y*a.y +a.z*a.z + a.w*a.w)); +} + +NV_FORCE_INLINE FloatV V4LengthSq(const Vec4V a) +{ + return V4Dot(a,a); +} + +NV_FORCE_INLINE Vec4V V4Normalize(const Vec4V a) +{ + VECMATHAOS_ASSERT(0!=a.x || 0!=a.y || 0!=a.z || 0!=a.w); + const FloatV length=FloatV(V4Length(a)); + return V4ScaleInv(a,length); +} + +NV_FORCE_INLINE Vec4V V4NormalizeSafe(const Vec4V a) +{ + const FloatV length=FloatV(V4Length(a)); + if(NV_EPS_REAL>=length.x) + { + return Vec4V(0.0f,0.0f,0.0f,0.0f); + } + else + { + return V4ScaleInv(a,length); + } +} +NV_FORCE_INLINE Vec4V V4NormalizeFast(const Vec4V a) +{ + VECMATHAOS_ASSERT(0!=a.x || 0!=a.y || 0!=a.z || 0!=a.w); + const FloatV length=FloatV(V4Length(a)); + return V4ScaleInv(a,length); +} + +NV_FORCE_INLINE Vec4V V4Sel(const BoolV c, const Vec4V a, const Vec4V b) +{ + return Vec4V(c.ux ? a.x : b.x, c.uy ? a.y : b.y, c.uz ? a.z : b.z, c.uw ? a.w : b.w); +} + +NV_FORCE_INLINE BoolV V4IsGrtr(const Vec4V a, const Vec4V b) +{ + return BoolV(a.x>b.x ? -1 : 0, a.y>b.y ? -1 : 0, a.z>b.z ? -1 : 0, a.w>b.w ? -1 : 0); +}; + +NV_FORCE_INLINE BoolV V4IsGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return BoolV(a.x>=b.x ? -1 : 0, a.y>=b.y ? -1 : 0, a.z>=b.z ? -1 : 0, a.w>=b.w ? -1 : 0); +} + +NV_FORCE_INLINE BoolV V4IsEq(const Vec4V a, const Vec4V b) +{ + return BoolV(a.x==b.x ? -1 : 0, a.y==b.y ? -1 : 0, a.z==b.z ? -1 : 0, a.w==b.w ? -1 : 0); +} + +NV_FORCE_INLINE Vec4V V4Max(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x>b.x ? a.x : b.x, a.y>b.y ? a.y : b.y, a.z>b.z ? a.z : b.z, a.w>b.w ? a.w : b.w); +} + +NV_FORCE_INLINE Vec4V V4Min(const Vec4V a, const Vec4V b) +{ + return Vec4V(a.x= a.y) ? a.x : a.y; + const float t1 = (a.z >= a.w) ? a.x : a.w; + return t0 >= t1 ? t0 : t1; +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V4ExtractMin(const Vec4V a) +{ + const float t0 = (a.x <= a.y) ? a.x : a.y; + const float t1 = (a.z <= a.w) ? a.x : a.w; + return t0 <= t1 ? t0 : t1; +} + +NV_FORCE_INLINE Vec4V V4Clamp(const Vec4V a, const Vec4V minV, const Vec4V maxV) +{ + return V4Max(V4Min(a,maxV),minV); +} + +NV_FORCE_INLINE Vec4V V4Round(const Vec4V a) +{ + return Vec4V(floor(a.x + 0.5f), floor(a.y + 0.5f), floor(a.z + 0.5f), floor(a.w + 0.5f)); +} + +NV_FORCE_INLINE Vec4V V4Sin(const Vec4V a) +{ + return Vec4V(sinf(a.x), sinf(a.y), sinf(a.z), sinf(a.w)); +} +NV_FORCE_INLINE Vec4V V4Cos(const Vec4V a) +{ + return Vec4V(cosf(a.x), cosf(a.y), cosf(a.z), cosf(a.w)); +} + +NV_FORCE_INLINE uint32_t V4AllGrtr(const Vec4V a, const Vec4V b) +{ + return ((a.x > b.x) & (a.y > b.y) & (a.z > b.z) & (a.w > b.w)) ? 1 : 0; +} + +NV_FORCE_INLINE uint32_t V4AllGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return ((a.x >= b.x) & (a.y >= b.y) & (a.z >= b.z) & (a.w >= b.w)) ? 1 : 0; +} + +NV_FORCE_INLINE uint32_t V4AllEq(const Vec4V a, const Vec4V b) +{ + return ((a.x == b.x) & (a.y == b.y) & (a.z == b.z) & (a.w == b.w)) ? 1 : 0; +} + +NV_FORCE_INLINE void V4Transpose(Vec4V& col0, Vec4V& col1, Vec4V& col2, Vec4V& col3) +{ + const float t01 = col0.y, t02 = col0.z, t03 = col0.w; + const float t12 = col1.z, t13 = col1.w; + const float t23 = col2.w; + col0.y = col1.x; + col0.z = col2.x; + col0.w = col3.x; + col1.z = col2.y; + col1.w = col3.y; + col2.w = col3.z; + col1.x = t01; + col2.x = t02; + col3.x = t03; + col2.y = t12; + col3.y = t13; + col3.z = t23; +} + +NV_FORCE_INLINE BoolV BFFFF() +{ + return BoolV(0, 0, 0, 0); +} +NV_FORCE_INLINE BoolV BFFFT() +{ + return BoolV(0, 0, 0, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BFFTF() +{ + return BoolV(0, 0, (uint32_t)-1, 0); +} +NV_FORCE_INLINE BoolV BFFTT() +{ + return BoolV(0, 0, (uint32_t)-1, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BFTFF() +{ + return BoolV(0, (uint32_t)-1, 0, 0); +} +NV_FORCE_INLINE BoolV BFTFT() +{ + return BoolV(0, (uint32_t)-1, 0, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BFTTF() +{ + return BoolV(0, (uint32_t)-1, (uint32_t)-1, 0); +} +NV_FORCE_INLINE BoolV BFTTT() +{ + return BoolV(0, (uint32_t)-1, (uint32_t)-1, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BTFFF() +{ + return BoolV((uint32_t)-1, 0, 0, 0); +} +NV_FORCE_INLINE BoolV BTFFT() +{ + return BoolV((uint32_t)-1, 0, 0, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BTFTF() +{ + return BoolV ((uint32_t)-1, 0, (uint32_t)-1, 0); +} +NV_FORCE_INLINE BoolV BTFTT() +{ + return BoolV((uint32_t)-1, 0, (uint32_t)-1, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BTTFF() +{ + return BoolV((uint32_t)-1, (uint32_t)-1, 0, 0); +} +NV_FORCE_INLINE BoolV BTTFT() +{ + return BoolV((uint32_t)-1, (uint32_t)-1, 0, (uint32_t)-1); +} +NV_FORCE_INLINE BoolV BTTTF() +{ + return BoolV((uint32_t)-1, (uint32_t)-1, (uint32_t)-1, 0); +} +NV_FORCE_INLINE BoolV BTTTT() +{ + return BoolV((uint32_t)-1, (uint32_t)-1, (uint32_t)-1, (uint32_t)-1); +} + +NV_FORCE_INLINE BoolV BXMask() {return BTFFF();} +NV_FORCE_INLINE BoolV BYMask() {return BFTFF();} +NV_FORCE_INLINE BoolV BZMask() {return BFFTF();} +NV_FORCE_INLINE BoolV BWMask() {return BFFFT();} + +NV_FORCE_INLINE BoolV BGetX(const BoolV a) +{ + return BoolV(a.ux, a.ux, a.ux, a.ux); +} + +NV_FORCE_INLINE BoolV BGetY(const BoolV a) +{ + return BoolV(a.uy, a.uy, a.uy, a.uy); +} + +NV_FORCE_INLINE BoolV BGetZ(const BoolV a) +{ + return BoolV(a.uz, a.uz, a.uz, a.uz); +} + +NV_FORCE_INLINE BoolV BGetW(const BoolV a) +{ + return BoolV(a.uw, a.uw, a.uw, a.uw); +} + +NV_FORCE_INLINE BoolV BSetX(const BoolV v, const BoolV f) +{ + return BoolV(f.ux,v.uy,v.uz,v.uw); +} + +NV_FORCE_INLINE BoolV BSetY(const BoolV v, const BoolV f) +{ + return BoolV(v.ux, f.uy, v.uz, v.uw); +} + +NV_FORCE_INLINE BoolV BSetZ(const BoolV v, const BoolV f) +{ + return BoolV(v.ux, v.uy, f.uz, v.uw); +} + +NV_FORCE_INLINE BoolV BSetW(const BoolV v, const BoolV f) +{ + return BoolV(v.ux, v.uy, v.uz, f.uw); +} + +template BoolV BSplatElement(BoolV a) +{ + uint32_t* b=(uint32_t*)&a; + return BoolV(b[index], b[index], b[index], b[index]); +} + +NV_FORCE_INLINE BoolV BAnd(const BoolV a, const BoolV b) +{ + return BoolV(a.ux && b.ux ? (uint32_t)-1 : 0, a.uy && b.uy ? (uint32_t)-1 : 0, a.uz && b.uz ? (uint32_t)-1 : 0, a.uw && b.uw ? (uint32_t)-1 : 0); +} + +NV_FORCE_INLINE BoolV BAndNot(const BoolV a, const BoolV b) +{ + return BoolV(a.ux & ~b.ux, a.uy & ~b.uy, a.uz & ~b.uz, a.uw & ~b.uw); +} + +NV_FORCE_INLINE BoolV BNot(const BoolV a) +{ + return BoolV(~a.ux, ~a.uy, ~a.uz, ~a.uw); +} + +NV_FORCE_INLINE BoolV BOr(const BoolV a, const BoolV b) +{ + return BoolV(a.ux || b.ux ? (uint32_t)-1 : 0, a.uy || b.uy ? (uint32_t)-1 : 0, a.uz || b.uz ? (uint32_t)-1 : 0, a.uw || b.uw ? (uint32_t)-1 : 0); +} + +NV_FORCE_INLINE uint32_t BAllEq(const BoolV a, const BoolV b) +{ + return (a.ux==b.ux && a.uy==b.uy && a.uz==b.uz && a.uw==b.uw ? 1 : 0); +} + +NV_FORCE_INLINE BoolV BAllTrue4(const BoolV a) +{ + return (a.ux & a.uy & a.uz & a.uw) ? BTTTT() : BFFFF(); +} + +NV_FORCE_INLINE BoolV BAnyTrue4(const BoolV a) +{ + return (a.ux | a.uy | a.uz | a.uw) ? BTTTT() : BFFFF(); +} + +NV_FORCE_INLINE BoolV BAllTrue3(const BoolV a) +{ + return (a.ux & a.uy & a.uz) ? BTTTT() : BFFFF(); +} + +NV_FORCE_INLINE BoolV BAnyTrue3(const BoolV a) +{ + return (a.ux | a.uy | a.uz) ? BTTTT() : BFFFF(); +} + +NV_FORCE_INLINE uint32_t BAllEqTTTT(const BoolV a) +{ + return BAllEq(a, BTTTT()); +} + +NV_FORCE_INLINE uint32_t BAllEqFFFF(const BoolV a) +{ + return BAllEq(a, BFFFF()); +} + +NV_FORCE_INLINE uint32_t BGetBitMask(const BoolV a) +{ + return (a.ux & 1) | (a.uy & 2) | (a.uz & 4) | (a.uw & 8); +} + +////////////////////////////////// +//MAT33V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M33MulV3(const Mat33V& a, const Vec3V b) +{ + return Vec3V + ( + a.col0.x*b.x + a.col1.x*b.y + a.col2.x*b.z, + a.col0.y*b.x + a.col1.y*b.y + a.col2.y*b.z, + a.col0.z*b.x + a.col1.z*b.y + a.col2.z*b.z + ); +} + +NV_FORCE_INLINE Vec3V M33TrnspsMulV3(const Mat33V& a, const Vec3V b) +{ + return Vec3V + ( + a.col0.x*b.x + a.col0.y*b.y + a.col0.z*b.z, + a.col1.x*b.x + a.col1.y*b.y + a.col1.z*b.z, + a.col2.x*b.x + a.col2.y*b.y + a.col2.z*b.z + ); +} + +NV_FORCE_INLINE Vec3V M33MulV3AddV3(const Mat33V& A, const Vec3V b, const Vec3V c) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + Vec3V result = V3ScaleAdd(A.col0, x, c); + result = V3ScaleAdd(A.col1, y, result); + return V3ScaleAdd(A.col2, z, result); +} + + +NV_FORCE_INLINE Mat33V M33MulM33(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(M33MulV3(a,b.col0),M33MulV3(a,b.col1),M33MulV3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Add(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Scale(const Mat33V& a, const FloatV& b) +{ + return Mat33V(V3Scale(a.col0,b),V3Scale(a.col1,b),V3Scale(a.col2,b)); +} + +NV_FORCE_INLINE Mat33V M33Sub(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Sub(a.col0,b.col0),V3Sub(a.col1,b.col1),V3Sub(a.col2,b.col2)); +} + + +NV_FORCE_INLINE Mat33V M33Neg(const Mat33V& a) +{ + return Mat33V(V3Neg(a.col0),V3Neg(a.col1),V3Neg(a.col2)); +} + +NV_FORCE_INLINE Mat33V M33Abs(const Mat33V& a) +{ + return Mat33V(V3Abs(a.col0),V3Abs(a.col1),V3Abs(a.col2)); +} + +NV_FORCE_INLINE Mat33V M33Diagonal(const Vec3VArg d) +{ + const Vec3V x = V3Mul(V3UnitX(), d); + const Vec3V y = V3Mul(V3UnitY(), d); + const Vec3V z = V3Mul(V3UnitZ(), d); + return Mat33V(x, y, z); +} + +NV_FORCE_INLINE Mat33V M33Inverse(const Mat33V& a) +{ + const float det = a.col0.x*(a.col1.y*a.col2.z - a.col1.z*a.col2.y) + -a.col1.x*(a.col0.y*a.col2.z - a.col2.y*a.col0.z) + +a.col2.x*(a.col0.y*a.col1.z - a.col1.y*a.col0.z); + + const float invDet = 1.0f/det; + + Mat33V ret; + ret.col0.x = invDet*(a.col1.y*a.col2.z - a.col2.y*a.col1.z); + ret.col0.y = invDet*(a.col2.y*a.col0.z - a.col0.y*a.col2.z); + ret.col0.z = invDet*(a.col0.y*a.col1.z - a.col1.y*a.col0.z); + + ret.col1.x = invDet*(a.col2.x*a.col1.z - a.col1.x*a.col2.z); + ret.col1.y = invDet*(a.col0.x*a.col2.z - a.col2.x*a.col0.z); + ret.col1.z = invDet*(a.col1.x*a.col0.z - a.col0.x*a.col1.z); + + ret.col2.x = invDet*(a.col1.x*a.col2.y - a.col2.x*a.col1.y); + ret.col2.y = invDet*(a.col2.x*a.col0.y - a.col0.x*a.col2.y); + ret.col2.z = invDet*(a.col0.x*a.col1.y - a.col1.x*a.col0.y); + + return ret; +} + +NV_FORCE_INLINE Mat33V Mat33V_From_NvMat33(const NvMat33 &m) +{ + return Mat33V(V3LoadU(m.column0), + V3LoadU(m.column1), + V3LoadU(m.column2)); +} + +NV_FORCE_INLINE void NvMat33_From_Mat33V(const Mat33V &m, NvMat33 &out) +{ + NV_ASSERT((size_t(&out)&15)==0); + V3StoreU(m.col0, out.column0); + V3StoreU(m.col1, out.column1); + V3StoreU(m.col2, out.column2); +} + + + +NV_FORCE_INLINE Mat33V M33Trnsps(const Mat33V& a) +{ + return Mat33V(Vec3V(a.col0.x,a.col1.x,a.col2.x),Vec3V(a.col0.y,a.col1.y,a.col2.y),Vec3V(a.col0.z,a.col1.z,a.col2.z)); +} + + +NV_FORCE_INLINE Mat33V M33Identity() +{ + return Mat33V + ( + V3UnitX(), + V3UnitY(), + V3UnitZ() + ); +} + + +////////////////////////////////// +//MAT34V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M34MulV3(const Mat34V& a, const Vec3V b) +{ + return Vec3V + ( + a.col0.x*b.x + a.col1.x*b.y + a.col2.x*b.z + a.col3.x, + a.col0.y*b.x + a.col1.y*b.y + a.col2.y*b.z + a.col3.y, + a.col0.z*b.x + a.col1.z*b.y + a.col2.z*b.z + a.col3.z + ); +} + +NV_FORCE_INLINE Vec3V M34Mul33V3(const Mat34V& a, const Vec3V b) +{ + return Vec3V + ( + a.col0.x*b.x + a.col1.x*b.y + a.col2.x*b.z, + a.col0.y*b.x + a.col1.y*b.y + a.col2.y*b.z, + a.col0.z*b.x + a.col1.z*b.y + a.col2.z*b.z + ); +} + +NV_FORCE_INLINE Vec3V M34TrnspsMul33V3(const Mat34V& a, const Vec3V b) +{ + return Vec3V + ( + a.col0.x*b.x + a.col0.y*b.y + a.col0.z*b.z, + a.col1.x*b.x + a.col1.y*b.y + a.col1.z*b.z, + a.col2.x*b.x + a.col2.y*b.y + a.col2.z*b.z + ); +} + +NV_FORCE_INLINE Mat34V M34MulM34(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2),M34MulV3(a,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34MulM33(const Mat34V& a, const Mat33V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M34Mul33V3(const Mat34V& a, const Mat33V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M34Mul33MM34(const Mat34V& a, const Mat34V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat34V M34Add(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2),V3Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34Trnsps33(const Mat34V& a) +{ + return Mat33V(Vec3V(a.col0.x,a.col1.x,a.col2.x),Vec3V(a.col0.y,a.col1.y,a.col2.y),Vec3V(a.col0.z,a.col1.z,a.col2.z)); +} + + +////////////////////////////////// +//MAT44V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V M44MulV4(const Mat44V& a, const Vec4V b) +{ + return Vec4V + ( + a.col0.x*b.x + a.col1.x*b.y + a.col2.x*b.z + a.col3.x*b.w, + a.col0.y*b.x + a.col1.y*b.y + a.col2.y*b.z + a.col3.y*b.w, + a.col0.z*b.x + a.col1.z*b.y + a.col2.z*b.z + a.col3.z*b.w, + a.col0.w*b.x + a.col1.w*b.y + a.col2.w*b.z + a.col3.w*b.w + ); +} + +NV_FORCE_INLINE Vec4V M44TrnspsMulV4(const Mat44V& a, const Vec4V b) +{ + return Vec4V + ( + a.col0.x*b.x + a.col0.y*b.y + a.col0.z*b.z + a.col0.w*b.w, + a.col1.x*b.x + a.col1.y*b.y + a.col1.z*b.z + a.col1.w*b.w, + a.col2.x*b.x + a.col2.y*b.y + a.col2.z*b.z + a.col2.w*b.w, + a.col3.x*b.x + a.col3.y*b.y + a.col3.z*b.z + a.col3.w*b.w + ); +} + +NV_FORCE_INLINE Mat44V M44MulM44(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(M44MulV4(a,b.col0),M44MulV4(a,b.col1),M44MulV4(a,b.col2),M44MulV4(a,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Add(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(V4Add(a.col0,b.col0),V4Add(a.col1,b.col1),V4Add(a.col2,b.col2),V4Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Inverse(const Mat44V& a) +{ + float tmp[12]; + float dst[16]; + float det; + + const float src[16] = + { + a.col0.x, a.col0.y, a.col0.z, a.col0.w, + a.col1.x, a.col1.y, a.col1.z, a.col1.w, + a.col2.x, a.col2.y, a.col2.z, a.col2.w, + a.col3.x, a.col3.y, a.col3.z, a.col3.w + }; + + tmp[0] = src[10] * src[15]; + tmp[1] = src[11] * src[14]; + tmp[2] = src[9] * src[15]; + tmp[3] = src[11] * src[13]; + tmp[4] = src[9] * src[14]; + tmp[5] = src[10] * src[13]; + tmp[6] = src[8] * src[15]; + tmp[7] = src[11] * src[12]; + tmp[8] = src[8] * src[14]; + tmp[9] = src[10] * src[12]; + tmp[10] = src[8] * src[13]; + tmp[11] = src[9] * src[12]; + + dst[0] = tmp[0]*src[5] + tmp[3]*src[6] + tmp[4]*src[7]; + dst[0] -= tmp[1]*src[5] + tmp[2]*src[6] + tmp[5]*src[7]; + dst[1] = tmp[1]*src[4] + tmp[6]*src[6] + tmp[9]*src[7]; + dst[1] -= tmp[0]*src[4] + tmp[7]*src[6] + tmp[8]*src[7]; + dst[2] = tmp[2]*src[4] + tmp[7]*src[5] + tmp[10]*src[7]; + dst[2] -= tmp[3]*src[4] + tmp[6]*src[5] + tmp[11]*src[7]; + dst[3] = tmp[5]*src[4] + tmp[8]*src[5] + tmp[11]*src[6]; + dst[3] -= tmp[4]*src[4] + tmp[9]*src[5] + tmp[10]*src[6]; + dst[4] = tmp[1]*src[1] + tmp[2]*src[2] + tmp[5]*src[3]; + dst[4] -= tmp[0]*src[1] + tmp[3]*src[2] + tmp[4]*src[3]; + dst[5] = tmp[0]*src[0] + tmp[7]*src[2] + tmp[8]*src[3]; + dst[5] -= tmp[1]*src[0] + tmp[6]*src[2] + tmp[9]*src[3]; + dst[6] = tmp[3]*src[0] + tmp[6]*src[1] + tmp[11]*src[3]; + dst[6] -= tmp[2]*src[0] + tmp[7]*src[1] + tmp[10]*src[3]; + dst[7] = tmp[4]*src[0] + tmp[9]*src[1] + tmp[10]*src[2]; + dst[7] -= tmp[5]*src[0] + tmp[8]*src[1] + tmp[11]*src[2]; + + tmp[0] = src[2]*src[7]; + tmp[1] = src[3]*src[6]; + tmp[2] = src[1]*src[7]; + tmp[3] = src[3]*src[5]; + tmp[4] = src[1]*src[6]; + tmp[5] = src[2]*src[5]; + tmp[6] = src[0]*src[7]; + tmp[7] = src[3]*src[4]; + tmp[8] = src[0]*src[6]; + tmp[9] = src[2]*src[4]; + tmp[10] = src[0]*src[5]; + tmp[11] = src[1]*src[4]; + + dst[8] = tmp[0]*src[13] + tmp[3]*src[14] + tmp[4]*src[15]; + dst[8] -= tmp[1]*src[13] + tmp[2]*src[14] + tmp[5]*src[15]; + dst[9] = tmp[1]*src[12] + tmp[6]*src[14] + tmp[9]*src[15]; + dst[9] -= tmp[0]*src[12] + tmp[7]*src[14] + tmp[8]*src[15]; + dst[10] = tmp[2]*src[12] + tmp[7]*src[13] + tmp[10]*src[15]; + dst[10]-= tmp[3]*src[12] + tmp[6]*src[13] + tmp[11]*src[15]; + dst[11] = tmp[5]*src[12] + tmp[8]*src[13] + tmp[11]*src[14]; + dst[11]-= tmp[4]*src[12] + tmp[9]*src[13] + tmp[10]*src[14]; + dst[12] = tmp[2]*src[10] + tmp[5]*src[11] + tmp[1]*src[9]; + dst[12]-= tmp[4]*src[11] + tmp[0]*src[9] + tmp[3]*src[10]; + dst[13] = tmp[8]*src[11] + tmp[0]*src[8] + tmp[7]*src[10]; + dst[13]-= tmp[6]*src[10] + tmp[9]*src[11] + tmp[1]*src[8]; + dst[14] = tmp[6]*src[9] + tmp[11]*src[11] + tmp[3]*src[8]; + dst[14]-= tmp[10]*src[11] + tmp[2]*src[8] + tmp[7]*src[9]; + dst[15] = tmp[10]*src[10] + tmp[4]*src[8] + tmp[9]*src[9]; + dst[15]-= tmp[8]*src[9] + tmp[11]*src[10] + tmp[5]*src[8]; + + det=src[0]*dst[0]+src[1]*dst[1]+src[2]*dst[2]+src[3]*dst[3]; + + det = 1.0f/det; + for(uint32_t j=0;j<16;j++) + { + dst[j] *= det; + } + + return Mat44V + ( + Vec4V(dst[0],dst[4],dst[8],dst[12]), + Vec4V(dst[1],dst[5],dst[9],dst[13]), + Vec4V(dst[2],dst[6],dst[10],dst[14]), + Vec4V(dst[3],dst[7],dst[11],dst[15]) + ); +} + +NV_FORCE_INLINE Mat44V M44Trnsps(const Mat44V& a) +{ + return Mat44V + ( + Vec4V(a.col0.x,a.col1.x,a.col2.x,a.col3.x), + Vec4V(a.col0.y,a.col1.y,a.col2.y,a.col3.y), + Vec4V(a.col0.z,a.col1.z,a.col2.z,a.col3.z), + Vec4V(a.col0.w,a.col1.w,a.col2.w,a.col3.w) + ); +} + +NV_FORCE_INLINE Vec4V V4LoadXYZW(const float& x, const float& y, const float& z, const float& w) +{ + return Vec4V(x, y, z, w); +} + + +/* +NV_FORCE_INLINE VecU16V V4U32PK(VecU32V a, VecU32V b) +{ + return VecU16V( + uint16_t(NvClamp((a).u32[0], 0, 0xFFFF)), + uint16_t(NvClamp((a).u32[1], 0, 0xFFFF)), + uint16_t(NvClamp((a).u32[2], 0, 0xFFFF)), + uint16_t(NvClamp((a).u32[3], 0, 0xFFFF)), + uint16_t(NvClamp((b).u32[0], 0, 0xFFFF)), + uint16_t(NvClamp((b).u32[1], 0, 0xFFFF)), + uint16_t(NvClamp((b).u32[2], 0, 0xFFFF)), + uint16_t(NvClamp((b).u32[3], 0, 0xFFFF))); +} +*/ + + +NV_FORCE_INLINE VecU32V V4U32Sel(const BoolV c, const VecU32V a, const VecU32V b) +{ + return VecU32V( + c.ux ? a.u32[0] : b.u32[0], + c.uy ? a.u32[1] : b.u32[1], + c.uz ? a.u32[2] : b.u32[2], + c.uw ? a.u32[3] : b.u32[3] + ); +} + +NV_FORCE_INLINE VecU32V V4U32or(VecU32V a, VecU32V b) +{ + return VecU32V((a).u32[0]|(b).u32[0], (a).u32[1]|(b).u32[1], (a).u32[2]|(b).u32[2], (a).u32[3]|(b).u32[3]); +} + +NV_FORCE_INLINE VecU32V V4U32and(VecU32V a, VecU32V b) +{ + return VecU32V((a).u32[0]&(b).u32[0], (a).u32[1]&(b).u32[1], (a).u32[2]&(b).u32[2], (a).u32[3]&(b).u32[3]); +} + +NV_FORCE_INLINE VecU32V V4U32Andc(VecU32V a, VecU32V b) +{ + return VecU32V((a).u32[0]&~(b).u32[0], (a).u32[1]&~(b).u32[1], (a).u32[2]&~(b).u32[2], (a).u32[3]&~(b).u32[3]); +} + +/* +NV_FORCE_INLINE VecU16V V4U16Or(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0]|(b).u16[0], (a).u16[1]|(b).u16[1], (a).u16[2]|(b).u16[2], (a).u16[3]|(b).u16[3], + (a).u16[4]|(b).u16[4], (a).u16[5]|(b).u16[5], (a).u16[6]|(b).u16[6], (a).u16[7]|(b).u16[7]); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16And(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0]&(b).u16[0], (a).u16[1]&(b).u16[1], (a).u16[2]&(b).u16[2], (a).u16[3]&(b).u16[3], + (a).u16[4]&(b).u16[4], (a).u16[5]&(b).u16[5], (a).u16[6]&(b).u16[6], (a).u16[7]&(b).u16[7]); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16Andc(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0]&~(b).u16[0], (a).u16[1]&~(b).u16[1], (a).u16[2]&~(b).u16[2], (a).u16[3]&~(b).u16[3], + (a).u16[4]&~(b).u16[4], (a).u16[5]&~(b).u16[5], (a).u16[6]&~(b).u16[6], (a).u16[7]&~(b).u16[7]); +} +*/ + +/* +template NV_FORCE_INLINE VecI32V V4ISplat() +{ + return VecI32V(a, a, a, a); +} + +template NV_FORCE_INLINE VecU32V V4USplat() +{ + return VecU32V(a, a, a, a); +} +*/ + +/* +NV_FORCE_INLINE void V4U16StoreAligned(VecU16V val, VecU16V* address) +{ + *address = val; +} +*/ + +NV_FORCE_INLINE void V4U32StoreAligned(VecU32V val, VecU32V* address) +{ + *address = val; +} + + +NV_FORCE_INLINE Vec4V V4Andc(const Vec4V a, const VecU32V b) +{ + VecU32V r = V4U32Andc(*reinterpret_cast(&a),b); + return (*reinterpret_cast(&r)); +} + +NV_FORCE_INLINE VecU32V V4IsGrtrV32u(const Vec4V a, const Vec4V b) +{ + return VecU32V( + a.x > b.x ? 0xFFFFffff : 0, + a.y > b.y ? 0xFFFFffff : 0, + a.z > b.z ? 0xFFFFffff : 0, + a.w > b.w ? 0xFFFFffff : 0); +} + +NV_FORCE_INLINE VecU16V V4U16LoadAligned(VecU16V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE VecU16V V4U16LoadUnaligned(VecU16V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE VecU16V V4U16CompareGt(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0]>(b).u16[0], (a).u16[1]>(b).u16[1], (a).u16[2]>(b).u16[2], (a).u16[3]>(b).u16[3], + (a).u16[4]>(b).u16[4], (a).u16[5]>(b).u16[5], (a).u16[6]>(b).u16[6], (a).u16[7]>(b).u16[7]); +} + +NV_FORCE_INLINE VecU16V V4I16CompareGt(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).i16[0]>(b).i16[0], (a).i16[1]>(b).i16[1], (a).i16[2]>(b).i16[2], (a).i16[3]>(b).i16[3], + (a).i16[4]>(b).i16[4], (a).i16[5]>(b).i16[5], (a).i16[6]>(b).i16[6], (a).i16[7]>(b).i16[7]); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a) +{ + return Vec4V(float((a).u32[0]), float((a).u32[1]), float((a).u32[2]), float((a).u32[3])); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecI32V(VecI32V a) +{ + return Vec4V(float((a).i32[0]), float((a).i32[1]), float((a).i32[2]), float((a).i32[3])); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_Vec4V(Vec4V a) +{ + float* data = (float*)&a; + return VecI32V(int32_t(data[0]), int32_t(data[1]), int32_t(data[2]), int32_t(data[3])); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecU32V(VecU32V a) +{ + Vec4V b = *reinterpret_cast(&a); + return b; +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecI32V(VecI32V a) +{ + Vec4V b = *reinterpret_cast(&a); + return b; +} + +NV_FORCE_INLINE VecU32V VecU32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + VecU32V b = *reinterpret_cast(&a); + return b; +} + +NV_FORCE_INLINE VecI32V VecI32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + VecI32V b= *reinterpret_cast(&a); + return b; +} + +template NV_FORCE_INLINE VecU32V V4U32SplatElement(VecU32V a) +{ + return VecU32V((a).u32[index], (a).u32[index], (a).u32[index], (a).u32[index]); +} + +template NV_FORCE_INLINE VecU32V V4U32SplatElement(BoolV a) +{ + const uint32_t u = (&a.ux)[index]; + return VecU32V(u, u, u, u); +} + +template NV_FORCE_INLINE Vec4V V4SplatElement(Vec4V a) +{ + float* data = (float*)&a; + return Vec4V(data[index], data[index], data[index], data[index]); +} + +template NV_FORCE_INLINE VecU16V V4U16SplatElement(VecU16V a) +{ + return VecU16V( + (a).u16[index], (a).u16[index], (a).u16[index], (a).u16[index], + (a).u16[index], (a).u16[index], (a).u16[index], (a).u16[index]); +} + +template NV_FORCE_INLINE VecI16V V4I16SplatImmediate() +{ + return VecI16V(imm, imm, imm, imm, imm, imm, imm, imm); +} + +template NV_FORCE_INLINE VecU16V V4U16SplatImmediate() +{ + return VecU16V(imm, imm, imm, imm, imm, imm, imm, imm); +} + +NV_FORCE_INLINE VecU16V V4U16SubtractModulo(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0] - (b).u16[0], (a).u16[1] - (b).u16[1], (a).u16[2] - (b).u16[2], (a).u16[3] - (b).u16[3], + (a).u16[4] - (b).u16[4], (a).u16[5] - (b).u16[5], (a).u16[6] - (b).u16[6], (a).u16[7] - (b).u16[7]); +} + +NV_FORCE_INLINE VecU16V V4U16AddModulo(VecU16V a, VecU16V b) +{ + return VecU16V( + (a).u16[0] + (b).u16[0], (a).u16[1] + (b).u16[1], (a).u16[2] + (b).u16[2], (a).u16[3] + (b).u16[3], + (a).u16[4] + (b).u16[4], (a).u16[5] + (b).u16[5], (a).u16[6] + (b).u16[6], (a).u16[7] + (b).u16[7]); +} + +NV_FORCE_INLINE VecU32V V4U16GetLo16(VecU16V a) +{ + return VecU32V((a).u16[0], (a).u16[2], (a).u16[4], (a).u16[6]); +} + +NV_FORCE_INLINE VecU32V V4U16GetHi16(VecU16V a) +{ + return VecU32V((a).u16[1], (a).u16[3], (a).u16[5], (a).u16[7]); +} + +NV_FORCE_INLINE VecU32V VecU32VLoadXYZW(uint32_t x, uint32_t y, uint32_t z, uint32_t w) +{ + return VecU32V(x, y, z, w); +} + +NV_FORCE_INLINE Vec4V V4Abs(const Vec4V a) +{ + return V4Max(a,V4Neg(a)); +} + +NV_FORCE_INLINE BoolV V4IsEqU32(const VecU32V a, const VecU32V b) +{ + return BoolV(a.u32[0]==b.u32[0] ? -1 : 0, a.u32[1]==b.u32[1] ? -1 : 0, a.u32[2]==b.u32[2] ? -1 : 0, a.u32[3]==b.u32[3] ? -1 : 0); +} + +NV_FORCE_INLINE VecU32V U4Load(const uint32_t i) +{ + return VecU32V(i, i, i, i); +} + +NV_FORCE_INLINE VecU32V U4LoadU(const uint32_t* i) +{ + return VecU32V(i[0], i[1], i[2], i[3]); +} + +NV_FORCE_INLINE VecU32V U4LoadA(const uint32_t* i) +{ + return VecU32V(i[0], i[1], i[2], i[3]); +} + +NV_FORCE_INLINE VecI32V I4Load(const int32_t i) +{ + return VecI32V(i, i, i, i); +} + +NV_FORCE_INLINE VecI32V I4LoadU(const int32_t* i) +{ + return VecI32V(i[0], i[1], i[2], i[3]); +} + +NV_FORCE_INLINE VecI32V I4LoadA(const int32_t* i) +{ + return VecI32V(i[0], i[1], i[2], i[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_Add(const VecI32VArg a, const VecI32VArg b) +{ + return VecI32V(a.i32[0] + b.i32[0], a.i32[1] + b.i32[1], a.i32[2] + b.i32[2], a.i32[3] + b.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sub(const VecI32VArg a, const VecI32VArg b) +{ + return VecI32V(a.i32[0] - b.i32[0], a.i32[1] - b.i32[1], a.i32[2] - b.i32[2], a.i32[3] - b.i32[3]); +} + +NV_FORCE_INLINE BoolV VecI32V_IsGrtr(const VecI32VArg a, const VecI32VArg b) +{ + return BoolV(a.i32[0] > b.i32[0] ? -1 : 0, a.i32[1] > b.i32[1] ? -1 : 0, a.i32[2] > b.i32[2] ? -1 : 0, a.i32[3] > b.i32[3] ? -1 : 0); +} + +NV_FORCE_INLINE BoolV VecI32V_IsEq(const VecI32VArg a, const VecI32VArg b) +{ + return BoolV(a.i32[0] == b.i32[0] ? -1 : 0, a.i32[1] == b.i32[1] ? -1 : 0, a.i32[2] == b.i32[2] ? -1 : 0, a.i32[3] == b.i32[3] ? -1 : 0); +} + +NV_FORCE_INLINE VecI32V V4I32Sel(const BoolV c, const VecI32V a, const VecI32V b) +{ + return VecI32V( + c.ux ? a.i32[0] : b.i32[0], + c.uy ? a.i32[1] : b.i32[1], + c.uz ? a.i32[2] : b.i32[2], + c.uw ? a.i32[3] : b.i32[3] + ); +} + +NV_FORCE_INLINE VecI32V VecI32V_Zero() +{ + return VecI32V(0,0,0,0); +} + +NV_FORCE_INLINE VecI32V VecI32V_One() +{ + return VecI32V(1,1,1,1); +} + +NV_FORCE_INLINE VecI32V VecI32V_Two() +{ + return VecI32V(2,2,2,2); +} + +NV_FORCE_INLINE VecI32V VecI32V_MinusOne() +{ + return VecI32V(-1,-1,-1,-1); +} + +NV_FORCE_INLINE VecU32V U4Zero() +{ + return VecU32V(0,0,0,0); +} + +NV_FORCE_INLINE VecU32V U4One() +{ + return VecU32V(1,1,1,1); +} + +NV_FORCE_INLINE VecU32V U4Two() +{ + return VecU32V(2,2,2,2); +} + + +NV_FORCE_INLINE VecShiftV VecI32V_PrepareShift(const VecI32VArg shift) +{ + return shift; +} + +NV_FORCE_INLINE VecI32V VecI32V_LeftShift(const VecI32VArg a, const VecShiftVArg count) +{ + return VecI32V(a.i32[0] << count.i32[0], a.i32[1] << count.i32[1], a.i32[2] << count.i32[2], a.i32[3] << count.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_RightShift(const VecI32VArg a, const VecShiftVArg count) +{ + return VecI32V(a.i32[0] >> count.i32[0], a.i32[1] >> count.i32[1], a.i32[2] >> count.i32[2], a.i32[3] >> count.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_And(const VecI32VArg a, const VecI32VArg b) +{ + return VecI32V(a.i32[0]&b.i32[0], a.i32[1]&b.i32[1], a.i32[2]&b.i32[2], a.i32[3]&b.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_Or(const VecI32VArg a, const VecI32VArg b) +{ + return VecI32V(a.i32[0]|b.i32[0], a.i32[1]|b.i32[1], a.i32[2]|b.i32[2], a.i32[3]|b.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetX(const VecI32VArg a) +{ + return VecI32V(a.i32[0], a.i32[0], a.i32[0], a.i32[0]); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetY(const VecI32VArg a) +{ + return VecI32V(a.i32[1], a.i32[1], a.i32[1], a.i32[1]); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetZ(const VecI32VArg a) +{ + return VecI32V(a.i32[2], a.i32[2], a.i32[2], a.i32[2]); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetW(const VecI32VArg a) +{ + return VecI32V(a.i32[3], a.i32[3], a.i32[3], a.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sel(const BoolV c, const VecI32VArg a, const VecI32VArg b) +{ + return VecI32V(c.ux ? a.i32[0] : b.i32[0], c.uy ? a.i32[1] : b.i32[1], c.uz ? a.i32[2] : b.i32[2], c.uw ? a.i32[3] : b.i32[3]); +} + +NV_FORCE_INLINE VecI32V VecI32V_Merge(const VecI32VArg a, const VecI32VArg b, const VecI32VArg c, const VecI32VArg d) +{ + return VecI32V(a.i32[0], b.i32[0], c.i32[0], d.i32[0]); +} + +NV_FORCE_INLINE void NvI32_From_VecI32V(const VecI32VArg a, int32_t* i) +{ + *i = a.i32[0]; +} + +NV_FORCE_INLINE VecI32V VecI32V_From_BoolV(const BoolVArg b) +{ + return VecI32V(b.ux, b.uy, b.uz, b.uw); +} + +NV_FORCE_INLINE VecU32V VecU32V_From_BoolV(const BoolVArg b) +{ + return VecU32V(b.ux, b.uy, b.uz, b.uw); +} + +//not used + + +/* +NV_FORCE_INLINE Vec4V V4LoadAligned(Vec4V* addr) +{ + return *addr; +} +*/ + +/* +NV_FORCE_INLINE Vec4V V4LoadUnaligned(Vec4V* addr) +{ + return *addr; +} +*/ + +/* +NV_FORCE_INLINE Vec4V V4Ceil(const Vec4V a) +{ + return Vec4V(NvCeil(a.x), NvCeil(a.y), NvCeil(a.z), NvCeil(a.w)); +} + +NV_FORCE_INLINE Vec4V V4Floor(const Vec4V a) +{ + return Vec4V(NvFloor(a.x), NvFloor(a.y), NvFloor(a.z), NvFloor(a.w)); +} +*/ + + +/* +NV_FORCE_INLINE VecU32V V4ConvertToU32VSaturate(const Vec4V a, uint32_t power) +{ + NV_ASSERT(power == 0 && "Non-zero power not supported in convertToU32VSaturate"); + NV_UNUSED(power); // prevent warning in release builds + float ffffFFFFasFloat = float(0xFFFF0000); + return VecU32V( + uint32_t(NvClamp((a).x, 0.0f, ffffFFFFasFloat)), + uint32_t(NvClamp((a).y, 0.0f, ffffFFFFasFloat)), + uint32_t(NvClamp((a).z, 0.0f, ffffFFFFasFloat)), + uint32_t(NvClamp((a).w, 0.0f, ffffFFFFasFloat))); +} +*/ + + + +#endif //NV_PHYSICS_COMMON_VECMATH_SCALAR_INLINE diff --git a/blast/source/shared/NsFoundation/include/NsVecQuat.h b/blast/source/shared/NsFoundation/include/NsVecQuat.h new file mode 100644 index 000000000..29c12304e --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NsVecQuat.h @@ -0,0 +1,497 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_PHYSICS_COMMON_VECQUAT +#define NV_PHYSICS_COMMON_VECQUAT + +//#include "NsInlineAoS.h" + +#ifndef NV_PIDIV2 +#define NV_PIDIV2 1.570796327f +#endif + +////////////////////////////////// +//QuatV +////////////////////////////////// +NV_FORCE_INLINE QuatV QuatVLoadXYZW(const float x, const float y, const float z, const float w) +{ + return V4LoadXYZW(x, y, z, w); +} + +NV_FORCE_INLINE QuatV QuatVLoadU(const float* v) +{ + return V4LoadU(v); +} + +NV_FORCE_INLINE QuatV QuatVLoadA(const float* v) +{ + return V4LoadA(v); +} + + +NV_FORCE_INLINE QuatV QuatV_From_RotationAxisAngle(const Vec3V u, const FloatV a) +{ + //q = cos(a/2) + u*sin(a/2) + const FloatV half = FLoad(0.5f); + const FloatV hangle = FMul(a, half); + const FloatV piByTwo(FLoad(NV_PIDIV2)); + const FloatV PiByTwoMinHangle(FSub(piByTwo, hangle)); + const Vec4V hangle2(Vec4V_From_Vec3V(V3Merge(hangle, PiByTwoMinHangle, hangle))); + + /*const FloatV sina = FSin(hangle); + const FloatV cosa = FCos(hangle);*/ + + const Vec4V _sina = V4Sin(hangle2); + const FloatV sina = V4GetX(_sina); + const FloatV cosa = V4GetY(_sina); + + const Vec3V v = V3Scale(u, sina); + //return V4Sel(BTTTF(), Vec4V_From_Vec3V(v), V4Splat(cosa)); + return V4SetW(Vec4V_From_Vec3V(v) , cosa); +} + +//Normalize +NV_FORCE_INLINE QuatV QuatNormalize(const QuatV q) +{ + return V4Normalize(q); +} + +NV_FORCE_INLINE FloatV QuatLength(const QuatV q) +{ + return V4Length(q); +} + +NV_FORCE_INLINE FloatV QuatLengthSq(const QuatV q) +{ + return V4LengthSq(q); +} + +NV_FORCE_INLINE FloatV QuatDot(const QuatV a, const QuatV b) // convert this NvQuat to a unit quaternion +{ + return V4Dot(a, b); +} + +NV_FORCE_INLINE QuatV QuatConjugate(const QuatV q) +{ + return V4SetW(V4Neg(q), V4GetW(q)); +} + +NV_FORCE_INLINE Vec3V QuatGetImaginaryPart(const QuatV q) +{ + return Vec3V_From_Vec4V(q); +} + +/** brief computes rotation of x-axis */ +NV_FORCE_INLINE Vec3V QuatGetBasisVector0(const QuatV q) +{ + /*const float x2 = x*2.0f; + const float w2 = w*2.0f; + return NvVec3( (w * w2) - 1.0f + x*x2, + (z * w2) + y*x2, + (-y * w2) + z*x2);*/ + + const FloatV two = FLoad(2.f); + const FloatV w = V4GetW(q); + const Vec3V u = Vec3V_From_Vec4V(q); + + const FloatV x2 = FMul(V3GetX(u), two); + const FloatV w2 = FMul(w, two); + + const Vec3V a = V3Scale(u, x2); + const Vec3V tmp = V3Merge(w, V3GetZ(u), FNeg(V3GetY(u))); + //const Vec3V b = V3Scale(tmp, w2); + //const Vec3V ab = V3Add(a, b); + const Vec3V ab = V3ScaleAdd(tmp, w2, a); + return V3SetX(ab, FSub(V3GetX(ab), FOne())); +} + +/** brief computes rotation of y-axis */ +NV_FORCE_INLINE Vec3V QuatGetBasisVector1(const QuatV q) +{ + /*const float y2 = y*2.0f; + const float w2 = w*2.0f; + return NvVec3( (-z * w2) + x*y2, + (w * w2) - 1.0f + y*y2, + (x * w2) + z*y2);*/ + + const FloatV two = FLoad(2.f); + const FloatV w = V4GetW(q); + const Vec3V u = Vec3V_From_Vec4V(q); + + const FloatV y2 = FMul(V3GetY(u), two); + const FloatV w2 = FMul(w, two); + + const Vec3V a = V3Scale(u, y2); + const Vec3V tmp = V3Merge(FNeg(V3GetZ(u)),w, V3GetX(u)); + //const Vec3V b = V3Scale(tmp, w2); + //const Vec3V ab = V3Add(a, b); + const Vec3V ab = V3ScaleAdd(tmp, w2, a); + return V3SetY(ab, FSub(V3GetY(ab), FOne())); + +} + + +/** brief computes rotation of z-axis */ +NV_FORCE_INLINE Vec3V QuatGetBasisVector2(const QuatV q) +{ + /*const float z2 = z*2.0f; + const float w2 = w*2.0f; + return NvVec3( (y * w2) + x*z2, + (-x * w2) + y*z2, + (w * w2) - 1.0f + z*z2);*/ + + + const FloatV two = FLoad(2.f); + const FloatV w = V4GetW(q); + const Vec3V u = Vec3V_From_Vec4V(q); + + const FloatV z2 = FMul(V3GetZ(u), two); + const FloatV w2 = FMul(w, two); + + const Vec3V a = V3Scale(u, z2); + const Vec3V tmp = V3Merge(V3GetY(u), FNeg(V3GetX(u)), w); + /*const Vec3V b = V3Scale(tmp, w2); + const Vec3V ab = V3Add(a, b);*/ + const Vec3V ab = V3ScaleAdd(tmp, w2, a); + return V3SetZ(ab, FSub(V3GetZ(ab), FOne())); + +} + + +NV_FORCE_INLINE Vec3V QuatRotate(const QuatV q, const Vec3V v) +{ + /* + const NvVec3 qv(x,y,z); + return (v*(w*w-0.5f) + (qv.cross(v))*w + qv*(qv.dot(v)))*2; + */ + + const FloatV two = FLoad(2.f); + //const FloatV half = FloatV_From_F32(0.5f); + const FloatV nhalf = FLoad(-0.5f); + const Vec3V u = Vec3V_From_Vec4V(q); + const FloatV w = V4GetW(q); + //const FloatV w2 = FSub(FMul(w, w), half); + const FloatV w2 = FScaleAdd(w, w, nhalf); + const Vec3V a = V3Scale(v, w2); + //const Vec3V b = V3Scale(V3Cross(u, v), w); + //const Vec3V c = V3Scale(u, V3Dot(u, v)); + //return V3Scale(V3Add(V3Add(a, b), c), two); + const Vec3V temp = V3ScaleAdd(V3Cross(u, v), w, a); + return V3Scale(V3ScaleAdd(u, V3Dot(u, v), temp), two); + +} + +NV_FORCE_INLINE Vec3V QuatTransform(const QuatV q, const Vec3V p, const Vec3V v) +{ + //p + q.rotate(v) + const FloatV two = FLoad(2.f); + //const FloatV half = FloatV_From_F32(0.5f); + const FloatV nhalf = FLoad(-0.5f); + const Vec3V u = Vec3V_From_Vec4V(q); + const FloatV w = V4GetW(q); + //const FloatV w2 = FSub(FMul(w, w), half); + const FloatV w2 = FScaleAdd(w, w, nhalf); + const Vec3V a = V3Scale(v, w2); + /*const Vec3V b = V3Scale(V3Cross(u, v), w); + const Vec3V c = V3Scale(u, V3Dot(u, v)); + return V3ScaleAdd(V3Add(V3Add(a, b), c), two, p);*/ + const Vec3V temp = V3ScaleAdd(V3Cross(u, v), w, a); + const Vec3V z = V3ScaleAdd(u, V3Dot(u, v), temp); + return V3ScaleAdd(z, two, p); +} + + +NV_FORCE_INLINE Vec3V QuatRotateInv(const QuatV q, const Vec3V v) +{ + +// const NvVec3 qv(x,y,z); +// return (v*(w*w-0.5f) - (qv.cross(v))*w + qv*(qv.dot(v)))*2; + + const FloatV two = FLoad(2.f); + const FloatV nhalf = FLoad(-0.5f); + const Vec3V u = Vec3V_From_Vec4V(q); + const FloatV w = V4GetW(q); + const FloatV w2 = FScaleAdd(w, w, nhalf); + const Vec3V a = V3Scale(v, w2); + /*const Vec3V b = V3Scale(V3Cross(u, v), w); + const Vec3V c = V3Scale(u, V3Dot(u, v)); + return V3Scale(V3Add(V3Sub(a, b), c), two);*/ + const Vec3V temp = V3NegScaleSub(V3Cross(u, v), w, a); + return V3Scale(V3ScaleAdd(u, V3Dot(u, v), temp), two); + +} + +NV_FORCE_INLINE QuatV QuatMul(const QuatV a, const QuatV b) +{ + const Vec3V imagA = Vec3V_From_Vec4V(a); + const Vec3V imagB = Vec3V_From_Vec4V(b); + const FloatV rA = V4GetW(a); + const FloatV rB = V4GetW(b); + + const FloatV real = FSub(FMul(rA, rB), V3Dot(imagA, imagB)); + const Vec3V v0 = V3Scale(imagA, rB); + const Vec3V v1 = V3Scale(imagB, rA); + const Vec3V v2 = V3Cross(imagA, imagB); + const Vec3V imag = V3Add(V3Add(v0, v1), v2); + + return V4SetW(Vec4V_From_Vec3V(imag), real); +} + +NV_FORCE_INLINE QuatV QuatAdd(const QuatV a, const QuatV b) +{ + return V4Add(a, b); +} + +NV_FORCE_INLINE QuatV QuatNeg(const QuatV q) +{ + return V4Neg(q); +} + +NV_FORCE_INLINE QuatV QuatSub(const QuatV a, const QuatV b) +{ + return V4Sub(a, b); +} + +NV_FORCE_INLINE QuatV QuatScale(const QuatV a, const FloatV b) +{ + return V4Scale(a, b); +} + +NV_FORCE_INLINE QuatV QuatMerge(const FloatV* const floatVArray) +{ + return V4Merge(floatVArray); +} + +NV_FORCE_INLINE QuatV QuatMerge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w) +{ + return V4Merge(x, y, z, w); +} + +NV_FORCE_INLINE QuatV QuatIdentity() +{ + return V4SetW(V4Zero(), FOne()); +} + +NV_FORCE_INLINE bool isFiniteQuatV(const QuatV q) +{ + return isFiniteVec4V(q); +} + +NV_FORCE_INLINE bool isValidQuatV(const QuatV q) +{ + const FloatV unitTolerance = FLoad((float)1e-4); + const FloatV tmp = FAbs(FSub(QuatLength(q), FOne())); + const BoolV con = FIsGrtr(unitTolerance, tmp); + return isFiniteVec4V(q) & (BAllEq(con, BTTTT())==1); +} + + +NV_FORCE_INLINE bool isSaneQuatV(const QuatV q) +{ + const FloatV unitTolerance = FLoad((float)1e-2); + const FloatV tmp = FAbs(FSub(QuatLength(q), FOne())); + const BoolV con = FIsGrtr(unitTolerance, tmp); + return isFiniteVec4V(q) & (BAllEq(con, BTTTT())==1); +} + +NV_FORCE_INLINE void QuatGetMat33V(const QuatVArg q, Vec3V& column0, Vec3V& column1, Vec3V& column2) +{ + const FloatV one = FOne(); + const FloatV x = V4GetX(q); + const FloatV y = V4GetY(q); + const FloatV z = V4GetZ(q); + const FloatV w = V4GetW(q); + + const FloatV x2 = FAdd(x, x); + const FloatV y2 = FAdd(y, y); + const FloatV z2 = FAdd(z, z); + + const FloatV xx = FMul(x2,x); + const FloatV yy = FMul(y2,y); + const FloatV zz = FMul(z2,z); + + const FloatV xy = FMul(x2,y); + const FloatV xz = FMul(x2,z); + const FloatV xw = FMul(x2,w); + + const FloatV yz = FMul(y2,z); + const FloatV yw = FMul(y2,w); + const FloatV zw = FMul(z2,w); + + const FloatV v = FSub(one, xx); + + column0 = V3Merge(FSub(FSub(one, yy), zz), FAdd(xy, zw), FSub(xz, yw)); + column1 = V3Merge(FSub(xy, zw), FSub(v ,zz), FAdd(yz, xw)); + column2 = V3Merge(FAdd(xz, yw), FSub(yz, xw), FSub(v, yy)); +} + +NV_FORCE_INLINE Mat33V QuatGetMat33V(const QuatVArg q) +{ + //const FloatV two = FloatV_From_F32(2.f); + //const FloatV one = FOne(); + + //const FloatV x = V4GetX(q); + //const FloatV y = V4GetY(q); + //const FloatV z = V4GetZ(q); + //const Vec4V _q = V4Mul(q, two); + // + ////const FloatV w = V4GetW(q); + + //const Vec4V t0 = V4Mul(_q, x); // 2xx, 2xy, 2xz, 2xw + //const Vec4V t1 = V4Mul(_q, y); // 2xy, 2yy, 2yz, 2yw + //const Vec4V t2 = V4Mul(_q, z); // 2xz, 2yz, 2zz, 2zw + ////const Vec4V t3 = V4Mul(_q, w); // 2xw, 2yw, 2zw, 2ww + + //const FloatV xx2 = V4GetX(t0); + //const FloatV xy2 = V4GetY(t0); + //const FloatV xz2 = V4GetZ(t0); + //const FloatV xw2 = V4GetW(t0); + + //const FloatV yy2 = V4GetY(t1); + //const FloatV yz2 = V4GetZ(t1); + //const FloatV yw2 = V4GetW(t1); + + //const FloatV zz2 = V4GetZ(t2); + //const FloatV zw2 = V4GetW(t2); + + ////const FloatV ww2 = V4GetW(t3); + + //const FloatV c00 = FSub(one, FAdd(yy2, zz2)); + //const FloatV c01 = FSub(xy2, zw2); + //const FloatV c02 = FAdd(xz2, yw2); + + //const FloatV c10 = FAdd(xy2, zw2); + //const FloatV c11 = FSub(one, FAdd(xx2, zz2)); + //const FloatV c12 = FSub(yz2, xw2); + + //const FloatV c20 = FSub(xz2, yw2); + //const FloatV c21 = FAdd(yz2, xw2); + //const FloatV c22 = FSub(one, FAdd(xx2, yy2)); + + //const Vec3V c0 = V3Merge(c00, c10, c20); + //const Vec3V c1 = V3Merge(c01, c11, c21); + //const Vec3V c2 = V3Merge(c02, c12, c22); + + //return Mat33V(c0, c1, c2); + + const FloatV one = FOne(); + const FloatV x = V4GetX(q); + const FloatV y = V4GetY(q); + const FloatV z = V4GetZ(q); + const FloatV w = V4GetW(q); + + const FloatV x2 = FAdd(x, x); + const FloatV y2 = FAdd(y, y); + const FloatV z2 = FAdd(z, z); + + const FloatV xx = FMul(x2,x); + const FloatV yy = FMul(y2,y); + const FloatV zz = FMul(z2,z); + + const FloatV xy = FMul(x2,y); + const FloatV xz = FMul(x2,z); + const FloatV xw = FMul(x2,w); + + const FloatV yz = FMul(y2,z); + const FloatV yw = FMul(y2,w); + const FloatV zw = FMul(z2,w); + + const FloatV v = FSub(one, xx); + + const Vec3V column0 = V3Merge(FSub(FSub(one, yy), zz), FAdd(xy, zw), FSub(xz, yw)); + const Vec3V column1 = V3Merge(FSub(xy, zw), FSub(v ,zz), FAdd(yz, xw)); + const Vec3V column2 = V3Merge(FAdd(xz, yw), FSub(yz, xw), FSub(v, yy)); + return Mat33V(column0, column1, column2); +} + +NV_FORCE_INLINE QuatV Mat33GetQuatV(const Mat33V& a) +{ + const FloatV one = FOne(); + const FloatV zero = FZero(); + const FloatV half = FLoad(0.5f); + const FloatV two = FLoad(2.f); + const FloatV scale = FLoad(0.25f); + const FloatV a00 = V3GetX(a.col0); + const FloatV a11 = V3GetY(a.col1); + const FloatV a22 = V3GetZ(a.col2); + + const FloatV a21 = V3GetZ(a.col1);//row=2, col=1; + const FloatV a12 = V3GetY(a.col2);//row=1, col=2; + const FloatV a02 = V3GetX(a.col2);//row=0, col=2; + const FloatV a20 = V3GetZ(a.col0);//row=2, col=0; + const FloatV a10 = V3GetY(a.col0);//row=1, col=0; + const FloatV a01 = V3GetX(a.col1);//row=0, col=1; + + const Vec3V vec0 = V3Merge(a21, a02, a10); + const Vec3V vec1 = V3Merge(a12, a20, a01); + const Vec3V v = V3Sub(vec0, vec1); + const Vec3V g = V3Add(vec0, vec1); + + const FloatV trace = FAdd(a00, FAdd(a11, a22)); + + + if(FAllGrtrOrEq(trace, zero)) + { + const FloatV h = FSqrt(FAdd(trace, one)); + const FloatV w = FMul(half, h); + const FloatV s = FMul(half, FRecip(h)); + const Vec3V u = V3Scale(v, s); + return V4SetW(Vec4V_From_Vec3V(u), w); + } + else + { + const FloatV ntrace = FNeg(trace); + const Vec3V d= V3Merge(a00, a11, a22); + const BoolV con0 = BAllTrue3(V3IsGrtrOrEq(V3Splat(a00), d)); + const BoolV con1 = BAllTrue3(V3IsGrtrOrEq(V3Splat(a11), d)); + + const FloatV t0 = FAdd(one, FScaleAdd(a00, two, ntrace)); + const FloatV t1 = FAdd(one, FScaleAdd(a11, two, ntrace)); + const FloatV t2 = FAdd(one, FScaleAdd(a22, two, ntrace)); + + const FloatV t = FSel(con0, t0, FSel(con1, t1, t2)); + + const FloatV h = FMul(two, FSqrt(t)); + const FloatV s = FRecip(h); + const FloatV g0 = FMul(scale, h); + const Vec3V vs = V3Scale(v, s); + const Vec3V gs = V3Scale(g, s); + const FloatV gsx = V3GetX(gs); + const FloatV gsy = V3GetY(gs); + const FloatV gsz = V3GetZ(gs); + //vs.x= (a21 - a12)*s; vs.y=(a02 - a20)*s; vs.z=(a10 - a01)*s; + //gs.x= (a21 + a12)*s; gs.y=(a02 + a20)*s; gs.z=(a10 + a01)*s; + const Vec4V v0 = V4Merge(g0, gsz, gsy, V3GetX(vs)); + const Vec4V v1 = V4Merge(gsz, g0, gsx, V3GetY(vs)); + const Vec4V v2 = V4Merge(gsy, gsx, g0, V3GetZ(vs)); + return V4Sel(con0, v0, V4Sel(con1, v1, v2)); + } +} + + +#endif \ No newline at end of file diff --git a/blast/source/shared/NsFoundation/include/NvUnionCast.h b/blast/source/shared/NsFoundation/include/NvUnionCast.h new file mode 100644 index 000000000..dfa77d93b --- /dev/null +++ b/blast/source/shared/NsFoundation/include/NvUnionCast.h @@ -0,0 +1,63 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_FOUNDATION_NV_UNION_CAST_H +#define NV_FOUNDATION_NV_UNION_CAST_H + +#include "NvPreprocessor.h" + +/** \addtogroup foundation +@{ +*/ + +#if !NV_DOXYGEN +namespace nvidia +{ +#endif + +template NV_FORCE_INLINE A NvUnionCast(B b) +{ + union AB + { + AB(B bb) + : _b(bb) + { + } + B _b; + A _a; + } u(b); + return u._a; +} + +#if !NV_DOXYGEN +} // namespace nvidia +#endif + +/** @} */ + +#endif diff --git a/blast/source/shared/NsFoundation/include/platform/unix/NsUnixAoS.h b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixAoS.h new file mode 100644 index 000000000..36b520b67 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixAoS.h @@ -0,0 +1,47 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_AOS_H +#define PS_UNIX_AOS_H + +// no includes here! this file should be included from NvcVecMath.h only!!! + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +#if NV_X86 || NV_X64 +# include "sse2/NsUnixSse2AoS.h" +#elif NV_NEON +# include "neon/NsUnixNeonAoS.h" +#else +# error No SIMD implementation for this unix platform. +#endif + + +#endif //PS_UNIX_AOS_H diff --git a/blast/source/shared/NsFoundation/include/platform/unix/NsUnixFPU.h b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixFPU.h new file mode 100644 index 000000000..38cd37542 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixFPU.h @@ -0,0 +1,60 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_UNIX_NSUNIXFPU_H +#define NV_UNIX_NSUNIXFPU_H + +#include "NvPreprocessor.h" + +#if NV_LINUX || NV_PS4 || NV_OSX + +#if NV_X86 || NV_X64 +#include +#elif NV_NEON +#include +#endif + +NV_INLINE nvidia::shdfnd::SIMDGuard::SIMDGuard() +{ + mControlWord = _mm_getcsr(); + // set default (disable exceptions: _MM_MASK_MASK) and FTZ (_MM_FLUSH_ZERO_ON), DAZ (_MM_DENORMALS_ZERO_ON: (1<<6)) + _mm_setcsr(_MM_MASK_MASK | _MM_FLUSH_ZERO_ON | (1 << 6)); +} + +NV_INLINE nvidia::shdfnd::SIMDGuard::~SIMDGuard() +{ + // restore control word and clear exception flags + // (setting exception state flags cause exceptions on the first following fp operation) + _mm_setcsr(mControlWord & ~_MM_EXCEPT_MASK); +} + +#else +#error No SIMD implementation for this unix platform. +#endif // NV_LINUX || NV_PS4 || NV_OSX + +#endif // #ifndef NV_UNIX_NSUNIXFPU_H diff --git a/blast/source/shared/NsFoundation/include/platform/unix/NsUnixInlineAoS.h b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixInlineAoS.h new file mode 100644 index 000000000..57672a688 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixInlineAoS.h @@ -0,0 +1,48 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_INLINE_AOS_H +#define PS_UNIX_INLINE_AOS_H + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +//Remove this define when all platforms use simd solver. +#define NV_SUPPORT_SIMD + +#if NV_X86 || NV_X64 +# include "sse2/NsUnixSse2InlineAoS.h" +#elif NV_NEON +# include "neon/NsUnixNeonInlineAoS.h" +#else +# error No SIMD implementation for this unix platform. +#endif + +#endif //PS_UNIX_INLINE_AOS_H + diff --git a/blast/source/shared/NsFoundation/include/platform/unix/NsUnixIntrinsics.h b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixIntrinsics.h new file mode 100644 index 000000000..044f8816c --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixIntrinsics.h @@ -0,0 +1,149 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_UNIX_NSUNIXINTRINSICS_H +#define NV_UNIX_NSUNIXINTRINSICS_H + +#include "Ns.h" +#include "NvAssert.h" +#include + +#if NV_ANDROID +#include // for Ns::debugBreak() { raise(SIGTRAP); } +#endif + +#if 0 +#include +#endif + +// this file is for internal intrinsics - that is, intrinsics that are used in +// cross platform code but do not appear in the API + +#if !(NV_LINUX || NV_ANDROID || NV_PS4 || NV_APPLE_FAMILY) +#error "This file should only be included by unix builds!!" +#endif + +namespace nvidia +{ +namespace shdfnd +{ + +NV_FORCE_INLINE void memoryBarrier() +{ + __sync_synchronize(); +} + +/*! +Return the index of the highest set bit. Undefined for zero arg. +*/ +NV_INLINE uint32_t highestSetBitUnsafe(uint32_t v) +{ + + return 31 -__builtin_clz(v); +} + +/*! +Return the index of the highest set bit. Undefined for zero arg. +*/ +NV_INLINE int32_t lowestSetBitUnsafe(uint32_t v) +{ + return __builtin_ctz(v); +} + +/*! +Returns the index of the highest set bit. Undefined for zero arg. +*/ +NV_INLINE uint32_t countLeadingZeros(uint32_t v) +{ + return __builtin_clz(v); +} + +/*! +Prefetch aligned 64B x86, 32b ARM around \c ptr+offset. +*/ +NV_FORCE_INLINE void prefetchLine(const void* ptr, uint32_t offset = 0) +{ + __builtin_prefetch(reinterpret_cast(ptr) + offset, 0, 3); +} + +/*! +Prefetch \c count bytes starting at \c ptr. +*/ +#if NV_ANDROID || NV_IOS +NV_FORCE_INLINE void prefetch(const void* ptr, uint32_t count = 1) +{ + const char* cp = static_cast(ptr); + size_t p = reinterpret_cast(ptr); + uint32_t startLine = uint32_t(p >> 5), endLine = uint32_t((p + count - 1) >> 5); + uint32_t lines = endLine - startLine + 1; + do + { + prefetchLine(cp); + cp += 32; + } while(--lines); +} +#else +NV_FORCE_INLINE void prefetch(const void* ptr, uint32_t count = 1) +{ + const char* cp = reinterpret_cast(ptr); + uint64_t p = size_t(ptr); + uint64_t startLine = p >> 6, endLine = (p + count - 1) >> 6; + uint64_t lines = endLine - startLine + 1; + do + { + prefetchLine(cp); + cp += 64; + } while(--lines); +} +#endif + +//! \brief platform-specific reciprocal +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipFast(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific fast reciprocal square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrtFast(float a) +{ + return 1.0f / ::sqrtf(a); +} + +//! \brief platform-specific floor +NV_CUDA_CALLABLE NV_FORCE_INLINE float floatFloor(float x) +{ + return ::floorf(x); +} + +#define NS_EXPECT_TRUE(x) x +#define NS_EXPECT_FALSE(x) x + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_UNIX_NSUNIXINTRINSICS_H diff --git a/blast/source/shared/NsFoundation/include/platform/unix/NsUnixTrigConstants.h b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixTrigConstants.h new file mode 100644 index 000000000..f04197d0a --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/NsUnixTrigConstants.h @@ -0,0 +1,71 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_TRIG_CONSTANTS_H +#define PS_UNIX_TRIG_CONSTANTS_H + +//#define NV_GLOBALCONST extern const __declspec(selectany) + +#if NV_WINRT +#define NV_GLOBALCONST extern const __declspec(selectany) +#else +#define NV_GLOBALCONST extern const __attribute__((weak)) +#endif + +NV_ALIGN_PREFIX(16) +struct NV_VECTORF32 +{ + float f[4]; +} NV_ALIGN_SUFFIX(16); + +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients0 = {{1.0f, -0.166666667f, 8.333333333e-3f, -1.984126984e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients1 = {{2.755731922e-6f, -2.505210839e-8f, 1.605904384e-10f, -7.647163732e-13f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients2 = {{2.811457254e-15f, -8.220635247e-18f, 1.957294106e-20f, -3.868170171e-23f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients0 = {{1.0f, -0.5f, 4.166666667e-2f, -1.388888889e-3f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients1 = {{2.480158730e-5f, -2.755731922e-7f, 2.087675699e-9f, -1.147074560e-11f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients2 = {{4.779477332e-14f, -1.561920697e-16f, 4.110317623e-19f, -8.896791392e-22f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients0 = {{1.0f, 0.333333333f, 0.133333333f, 5.396825397e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients1 = {{2.186948854e-2f, 8.863235530e-3f, 3.592128167e-3f, 1.455834485e-3f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients2 = {{5.900274264e-4f, 2.391290764e-4f, 9.691537707e-5f, 3.927832950e-5f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients0 = {{-0.05806367563904f, -0.41861972469416f, 0.22480114791621f, 2.17337241360606f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients1 = {{0.61657275907170f, 4.29696498283455f, -1.18942822255452f, -6.53784832094831f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients2 = {{-1.36926553863413f, -4.48179294237210f, 1.41810672941833f, 5.48179257935713f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients0 = {{1.0f, 0.333333334f, 0.2f, 0.142857143f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients1 = {{1.111111111e-1f, 9.090909091e-2f, 7.692307692e-2f, 6.666666667e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients2 = {{5.882352941e-2f, 5.263157895e-2f, 4.761904762e-2f, 4.347826087e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinEstCoefficients = {{1.0f, -1.66521856991541e-1f, 8.199913018755e-3f, -1.61475937228e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosEstCoefficients = {{1.0f, -4.95348008918096e-1f, 3.878259962881e-2f, -9.24587976263e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanEstCoefficients = {{2.484f, -1.954923183e-1f, 2.467401101f, NvInvPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanEstCoefficients = {{7.689891418951e-1f, 1.104742493348f, 8.661844266006e-1f, NvPiDivTwo}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinEstCoefficients = {{-1.36178272886711f, 2.37949493464538f, -8.08228565650486e-1f, 2.78440142746736e-1f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinEstConstants = {{1.00000011921f, NvPiDivTwo, 0.0f, 0.0f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVPiConstants0 = {{NvPi, NvTwoPi, NvInvPi, NvInvTwoPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVReciprocalTwoPi = {{NvInvTwoPi, NvInvTwoPi, NvInvTwoPi, NvInvTwoPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTwoPi = {{NvTwoPi, NvTwoPi, NvTwoPi, NvTwoPi}}; + +#endif diff --git a/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonAoS.h b/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonAoS.h new file mode 100644 index 000000000..556731335 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonAoS.h @@ -0,0 +1,138 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_NEON_AOS_H +#define PS_UNIX_NEON_AOS_H + +// no includes here! this file should be included from NvcVecMath.h only!!! + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +// only ARM NEON compatible platforms should reach this +#include + + +typedef float32x2_t FloatV; +typedef float32x4_t Vec3V; +typedef float32x4_t Vec4V; +typedef uint32x4_t BoolV; +typedef float32x4_t QuatV; + +typedef uint32x4_t VecU32V; +typedef int32x4_t VecI32V; +typedef uint16x8_t VecU16V; +typedef int16x8_t VecI16V; +typedef uint8x16_t VecU8V; + +#define FloatVArg FloatV& +#define Vec3VArg Vec3V& +#define Vec4VArg Vec4V& +#define BoolVArg BoolV& +#define VecU32VArg VecU32V& +#define VecI32VArg VecI32V& +#define VecU16VArg VecU16V& +#define VecI16VArg VecI16V& +#define VecU8VArg VecU8V& +#define QuatVArg QuatV& + +//KS - TODO - make an actual VecCrossV type for NEON +#define VecCrossV Vec3V + +typedef VecI32V VecShiftV; +#define VecShiftVArg VecShiftV& + +NV_ALIGN_PREFIX(16) +struct Mat33V +{ + Mat33V(){} + Mat33V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat34V +{ + Mat34V(){} + Mat34V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2, const Vec3V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); + Vec3V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat43V +{ + Mat43V(){} + Mat43V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat44V +{ + Mat44V(){} + Mat44V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2, const Vec4V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); + Vec4V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + +#endif //PS_UNIX_NEON_AOS_H + + + diff --git a/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonInlineAoS.h b/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonInlineAoS.h new file mode 100644 index 000000000..ebc581b40 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/neon/NsUnixNeonInlineAoS.h @@ -0,0 +1,3593 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_NEON_INLINE_AOS_H +#define PS_UNIX_NEON_INLINE_AOS_H + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +// improved estimates +#define VRECIPEQ recipq_newton<1> +#define VRECIPE recip_newton<1> +#define VRECIPSQRTEQ rsqrtq_newton<1> +#define VRECIPSQRTE rsqrt_newton<1> + +// "exact" +#define VRECIPQ recipq_newton<4> +#define VRECIP recip_newton<4> +#define VRECIPSQRTQ rsqrtq_newton<4> +#define VRECIPSQRT rsqrt_newton<4> + +#define VECMATH_AOS_EPSILON (1e-3f) + +//Remove this define when all platforms use simd solver. +#define NV_SUPPORT_SIMD + +namespace internalUnitNeonSimd +{ + NV_FORCE_INLINE uint32_t BAllTrue4_R(const BoolV a) + { + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + return uint32_t(vget_lane_u32(finalReduce, 0) == 0xffffFFFF); + } + + NV_FORCE_INLINE uint32_t BAnyTrue4_R(const BoolV a) + { + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + return uint32_t(vget_lane_u32(finalReduce, 0) != 0x0); + } + + NV_FORCE_INLINE uint32_t BAllTrue3_R(const BoolV a) + { + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + return uint32_t((vget_lane_u32(finalReduce, 0) & 0xffFFff) == 0xffFFff); + } + + NV_FORCE_INLINE uint32_t BAnyTrue3_R(const BoolV a) + { + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + return uint32_t((vget_lane_u32(finalReduce, 0) & 0xffFFff) != 0); + } +} + +namespace _VecMathTests +{ + NV_FORCE_INLINE bool allElementsEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vget_lane_u32(vceq_f32(a, b), 0) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return V3AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVec4V(const Vec4V a, const Vec4V b) + { + return V4AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualBoolV(const BoolV a, const BoolV b) + { + return internalUnitNeonSimd::BAllTrue4_R(vceqq_u32(a, b)) != 0; + } + + NV_FORCE_INLINE uint32_t V4U32AllEq(const VecU32V a, const VecU32V b) + { + return internalUnitNeonSimd::BAllTrue4_R(V4IsEqU32(a, b)); + } + + NV_FORCE_INLINE bool allElementsEqualVecU32V(const VecU32V a, const VecU32V b) + { + return V4U32AllEq(a, b) != 0; + } + + NV_FORCE_INLINE BoolV V4IsEqI32(const VecI32V a, const VecI32V b) + { + return vceqq_s32(a, b); + } + NV_FORCE_INLINE uint32_t V4I32AllEq(const VecI32V a, const VecI32V b) + { + return internalUnitNeonSimd::BAllTrue4_R(V4IsEqI32(a, b)); + } + + NV_FORCE_INLINE bool allElementsEqualVecI32V(const VecI32V a, const VecI32V b) + { + return V4I32AllEq(a, b) != 0; + } + + + + NV_FORCE_INLINE bool allElementsNearEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + + const float32x2_t c = vsub_f32(a, b); + const float32x2_t error = vdup_n_f32(VECMATH_AOS_EPSILON); + // absolute compare abs(error) > abs(c) +#if NV_WINRT + const uint32x2_t greater = vacgt_f32(error, c); +#else + const uint32x2_t greater = vcagt_f32(error, c); +#endif + const uint32x2_t min = vpmin_u32(greater, greater); + return vget_lane_u32(min, 0) != 0x0; + } + + NV_FORCE_INLINE bool allElementsNearEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const float32x4_t c = vsubq_f32(a, b); + const float32x4_t error = vdupq_n_f32(VECMATH_AOS_EPSILON); + // absolute compare abs(error) > abs(c) +#if NV_WINRT + const uint32x4_t greater = vacgtq_f32(error, c); +#else + const uint32x4_t greater = vcagtq_f32(error, c); +#endif + return internalUnitNeonSimd::BAllTrue3_R(greater) != 0; + } + + NV_FORCE_INLINE bool allElementsNearEqualVec4V(const Vec4V a, const Vec4V b) + { + const float32x4_t c = vsubq_f32(a, b); + const float32x4_t error = vdupq_n_f32(VECMATH_AOS_EPSILON); + // absolute compare abs(error) > abs(c) +#if NV_WINRT + const uint32x4_t greater = vacgtq_f32(error, c); +#else + const uint32x4_t greater = vcagtq_f32(error, c); +#endif + return internalUnitNeonSimd::BAllTrue4_R(greater) != 0x0; + } +} + + +#if 0 // debugging printfs +#include +NV_FORCE_INLINE void printVec(const float32x4_t& v, const char* name) +{ + NV_ALIGN(16, float32_t) data[4]; + vst1q_f32(data, v); + printf("%s: (%f, %f, %f, %f)\n", name, data[0], data[1], data[2], data[3]); +} + +NV_FORCE_INLINE void printVec(const float32x2_t& v, const char* name) +{ + NV_ALIGN(16, float32_t) data[2]; + vst1_f32(data, v); + printf("%s: (%f, %f)\n", name, data[0], data[1]); +} + +NV_FORCE_INLINE void printVec(const uint32x4_t& v, const char* name) +{ + NV_ALIGN(16, uint32_t) data[4]; + vst1q_u32(data, v); + printf("%s: (0x%x, 0x%x, 0x%x, 0x%x)\n", name, data[0], data[1], data[2], data[3]); +} + +NV_FORCE_INLINE void printVec(const uint16x8_t& v, const char* name) +{ + NV_ALIGN(16, uint16_t) data[8]; + vst1q_u16(data, v); + printf("%s: (0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", name, data[0], data[1], data[2], data[3], + data[4], data[5], data[6], data[7]); +} + +NV_FORCE_INLINE void printVec(const int32x4_t& v, const char* name) +{ + NV_ALIGN(16, int32_t) data[4]; + vst1q_s32(data, v); + printf("%s: (0x%x, 0x%x, 0x%x, 0x%x)\n", name, data[0], data[1], data[2], data[3]); +} + +NV_FORCE_INLINE void printVec(const int16x8_t& v, const char* name) +{ + NV_ALIGN(16, int16_t) data[8]; + vst1q_s16(data, v); + printf("%s: (0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", name, data[0], data[1], data[2], data[3], + data[4], data[5], data[6], data[7]); +} + +NV_FORCE_INLINE void printVec(const uint16x4_t& v, const char* name) +{ + NV_ALIGN(16, uint16_t) data[4]; + vst1_u16(data, v); + printf("%s: (0x%x, 0x%x, 0x%x, 0x%x)\n", name, data[0], data[1], data[2], data[3]); +} + +NV_FORCE_INLINE void printVec(const uint32x2_t& v, const char* name) +{ + NV_ALIGN(16, uint32_t) data[2]; + vst1_u32(data, v); + printf("%s: (0x%x, 0x%x)\n", name, data[0], data[1]); +} + +NV_FORCE_INLINE void printVar(const uint32_t v, const char* name) +{ + printf("%s: 0x%x\n", name, v); +} + +NV_FORCE_INLINE void printVar(const float v, const char* name) +{ + printf("%s: %f\n", name, v); +} + +#define PRINT_VAR(X) printVar((X), #X) +#define PRINT_VEC(X) printVec((X), #X) +#define PRINT_VEC_TITLE(TITLE, X) printVec((X), TITLE #X) +#endif // debugging printf + + + +///////////////////////////////////////////////////////////////////// +////FUNCTIONS USED ONLY FOR ASSERTS IN VECTORISED IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// +NV_FORCE_INLINE bool isValidFloatV(const FloatV a) +{ + NV_ALIGN(16,float) data[4]; + vst1_f32((float32_t*)data, a); + if(isFiniteFloatV(a)) + return data[0] == data[1]; + else + { + uint32_t* intData = (uint32_t*)data; + return intData[0] == intData[1]; + } +} + +NV_FORCE_INLINE bool isValidVec3V(const Vec3V a) +{ + const float32_t w = vgetq_lane_f32(a, 3); + + if(isFiniteVec3V(a)) + return w == 0.0f; + else + { + + NV_ALIGN(16,float) data[4]; + vst1q_f32((float32_t*)data, a); + uint32_t* intData = (uint32_t*)data; + return !intData[3] || ((intData[0] == intData[1]) && (intData[0] == intData[2]) && (intData[0] == intData[3])); + } +} + + +NV_FORCE_INLINE bool isFiniteFloatV(const FloatV a) +{ + NV_ALIGN(16,float) data[4]; + vst1_f32((float32_t*)data, a); + return NvIsFinite(data[0]) && NvIsFinite(data[1]); +} + +NV_FORCE_INLINE bool isFiniteVec3V(const Vec3V a) +{ + NV_ALIGN(16,float) data[4]; + vst1q_f32((float32_t*)data, a); + return NvIsFinite(data[0]) && NvIsFinite(data[1]) && NvIsFinite(data[2]); +} + +NV_FORCE_INLINE bool isFiniteVec4V(const Vec4V a) +{ + NV_ALIGN(16,float) data[4]; + vst1q_f32((float32_t*)data, a); + return NvIsFinite(data[0]) && NvIsFinite(data[1]) && NvIsFinite(data[2]) && NvIsFinite(data[3]); +} + +NV_FORCE_INLINE bool hasZeroElementinFloatV(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return vget_lane_u32(vreinterpret_u32_f32(a), 0) == 0; +} + +NV_FORCE_INLINE bool hasZeroElementInVec3V(const Vec3V a) +{ + const uint32x2_t dLow = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t dMin = vpmin_u32(dLow, dLow); + + return vget_lane_u32(dMin, 0) == 0 || vgetq_lane_u32(vreinterpretq_u32_f32(a), 2) == 0; +} + +NV_FORCE_INLINE bool hasZeroElementInVec4V(const Vec4V a) +{ + const uint32x2_t dHigh = vget_high_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t dLow = vget_low_u32(vreinterpretq_u32_f32(a)); + + const uint32x2_t dMin = vmin_u32(dHigh, dLow); + const uint32x2_t pairMin = vpmin_u32(dMin, dMin); + return vget_lane_u32(pairMin, 0) == 0; +} + +///////////////////////////////////////////////////////////////////// +////VECTORISED FUNCTION IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// + +NV_FORCE_INLINE FloatV FLoad(const float f) +{ + return vdup_n_f32(reinterpret_cast(f)); +} + +NV_FORCE_INLINE FloatV FLoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return vld1_f32((const float32_t*)f); +} + +NV_FORCE_INLINE Vec3V V3Load(const float f) +{ + NV_ALIGN(16, float) data[4] = {f, f, f, 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec4V V4Load(const float f) +{ + return vdupq_n_f32(reinterpret_cast(f)); +} + +NV_FORCE_INLINE BoolV BLoad(const bool f) +{ + const uint32_t i=uint32_t(-(int32_t)f); + return vdupq_n_u32(i); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const NvVec3& f) +{ + VECMATHAOS_ASSERT(0 == ((size_t)&f & 0x0f)); + NV_ALIGN(16, float) data[4] = {f.x, f.y, f.z, 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const NvVec3& f) +{ + NV_ALIGN(16, float) data[4] = {f.x, f.y, f.z, 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec3V V3LoadUnsafeA(const NvVec3& f) +{ + NV_ALIGN(16, float) data[4] = {f.x, f.y, f.z, 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const float* f) +{ + VECMATHAOS_ASSERT(0 == ((size_t)&f & 0x0f)); + NV_ALIGN(16, float) data[4] = {f[0], f[1], f[2], 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const float* f) +{ + NV_ALIGN(16, float) data[4] = {f[0], f[1], f[2], 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V(Vec4V v) +{ + return vsetq_lane_f32(0.0f, v, 3); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V_WUndefined(Vec4V v) +{ + return v; +} + + + +NV_FORCE_INLINE Vec4V Vec4V_From_Vec3V(Vec3V f) +{ + return f; //ok if it is implemented as the same type. +} + +NV_FORCE_INLINE Vec4V Vec4V_From_FloatV(FloatV f) +{ + return vcombine_f32(f, f); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV(FloatV f) +{ + return Vec3V_From_Vec4V(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV_WUndefined(FloatV f) +{ + return Vec3V_From_Vec4V_WUndefined(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_NvVec3_WUndefined(const NvVec3& f) +{ + NV_ALIGN(16, float) data[4] = {f.x, f.y, f.z, 0.0f}; + return V4LoadA(data); +} + +NV_FORCE_INLINE Mat33V Mat33V_From_NvMat33(const NvMat33 &m) +{ + return Mat33V(V3LoadU(m.column0), + V3LoadU(m.column1), + V3LoadU(m.column2)); +} + +NV_FORCE_INLINE void NvMat33_From_Mat33V(const Mat33V &m, NvMat33 &out) +{ + NV_ASSERT((size_t(&out)&15)==0); + V3StoreU(m.col0, out.column0); + V3StoreU(m.col1, out.column1); + V3StoreU(m.col2, out.column2); +} + + +NV_FORCE_INLINE Vec4V V4LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return vld1q_f32((const float32_t*)f); +} + +NV_FORCE_INLINE void V4StoreA(Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + vst1q_f32((float32_t*)f,a); +} + +NV_FORCE_INLINE void V4StoreU(const Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + NV_ALIGN(16,float) f2[4]; + vst1q_f32((float32_t*)f2, a); + f[0] = f2[0]; + f[1] = f2[1]; + f[2] = f2[2]; + f[3] = f2[3]; +} + +NV_FORCE_INLINE void BStoreA(const BoolV a, uint32_t* u) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)u & 0x0f)); + vst1q_u32((uint32_t*)u,a); +} + +NV_FORCE_INLINE void U4StoreA(const VecU32V uv, uint32_t* u) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)u & 0x0f)); + vst1q_u32((uint32_t*)u,uv); +} + +NV_FORCE_INLINE void I4StoreA(const VecI32V iv, int32_t* i) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)i & 0x0f)); + vst1q_s32((int32_t*)i,iv); +} + +NV_FORCE_INLINE Vec4V V4LoadU(const float* const f) +{ + return vld1q_f32((const float32_t*)f); +} + +NV_FORCE_INLINE BoolV BLoad(const bool* const f) +{ + const NV_ALIGN(16, uint32_t) b[4]={(uint32_t)(-(int32_t)f[0]), (uint32_t)(-(int32_t)f[1]), (uint32_t)(-(int32_t)f[2]), (uint32_t)(-(int32_t)f[3])}; + return vld1q_u32(b); +} + +NV_FORCE_INLINE float FStore(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + float f = vget_lane_f32(a, 0); + return f; +} + +NV_FORCE_INLINE void FStore(const FloatV a, float* NV_RESTRICT f) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + //vst1q_lane_f32(f, a, 0); // causes vst1 alignment bug + *f = vget_lane_f32(a, 0); +} + +NV_FORCE_INLINE void V3StoreA(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + VECMATHAOS_ASSERT(0 == ((int)&f & 0x0F)); + NV_ALIGN(16,float) f2[4]; + vst1q_f32((float32_t*)f2, a); + f = NvVec3(f2[0], f2[1], f2[2]); +} + +NV_FORCE_INLINE void V3StoreU(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + NV_ALIGN(16,float) f2[4]; + vst1q_f32((float32_t*)f2, a); + f = NvVec3(f2[0], f2[1], f2[2]); +} + + + +////////////////////////////////// +//FLOATV +////////////////////////////////// + +NV_FORCE_INLINE FloatV FZero() +{ + return FLoad(0.0f); +} + +NV_FORCE_INLINE FloatV FOne() +{ + return FLoad(1.0f); +} + +NV_FORCE_INLINE FloatV FHalf() +{ + return FLoad(0.5f); +} + +NV_FORCE_INLINE FloatV FEps() +{ + return FLoad(NV_EPS_REAL); +} + +NV_FORCE_INLINE FloatV FEps6() +{ + return FLoad(1e-6f); +} + +NV_FORCE_INLINE FloatV FMax() +{ + return FLoad(NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV FNegMax() +{ + return FLoad(-NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV IZero() +{ + return vreinterpret_f32_u32(vdup_n_u32(0)); +} + +NV_FORCE_INLINE FloatV IOne() +{ + return vreinterpret_f32_u32(vdup_n_u32(1)); +} + +NV_FORCE_INLINE FloatV ITwo() +{ + return vreinterpret_f32_u32(vdup_n_u32(2)); +} + +NV_FORCE_INLINE FloatV IThree() +{ + return vreinterpret_f32_u32(vdup_n_u32(3)); +} + +NV_FORCE_INLINE FloatV IFour() +{ + return vreinterpret_f32_u32(vdup_n_u32(4)); +} + +NV_FORCE_INLINE FloatV FNeg(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return vneg_f32(f); +} + +NV_FORCE_INLINE FloatV FAdd(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vadd_f32(a, b); +} + +NV_FORCE_INLINE FloatV FSub(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vsub_f32(a, b); +} + +NV_FORCE_INLINE FloatV FMul(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vmul_f32(a, b); +} + +template +NV_FORCE_INLINE float32x2_t recip_newton(const float32x2_t& in) +{ + float32x2_t recip = vrecpe_f32(in); + for(int i=0; i +NV_FORCE_INLINE float32x4_t recipq_newton(const float32x4_t& in) +{ + float32x4_t recip = vrecpeq_f32(in); + for(int i=0; i +NV_FORCE_INLINE float32x2_t rsqrt_newton(const float32x2_t& in) +{ + float32x2_t rsqrt = vrsqrte_f32(in); + for(int i=0; i +NV_FORCE_INLINE float32x4_t rsqrtq_newton(const float32x4_t& in) +{ + float32x4_t rsqrt = vrsqrteq_f32(in); + for(int i=0; i= 0.0f) ? 1.0f : -1.0f; +NV_FORCE_INLINE Vec3V V3Sign(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const Vec3V zero = V3Zero(); + const Vec3V one = V3One(); + const Vec3V none = V3Neg(one); + return V3Sel(V3IsGrtrOrEq(a, zero), one, none); +} + +NV_FORCE_INLINE Vec3V V3Clamp(const Vec3V a, const Vec3V minV, const Vec3V maxV) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(minV)); + VECMATHAOS_ASSERT(isValidVec3V(maxV)); + return V3Max(V3Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V3AllGrtr(const Vec3V a, const Vec3V b) +{ + return internalUnitNeonSimd::BAllTrue3_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V3AllGrtrOrEq(const Vec3V a, const Vec3V b) +{ + return internalUnitNeonSimd::BAllTrue3_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V3AllEq(const Vec3V a, const Vec3V b) +{ + return internalUnitNeonSimd::BAllTrue3_R(V4IsEq(a, b)); +} + +NV_FORCE_INLINE Vec3V V3Round(const Vec3V a) +{ + //truncate(a + (0.5f - sign(a))) + const Vec3V half = V3Load(0.5f); + const float32x4_t sign = vcvtq_f32_u32((vshrq_n_u32(vreinterpretq_u32_f32(a), 31))); + const Vec3V aPlusHalf = V3Add(a, half); + const Vec3V aRound = V3Sub(aPlusHalf, sign); + return vcvtq_f32_s32(vcvtq_s32_f32(aRound)); +} + + +NV_FORCE_INLINE Vec3V V3Sin(const Vec3V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V3 = V3Mul(V2, V1); + const Vec3V V5 = V3Mul(V3, V2); + const Vec3V V7 = V3Mul(V5, V2); + const Vec3V V9 = V3Mul(V7, V2); + const Vec3V V11 = V3Mul(V9, V2); + const Vec3V V13 = V3Mul(V11, V2); + const Vec3V V15 = V3Mul(V13, V2); + const Vec3V V17 = V3Mul(V15, V2); + const Vec3V V19 = V3Mul(V17, V2); + const Vec3V V21 = V3Mul(V19, V2); + const Vec3V V23 = V3Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V3ScaleAdd(V3, S1, V1); + Result = V3ScaleAdd(V5, S2, Result); + Result = V3ScaleAdd(V7, S3, Result); + Result = V3ScaleAdd(V9, S4, Result); + Result = V3ScaleAdd(V11, S5, Result); + Result = V3ScaleAdd(V13, S6, Result); + Result = V3ScaleAdd(V15, S7, Result); + Result = V3ScaleAdd(V17, S8, Result); + Result = V3ScaleAdd(V19, S9, Result); + Result = V3ScaleAdd(V21, S10,Result); + Result = V3ScaleAdd(V23, S11,Result); + + return Result; + +} + +NV_FORCE_INLINE Vec3V V3Cos(const Vec3V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V4 = V3Mul(V2, V2); + const Vec3V V6 = V3Mul(V4, V2); + const Vec3V V8 = V3Mul(V4, V4); + const Vec3V V10 = V3Mul(V6, V4); + const Vec3V V12 = V3Mul(V6, V6); + const Vec3V V14 = V3Mul(V8, V6); + const Vec3V V16 = V3Mul(V8, V8); + const Vec3V V18 = V3Mul(V10, V8); + const Vec3V V20 = V3Mul(V10, V10); + const Vec3V V22 = V3Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V3ScaleAdd(V2, C1, V4One()); + Result = V3ScaleAdd(V4, C2, Result); + Result = V3ScaleAdd(V6, C3, Result); + Result = V3ScaleAdd(V8, C4, Result); + Result = V3ScaleAdd(V10, C5, Result); + Result = V3ScaleAdd(V12, C6, Result); + Result = V3ScaleAdd(V14, C7, Result); + Result = V3ScaleAdd(V16, C8, Result); + Result = V3ScaleAdd(V18, C9, Result); + Result = V3ScaleAdd(V20, C10,Result); + Result = V3ScaleAdd(V22, C11,Result); + + return Result; +} + +NV_FORCE_INLINE Vec3V V3PermYZZ(const Vec3V a) +{ + const float32x2_t xy = vget_low_f32(a); + const float32x2_t zw = vget_high_f32(a); + const float32x2_t yz = vext_f32(xy, zw, 1); + return vcombine_f32(yz, zw); +} + +NV_FORCE_INLINE Vec3V V3PermXYX(const Vec3V a) +{ +#if NV_WINRT + const uint32x2_t mask = { 0x00000000ffffFFFFULL }; +#else + const uint32x2_t mask = {0xffffFFFF, 0x0}; +#endif + + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t xw = vand_u32(xy, mask); + return vreinterpretq_f32_u32(vcombine_u32(xy, xw)); +} + +NV_FORCE_INLINE Vec3V V3PermYZX(const Vec3V a) +{ +#if NV_WINRT + const uint32x2_t mask = { 0x00000000ffffFFFFULL }; +#else + const uint32x2_t mask = {0xffffFFFF, 0x0}; +#endif + + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t zw = vget_high_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t yz = vext_u32(xy, zw, 1); + const uint32x2_t xw = vand_u32(xy, mask); + return vreinterpretq_f32_u32(vcombine_u32(yz, xw)); +} + +NV_FORCE_INLINE Vec3V V3PermZXY(const Vec3V a) +{ + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t zw = vget_high_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t wz = vrev64_u32(zw); + + const uint32x2_t zx = vext_u32(wz, xy, 1); + const uint32x2_t yw = vext_u32(xy, wz, 1); + + return vreinterpretq_f32_u32(vcombine_u32(zx, yw)); +} + +NV_FORCE_INLINE Vec3V V3PermZZY(const Vec3V a) +{ + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t zw = vget_high_u32(vreinterpretq_u32_f32(a)); + + const uint32x2_t wz = vrev64_u32(zw); + const uint32x2_t yw = vext_u32(xy, wz, 1); + const uint32x2_t zz = vdup_lane_u32(wz, 1); + + return vreinterpretq_f32_u32(vcombine_u32(zz, yw)); +} + +NV_FORCE_INLINE Vec3V V3PermYXX(const Vec3V a) +{ +#if NV_WINRT + const uint32x2_t mask = { 0x00000000ffffFFFFULL }; +#else + const uint32x2_t mask = {0xffffFFFF, 0x0}; +#endif + + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(a)); + const uint32x2_t yx = vrev64_u32(xy); + const uint32x2_t xw = vand_u32(xy, mask); + return vreinterpretq_f32_u32(vcombine_u32(yx, xw)); +} + +NV_FORCE_INLINE Vec3V V3Perm_Zero_1Z_0Y(const Vec3V v0, const Vec3V v1) +{ + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(v0)); + const uint32x2_t zw = vget_high_u32(vreinterpretq_u32_f32(v1)); + const uint32x2_t wz = vrev64_u32(zw); + const uint32x2_t yw = vext_u32(xy, wz, 1); + + return vreinterpretq_f32_u32(vcombine_u32(wz, yw)); +} + +NV_FORCE_INLINE Vec3V V3Perm_0Z_Zero_1X(const Vec3V v0, const Vec3V v1) +{ +#if NV_WINRT + const uint32x2_t mask = { 0x00000000ffffFFFFULL }; +#else + const uint32x2_t mask = {0xffffFFFF, 0x0}; +#endif + + const uint32x2_t zw = vget_high_u32(vreinterpretq_u32_f32(v0)); + const uint32x2_t xy = vget_low_u32(vreinterpretq_u32_f32(v1)); + const uint32x2_t xw = vand_u32(xy, mask); + + return vreinterpretq_f32_u32(vcombine_u32(zw, xw)); +} + +NV_FORCE_INLINE Vec3V V3Perm_1Y_0X_Zero(const Vec3V v0, const Vec3V v1) +{ + const uint32x2_t axy = vget_low_u32(vreinterpretq_u32_f32(v0)); + const uint32x2_t bxy = vget_low_u32(vreinterpretq_u32_f32(v1)); + const uint32x2_t byax = vext_u32(bxy, axy, 1); + const uint32x2_t ww = vdup_n_u32(0); + + return vreinterpretq_f32_u32(vcombine_u32(byax, ww)); +} + +NV_FORCE_INLINE FloatV V3SumElems(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + NV_ASSERT(isValidVec3V(a)); + + //const uint32x2_t mask = {0xffffFFFF, 0x0}; + + const float32x2_t low = vget_low_f32(a); + const float32x2_t high = vget_high_f32(a); + //const float32x2_t high = vreinterpret_f32_u32(vand_u32(vreinterpret_u32_f32(high_), mask)); + + const float32x2_t sumTmp = vpadd_f32(low, high); // = {0+z, x+y} + const float32x2_t sum0ZYX = vpadd_f32(sumTmp, sumTmp); // = {x+y+z, x+y+z} + + return sum0ZYX; +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + const BoolV c = BOr(V3IsGrtr(a, max), V3IsGrtr(min, a)); + return internalUnitNeonSimd::BAnyTrue3_R(c); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + const BoolV c = BAnd(V3IsGrtrOrEq(a, min), V3IsGrtrOrEq(max, a)); + return internalUnitNeonSimd::BAllTrue4_R(c); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V bounds) +{ +#if NV_WINRT + const uint32x4_t greater = vacgtq_f32(a, bounds); +#else + const uint32x4_t greater = vcagtq_f32(a, bounds); +#endif + return internalUnitNeonSimd::BAnyTrue3_R(greater); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V bounds) +{ +#if NV_WINRT + const uint32x4_t geq = vacgeq_f32(bounds, a); +#else + const uint32x4_t geq = vcageq_f32(bounds, a); +#endif + return internalUnitNeonSimd::BAllTrue4_R(geq); +} + + + + +////////////////////////////////// +//VEC4V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V V4Splat(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return vcombine_f32(f, f); +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatV* const floatVArray) +{ + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[0])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[1])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[2])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[3])); + + const uint32x2_t xLow = vreinterpret_u32_f32(floatVArray[0]); + const uint32x2_t yLow = vreinterpret_u32_f32(floatVArray[1]); + const uint32x2_t zLow = vreinterpret_u32_f32(floatVArray[2]); + const uint32x2_t wLow = vreinterpret_u32_f32(floatVArray[3]); + + const uint32x2_t dLow = vext_u32(xLow, yLow, 1); + const uint32x2_t dHigh = vext_u32(zLow, wLow, 1); + + return vreinterpretq_f32_u32(vcombine_u32(dLow, dHigh)); +} + + +NV_FORCE_INLINE Vec4V V4Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w) +{ + VECMATHAOS_ASSERT(isValidFloatV(x)); + VECMATHAOS_ASSERT(isValidFloatV(y)); + VECMATHAOS_ASSERT(isValidFloatV(z)); + VECMATHAOS_ASSERT(isValidFloatV(w)); + + const uint32x2_t xLow = vreinterpret_u32_f32(x); + const uint32x2_t yLow = vreinterpret_u32_f32(y); + const uint32x2_t zLow = vreinterpret_u32_f32(z); + const uint32x2_t wLow = vreinterpret_u32_f32(w); + + const uint32x2_t dLow = vext_u32(xLow, yLow, 1); + const uint32x2_t dHigh = vext_u32(zLow, wLow, 1); + + return vreinterpretq_f32_u32(vcombine_u32(dLow, dHigh)); +} + +NV_FORCE_INLINE Vec4V V4MergeW(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const float32x2_t xx = vget_high_f32(x); + const float32x2_t yy = vget_high_f32(y); + const float32x2_t zz = vget_high_f32(z); + const float32x2_t ww = vget_high_f32(w); + + const float32x2x2_t zipL = vzip_f32(xx, yy); + const float32x2x2_t zipH = vzip_f32(zz, ww); + + return vcombine_f32(zipL.val[1], zipH.val[1]); +} + + +NV_FORCE_INLINE Vec4V V4MergeZ(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const float32x2_t xx = vget_high_f32(x); + const float32x2_t yy = vget_high_f32(y); + const float32x2_t zz = vget_high_f32(z); + const float32x2_t ww = vget_high_f32(w); + + const float32x2x2_t zipL = vzip_f32(xx, yy); + const float32x2x2_t zipH = vzip_f32(zz, ww); + + return vcombine_f32(zipL.val[0], zipH.val[0]); +} + +NV_FORCE_INLINE Vec4V V4MergeY(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const float32x2_t xx = vget_low_f32(x); + const float32x2_t yy = vget_low_f32(y); + const float32x2_t zz = vget_low_f32(z); + const float32x2_t ww = vget_low_f32(w); + + const float32x2x2_t zipL = vzip_f32(xx, yy); + const float32x2x2_t zipH = vzip_f32(zz, ww); + + return vcombine_f32(zipL.val[1], zipH.val[1]); +} + +NV_FORCE_INLINE Vec4V V4MergeX(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const float32x2_t xx = vget_low_f32(x); + const float32x2_t yy = vget_low_f32(y); + const float32x2_t zz = vget_low_f32(z); + const float32x2_t ww = vget_low_f32(w); + + const float32x2x2_t zipL = vzip_f32(xx, yy); + const float32x2x2_t zipH = vzip_f32(zz, ww); + + return vcombine_f32(zipL.val[0], zipH.val[0]); +} + +NV_FORCE_INLINE Vec4V V4UnpackXY(const Vec4VArg a, const Vec4VArg b) +{ + return vzipq_f32(a, b).val[0]; +} + +NV_FORCE_INLINE Vec4V V4UnpackZW(const Vec4VArg a, const Vec4VArg b) +{ + return vzipq_f32(a, b).val[1]; +} + +NV_FORCE_INLINE Vec4V V4UnitW() +{ + const float32x2_t zeros = vreinterpret_f32_u32(vmov_n_u32(0)); + const float32x2_t ones = vmov_n_f32(1.0f); + const float32x2_t zo = vext_f32(zeros, ones, 1); + return vcombine_f32(zeros, zo); +} + +NV_FORCE_INLINE Vec4V V4UnitX() +{ + const float32x2_t zeros = vreinterpret_f32_u32(vmov_n_u32(0)); + const float32x2_t ones = vmov_n_f32(1.0f); + const float32x2_t oz = vext_f32(ones, zeros, 1); + return vcombine_f32(oz, zeros); +} + +NV_FORCE_INLINE Vec4V V4UnitY() +{ + const float32x2_t zeros = vreinterpret_f32_u32(vmov_n_u32(0)); + const float32x2_t ones = vmov_n_f32(1.0f); + const float32x2_t zo = vext_f32(zeros, ones, 1); + return vcombine_f32(zo, zeros); +} + +NV_FORCE_INLINE Vec4V V4UnitZ() +{ + const float32x2_t zeros = vreinterpret_f32_u32(vmov_n_u32(0)); + const float32x2_t ones = vmov_n_f32(1.0f); + const float32x2_t oz = vext_f32(ones, zeros, 1); + return vcombine_f32(zeros, oz); +} + +NV_FORCE_INLINE FloatV V4GetW(const Vec4V f) +{ + const float32x2_t fhigh = vget_high_f32(f); + return vdup_lane_f32(fhigh, 1); +} + +NV_FORCE_INLINE FloatV V4GetX(const Vec4V f) +{ + const float32x2_t fLow = vget_low_f32(f); + return vdup_lane_f32(fLow, 0); +} + +NV_FORCE_INLINE FloatV V4GetY(const Vec4V f) +{ + const float32x2_t fLow = vget_low_f32(f); + return vdup_lane_f32(fLow, 1); +} + +NV_FORCE_INLINE FloatV V4GetZ(const Vec4V f) +{ + const float32x2_t fhigh = vget_high_f32(f); + return vdup_lane_f32(fhigh, 0); +} + +NV_FORCE_INLINE Vec4V V4SetW(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTTF(), v, vcombine_f32(f, f)); +} + +NV_FORCE_INLINE Vec4V V4SetX(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BFTTT(), v, vcombine_f32(f, f)); +} + +NV_FORCE_INLINE Vec4V V4SetY(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTFTT(), v, vcombine_f32(f, f)); +} + +NV_FORCE_INLINE Vec4V V4SetZ(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTFT(), v, vcombine_f32(f, f)); +} + +NV_FORCE_INLINE Vec4V V4ClearW(const Vec4V v) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + return V4Sel(BTTTF(), v, V4Zero()); +} + +NV_FORCE_INLINE Vec4V V4Perm_YXWZ(const Vec4V a) +{ + const float32x2_t xy = vget_low_f32(a); + const float32x2_t zw = vget_high_f32(a); + const float32x2_t yx = vext_f32(xy, xy, 1); + const float32x2_t wz = vext_f32(zw, zw, 1); + return vcombine_f32(yx, wz); +} + +NV_FORCE_INLINE Vec4V V4Perm_XZXZ(const Vec4V a) +{ + const float32x2_t xy = vget_low_f32(a); + const float32x2_t zw = vget_high_f32(a); + const float32x2x2_t xzyw = vzip_f32(xy, zw); + return vcombine_f32(xzyw.val[0], xzyw.val[0]); +} + +NV_FORCE_INLINE Vec4V V4Perm_YWYW(const Vec4V a) +{ + const float32x2_t xy = vget_low_f32(a); + const float32x2_t zw = vget_high_f32(a); + const float32x2x2_t xzyw = vzip_f32(xy, zw); + return vcombine_f32(xzyw.val[1], xzyw.val[1]); +} + +template NV_FORCE_INLINE Vec4V V4Perm(const Vec4V V) +{ + static const uint32_t ControlElement[ 4 ] = + { +#if 1 + 0x03020100, // XM_SWIZZLE_X + 0x07060504, // XM_SWIZZLE_Y + 0x0B0A0908, // XM_SWIZZLE_Z + 0x0F0E0D0C, // XM_SWIZZLE_W +#else + 0x00010203, // XM_SWIZZLE_X + 0x04050607, // XM_SWIZZLE_Y + 0x08090A0B, // XM_SWIZZLE_Z + 0x0C0D0E0F, // XM_SWIZZLE_W +#endif + }; + + uint8x8x2_t tbl; + tbl.val[0] = vreinterpret_u8_f32(vget_low_f32(V)); + tbl.val[1] = vreinterpret_u8_f32(vget_high_f32(V)); + + uint8x8_t idx = vcreate_u8( ((uint64_t)ControlElement[E0]) | (((uint64_t)ControlElement[E1]) << 32) ); + const uint8x8_t rL = vtbl2_u8( tbl, idx ); + idx = vcreate_u8( ((uint64_t)ControlElement[E2]) | (((uint64_t)ControlElement[E3]) << 32) ); + const uint8x8_t rH = vtbl2_u8( tbl, idx ); + + return vreinterpretq_f32_u8(vcombine_u8( rL, rH )); +} + +NV_FORCE_INLINE Vec4V V4Zero() +{ + return vreinterpretq_f32_u32(vmovq_n_u32(0)); +} + +NV_FORCE_INLINE Vec4V V4One() +{ + return vmovq_n_f32(1.0f); +} + +NV_FORCE_INLINE Vec4V V4Eps() +{ + return V4Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec4V V4Neg(const Vec4V f) +{ + return vnegq_f32(f); +} + +NV_FORCE_INLINE Vec4V V4Add(const Vec4V a, const Vec4V b) +{ + return vaddq_f32(a, b); +} + +NV_FORCE_INLINE Vec4V V4Sub(const Vec4V a, const Vec4V b) +{ + return vsubq_f32(a, b); +} + +NV_FORCE_INLINE Vec4V V4Scale(const Vec4V a, const FloatV b) +{ + return vmulq_lane_f32(a, b, 0); +} + +NV_FORCE_INLINE Vec4V V4Mul(const Vec4V a, const Vec4V b) +{ + return vmulq_f32(a, b); +} + +NV_FORCE_INLINE Vec4V V4ScaleInv(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + const float32x2_t invB = VRECIP(b); + return vmulq_lane_f32(a, invB, 0); +} + +NV_FORCE_INLINE Vec4V V4Div(const Vec4V a, const Vec4V b) +{ + const float32x4_t invB = VRECIPQ(b); + return vmulq_f32(a, invB); +} + +NV_FORCE_INLINE Vec4V V4ScaleInvFast(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + const float32x2_t invB = VRECIPE(b); + return vmulq_lane_f32(a, invB, 0); +} + +NV_FORCE_INLINE Vec4V V4DivFast(const Vec4V a, const Vec4V b) +{ + const float32x4_t invB = VRECIPEQ(b); + return vmulq_f32(a, invB); +} + +NV_FORCE_INLINE Vec4V V4Recip(const Vec4V a) +{ + return VRECIPQ(a); +} + +NV_FORCE_INLINE Vec4V V4RecipFast(const Vec4V a) +{ + return VRECIPEQ(a); +} + +NV_FORCE_INLINE Vec4V V4Rsqrt(const Vec4V a) +{ + return VRECIPSQRTQ(a); +} + +NV_FORCE_INLINE Vec4V V4RsqrtFast(const Vec4V a) +{ + return VRECIPSQRTEQ(a); +} + +NV_FORCE_INLINE Vec4V V4Sqrt(const Vec4V a) +{ + return V4Mul(a, VRECIPSQRTQ(a)); +} + +NV_FORCE_INLINE Vec4V V4ScaleAdd(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vmlaq_lane_f32(c, a, b, 0); +} + +NV_FORCE_INLINE Vec4V V4NegScaleSub(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return vmlsq_lane_f32(c, a, b, 0); +} + +NV_FORCE_INLINE Vec4V V4MulAdd(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return vmlaq_f32(c, a, b); +} + +NV_FORCE_INLINE Vec4V V4NegMulSub(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return vmlsq_f32(c, a, b); +} + +NV_FORCE_INLINE Vec4V V4Abs(const Vec4V a) +{ + return vabsq_f32(a); +} + +NV_FORCE_INLINE FloatV V4SumElements(const Vec4V a) +{ + const Vec4V xy = V4UnpackXY(a, a); //x,x,y,y + const Vec4V zw = V4UnpackZW(a, a); //z,z,w,w + const Vec4V xz_yw = V4Add(xy, zw); //x+z,x+z,y+w,y+w + const FloatV xz = V4GetX(xz_yw); //x+z + const FloatV yw = V4GetZ(xz_yw); //y+w + return FAdd(xz, yw); //sum +} + +NV_FORCE_INLINE FloatV V4Dot(const Vec4V a, const Vec4V b) +{ + const float32x4_t tmp = vmulq_f32(a, b); + const float32x2_t low = vget_low_f32(tmp); + const float32x2_t high = vget_high_f32(tmp); + + const float32x2_t sumTmp = vpadd_f32(low, high); // = {z+w, x+y} + const float32x2_t sumWZYX = vpadd_f32(sumTmp, sumTmp); // = {x+y+z+w, x+y+z+w} + return sumWZYX; +} + +NV_FORCE_INLINE FloatV V4Length(const Vec4V a) +{ + const float32x4_t tmp = vmulq_f32(a, a); + const float32x2_t low = vget_low_f32(tmp); + const float32x2_t high = vget_high_f32(tmp); + + const float32x2_t sumTmp = vpadd_f32(low, high); // = {0+z, x+y} + const float32x2_t sumWZYX = vpadd_f32(sumTmp, sumTmp); // = {x+y+z, x+y+z} + const float32x2_t len = vmul_f32(VRECIPSQRTE(sumWZYX), sumWZYX); + + return len; +} + +NV_FORCE_INLINE FloatV V4LengthSq(const Vec4V a) +{ + return V4Dot(a,a); +} + +NV_FORCE_INLINE Vec4V V4Normalize(const Vec4V a) +{ + return V4ScaleInv(a, V4Length(a)); +} + +NV_FORCE_INLINE Vec4V V4NormalizeFast(const Vec4V a) +{ + return V4Scale(a, FRsqrtFast(V4Dot(a,a))); +} + +NV_FORCE_INLINE Vec4V V4NormalizeSafe(const Vec4V a) +{ + const FloatV zero = FZero(); + const FloatV length = V4Length(a); + const uint32x4_t isGreaterThanZero = FIsGrtr(length, zero); + return V4Sel(isGreaterThanZero, V4ScaleInv(a, length), vcombine_f32(zero, zero)); +} + +NV_FORCE_INLINE BoolV V4IsEqU32(const VecU32V a, const VecU32V b) +{ + return vceqq_u32(a, b); +} + +NV_FORCE_INLINE Vec4V V4Sel(const BoolV c, const Vec4V a, const Vec4V b) +{ + return vbslq_f32(c, a, b); +} + +NV_FORCE_INLINE BoolV V4IsGrtr(const Vec4V a, const Vec4V b) +{ + return vcgtq_f32(a, b); +} + +NV_FORCE_INLINE BoolV V4IsGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return vcgeq_f32(a, b); +} + +NV_FORCE_INLINE BoolV V4IsEq(const Vec4V a, const Vec4V b) +{ + return vceqq_f32(a, b); +} + +NV_FORCE_INLINE Vec4V V4Max(const Vec4V a, const Vec4V b) +{ + return vmaxq_f32(a, b); +} + +NV_FORCE_INLINE Vec4V V4Min(const Vec4V a, const Vec4V b) +{ + return vminq_f32(a, b); +} + +NV_FORCE_INLINE FloatV V4ExtractMax(const Vec4V a) +{ + const float32x2_t low = vget_low_f32(a); + const float32x2_t high = vget_high_f32(a); + + const float32x2_t max0 = vpmax_f32(high, low); + const float32x2_t max1 = vpmax_f32(max0, max0); + + return max1; +} + +NV_FORCE_INLINE FloatV V4ExtractMin(const Vec4V a) +{ + const float32x2_t low = vget_low_f32(a); + const float32x2_t high = vget_high_f32(a); + + const float32x2_t min0 = vpmin_f32(high, low); + const float32x2_t min1 = vpmin_f32(min0, min0); + + return min1; +} + +NV_FORCE_INLINE Vec4V V4Clamp(const Vec4V a, const Vec4V minV, const Vec4V maxV) +{ + return V4Max(V4Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V4AllGrtr(const Vec4V a, const Vec4V b) +{ + return internalUnitNeonSimd::BAllTrue4_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V4AllGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return internalUnitNeonSimd::BAllTrue4_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V4AllEq(const Vec4V a, const Vec4V b) +{ + return internalUnitNeonSimd::BAllTrue4_R(V4IsEq(a, b)); +} + + +NV_FORCE_INLINE Vec4V V4Round(const Vec4V a) +{ + //truncate(a + (0.5f - sign(a))) + const Vec4V half = V4Load(0.5f); + const float32x4_t sign = vcvtq_f32_u32((vshrq_n_u32(vreinterpretq_u32_f32(a), 31))); + const Vec4V aPlusHalf = V4Add(a, half); + const Vec4V aRound = V4Sub(aPlusHalf, sign); + return vcvtq_f32_s32(vcvtq_s32_f32(aRound)); +} + + +NV_FORCE_INLINE Vec4V V4Sin(const Vec4V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec4V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V3 = V4Mul(V2, V1); + const Vec4V V5 = V4Mul(V3, V2); + const Vec4V V7 = V4Mul(V5, V2); + const Vec4V V9 = V4Mul(V7, V2); + const Vec4V V11 = V4Mul(V9, V2); + const Vec4V V13 = V4Mul(V11, V2); + const Vec4V V15 = V4Mul(V13, V2); + const Vec4V V17 = V4Mul(V15, V2); + const Vec4V V19 = V4Mul(V17, V2); + const Vec4V V21 = V4Mul(V19, V2); + const Vec4V V23 = V4Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V4ScaleAdd(V3, S1, V1); + Result = V4ScaleAdd(V5, S2, Result); + Result = V4ScaleAdd(V7, S3, Result); + Result = V4ScaleAdd(V9, S4, Result); + Result = V4ScaleAdd(V11, S5, Result); + Result = V4ScaleAdd(V13, S6, Result); + Result = V4ScaleAdd(V15, S7, Result); + Result = V4ScaleAdd(V17, S8, Result); + Result = V4ScaleAdd(V19, S9, Result); + Result = V4ScaleAdd(V21, S10,Result); + Result = V4ScaleAdd(V23, S11,Result); + + return Result; +} + +NV_FORCE_INLINE Vec4V V4Cos(const Vec4V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec4V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V4 = V4Mul(V2, V2); + const Vec4V V6 = V4Mul(V4, V2); + const Vec4V V8 = V4Mul(V4, V4); + const Vec4V V10 = V4Mul(V6, V4); + const Vec4V V12 = V4Mul(V6, V6); + const Vec4V V14 = V4Mul(V8, V6); + const Vec4V V16 = V4Mul(V8, V8); + const Vec4V V18 = V4Mul(V10, V8); + const Vec4V V20 = V4Mul(V10, V10); + const Vec4V V22 = V4Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V4ScaleAdd(V2, C1, V4One()); + Result = V4ScaleAdd(V4, C2, Result); + Result = V4ScaleAdd(V6, C3, Result); + Result = V4ScaleAdd(V8, C4, Result); + Result = V4ScaleAdd(V10, C5, Result); + Result = V4ScaleAdd(V12, C6, Result); + Result = V4ScaleAdd(V14, C7, Result); + Result = V4ScaleAdd(V16, C8, Result); + Result = V4ScaleAdd(V18, C9, Result); + Result = V4ScaleAdd(V20, C10,Result); + Result = V4ScaleAdd(V22, C11,Result); + + return Result; +} + +NV_FORCE_INLINE void V4Transpose(Vec4V& col0, Vec4V& col1, Vec4V& col2, Vec4V& col3) +{ + const float32x4x2_t v0v1 = vzipq_f32(col0, col2); + const float32x4x2_t v2v3 = vzipq_f32(col1, col3); + const float32x4x2_t zip0 = vzipq_f32(v0v1.val[0], v2v3.val[0]); + const float32x4x2_t zip1 = vzipq_f32(v0v1.val[1], v2v3.val[1]); + col0 = zip0.val[0]; + col1 = zip0.val[1]; + col2 = zip1.val[0]; + col3 = zip1.val[1]; +} + + +////////////////////////////////// +//VEC4V +////////////////////////////////// + +NV_FORCE_INLINE BoolV BFFFF() +{ + return vmovq_n_u32(0); +} + +NV_FORCE_INLINE BoolV BFFFT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + return vcombine_u32(zeros, zo); +} + +NV_FORCE_INLINE BoolV BFFTF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(zeros, oz); +} + +NV_FORCE_INLINE BoolV BFFTT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + return vcombine_u32(zeros, ones); +} + +NV_FORCE_INLINE BoolV BFTFF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + return vcombine_u32(zo, zeros); +} + +NV_FORCE_INLINE BoolV BFTFT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + return vcombine_u32(zo, zo); +} + +NV_FORCE_INLINE BoolV BFTTF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(zo, oz); +} + +NV_FORCE_INLINE BoolV BFTTT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + return vcombine_u32(zo, ones); +} + +NV_FORCE_INLINE BoolV BTFFF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + //const uint32x2_t zo = vext_u32(zeros, ones, 1); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(oz, zeros); +} + +NV_FORCE_INLINE BoolV BTFFT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(oz, zo); +} + +NV_FORCE_INLINE BoolV BTFTF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(oz, oz); +} + +NV_FORCE_INLINE BoolV BTFTT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(oz, ones); +} + +NV_FORCE_INLINE BoolV BTTFF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + return vcombine_u32(ones, zeros); +} + +NV_FORCE_INLINE BoolV BTTFT() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t zo = vext_u32(zeros, ones, 1); + return vcombine_u32(ones, zo); +} + +NV_FORCE_INLINE BoolV BTTTF() +{ + const uint32x2_t zeros = vmov_n_u32(0); + const uint32x2_t ones = vmov_n_u32(0xffffFFFF); + const uint32x2_t oz = vext_u32(ones, zeros, 1); + return vcombine_u32(ones, oz); +} + +NV_FORCE_INLINE BoolV BTTTT() +{ + return vmovq_n_u32(0xffffFFFF); +} + +NV_FORCE_INLINE BoolV BXMask() +{ + return BTFFF(); +} + +NV_FORCE_INLINE BoolV BYMask() +{ + return BFTFF(); +} + +NV_FORCE_INLINE BoolV BZMask() +{ + return BFFTF(); +} + +NV_FORCE_INLINE BoolV BWMask() +{ + return BFFFT(); +} + +NV_FORCE_INLINE BoolV BGetX(const BoolV f) +{ + const uint32x2_t fLow = vget_low_u32(f); + return vdupq_lane_u32(fLow, 0); +} + +NV_FORCE_INLINE BoolV BGetY(const BoolV f) +{ + const uint32x2_t fLow = vget_low_u32(f); + return vdupq_lane_u32(fLow, 1); +} + +NV_FORCE_INLINE BoolV BGetZ(const BoolV f) +{ + const uint32x2_t fHigh = vget_high_u32(f); + return vdupq_lane_u32(fHigh, 0); +} + +NV_FORCE_INLINE BoolV BGetW(const BoolV f) +{ + const uint32x2_t fHigh = vget_high_u32(f); + return vdupq_lane_u32(fHigh, 1); +} + +NV_FORCE_INLINE BoolV BSetX(const BoolV v, const BoolV f) +{ + return vbslq_u32(BFTTT(), v, f); +} + +NV_FORCE_INLINE BoolV BSetY(const BoolV v, const BoolV f) +{ + return vbslq_u32(BTFTT(), v, f); +} + +NV_FORCE_INLINE BoolV BSetZ(const BoolV v, const BoolV f) +{ + return vbslq_u32(BTTFT(), v, f); +} + +NV_FORCE_INLINE BoolV BSetW(const BoolV v, const BoolV f) +{ + return vbslq_u32(BTTTF(), v, f); +} + + +NV_FORCE_INLINE BoolV BAnd(const BoolV a, const BoolV b) +{ + return vandq_u32(a, b); +} + +NV_FORCE_INLINE BoolV BNot(const BoolV a) +{ + return vmvnq_u32(a); +} + +NV_FORCE_INLINE BoolV BAndNot(const BoolV a, const BoolV b) +{ + //return vbicq_u32(a, b); + return vandq_u32(a, vmvnq_u32(b)); +} + +NV_FORCE_INLINE BoolV BOr(const BoolV a, const BoolV b) +{ + return vorrq_u32(a, b); +} + +NV_FORCE_INLINE BoolV BAllTrue4(const BoolV a) +{ + const uint32x2_t allTrue = vmov_n_u32(0xffffFFFF); + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + const uint32x2_t result = vceq_u32(finalReduce, allTrue); + return vdupq_lane_u32(result, 0); +} + +NV_FORCE_INLINE BoolV BAnyTrue4(const BoolV a) +{ + const uint32x2_t allTrue = vmov_n_u32(0xffffFFFF); + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + const uint32x2_t result = vtst_u32(finalReduce, allTrue); + return vdupq_lane_u32(result, 0); +} + +NV_FORCE_INLINE BoolV BAllTrue3(const BoolV a) +{ + const uint32x2_t allTrue3 = vmov_n_u32(0x00ffFFFF); + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + const uint32x2_t result = vceq_u32(vand_u32(finalReduce,allTrue3), allTrue3); + return vdupq_lane_u32(result, 0); +} + +NV_FORCE_INLINE BoolV BAnyTrue3(const BoolV a) +{ + const uint32x2_t allTrue3 = vmov_n_u32(0x00ffFFFF); + const uint16x4_t dHigh = vget_high_u16(vreinterpretq_u16_u32(a)); + const uint16x4_t dLow = vmovn_u32(a); + uint16x8_t combined = vcombine_u16(dLow, dHigh); + const uint32x2_t finalReduce = vreinterpret_u32_u8(vmovn_u16(combined)); + const uint32x2_t result = vtst_u32(vand_u32(finalReduce,allTrue3), allTrue3); + return vdupq_lane_u32(result, 0); +} + +NV_FORCE_INLINE uint32_t BAllEq(const BoolV a, const BoolV b) +{ + const BoolV bTest = vceqq_u32(a, b); + return internalUnitNeonSimd::BAllTrue4_R(bTest); +} + +NV_FORCE_INLINE uint32_t BAllEqTTTT(const BoolV a) +{ + return BAllEq(a, BTTTT()); +} + +NV_FORCE_INLINE uint32_t BAllEqFFFF(const BoolV a) +{ + return BAllEq(a, BFFFF()); +} + +NV_FORCE_INLINE uint32_t BGetBitMask(const BoolV a) +{ + static NV_ALIGN(16, const uint32_t) bitMaskData[4] = { 1, 2, 4, 8 }; + const uint32x4_t bitMask = *(reinterpret_cast(bitMaskData)); + const uint32x4_t t0 = vandq_u32(a, bitMask); + const uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); // Pairwise add (0 + 1), (2 + 3) + return uint32_t(vget_lane_u32(vpadd_u32(t1, t1), 0)); +} + +////////////////////////////////// +//MAT33V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M33MulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M33TrnspsMulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Vec3V M33MulV3AddV3(const Mat33V& A, const Vec3V b, const Vec3V c) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + Vec3V result = V3ScaleAdd(A.col0, x, c); + result = V3ScaleAdd(A.col1, y, result); + return V3ScaleAdd(A.col2, z, result); +} + +NV_FORCE_INLINE Mat33V M33MulM33(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(M33MulV3(a,b.col0),M33MulV3(a,b.col1),M33MulV3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Add(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Scale(const Mat33V& a, const FloatV& b) +{ + return Mat33V(V3Scale(a.col0,b),V3Scale(a.col1,b),V3Scale(a.col2,b)); +} + + +NV_FORCE_INLINE Mat33V M33Inverse(const Mat33V& a) +{ + const float32x2_t zeros = vreinterpret_f32_u32(vmov_n_u32(0)); + const BoolV btttf = BTTTF(); + + const Vec3V cross01 = V3Cross(a.col0,a.col1); + const Vec3V cross12 = V3Cross(a.col1,a.col2); + const Vec3V cross20 = V3Cross(a.col2,a.col0); + const FloatV dot = V3Dot(cross01,a.col2); + const FloatV invDet = FRecipFast(dot); + + const float32x4x2_t merge = vzipq_f32(cross12, cross01); + const float32x4_t mergeh = merge.val[0]; + const float32x4_t mergel = merge.val[1]; + + //const Vec3V colInv0 = XMVectorPermute(mergeh,cross20,NvPermuteControl(0,4,1,7)); + const float32x4_t colInv0_xxyy = vzipq_f32(mergeh, cross20).val[0]; + const float32x4_t colInv0 = vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(colInv0_xxyy), btttf)); + + //const Vec3V colInv1 = XMVectorPermute(mergeh,cross20,NvPermuteControl(2,5,3,7)); + const float32x2_t zw0 = vget_high_f32(mergeh); + const float32x2_t xy1 = vget_low_f32(cross20); + const float32x2_t yzero1 = vext_f32(xy1, zeros, 1); + const float32x2x2_t merge1 = vzip_f32(zw0, yzero1); + const float32x4_t colInv1 = vcombine_f32(merge1.val[0], merge1.val[1]); + + //const Vec3V colInv2 = XMVectorPermute(mergel,cross20,NvPermuteControl(0,6,1,7)); + const float32x2_t x0y0 = vget_low_f32(mergel); + const float32x2_t z1w1 = vget_high_f32(cross20); + const float32x2x2_t merge2 = vzip_f32(x0y0, z1w1); + const float32x4_t colInv2 = vcombine_f32(merge2.val[0], merge2.val[1]); + + return Mat33V + ( + vmulq_lane_f32(colInv0, invDet, 0), + vmulq_lane_f32(colInv1, invDet, 0), + vmulq_lane_f32(colInv2, invDet, 0) + ); +} + +NV_FORCE_INLINE Mat33V M33Trnsps(const Mat33V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + +NV_FORCE_INLINE Mat33V M33Identity() +{ + return Mat33V + ( + V3UnitX(), + V3UnitY(), + V3UnitZ() + ); +} + +NV_FORCE_INLINE Mat33V M33Sub(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Sub(a.col0,b.col0),V3Sub(a.col1,b.col1),V3Sub(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Neg(const Mat33V& a) +{ + return Mat33V(V3Neg(a.col0),V3Neg(a.col1),V3Neg(a.col2)); +} + +NV_FORCE_INLINE Mat33V M33Abs(const Mat33V& a) +{ + return Mat33V(V3Abs(a.col0),V3Abs(a.col1),V3Abs(a.col2)); +} + +NV_FORCE_INLINE Mat33V PromoteVec3V(const Vec3V v) +{ + const BoolV bTFFF = BTFFF(); + const BoolV bFTFF = BFTFF(); + const BoolV bFFTF = BTFTF(); + + const Vec3V zero = V3Zero(); + + return Mat33V( V3Sel(bTFFF, v, zero), + V3Sel(bFTFF, v, zero), + V3Sel(bFFTF, v, zero)); +} + +NV_FORCE_INLINE Mat33V M33Diagonal(const Vec3VArg d) +{ + const Vec3V x = V3Mul(V3UnitX(), d); + const Vec3V y = V3Mul(V3UnitY(), d); + const Vec3V z = V3Mul(V3UnitZ(), d); + return Mat33V(x, y, z); +} + +////////////////////////////////// +//MAT34V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M34MulV3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + const Vec3V v0PlusV1Plusv2=V3Add(v0PlusV1,v2); + return (V3Add(v0PlusV1Plusv2,a.col3)); +} + +NV_FORCE_INLINE Vec3V M34Mul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M34TrnspsMul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Mat34V M34MulM34(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(M34Mul33V3(a,b.col0), M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2),M34MulV3(a,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34MulM33(const Mat34V& a, const Mat33V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M34Mul33MM34(const Mat34V& a, const Mat34V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat34V M34Add(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2),V3Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34Trnsps33(const Mat34V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + + +////////////////////////////////// +//MAT44V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V M44MulV4(const Mat44V& a, const Vec4V b) +{ + const FloatV x=V4GetX(b); + const FloatV y=V4GetY(b); + const FloatV z=V4GetZ(b); + const FloatV w=V4GetW(b); + + const Vec4V v0=V4Scale(a.col0,x); + const Vec4V v1=V4Scale(a.col1,y); + const Vec4V v2=V4Scale(a.col2,z); + const Vec4V v3=V4Scale(a.col3,w); + const Vec4V v0PlusV1=V4Add(v0,v1); + const Vec4V v0PlusV1Plusv2=V4Add(v0PlusV1,v2); + return (V4Add(v0PlusV1Plusv2,v3)); +} + +NV_FORCE_INLINE Vec4V M44TrnspsMulV4(const Mat44V& a, const Vec4V b) +{ + return V4Merge(V4Dot(a.col0,b), V4Dot(a.col1,b), V4Dot(a.col2,b), V4Dot(a.col3,b)); +} + +NV_FORCE_INLINE Mat44V M44MulM44(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(M44MulV4(a,b.col0),M44MulV4(a,b.col1),M44MulV4(a,b.col2),M44MulV4(a,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Add(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(V4Add(a.col0,b.col0),V4Add(a.col1,b.col1),V4Add(a.col2,b.col2),V4Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Trnsps(const Mat44V& a) +{ + // asm volatile( + // "vzip.f32 %q0, %q2 \n\t" + // "vzip.f32 %q1, %q3 \n\t" + // "vzip.f32 %q0, %q1 \n\t" + // "vzip.f32 %q2, %q3 \n\t" + // : "+w" (a.col0), "+w" (a.col1), "+w" (a.col2), "+w" a.col3)); + + const float32x4x2_t v0v1 = vzipq_f32(a.col0, a.col2); + const float32x4x2_t v2v3 = vzipq_f32(a.col1, a.col3); + const float32x4x2_t zip0 = vzipq_f32(v0v1.val[0], v2v3.val[0]); + const float32x4x2_t zip1 = vzipq_f32(v0v1.val[1], v2v3.val[1]); + + return Mat44V(zip0.val[0], zip0.val[1], zip1.val[0], zip1.val[1]); +} + +NV_FORCE_INLINE Mat44V M44Inverse(const Mat44V& a) +{ + float32x4_t minor0, minor1, minor2, minor3; + float32x4_t row0, row1, row2, row3; + float32x4_t det, tmp1; + + tmp1 = vmovq_n_f32(0.0f); + row1 = vmovq_n_f32(0.0f); + row3 = vmovq_n_f32(0.0f); + + row0 = a.col0; + row1 = vextq_f32(a.col1, a.col1, 2); + row2 = a.col2; + row3 = vextq_f32(a.col3, a.col3, 2); + + tmp1 = vmulq_f32(row2, row3); + tmp1 = vrev64q_f32(tmp1); + minor0 = vmulq_f32(row1, tmp1); + minor1 = vmulq_f32(row0, tmp1); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor0 = vsubq_f32(vmulq_f32(row1, tmp1), minor0); + minor1 = vsubq_f32(vmulq_f32(row0, tmp1), minor1); + minor1 = vextq_f32(minor1, minor1, 2); + + tmp1 = vmulq_f32(row1, row2); + tmp1 = vrev64q_f32(tmp1); + minor0 = vaddq_f32(vmulq_f32(row3, tmp1), minor0); + minor3 = vmulq_f32(row0, tmp1); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor0 = vsubq_f32(minor0, vmulq_f32(row3, tmp1)); + minor3 = vsubq_f32(vmulq_f32(row0, tmp1), minor3); + minor3 = vextq_f32(minor3, minor3, 2); + + tmp1 = vmulq_f32(vextq_f32(row1, row1, 2), row3); + tmp1 = vrev64q_f32(tmp1); + row2 = vextq_f32(row2, row2, 2); + minor0 = vaddq_f32(vmulq_f32(row2, tmp1), minor0); + minor2 = vmulq_f32(row0, tmp1); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor0 = vsubq_f32(minor0, vmulq_f32(row2, tmp1)); + minor2 = vsubq_f32(vmulq_f32(row0, tmp1), minor2); + minor2 = vextq_f32(minor2, minor2, 2); + + tmp1 = vmulq_f32(row0, row1); + tmp1 = vrev64q_f32(tmp1); + minor2 = vaddq_f32(vmulq_f32(row3, tmp1), minor2); + minor3 = vsubq_f32(vmulq_f32(row2, tmp1), minor3); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor2 = vsubq_f32(vmulq_f32(row3, tmp1), minor2); + minor3 = vsubq_f32(minor3, vmulq_f32(row2, tmp1)); + + tmp1 = vmulq_f32(row0, row3); + tmp1 = vrev64q_f32(tmp1); + minor1 = vsubq_f32(minor1, vmulq_f32(row2, tmp1)); + minor2 = vaddq_f32(vmulq_f32(row1, tmp1), minor2); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor1 = vaddq_f32(vmulq_f32(row2, tmp1), minor1); + minor2 = vsubq_f32(minor2, vmulq_f32(row1, tmp1)); + + tmp1 = vmulq_f32(row0, row2); + tmp1 = vrev64q_f32(tmp1); + minor1 = vaddq_f32(vmulq_f32(row3, tmp1), minor1); + minor3 = vsubq_f32(minor3, vmulq_f32(row1, tmp1)); + tmp1 = vextq_f32(tmp1, tmp1, 2); + minor1 = vsubq_f32(minor1, vmulq_f32(row3, tmp1)); + minor3 = vaddq_f32(vmulq_f32(row1, tmp1), minor3); + + det = vmulq_f32(row0, minor0); + det = vaddq_f32(vextq_f32(det, det, 2), det); + det = vaddq_f32(vrev64q_f32(det), det); + det = vdupq_lane_f32(VRECIPE(vget_low_f32(det)), 0); + + minor0 = vmulq_f32(det, minor0); + minor1 = vmulq_f32(det, minor1); + minor2 = vmulq_f32(det, minor2); + minor3 = vmulq_f32(det, minor3); + Mat44V invTrans(minor0,minor1,minor2,minor3); + return M44Trnsps(invTrans); +} + + +NV_FORCE_INLINE Vec4V V4LoadXYZW(const float& x, const float& y, const float& z, const float& w) +{ +#if NV_WINRT + NV_ALIGN(16,float) r[4] = {x, y, z ,w}; + return vld1q_f32((const float32_t*)r); +#else + const float32x4_t ret = {x, y, z, w}; + return ret; +#endif // NV_WINRT +} + +/* +NV_FORCE_INLINE VecU16V V4U32PK(VecU32V a, VecU32V b) +{ + return vcombine_u16(vqmovn_u32(a), vqmovn_u32(b)); +} +*/ + +NV_FORCE_INLINE VecU32V V4U32Sel(const BoolV c, const VecU32V a, const VecU32V b) +{ + return vbslq_u32(c, a, b); +} + +NV_FORCE_INLINE VecU32V V4U32or(VecU32V a, VecU32V b) +{ + return vorrq_u32(a, b); +} + +NV_FORCE_INLINE VecU32V V4U32and(VecU32V a, VecU32V b) +{ + return vandq_u32(a, b); +} + +NV_FORCE_INLINE VecU32V V4U32Andc(VecU32V a, VecU32V b) +{ + //return vbicq_u32(a, b); // creates gcc compiler bug in RTreeQueries.cpp + return vandq_u32(a, vmvnq_u32(b)); +} + +/* +NV_FORCE_INLINE VecU16V V4U16Or(VecU16V a, VecU16V b) +{ + return vorrq_u16(a, b); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16And(VecU16V a, VecU16V b) +{ + return vandq_u16(a, b); +} +*/ +/* +NV_FORCE_INLINE VecU16V V4U16Andc(VecU16V a, VecU16V b) +{ + return vbicq_u16(a, b); +} +*/ + +NV_FORCE_INLINE VecI32V I4Load(const int32_t i) +{ + return vdupq_n_s32(i); +} + +NV_FORCE_INLINE VecI32V I4LoadU(const int32_t* i) +{ + return vld1q_s32(i); +} + +NV_FORCE_INLINE VecI32V I4LoadA(const int32_t* i) +{ + return vld1q_s32(i); +} + +NV_FORCE_INLINE VecI32V VecI32V_Add(const VecI32VArg a, const VecI32VArg b) +{ + return vaddq_s32(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sub(const VecI32VArg a, const VecI32VArg b) +{ + return vsubq_s32(a, b); +} + +NV_FORCE_INLINE BoolV VecI32V_IsGrtr(const VecI32VArg a, const VecI32VArg b) +{ + return vcgtq_s32(a, b); +} + +NV_FORCE_INLINE BoolV VecI32V_IsEq(const VecI32VArg a, const VecI32VArg b) +{ + return vceqq_s32(a, b); +} + +NV_FORCE_INLINE VecI32V V4I32Sel(const BoolV c, const VecI32V a, const VecI32V b) +{ + return vbslq_s32(c, a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Zero() +{ + return vdupq_n_s32(0); +} + +NV_FORCE_INLINE VecI32V VecI32V_One() +{ + return vdupq_n_s32(1); +} + +NV_FORCE_INLINE VecI32V VecI32V_Two() +{ + return vdupq_n_s32(2); +} + +NV_FORCE_INLINE VecI32V VecI32V_MinusOne() +{ + return vdupq_n_s32(-1); +} + + +NV_FORCE_INLINE VecU32V U4Zero() +{ + return U4Load(0); +} + +NV_FORCE_INLINE VecU32V U4One() +{ + return U4Load(1); +} + +NV_FORCE_INLINE VecU32V U4Two() +{ + return U4Load(2); +} + +NV_FORCE_INLINE VecShiftV VecI32V_PrepareShift(const VecI32VArg shift) +{ + return shift; +} + +NV_FORCE_INLINE VecI32V VecI32V_LeftShift(const VecI32VArg a, const VecShiftVArg count) +{ + return vshlq_s32(a, count); +} + +NV_FORCE_INLINE VecI32V VecI32V_RightShift(const VecI32VArg a, const VecShiftVArg count) +{ + return vshlq_s32(a, VecI32V_Sub(I4Load(0), count)); +} + +NV_FORCE_INLINE VecI32V VecI32V_And(const VecI32VArg a, const VecI32VArg b) +{ + return vandq_s32(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Or(const VecI32VArg a, const VecI32VArg b) +{ + return vorrq_s32(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetX(const VecI32VArg f) +{ + const int32x2_t fLow = vget_low_s32(f); + return vdupq_lane_s32(fLow, 0); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetY(const VecI32VArg f) +{ + const int32x2_t fLow = vget_low_s32(f); + return vdupq_lane_s32(fLow, 1); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetZ(const VecI32VArg f) +{ + const int32x2_t fHigh = vget_high_s32(f); + return vdupq_lane_s32(fHigh, 0); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetW(const VecI32VArg f) +{ + const int32x2_t fHigh = vget_high_s32(f); + return vdupq_lane_s32(fHigh, 1); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sel(const BoolV c, const VecI32VArg a, const VecI32VArg b) +{ + VECMATHAOS_ASSERT(_VecMathTests::allElementsEqualBoolV(c,BTTTT()) || _VecMathTests::allElementsEqualBoolV(c,BFFFF())); + return vbslq_s32(c, a, b); +} + +NV_FORCE_INLINE void NvI32_From_VecI32V(const VecI32VArg a, int32_t* i) +{ + *i = vgetq_lane_s32(a, 0); +} + +NV_FORCE_INLINE VecI32V VecI32V_Merge(const VecI32VArg a, const VecI32VArg b, const VecI32VArg c, const VecI32VArg d) +{ + const int32x2_t aLow = vget_low_s32(a); + const int32x2_t bLow = vget_low_s32(b); + const int32x2_t cLow = vget_low_s32(c); + const int32x2_t dLow = vget_low_s32(d); + + const int32x2_t low = vext_s32(aLow, bLow, 1); + const int32x2_t high = vext_s32(cLow, dLow, 1); + + return vcombine_s32(low, high); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_BoolV(const BoolVArg a) +{ + return reinterpret_cast(a); +} + +NV_FORCE_INLINE VecU32V VecU32V_From_BoolV(const BoolVArg a) +{ + return reinterpret_cast(a); +} + +/* +template NV_FORCE_INLINE VecI32V V4ISplat() +{ + return vdupq_n_s32(a); +} + +template NV_FORCE_INLINE VecU32V V4USplat() +{ + return vdupq_n_u32(a); +} +*/ + +/* +NV_FORCE_INLINE void V4U16StoreAligned(VecU16V val, VecU16V* address) +{ + vst1q_u16((uint16_t*)address, val); +} +*/ + +NV_FORCE_INLINE void V4U32StoreAligned(VecU32V val, VecU32V* address) +{ + vst1q_u32((uint32_t*)address, val); +} + +NV_FORCE_INLINE Vec4V V4LoadAligned(Vec4V* addr) +{ + return vld1q_f32((float32_t*)addr); +} + +NV_FORCE_INLINE Vec4V V4LoadUnaligned(Vec4V* addr) +{ + return vld1q_f32((float32_t*)addr); +} + +NV_FORCE_INLINE Vec4V V4Andc(const Vec4V a, const VecU32V b) +{ + return vreinterpretq_f32_u32(V4U32Andc(vreinterpretq_u32_f32(a), b)); +} + +NV_FORCE_INLINE VecU32V V4IsGrtrV32u(const Vec4V a, const Vec4V b) +{ + return V4IsGrtr(a, b); +} + +NV_FORCE_INLINE VecU16V V4U16LoadAligned(VecU16V* addr) +{ + return vld1q_u16((uint16_t*)addr); +} + +NV_FORCE_INLINE VecU16V V4U16LoadUnaligned(VecU16V* addr) +{ + return vld1q_u16((uint16_t*)addr); +} + +NV_FORCE_INLINE VecU16V V4U16CompareGt(VecU16V a, VecU16V b) +{ + return vcgtq_u16(a, b); +} + +NV_FORCE_INLINE VecU16V V4I16CompareGt(VecU16V a, VecU16V b) +{ + return vcgtq_s16((VecI16V&)a, (VecI16V&)b); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a) +{ + return vcvtq_f32_u32(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecI32V(VecI32V a) +{ + return vcvtq_f32_s32(a); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_Vec4V(Vec4V a) +{ + return vcvtq_s32_f32(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecU32V(VecU32V a) +{ + return vreinterpretq_f32_u32(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecI32V(VecI32V a) +{ + return vreinterpretq_f32_s32(a); +} + +NV_FORCE_INLINE VecU32V VecU32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return vreinterpretq_u32_f32(a); +} + +NV_FORCE_INLINE VecI32V VecI32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return vreinterpretq_s32_f32(a); +} + +template NV_FORCE_INLINE BoolV BSplatElement(BoolV a) +{ +#if NV_WINRT + if(index == 0) + { + return vdupq_lane_u32(vget_low_u32(a), 0); + } + else if (index == 1) + { + return vdupq_lane_u32(vget_low_u32(a), 1); + } +#else + if(index < 2) + { + return vdupq_lane_u32(vget_low_u32(a), index); + } +#endif + else if(index == 2) + { + return vdupq_lane_u32(vget_high_u32(a), 0); + } + else if(index == 3) + { + return vdupq_lane_u32(vget_high_u32(a), 1); + } +} + + +template NV_FORCE_INLINE VecU32V V4U32SplatElement(VecU32V a) +{ + const int highIndex = index-2; +#if NV_WINRT + if(index == 0) + { + return vdupq_lane_u32(vget_low_u32(a), 0); + } + else if (index == 1) + { + return vdupq_lane_u32(vget_low_u32(a), 1); + } +#else + if(index < 2) + { + return vdupq_lane_u32(vget_low_u32(a), index); + } +#endif + else if(index == 2) + { + return vdupq_lane_u32(vget_high_u32(a), 0); + } + else if(index == 3) + { + return vdupq_lane_u32(vget_high_u32(a), 1); + } +} + +template NV_FORCE_INLINE Vec4V V4SplatElement(Vec4V a) +{ +#if NV_WINRT + if(index == 0) + { + return vdupq_lane_f32(vget_low_f32(a), 0); + } + else if (index == 1) + { + return vdupq_lane_f32(vget_low_f32(a), 1); + } +#else + if(index < 2) + { + return vdupq_lane_f32(vget_low_f32(a), index); + } +#endif + else if(index == 2) + { + return vdupq_lane_f32(vget_high_f32(a), 0); + } + else if(index == 3) + { + return vdupq_lane_f32(vget_high_f32(a), 1); + } +} + +template NV_FORCE_INLINE VecU16V V4U16SplatElement(VecU16V a) +{ +#if NV_WINRT + if(index == 0) + { + return vdupq_lane_u16(vget_low_u16(a), 0); + } + else if(index == 1) + { + return vdupq_lane_u16(vget_low_u16(a), 1); + } + else if(index == 2) + { + return vdupq_lane_u16(vget_low_u16(a), 2); + } + else if(index == 3) + { + return vdupq_lane_u16(vget_low_u16(a), 3); + } +#else + if(index < 4) + { + return vdupq_lane_u16(vget_low_u16(a),index); + } +#endif + else if(index == 4) + { + return vdupq_lane_u16(vget_high_u16(a), 0); + } + else if(index == 5) + { + return vdupq_lane_u16(vget_high_u16(a), 1); + } + else if(index == 6) + { + return vdupq_lane_u16(vget_high_u16(a), 2); + } + else if(index == 7) + { + return vdupq_lane_u16(vget_high_u16(a), 3); + } +} + +template NV_FORCE_INLINE VecI16V V4I16SplatImmediate() +{ + return vdupq_n_s16(imm); +} + +template NV_FORCE_INLINE VecU16V V4U16SplatImmediate() +{ + return vdupq_n_u16(imm); +} + +NV_FORCE_INLINE VecU16V V4U16SubtractModulo(VecU16V a, VecU16V b) +{ + return vsubq_u16(a, b); +} + +NV_FORCE_INLINE VecU16V V4U16AddModulo(VecU16V a, VecU16V b) +{ + return vaddq_u16(a, b); +} + +NV_FORCE_INLINE VecU32V V4U16GetLo16(VecU16V a) +{ + const uint16x4x2_t ret = vuzp_u16(vget_low_u16(a), vget_high_u16(a)); + return vmovl_u16(ret.val[0]); +} + +NV_FORCE_INLINE VecU32V V4U16GetHi16(VecU16V a) +{ + const uint16x4x2_t ret = vuzp_u16(vget_low_u16(a), vget_high_u16(a)); + return vmovl_u16(ret.val[1]); +} + +NV_FORCE_INLINE VecU32V VecU32VLoadXYZW(uint32_t x, uint32_t y, uint32_t z, uint32_t w) +{ +#if NV_WINRT + NV_ALIGN(16,uint32_t) r[4] = {x, y, z ,w}; + return vld1q_u32((const uint32_t*)r); +#else + const uint32x4_t ret = {x, y, z, w}; + return ret; +#endif +} + +NV_FORCE_INLINE VecU32V U4Load(const uint32_t i) +{ + return vdupq_n_u32(i); +} + +NV_FORCE_INLINE VecU32V U4LoadU(const uint32_t* i) +{ + return vld1q_u32(i); +} + +NV_FORCE_INLINE VecU32V U4LoadA(const uint32_t* i) +{ + return vld1q_u32(i); +} + +NV_FORCE_INLINE Vec4V V4Ceil(const Vec4V in) +{ + const float32x4_t ones = vdupq_n_f32(1.0f); + const float32x4_t rdToZero = vcvtq_f32_s32(vcvtq_s32_f32(in)); + const float32x4_t rdToZeroPlusOne = vaddq_f32(rdToZero, ones); + const uint32x4_t gt = vcgtq_f32(in, rdToZero); + return vbslq_f32(gt, rdToZeroPlusOne, rdToZero); +} + +NV_FORCE_INLINE Vec4V V4Floor(const Vec4V in) +{ + const float32x4_t ones = vdupq_n_f32(1.0f); + const float32x4_t rdToZero = vcvtq_f32_s32(vcvtq_s32_f32(in)); + const float32x4_t rdToZeroMinusOne = vsubq_f32(rdToZero, ones); + const uint32x4_t lt = vcltq_f32(in, rdToZero); + return vbslq_f32(lt, rdToZeroMinusOne, rdToZero); +} + +NV_FORCE_INLINE VecU32V V4ConvertToU32VSaturate(const Vec4V in, uint32_t power) +{ + NV_ASSERT(power == 0 && "Non-zero power not supported in convertToU32VSaturate"); + NV_UNUSED(power); // prevent warning in release builds + + return vcvtq_u32_f32(in); +} + +#endif //PS_UNIX_NEON_INLINE_AOS_H + diff --git a/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2AoS.h b/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2AoS.h new file mode 100644 index 000000000..5d952a786 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2AoS.h @@ -0,0 +1,183 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_SSE2_AOS_H +#define PS_UNIX_SSE2_AOS_H + +// no includes here! this file should be included from NvcVecMath.h only!!! + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +typedef union UnionM128 +{ + UnionM128(){} + UnionM128(__m128 in) + { + m128 = in; + } + + UnionM128(__m128i in) + { + m128i = in; + } + + operator __m128() + { + return m128; + } + + operator const __m128() const + { + return m128; + } + + + float m128_f32[4]; + __int8_t m128_i8[16]; + __int16_t m128_i16[8]; + __int32_t m128_i32[4]; + __int64_t m128_i64[2]; + __uint16_t m128_u16[8]; + __uint32_t m128_u32[4]; + __uint64_t m128_u64[2]; + __m128 m128; + __m128i m128i; +} UnionM128; + + +typedef __m128 FloatV; +typedef __m128 Vec3V; +typedef __m128 Vec4V; +typedef __m128 BoolV; +typedef __m128 QuatV; +//typedef __m128 VecU32V; +//typedef __m128 VecI32V; +//typedef __m128 VecU16V; +//typedef __m128 VecI16V; +//typedef __m128 VecU8V; +typedef UnionM128 VecU32V; +typedef UnionM128 VecI32V; +typedef UnionM128 VecU16V; +typedef UnionM128 VecI16V; +typedef UnionM128 VecU8V; + +#define FloatVArg FloatV& +#define Vec3VArg Vec3V& +#define Vec4VArg Vec4V& +#define BoolVArg BoolV& +#define VecU32VArg VecU32V& +#define VecI32VArg VecI32V& +#define VecU16VArg VecU16V& +#define VecI16VArg VecI16V& +#define VecU8VArg VecU8V& +#define QuatVArg QuatV& + +//Optimization for situations in which you cross product multiple vectors with the same vector. +//Avoids 2X shuffles per product +struct VecCrossV +{ + Vec3V mL1; + Vec3V mR1; +}; + +struct VecShiftV +{ + VecI32V shift; +}; +#define VecShiftVArg VecShiftV& + +NV_ALIGN_PREFIX(16) +struct Mat33V +{ + Mat33V(){} + Mat33V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat34V +{ + Mat34V(){} + Mat34V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2, const Vec3V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); + Vec3V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat43V +{ + Mat43V(){} + Mat43V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat44V +{ + Mat44V(){} + Mat44V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2, const Vec4V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); + Vec4V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + +#endif //PS_UNIX_SSE2_AOS_H + + + diff --git a/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2InlineAoS.h b/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2InlineAoS.h new file mode 100644 index 000000000..4a72aa30f --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/unix/sse2/NsUnixSse2InlineAoS.h @@ -0,0 +1,3194 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_UNIX_SSE2_INLINE_AOS_H +#define PS_UNIX_SSE2_INLINE_AOS_H + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +//Remove this define when all platforms use simd solver. +#define NV_SUPPORT_SIMD + +#ifdef __SSE4_2__ +#include "smmintrin.h" +#endif + +#define _NV_FPCLASS_SNAN 0x0001 /* signaling NaN */ +#define _NV_FPCLASS_QNAN 0x0002 /* quiet NaN */ +#define _NV_FPCLASS_NINF 0x0004 /* negative infinity */ +#define _NV_FPCLASS_PINF 0x0200 /* positive infinity */ + +NV_FORCE_INLINE __m128 m128_I2F(__m128i n) { return _mm_castsi128_ps(n); } +NV_FORCE_INLINE __m128i m128_F2I(__m128 n) { return _mm_castps_si128(n); } + +namespace internalUnitSSE2Simd +{ + NV_FORCE_INLINE uint32_t BAllTrue4_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return moveMask == (0xf); + } + + NV_FORCE_INLINE uint32_t BAnyTrue4_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return moveMask != (0x0); + } + + NV_FORCE_INLINE uint32_t BAllTrue3_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return (moveMask & 0x7) == (0x7); + } + + NV_FORCE_INLINE uint32_t BAnyTrue3_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return (moveMask & 0x7) != (0x0); + } + + NV_FORCE_INLINE uint32_t FiniteTestEq(const Vec4V a, const Vec4V b) + { + //This is a bit of a bodge. + //_mm_comieq_ss returns 1 if either value is nan so we need to re-cast a and b with true encoded as a non-nan number. + //There must be a better way of doing this in sse. + const BoolV one = FOne(); + const BoolV zero = FZero(); + const BoolV a1 =V4Sel(a,one,zero); + const BoolV b1 =V4Sel(b,one,zero); + return + ( + _mm_comieq_ss(a1, b1) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(1,1,1,1)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(1,1,1,1))) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(2,2,2,2)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(2,2,2,2))) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(3,3,3,3)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(3,3,3,3))) + ); + } + + const NV_ALIGN(16, uint32_t gMaskXYZ[4])={0xffffffff, 0xffffffff, 0xffffffff, 0}; +} + +namespace _VecMathTests +{ + NV_FORCE_INLINE bool allElementsEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return(_mm_comieq_ss(a,b)!=0); + } + + NV_FORCE_INLINE bool allElementsEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return V3AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVec4V(const Vec4V a, const Vec4V b) + { + return V4AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualBoolV(const BoolV a, const BoolV b) + { + return internalUnitSSE2Simd::BAllTrue4_R(VecI32V_IsEq(a, b)) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVecU32V(const VecU32V a, const VecU32V b) + { + return internalUnitSSE2Simd::BAllTrue4_R(V4IsEqU32(a, b)) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVecI32V(const VecI32V a, const VecI32V b) + { + BoolV c = m128_I2F(_mm_cmpeq_epi32(m128_F2I(a), m128_F2I(b))); + return internalUnitSSE2Simd::BAllTrue4_R(c) != 0; + } + + #define VECMATH_AOS_EPSILON (1e-3f) + + NV_FORCE_INLINE bool allElementsNearEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + const FloatV c=FSub(a,b); + const FloatV minError=FLoad(-VECMATH_AOS_EPSILON); + const FloatV maxError=FLoad(VECMATH_AOS_EPSILON); + return (_mm_comigt_ss(c,minError) && _mm_comilt_ss(c,maxError)); + } + + NV_FORCE_INLINE bool allElementsNearEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const Vec3V c=V3Sub(a,b); + const Vec3V minError=V3Load(-VECMATH_AOS_EPSILON); + const Vec3V maxError=V3Load(VECMATH_AOS_EPSILON); + return + ( + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),maxError) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),maxError) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),maxError) + ); + } + + NV_FORCE_INLINE bool allElementsNearEqualVec4V(const Vec4V a, const Vec4V b) + { + const Vec4V c=V4Sub(a,b); + const Vec4V minError=V4Load(-VECMATH_AOS_EPSILON); + const Vec4V maxError=V4Load(VECMATH_AOS_EPSILON); + return + ( + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),maxError) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),maxError) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),maxError) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(3,3,3,3)),minError) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(3,3,3,3)),maxError) + ); + } +} + + + +///////////////////////////////////////////////////////////////////// +////FUNCTIONS USED ONLY FOR ASSERTS IN VECTORISED IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// + + + +NV_FORCE_INLINE bool isValidFloatV(const FloatV a) +{ + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1))) && + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))) && + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3))) + ); +} + +NV_FORCE_INLINE bool isValidVec3V(const Vec3V a) +{ + return (_mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)),FZero()) ? true : false); +} + + +NV_FORCE_INLINE bool isFiniteFloatV(const FloatV a) +{ + float badNumber = + nvidia::NvUnionCast(_NV_FPCLASS_SNAN | _NV_FPCLASS_QNAN | _NV_FPCLASS_NINF | _NV_FPCLASS_PINF); + const FloatV vBadNum = FLoad((float&)badNumber); + const BoolV vMask = BAnd(vBadNum, a); + return internalUnitSSE2Simd::FiniteTestEq(vMask, BFFFF()) == 1; +} + +NV_FORCE_INLINE bool isFiniteVec3V(const Vec3V a) +{ + float badNumber = + nvidia::NvUnionCast(_NV_FPCLASS_SNAN | _NV_FPCLASS_QNAN | _NV_FPCLASS_NINF | _NV_FPCLASS_PINF); + const Vec3V vBadNum = V3Load((float&)badNumber); + const BoolV vMask = BAnd(BAnd(vBadNum, a), BTTTF()); + return internalUnitSSE2Simd::FiniteTestEq(vMask, BFFFF()) == 1; +} + +NV_FORCE_INLINE bool isFiniteVec4V(const Vec4V a) +{ + /*Vec4V a; + NV_ALIGN(16, float f[4]); + F32Array_Aligned_From_Vec4V(a, f); + return NvIsFinite(f[0]) + && NvIsFinite(f[1]) + && NvIsFinite(f[2]) + && NvIsFinite(f[3]);*/ + + float badNumber = + nvidia::NvUnionCast(_NV_FPCLASS_SNAN | _NV_FPCLASS_QNAN | _NV_FPCLASS_NINF | _NV_FPCLASS_PINF); + const Vec4V vBadNum = V4Load((float&)badNumber); + const BoolV vMask = BAnd(vBadNum, a); + + return internalUnitSSE2Simd::FiniteTestEq(vMask, BFFFF()) == 1; +} + +NV_FORCE_INLINE bool hasZeroElementinFloatV(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return (_mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) ? true : false); +} + +NV_FORCE_INLINE bool hasZeroElementInVec3V(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)),FZero()) + ); +} + +NV_FORCE_INLINE bool hasZeroElementInVec4V(const Vec4V a) +{ + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)),FZero()) + ); +} + +///////////////////////////////////////////////////////////////////// +////VECTORISED FUNCTION IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// + +NV_FORCE_INLINE FloatV FLoad(const float f) +{ + return (_mm_load1_ps(&f)); +} + +NV_FORCE_INLINE Vec3V V3Load(const float f) +{ + return _mm_set_ps(0.0f,f,f,f); +} + +NV_FORCE_INLINE Vec4V V4Load(const float f) +{ + return (_mm_load1_ps(&f)); +} + +NV_FORCE_INLINE BoolV BLoad(const bool f) +{ + const uint32_t i=-(int32_t)f; + return _mm_load1_ps((float*)&i); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const NvVec3& f) +{ + VECMATHAOS_ASSERT(0 == ((size_t)&f & 0x0f)); + return _mm_and_ps((Vec3V&)f, (VecI32V&)internalUnitSSE2Simd::gMaskXYZ); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const NvVec3& f) +{ + return (_mm_set_ps(0.0f,f.z,f.y,f.x)); +} + +NV_FORCE_INLINE Vec3V V3LoadUnsafeA(const NvVec3& f) +{ + return (_mm_set_ps(0.0f,f.z,f.y,f.x)); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return _mm_and_ps((Vec3V&)*f, (VecI32V&)internalUnitSSE2Simd::gMaskXYZ); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const float* const i) +{ + return (_mm_set_ps(0.0f,i[2],i[1],i[0])); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V(Vec4V v) +{ + return V4ClearW(v); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V_WUndefined(const Vec4V v) +{ + return v; +} + +NV_FORCE_INLINE Vec4V Vec4V_From_Vec3V(Vec3V f) +{ + return f; //ok if it is implemented as the same type. +} + +NV_FORCE_INLINE Vec4V Vec4V_From_NvVec3_WUndefined(const NvVec3& f) +{ + return (_mm_set_ps(0.0f,f.z,f.y,f.x)); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_FloatV(FloatV f) +{ + return f; +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV(FloatV f) +{ + return Vec3V_From_Vec4V(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV_WUndefined(FloatV f) +{ + return Vec3V_From_Vec4V_WUndefined(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Mat33V Mat33V_From_NvMat33(const NvMat33 &m) +{ + return Mat33V(V3LoadU(m.column0), + V3LoadU(m.column1), + V3LoadU(m.column2)); +} + +NV_FORCE_INLINE void NvMat33_From_Mat33V(const Mat33V &m, NvMat33 &out) +{ + NV_ASSERT((size_t(&out)&15)==0); + V3StoreU(m.col0, out.column0); + V3StoreU(m.col1, out.column1); + V3StoreU(m.col2, out.column2); +} + + +NV_FORCE_INLINE Vec4V V4LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return (_mm_load_ps(f)); +} + +NV_FORCE_INLINE void V4StoreA(Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + _mm_store_ps(f,a); +} + +NV_FORCE_INLINE void V4StoreU(const Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + _mm_storeu_ps(f,a); +} + +NV_FORCE_INLINE void BStoreA(const BoolV a, uint32_t* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + _mm_store_ps((float*)f,a); +} + +NV_FORCE_INLINE void U4StoreA(const VecU32V uv, uint32_t* u) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)u & 0x0f)); + _mm_store_ps((float*)u,uv); +} + +NV_FORCE_INLINE void I4StoreA(const VecI32V iv, int32_t* i) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)i & 0x0f)); + _mm_store_ps((float*)i,iv); +} + +NV_FORCE_INLINE Vec4V V4LoadU(const float* const f) +{ + return (_mm_loadu_ps(f)); +} + +NV_FORCE_INLINE BoolV BLoad(const bool* const f) +{ + const NV_ALIGN(16, int32_t) b[4]={-(int32_t)f[0],-(int32_t)f[1],-(int32_t)f[2],-(int32_t)f[3]}; + return _mm_load_ps((float*)&b); +} + +NV_FORCE_INLINE float FStore(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + float f; + _mm_store_ss(&f,a); + return f; +} + +NV_FORCE_INLINE void FStore(const FloatV a, float* NV_RESTRICT f) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + _mm_store_ss(f,a); +} + +NV_FORCE_INLINE void V3StoreA(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + VECMATHAOS_ASSERT(0 == ((int)&f & 0x0F)); + NV_ALIGN(16,float) f2[4]; + _mm_store_ps(f2,a); + f=NvVec3(f2[0],f2[1],f2[2]); +} + +NV_FORCE_INLINE void V3StoreU(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + NV_ALIGN(16,float) f2[4]; + _mm_store_ps(f2,a); + f=NvVec3(f2[0],f2[1],f2[2]); +} + +NV_FORCE_INLINE VecI32V U4Load(const uint32_t i) +{ + return (_mm_load1_ps((float*)&i)); +} + +NV_FORCE_INLINE VecU32V U4LoadU(const uint32_t* i) +{ + return _mm_loadu_ps((float*)i); +} + +NV_FORCE_INLINE VecU32V U4LoadA(const uint32_t* i) +{ + VECMATHAOS_ASSERT(0==((size_t)i & 0x0f)); + return _mm_load_ps((float*)i); +} + + + + +////////////////////////////////// +//FLOATV +////////////////////////////////// + +NV_FORCE_INLINE FloatV FZero() +{ + return FLoad(0.0f); +} + +NV_FORCE_INLINE FloatV FOne() +{ + return FLoad(1.0f); +} + +NV_FORCE_INLINE FloatV FHalf() +{ + return FLoad(0.5f); +} + +NV_FORCE_INLINE FloatV FEps() +{ + return FLoad(NV_EPS_REAL); +} + +NV_FORCE_INLINE FloatV FEps6() +{ + return FLoad(1e-6f); +} + +NV_FORCE_INLINE FloatV FMax() +{ + return FLoad(NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV FNegMax() +{ + return FLoad(-NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV IZero() +{ + const uint32_t zero = 0; + return _mm_load1_ps((float*)&zero); +} + +NV_FORCE_INLINE FloatV IOne() +{ + const uint32_t one = 1; + return _mm_load1_ps((float*)&one); +} + +NV_FORCE_INLINE FloatV ITwo() +{ + const uint32_t two = 2; + return _mm_load1_ps((float*)&two); +} + +NV_FORCE_INLINE FloatV IThree() +{ + const uint32_t three = 3; + return _mm_load1_ps((float*)&three); +} + +NV_FORCE_INLINE FloatV IFour() +{ + uint32_t four = 4; + return _mm_load1_ps((float*)&four); +} + +NV_FORCE_INLINE FloatV FNeg(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE FloatV FAdd(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE FloatV FSub(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE FloatV FMul(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE FloatV FDiv(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE FloatV FDivFast(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE FloatV FRecip(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_div_ps(FOne(),a); +} + +NV_FORCE_INLINE FloatV FRecipFast(const FloatV a) +{ + return _mm_rcp_ps(a); +} + +NV_FORCE_INLINE FloatV FRsqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_div_ps(FOne(),_mm_sqrt_ps(a)); +} + +NV_FORCE_INLINE FloatV FSqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_sqrt_ps(a); +} + +NV_FORCE_INLINE FloatV FRsqrtFast(const FloatV a) +{ + return _mm_rsqrt_ps(a); +} + +NV_FORCE_INLINE FloatV FScaleAdd(const FloatV a, const FloatV b, const FloatV c) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidFloatV(c)); + return FAdd(FMul(a,b),c); +} + +NV_FORCE_INLINE FloatV FNegScaleSub(const FloatV a, const FloatV b, const FloatV c) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidFloatV(c)); + return FSub(c,FMul(a,b)); +} + +NV_FORCE_INLINE FloatV FAbs(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + NV_ALIGN(16,const uint32_t) absMask[4] = {0x7fFFffFF, 0x7fFFffFF, 0x7fFFffFF, 0x7fFFffFF}; + return _mm_and_ps(a, _mm_load_ps((float*)absMask)); +} + +NV_FORCE_INLINE FloatV FSel(const BoolV c, const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(_VecMathTests::allElementsEqualBoolV(c,BTTTT()) || _VecMathTests::allElementsEqualBoolV(c,BFFFF())); + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE BoolV FIsGrtr(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV FIsGrtrOrEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV FIsEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE FloatV FMax(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE FloatV FMin(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_min_ps(a, b); +} + +NV_FORCE_INLINE FloatV FClamp(const FloatV a, const FloatV minV, const FloatV maxV) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(minV)); + VECMATHAOS_ASSERT(isValidFloatV(maxV)); + return FMax(FMin(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t FAllGrtr(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return(_mm_comigt_ss(a,b)); +} + +NV_FORCE_INLINE uint32_t FAllGrtrOrEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + + return(_mm_comige_ss(a,b)); +} + +NV_FORCE_INLINE uint32_t FAllEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + + return(_mm_comieq_ss(a,b)); +} + +NV_FORCE_INLINE FloatV FRound(const FloatV a) +{ +#ifdef __SSE4_2__ + return _mm_round_ps( a, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC ); +#else + //return _mm_round_ps(a, 0x0); + const FloatV half = FLoad(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const FloatV aRound = FSub(FAdd(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +#endif +} + + +NV_FORCE_INLINE FloatV FSin(const FloatV a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + FloatV Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const FloatV recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const FloatV twoPi = V4LoadA(g_NVTwoPi.f); + const FloatV tmp = FMul(a, recipTwoPi); + const FloatV b = FRound(tmp); + const FloatV V1 = FNegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const FloatV V2 = FMul(V1, V1); + const FloatV V3 = FMul(V2, V1); + const FloatV V5 = FMul(V3, V2); + const FloatV V7 = FMul(V5, V2); + const FloatV V9 = FMul(V7, V2); + const FloatV V11 = FMul(V9, V2); + const FloatV V13 = FMul(V11, V2); + const FloatV V15 = FMul(V13, V2); + const FloatV V17 = FMul(V15, V2); + const FloatV V19 = FMul(V17, V2); + const FloatV V21 = FMul(V19, V2); + const FloatV V23 = FMul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = FMulAdd(S1, V3, V1); + Result = FMulAdd(S2, V5, Result); + Result = FMulAdd(S3, V7, Result); + Result = FMulAdd(S4, V9, Result); + Result = FMulAdd(S5, V11, Result); + Result = FMulAdd(S6, V13, Result); + Result = FMulAdd(S7, V15, Result); + Result = FMulAdd(S8, V17, Result); + Result = FMulAdd(S9, V19, Result); + Result = FMulAdd(S10, V21, Result); + Result = FMulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE FloatV FCos(const FloatV a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + FloatV Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const FloatV recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const FloatV twoPi = V4LoadA(g_NVTwoPi.f); + const FloatV tmp = FMul(a, recipTwoPi); + const FloatV b = FRound(tmp); + const FloatV V1 = FNegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const FloatV V2 = FMul(V1, V1); + const FloatV V4 = FMul(V2, V2); + const FloatV V6 = FMul(V4, V2); + const FloatV V8 = FMul(V4, V4); + const FloatV V10 = FMul(V6, V4); + const FloatV V12 = FMul(V6, V6); + const FloatV V14 = FMul(V8, V6); + const FloatV V16 = FMul(V8, V8); + const FloatV V18 = FMul(V10, V8); + const FloatV V20 = FMul(V10, V10); + const FloatV V22 = FMul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = FMulAdd(C1, V2, V4One()); + Result = FMulAdd(C2, V4, Result); + Result = FMulAdd(C3, V6, Result); + Result = FMulAdd(C4, V8, Result); + Result = FMulAdd(C5, V10, Result); + Result = FMulAdd(C6, V12, Result); + Result = FMulAdd(C7, V14, Result); + Result = FMulAdd(C8, V16, Result); + Result = FMulAdd(C9, V18, Result); + Result = FMulAdd(C10, V20, Result); + Result = FMulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV min, const FloatV max) +{ + const BoolV ffff = BFFFF(); + const BoolV c = BOr(FIsGrtr(a, max), FIsGrtr(min, a)); + return !BAllEq(c, ffff); +} + +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV min, const FloatV max) +{ + const BoolV tttt = BTTTT(); + const BoolV c = BAnd(FIsGrtrOrEq(a, min), FIsGrtrOrEq(max, a)); + return BAllEq(c, tttt); +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV bounds) +{ + return FOutOfBounds(a, FNeg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV bounds) +{ + return FInBounds(a, FNeg(bounds), bounds); +} + + + +////////////////////////////////// +//VEC3V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V V3Splat(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + const __m128 zero=FZero(); + const __m128 fff0 = _mm_move_ss(f, zero); + return _mm_shuffle_ps(fff0, fff0, _MM_SHUFFLE(0,1,2,3)); +} + +NV_FORCE_INLINE Vec3V V3Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z) +{ + VECMATHAOS_ASSERT(isValidFloatV(x)); + VECMATHAOS_ASSERT(isValidFloatV(y)); + VECMATHAOS_ASSERT(isValidFloatV(z)); + // static on zero causes compiler crash on x64 debug_opt + const __m128 zero=FZero(); + const __m128 xy = _mm_move_ss(x, y); + const __m128 z0 = _mm_move_ss(zero, z); + + return _mm_shuffle_ps(xy, z0, _MM_SHUFFLE(1,0,0,1)); +} + +NV_FORCE_INLINE Vec3V V3UnitX() +{ + const NV_ALIGN(16,float) x[4]={1.0f,0.0f,0.0f,0.0f}; + const __m128 x128=_mm_load_ps(x); + return x128; +} + +NV_FORCE_INLINE Vec3V V3UnitY() +{ + const NV_ALIGN(16,float) y[4]={0.0f,1.0f,0.0f,0.0f}; + const __m128 y128=_mm_load_ps(y); + return y128; +} + +NV_FORCE_INLINE Vec3V V3UnitZ() +{ + const NV_ALIGN(16,float) z[4]={0.0f,0.0f,1.0f,0.0f}; + const __m128 z128=_mm_load_ps(z); + return z128; +} + +NV_FORCE_INLINE FloatV V3GetX(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE FloatV V3GetY(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE FloatV V3GetZ(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE Vec3V V3SetX(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3SetY(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3SetZ(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3ColX(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,0,3,0)); + return V3SetY(r, V3GetX(b)); +} + +NV_FORCE_INLINE Vec3V V3ColY(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,1,3,1)); + return V3SetY(r, V3GetY(b)); +} + +NV_FORCE_INLINE Vec3V V3ColZ(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,2,3,2)); + return V3SetY(r, V3GetZ(b)); +} + +NV_FORCE_INLINE Vec3V V3Zero() +{ + return V3Load(0.0f); +} + +NV_FORCE_INLINE Vec3V V3Eps() +{ + return V3Load(NV_EPS_REAL); +} +NV_FORCE_INLINE Vec3V V3One() +{ + return V3Load(1.0f); +} + +NV_FORCE_INLINE Vec3V V3Neg(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE Vec3V V3Add(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Sub(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Scale(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Mul(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3ScaleInv(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Div(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const __m128 one=V3One(); + const __m128 tttf=BTTTF(); + const __m128 b1=V3Sel(tttf,b,one); + return _mm_div_ps(a,b1); +} + +NV_FORCE_INLINE Vec3V V3ScaleInvFast(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec3V V3DivFast(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const __m128 one=V3One(); + const __m128 tttf=BTTTF(); + const __m128 b1=V3Sel(tttf,b,one); + return _mm_mul_ps(a,_mm_rcp_ps(b1)); +} + +NV_FORCE_INLINE Vec3V V3Recip(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_div_ps(V3One(),a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3RecipFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_rcp_ps(a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3Rsqrt(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_div_ps(V3One(),_mm_sqrt_ps(a)); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3RsqrtFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_rsqrt_ps(a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3ScaleAdd(const Vec3V a, const FloatV b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Add(V3Scale(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegScaleSub(const Vec3V a, const FloatV b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Sub(c,V3Scale(a,b)); +} + +NV_FORCE_INLINE Vec3V V3MulAdd(const Vec3V a, const Vec3V b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Add(V3Mul(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegMulSub(const Vec3V a, const Vec3V b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Sub(c, V3Mul(a,b)); +} + +NV_FORCE_INLINE Vec3V V3Abs(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Max(a,V3Neg(a)); +} + +NV_FORCE_INLINE FloatV V3Dot(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); +#ifdef __SSE4_2__ + return _mm_dp_ps(a, b, 0x7f); +#else + __m128 dot1 = _mm_mul_ps(a, b); //w,z,y,x + __m128 shuf1 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(0,0,0,0)); //z,y,x,w + __m128 shuf2 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(1,1,1,1)); //y,x,w,z + __m128 shuf3 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(2,2,2,2)); //x,w,z,y + return _mm_add_ps(_mm_add_ps(shuf1, shuf2), shuf3); +#endif +} + +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + __m128 r1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + __m128 r2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(l1, l2), _mm_mul_ps(r1,r2)); +} + +NV_FORCE_INLINE VecCrossV V3PrepareCross(const Vec3V a) +{ + VecCrossV v; + v.mR1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + v.mL1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + return v; +} + +NV_FORCE_INLINE Vec3V V3Cross(const VecCrossV& a, const Vec3V b) +{ + __m128 r2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(a.mL1, l2), _mm_mul_ps(a.mR1, r2)); +} + +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const VecCrossV& b) +{ + __m128 r2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(b.mR1, r2), _mm_mul_ps(b.mL1, l2)); +} + +NV_FORCE_INLINE Vec3V V3Cross(const VecCrossV& a, const VecCrossV& b) +{ + return _mm_sub_ps(_mm_mul_ps(a.mL1, b.mR1), _mm_mul_ps(a.mR1, b.mL1)); +} + +NV_FORCE_INLINE FloatV V3Length(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_sqrt_ps(V3Dot(a,a)); +} + +NV_FORCE_INLINE FloatV V3LengthSq(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Dot(a,a); +} + +NV_FORCE_INLINE Vec3V V3Normalize(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(V3Dot(a,a)!=FZero()) + return V3ScaleInv(a, _mm_sqrt_ps(V3Dot(a,a))); +} + +NV_FORCE_INLINE Vec3V V3NormalizeFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Mul(a, _mm_rsqrt_ps(V3Dot(a,a))); +} + +NV_FORCE_INLINE Vec3V V3NormalizeSafe(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 eps=V3Eps(); + const __m128 length=V3Length(a); + const __m128 isGreaterThanZero=FIsGrtr(length,eps); + return V3Sel(isGreaterThanZero,V3ScaleInv(a,length),zero); +} + +NV_FORCE_INLINE Vec3V V3Sel(const BoolV c, const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE BoolV V3IsGrtr(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV V3IsGrtrOrEq(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV V3IsEq(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Max(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE Vec3V V3Min(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_min_ps(a, b); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMax(const Vec3V a) +{ + const __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); + const __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); + const __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); + + return _mm_max_ps(_mm_max_ps(shuf1, shuf2), shuf3); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMin(const Vec3V a) +{ + const __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); + const __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); + const __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); + + return _mm_min_ps(_mm_min_ps(shuf1, shuf2), shuf3); +} + +//return (a >= 0.0f) ? 1.0f : -1.0f; +NV_FORCE_INLINE Vec3V V3Sign(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero = V3Zero(); + const __m128 one = V3One(); + const __m128 none = V3Neg(one); + return V3Sel(V3IsGrtrOrEq(a, zero), one, none); +} + +NV_FORCE_INLINE Vec3V V3Clamp(const Vec3V a, const Vec3V minV, const Vec3V maxV) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(minV)); + VECMATHAOS_ASSERT(isValidVec3V(maxV)); + return V3Max(V3Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V3AllGrtr(const Vec3V a, const Vec3V b) +{ + return internalUnitSSE2Simd::BAllTrue3_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V3AllGrtrOrEq(const Vec3V a, const Vec3V b) +{ + return internalUnitSSE2Simd::BAllTrue3_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V3AllEq(const Vec3V a, const Vec3V b) +{ + return internalUnitSSE2Simd::BAllTrue3_R(V4IsEq(a, b)); +} + +NV_FORCE_INLINE Vec3V V3Round(const Vec3V a) +{ +#ifdef __SSE4_2__ + return _mm_round_ps( a, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC ); +#else + //return _mm_round_ps(a, 0x0); + const Vec3V half = V3Load(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const Vec3V aRound = V3Sub(V3Add(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +#endif +} + + +NV_FORCE_INLINE Vec3V V3Sin(const Vec3V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V3 = V3Mul(V2, V1); + const Vec3V V5 = V3Mul(V3, V2); + const Vec3V V7 = V3Mul(V5, V2); + const Vec3V V9 = V3Mul(V7, V2); + const Vec3V V11 = V3Mul(V9, V2); + const Vec3V V13 = V3Mul(V11, V2); + const Vec3V V15 = V3Mul(V13, V2); + const Vec3V V17 = V3Mul(V15, V2); + const Vec3V V19 = V3Mul(V17, V2); + const Vec3V V21 = V3Mul(V19, V2); + const Vec3V V23 = V3Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V3MulAdd(S1, V3, V1); + Result = V3MulAdd(S2, V5, Result); + Result = V3MulAdd(S3, V7, Result); + Result = V3MulAdd(S4, V9, Result); + Result = V3MulAdd(S5, V11, Result); + Result = V3MulAdd(S6, V13, Result); + Result = V3MulAdd(S7, V15, Result); + Result = V3MulAdd(S8, V17, Result); + Result = V3MulAdd(S9, V19, Result); + Result = V3MulAdd(S10, V21, Result); + Result = V3MulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec3V V3Cos(const Vec3V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V4 = V3Mul(V2, V2); + const Vec3V V6 = V3Mul(V4, V2); + const Vec3V V8 = V3Mul(V4, V4); + const Vec3V V10 = V3Mul(V6, V4); + const Vec3V V12 = V3Mul(V6, V6); + const Vec3V V14 = V3Mul(V8, V6); + const Vec3V V16 = V3Mul(V8, V8); + const Vec3V V18 = V3Mul(V10, V8); + const Vec3V V20 = V3Mul(V10, V10); + const Vec3V V22 = V3Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V3MulAdd(C1, V2, V4One()); + Result = V3MulAdd(C2, V4, Result); + Result = V3MulAdd(C3, V6, Result); + Result = V3MulAdd(C4, V8, Result); + Result = V3MulAdd(C5, V10, Result); + Result = V3MulAdd(C6, V12, Result); + Result = V3MulAdd(C7, V14, Result); + Result = V3MulAdd(C8, V16, Result); + Result = V3MulAdd(C9, V18, Result); + Result = V3MulAdd(C10, V20, Result); + Result = V3MulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec3V V3PermYZZ(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,2,2,1)); +} + +NV_FORCE_INLINE Vec3V V3PermXYX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,0,1,0)); +} + +NV_FORCE_INLINE Vec3V V3PermYZX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,0,2,1)); +} + +NV_FORCE_INLINE Vec3V V3PermZXY(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,0,2)); +} + +NV_FORCE_INLINE Vec3V V3PermZZY(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,2,2)); +} + +NV_FORCE_INLINE Vec3V V3PermYXX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,0,0,1)); +} + +NV_FORCE_INLINE Vec3V V3Perm_Zero_1Z_0Y(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + return _mm_shuffle_ps(v1, v0, _MM_SHUFFLE(3,1,2,3)); +} + +NV_FORCE_INLINE Vec3V V3Perm_0Z_Zero_1X(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + return _mm_shuffle_ps(v0, v1, _MM_SHUFFLE(3,0,3,2)); +} + +NV_FORCE_INLINE Vec3V V3Perm_1Y_0X_Zero(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + //There must be a better way to do this. + Vec3V v2=V3Zero(); + FloatV y1=V3GetY(v1); + FloatV x0=V3GetX(v0); + v2=V3SetX(v2,y1); + return V3SetY(v2,x0); +} + +NV_FORCE_INLINE FloatV V3SumElems(const Vec3V a) +{ +#ifdef __SSE4_2__ + Vec3V r = _mm_hadd_ps(a,a); + r = _mm_hadd_ps(r,r); + return r; +#else + VECMATHAOS_ASSERT(isValidVec3V(a)); + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); //z,y,x,w + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); //y,x,w,z + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); //x,w,z,y + return _mm_add_ps(_mm_add_ps(shuf1, shuf2), shuf3); +#endif +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(min)); + VECMATHAOS_ASSERT(isValidVec3V(max)); + const BoolV ffff = BFFFF(); + const BoolV c = BOr(V3IsGrtr(a, max), V3IsGrtr(min, a)); + return !BAllEq(c, ffff); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(min)); + VECMATHAOS_ASSERT(isValidVec3V(max)); + const BoolV tttt = BTTTT(); + const BoolV c = BAnd(V3IsGrtrOrEq(a, min), V3IsGrtrOrEq(max, a)); + return BAllEq(c, tttt); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V bounds) +{ + return V3OutOfBounds(a, V3Neg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V bounds) +{ + return V3InBounds(a, V3Neg(bounds), bounds); +} + + + + + +////////////////////////////////// +//VEC4V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V V4Splat(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + //return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); + return f; +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatV* const floatVArray) +{ + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[0])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[1])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[2])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[3])); + __m128 xw = _mm_move_ss(floatVArray[1], floatVArray[0]); //y, y, y, x + __m128 yz = _mm_move_ss(floatVArray[2], floatVArray[3]); //z, z, z, w + return (_mm_shuffle_ps(xw,yz,_MM_SHUFFLE(0,2,1,0))); +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w) +{ + VECMATHAOS_ASSERT(isValidFloatV(x)); + VECMATHAOS_ASSERT(isValidFloatV(y)); + VECMATHAOS_ASSERT(isValidFloatV(z)); + VECMATHAOS_ASSERT(isValidFloatV(w)); + __m128 xw = _mm_move_ss(y, x); //y, y, y, x + __m128 yz = _mm_move_ss(z, w); //z, z, z, w + return (_mm_shuffle_ps(xw,yz,_MM_SHUFFLE(0,2,1,0))); +} + +NV_FORCE_INLINE Vec4V V4MergeW(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpackhi_ps(x, z); + const Vec4V yw = _mm_unpackhi_ps(y, w); + return _mm_unpackhi_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeZ(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpackhi_ps(x, z); + const Vec4V yw = _mm_unpackhi_ps(y, w); + return _mm_unpacklo_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeY(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpacklo_ps(x, z); + const Vec4V yw = _mm_unpacklo_ps(y, w); + return _mm_unpackhi_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeX(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpacklo_ps(x, z); + const Vec4V yw = _mm_unpacklo_ps(y, w); + return _mm_unpacklo_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4UnpackXY(const Vec4VArg a, const Vec4VArg b) +{ + return _mm_unpacklo_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4UnpackZW(const Vec4VArg a, const Vec4VArg b) +{ + return _mm_unpackhi_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4UnitW() +{ + const NV_ALIGN(16,float) w[4]={0.0f,0.0f,0.0f,1.0f}; + const __m128 w128=_mm_load_ps(w); + return w128; +} + +NV_FORCE_INLINE Vec4V V4UnitX() +{ + const NV_ALIGN(16,float) x[4]={1.0f,0.0f,0.0f,0.0f}; + const __m128 x128=_mm_load_ps(x); + return x128; +} + +NV_FORCE_INLINE Vec4V V4UnitY() +{ + const NV_ALIGN(16,float) y[4]={0.0f,1.0f,0.0f,0.0f}; + const __m128 y128=_mm_load_ps(y); + return y128; +} + +NV_FORCE_INLINE Vec4V V4UnitZ() +{ + const NV_ALIGN(16,float) z[4]={0.0f,0.0f,1.0f,0.0f}; + const __m128 z128=_mm_load_ps(z); + return z128; +} + +NV_FORCE_INLINE FloatV V4GetW(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(3,3,3,3)); +} + +NV_FORCE_INLINE FloatV V4GetX(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE FloatV V4GetY(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE FloatV V4GetZ(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE Vec4V V4SetW(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTTF(),v,f); +} + +NV_FORCE_INLINE Vec4V V4SetX(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4SetY(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4SetZ(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4ClearW(const Vec4V v) +{ + return _mm_and_ps(v, (VecI32V&)internalUnitSSE2Simd::gMaskXYZ); +} + +NV_FORCE_INLINE Vec4V V4Perm_YXWZ(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,0,1)); +} + +NV_FORCE_INLINE Vec4V V4Perm_XZXZ(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,0,2,0)); +} + +NV_FORCE_INLINE Vec4V V4Perm_YWYW(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,3,1)); +} + +template NV_FORCE_INLINE Vec4V V4Perm(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(w, z, y, x)); +} + +NV_FORCE_INLINE Vec4V V4Zero() +{ + return V4Load(0.0f); +} + +NV_FORCE_INLINE Vec4V V4One() +{ + return V4Load(1.0f); +} + +NV_FORCE_INLINE Vec4V V4Eps() +{ + return V4Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec4V V4Neg(const Vec4V f) +{ + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE Vec4V V4Add(const Vec4V a, const Vec4V b) +{ + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Sub(const Vec4V a, const Vec4V b) +{ + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Scale(const Vec4V a, const FloatV b) +{ + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Mul(const Vec4V a, const Vec4V b) +{ + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4ScaleInv(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Div(const Vec4V a, const Vec4V b) +{ + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4ScaleInvFast(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec4V V4DivFast(const Vec4V a, const Vec4V b) +{ + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec4V V4Recip(const Vec4V a) +{ + return _mm_div_ps(V4One(),a); +} + +NV_FORCE_INLINE Vec4V V4RecipFast(const Vec4V a) +{ + return _mm_rcp_ps(a); +} + +NV_FORCE_INLINE Vec4V V4Rsqrt(const Vec4V a) +{ + return _mm_div_ps(V4One(),_mm_sqrt_ps(a)); +} + +NV_FORCE_INLINE Vec4V V4RsqrtFast(const Vec4V a) +{ + return _mm_rsqrt_ps(a); +} + +NV_FORCE_INLINE Vec4V V4Sqrt(const Vec4V a) +{ + return _mm_sqrt_ps(a); +} + +NV_FORCE_INLINE Vec4V V4ScaleAdd(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return V4Add(V4Scale(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegScaleSub(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return V4Sub(c,V4Scale(a,b)); +} + +NV_FORCE_INLINE Vec4V V4MulAdd(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Add(V4Mul(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegMulSub(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Sub(c,V4Mul(a,b)); +} + +NV_FORCE_INLINE Vec4V V4Abs(const Vec4V a) +{ + return V4Max(a,V4Neg(a)); +} + +NV_FORCE_INLINE FloatV V4SumElements(const Vec4V a) +{ +#ifdef __SSE4_2__ + Vec4V r = _mm_hadd_ps(a,a); + r = _mm_hadd_ps(r,r); + return r; +#else + const Vec4V xy = V4UnpackXY(a, a); //x,x,y,y + const Vec4V zw = V4UnpackZW(a, a); //z,z,w,w + const Vec4V xz_yw = V4Add(xy, zw); //x+z,x+z,y+w,y+w + const FloatV xz = V4GetX(xz_yw); //x+z + const FloatV yw = V4GetZ(xz_yw); //y+w + return FAdd(xz, yw); //sum +#endif +} + +NV_FORCE_INLINE FloatV V4Dot(const Vec4V a, const Vec4V b) +{ +#ifdef __SSE4_2__ + return _mm_dp_ps(a, b, 0xff); +#else + __m128 dot1 = _mm_mul_ps(a, b); //x,y,z,w + __m128 shuf1 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(2,1,0,3)); //w,x,y,z + __m128 shuf2 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(1,0,3,2)); //z,w,x,y + __m128 shuf3 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(0,3,2,1)); //y,z,w,x + return _mm_add_ps(_mm_add_ps(shuf2, shuf3), _mm_add_ps(dot1,shuf1)); +#endif +} + +NV_FORCE_INLINE FloatV V4Length(const Vec4V a) +{ + return _mm_sqrt_ps(V4Dot(a,a)); +} + +NV_FORCE_INLINE FloatV V4LengthSq(const Vec4V a) +{ + return V4Dot(a,a); +} + +NV_FORCE_INLINE Vec4V V4Normalize(const Vec4V a) +{ + VECMATHAOS_ASSERT(V4Dot(a,a)!=FZero()) + return V4ScaleInv(a,_mm_sqrt_ps(V4Dot(a,a))); +} + +NV_FORCE_INLINE Vec4V V4NormalizeFast(const Vec4V a) +{ + return V4ScaleInvFast(a,_mm_sqrt_ps(V4Dot(a,a))); +} + +NV_FORCE_INLINE Vec4V V4NormalizeSafe(const Vec4V a) +{ + const __m128 zero=FZero(); + const __m128 eps=V3Eps(); + const __m128 length=V4Length(a); + const __m128 isGreaterThanZero=V4IsGrtr(length,eps); + return V4Sel(isGreaterThanZero,V4ScaleInv(a,length),zero); +} + +NV_FORCE_INLINE BoolV V4IsEqU32(const VecU32V a, const VecU32V b) +{ + return m128_I2F(_mm_cmpeq_epi32(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE Vec4V V4Sel(const BoolV c, const Vec4V a, const Vec4V b) +{ + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE BoolV V4IsGrtr(const Vec4V a, const Vec4V b) +{ + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV V4IsGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV V4IsEq(const Vec4V a, const Vec4V b) +{ + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Max(const Vec4V a, const Vec4V b) +{ + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4Min(const Vec4V a, const Vec4V b) +{ + return _mm_min_ps(a, b); +} + +NV_FORCE_INLINE FloatV V4ExtractMax(const Vec4V a) +{ + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,1,0,3)); + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,0,3,2)); + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,3,2,1)); + + return _mm_max_ps(_mm_max_ps(a, shuf1), _mm_max_ps(shuf2, shuf3)); +} + +NV_FORCE_INLINE FloatV V4ExtractMin(const Vec4V a) +{ + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,1,0,3)); + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,0,3,2)); + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,3,2,1)); + + return _mm_min_ps(_mm_min_ps(a, shuf1), _mm_min_ps(shuf2, shuf3)); +} + +NV_FORCE_INLINE Vec4V V4Clamp(const Vec4V a, const Vec4V minV, const Vec4V maxV) +{ + return V4Max(V4Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V4AllGrtr(const Vec4V a, const Vec4V b) +{ + return internalUnitSSE2Simd::BAllTrue4_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V4AllGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return internalUnitSSE2Simd::BAllTrue4_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V4AllEq(const Vec4V a, const Vec4V b) +{ + return internalUnitSSE2Simd::BAllTrue4_R(V4IsEq(a, b)); +} + +NV_FORCE_INLINE Vec4V V4Round(const Vec4V a) +{ +#ifdef __SSE4_2__ + return _mm_round_ps( a, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC ); +#else + //return _mm_round_ps(a, 0x0); + const Vec4V half = V4Load(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const Vec4V aRound = V4Sub(V4Add(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +#endif +} + + +NV_FORCE_INLINE Vec4V V4Sin(const Vec4V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec4V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V3 = V4Mul(V2, V1); + const Vec4V V5 = V4Mul(V3, V2); + const Vec4V V7 = V4Mul(V5, V2); + const Vec4V V9 = V4Mul(V7, V2); + const Vec4V V11 = V4Mul(V9, V2); + const Vec4V V13 = V4Mul(V11, V2); + const Vec4V V15 = V4Mul(V13, V2); + const Vec4V V17 = V4Mul(V15, V2); + const Vec4V V19 = V4Mul(V17, V2); + const Vec4V V21 = V4Mul(V19, V2); + const Vec4V V23 = V4Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V4MulAdd(S1, V3, V1); + Result = V4MulAdd(S2, V5, Result); + Result = V4MulAdd(S3, V7, Result); + Result = V4MulAdd(S4, V9, Result); + Result = V4MulAdd(S5, V11, Result); + Result = V4MulAdd(S6, V13, Result); + Result = V4MulAdd(S7, V15, Result); + Result = V4MulAdd(S8, V17, Result); + Result = V4MulAdd(S9, V19, Result); + Result = V4MulAdd(S10, V21, Result); + Result = V4MulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec4V V4Cos(const Vec4V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec4V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V4 = V4Mul(V2, V2); + const Vec4V V6 = V4Mul(V4, V2); + const Vec4V V8 = V4Mul(V4, V4); + const Vec4V V10 = V4Mul(V6, V4); + const Vec4V V12 = V4Mul(V6, V6); + const Vec4V V14 = V4Mul(V8, V6); + const Vec4V V16 = V4Mul(V8, V8); + const Vec4V V18 = V4Mul(V10, V8); + const Vec4V V20 = V4Mul(V10, V10); + const Vec4V V22 = V4Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V4MulAdd(C1, V2, V4One()); + Result = V4MulAdd(C2, V4, Result); + Result = V4MulAdd(C3, V6, Result); + Result = V4MulAdd(C4, V8, Result); + Result = V4MulAdd(C5, V10, Result); + Result = V4MulAdd(C6, V12, Result); + Result = V4MulAdd(C7, V14, Result); + Result = V4MulAdd(C8, V16, Result); + Result = V4MulAdd(C9, V18, Result); + Result = V4MulAdd(C10, V20, Result); + Result = V4MulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE void V4Transpose(Vec4V& col0, Vec4V& col1, Vec4V& col2, Vec4V& col3) +{ + Vec4V tmp0 = _mm_unpacklo_ps(col0, col1); + Vec4V tmp2 = _mm_unpacklo_ps(col2, col3); + Vec4V tmp1 = _mm_unpackhi_ps(col0, col1); + Vec4V tmp3 = _mm_unpackhi_ps(col2, col3); + col0 = _mm_movelh_ps(tmp0, tmp2); + col1 = _mm_movehl_ps(tmp2, tmp0); + col2 = _mm_movelh_ps(tmp1, tmp3); + col3 = _mm_movehl_ps(tmp3, tmp1); +} + +////////////////////////////////// +//BoolV +////////////////////////////////// + +NV_FORCE_INLINE BoolV BFFFF() +{ + return _mm_setzero_ps(); +} + +NV_FORCE_INLINE BoolV BFFFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0,0xFFFFFFFF}; + const __m128 ffft=_mm_load_ps((float*)&f); + return ffft;*/ + return m128_I2F(_mm_set_epi32(-1, 0, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFFTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0}; + const __m128 fftf=_mm_load_ps((float*)&f); + return fftf;*/ + return m128_I2F(_mm_set_epi32(0, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFFTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 fftt=_mm_load_ps((float*)&f); + return fftt;*/ + return m128_I2F(_mm_set_epi32(-1, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFTFF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0}; + const __m128 ftff=_mm_load_ps((float*)&f); + return ftff;*/ + return m128_I2F(_mm_set_epi32(0, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0xFFFFFFFF}; + const __m128 ftft=_mm_load_ps((float*)&f); + return ftft;*/ + return m128_I2F(_mm_set_epi32(-1, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0xFFFFFFFF,0}; + const __m128 fttf=_mm_load_ps((float*)&f); + return fttf;*/ + return m128_I2F(_mm_set_epi32(0, -1, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 fttt=_mm_load_ps((float*)&f); + return fttt;*/ + return m128_I2F(_mm_set_epi32(-1, -1, -1, 0)); +} + +NV_FORCE_INLINE BoolV BTFFF() +{ + //const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0}; + //const __m128 tfff=_mm_load_ps((float*)&f); + //return tfff; + return m128_I2F(_mm_set_epi32(0, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0xFFFFFFFF}; + const __m128 tfft=_mm_load_ps((float*)&f); + return tfft;*/ + return m128_I2F(_mm_set_epi32(-1, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0xFFFFFFFF,0}; + const __m128 tftf=_mm_load_ps((float*)&f); + return tftf;*/ + return m128_I2F(_mm_set_epi32(0, -1, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 tftt=_mm_load_ps((float*)&f); + return tftt;*/ + return m128_I2F(_mm_set_epi32(-1, -1, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTTFF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0,0}; + const __m128 ttff=_mm_load_ps((float*)&f); + return ttff;*/ + + return m128_I2F(_mm_set_epi32(0, 0, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0,0xFFFFFFFF}; + const __m128 ttft=_mm_load_ps((float*)&f); + return ttft;*/ + return m128_I2F(_mm_set_epi32(-1, 0, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0}; + const __m128 tttf=_mm_load_ps((float*)&f); + return tttf;*/ + return m128_I2F(_mm_set_epi32(0, -1, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 tttt=_mm_load_ps((float*)&f); + return tttt;*/ + return m128_I2F(_mm_set_epi32(-1, -1, -1, -1)); +} + +NV_FORCE_INLINE BoolV BXMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0}; + const __m128 tfff=_mm_load_ps((float*)&f); + return tfff;*/ + return m128_I2F(_mm_set_epi32(0, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BYMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0}; + const __m128 ftff=_mm_load_ps((float*)&f); + return ftff;*/ + return m128_I2F(_mm_set_epi32(0, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BZMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0}; + const __m128 fftf=_mm_load_ps((float*)&f); + return fftf;*/ + return m128_I2F(_mm_set_epi32(0, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BWMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0,0xFFFFFFFF}; + const __m128 ffft=_mm_load_ps((float*)&f); + return ffft;*/ + return m128_I2F(_mm_set_epi32(-1, 0, 0, 0)); +} + +NV_FORCE_INLINE BoolV BGetX(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE BoolV BGetY(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE BoolV BGetZ(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE BoolV BGetW(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(3,3,3,3)); +} + +NV_FORCE_INLINE BoolV BSetX(const BoolV v, const BoolV f) +{ + return V4Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetY(const BoolV v, const BoolV f) +{ + return V4Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetZ(const BoolV v, const BoolV f) +{ + return V4Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetW(const BoolV v, const BoolV f) +{ + return V4Sel(BTTTF(),v,f); +} + +NV_FORCE_INLINE BoolV BAnd(const BoolV a, const BoolV b) +{ + return (_mm_and_ps(a,b)); +} + +NV_FORCE_INLINE BoolV BNot(const BoolV a) +{ + const BoolV bAllTrue(BTTTT()); + return _mm_xor_ps(a, bAllTrue); +} + +NV_FORCE_INLINE BoolV BAndNot(const BoolV a, const BoolV b) +{ + return (_mm_andnot_ps(b,a)); +} + +NV_FORCE_INLINE BoolV BOr(const BoolV a, const BoolV b) +{ + return (_mm_or_ps(a,b)); +} + +NV_FORCE_INLINE BoolV BAllTrue4(const BoolV a) +{ + const BoolV bTmp = _mm_and_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,2,3))); + return _mm_and_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAnyTrue4(const BoolV a) +{ + const BoolV bTmp = _mm_or_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,2,3))); + return _mm_or_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAllTrue3(const BoolV a) +{ + const BoolV bTmp = _mm_and_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))); + return _mm_and_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAnyTrue3(const BoolV a) +{ + const BoolV bTmp = _mm_or_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))); + return _mm_or_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE uint32_t BAllEq(const BoolV a, const BoolV b) +{ + const BoolV bTest = m128_I2F(_mm_cmpeq_epi32(m128_F2I(a), m128_F2I(b))); + return internalUnitSSE2Simd::BAllTrue4_R(bTest); +} + +NV_FORCE_INLINE uint32_t BAllEqTTTT(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)==15); +} + +NV_FORCE_INLINE uint32_t BAllEqFFFF(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)==0); +} + +NV_FORCE_INLINE uint32_t BGetBitMask(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)); +} + +////////////////////////////////// +//MAT33V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M33MulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M33TrnspsMulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Vec3V M33MulV3AddV3(const Mat33V& A, const Vec3V b, const Vec3V c) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + Vec3V result = V3MulAdd(A.col0, x, c); + result = V3MulAdd(A.col1, y, result); + return V3MulAdd(A.col2, z, result); +} + +NV_FORCE_INLINE Mat33V M33MulM33(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(M33MulV3(a,b.col0),M33MulV3(a,b.col1),M33MulV3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Add(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Scale(const Mat33V& a, const FloatV& b) +{ + return Mat33V(V3Scale(a.col0,b),V3Scale(a.col1,b),V3Scale(a.col2,b)); +} + +NV_FORCE_INLINE Mat33V M33Inverse(const Mat33V& a) +{ + const BoolV tfft=BTFFT(); + const BoolV tttf=BTTTF(); + const FloatV zero=FZero(); + const Vec3V cross01 = V3Cross(a.col0,a.col1); + const Vec3V cross12 = V3Cross(a.col1,a.col2); + const Vec3V cross20 = V3Cross(a.col2,a.col0); + const FloatV dot = V3Dot(cross01,a.col2); + const FloatV invDet = _mm_rcp_ps(dot); + const Vec3V mergeh = _mm_unpacklo_ps(cross12,cross01); + const Vec3V mergel = _mm_unpackhi_ps(cross12,cross01); + Vec3V colInv0 = _mm_unpacklo_ps(mergeh,cross20); + colInv0 = _mm_or_ps(_mm_andnot_ps(tttf, zero), _mm_and_ps(tttf, colInv0)); + const Vec3V zppd=_mm_shuffle_ps(mergeh,cross20,_MM_SHUFFLE(3,0,0,2)); + const Vec3V pbwp=_mm_shuffle_ps(cross20,mergeh,_MM_SHUFFLE(3,3,1,0)); + const Vec3V colInv1=_mm_or_ps(_mm_andnot_ps(BTFFT(), pbwp), _mm_and_ps(BTFFT(), zppd)); + const Vec3V xppd=_mm_shuffle_ps(mergel,cross20,_MM_SHUFFLE(3,0,0,0)); + const Vec3V pcyp=_mm_shuffle_ps(cross20,mergel,_MM_SHUFFLE(3,1,2,0)); + const Vec3V colInv2=_mm_or_ps(_mm_andnot_ps(tfft, pcyp), _mm_and_ps(tfft, xppd)); + + return Mat33V + ( + _mm_mul_ps(colInv0,invDet), + _mm_mul_ps(colInv1,invDet), + _mm_mul_ps(colInv2,invDet) + ); +} + +NV_FORCE_INLINE Mat33V M33Trnsps(const Mat33V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + +NV_FORCE_INLINE Mat33V M33Identity() +{ + return Mat33V + ( + V3UnitX(), + V3UnitY(), + V3UnitZ() + ); +} + +NV_FORCE_INLINE Mat33V M33Sub(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Sub(a.col0,b.col0),V3Sub(a.col1,b.col1),V3Sub(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Neg(const Mat33V& a) +{ + return Mat33V(V3Neg(a.col0),V3Neg(a.col1),V3Neg(a.col2)); +} + +NV_FORCE_INLINE Mat33V M33Abs(const Mat33V& a) +{ + return Mat33V(V3Abs(a.col0),V3Abs(a.col1),V3Abs(a.col2)); +} + +NV_FORCE_INLINE Mat33V PromoteVec3V(const Vec3V v) +{ + const BoolV bTFFF = BTFFF(); + const BoolV bFTFF = BFTFF(); + const BoolV bFFTF = BTFTF(); + + const Vec3V zero = V3Zero(); + + return Mat33V( V3Sel(bTFFF, v, zero), + V3Sel(bFTFF, v, zero), + V3Sel(bFFTF, v, zero)); +} + +NV_FORCE_INLINE Mat33V M33Diagonal(const Vec3VArg d) +{ + const FloatV x = V3Mul(V3UnitX(), d); + const FloatV y = V3Mul(V3UnitY(), d); + const FloatV z = V3Mul(V3UnitZ(), d); + return Mat33V(x, y, z); +} + +////////////////////////////////// +//MAT34V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M34MulV3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + const Vec3V v0PlusV1Plusv2=V3Add(v0PlusV1,v2); + return (V3Add(v0PlusV1Plusv2,a.col3)); +} + +NV_FORCE_INLINE Vec3V M34Mul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M34TrnspsMul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Mat34V M34MulM34(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(M34Mul33V3(a,b.col0), M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2),M34MulV3(a,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34MulM33(const Mat34V& a, const Mat33V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M34Mul33MM34(const Mat34V& a, const Mat34V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat34V M34Add(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2),V3Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34Trnsps33(const Mat34V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + + +////////////////////////////////// +//MAT44V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V M44MulV4(const Mat44V& a, const Vec4V b) +{ + const FloatV x=V4GetX(b); + const FloatV y=V4GetY(b); + const FloatV z=V4GetZ(b); + const FloatV w=V4GetW(b); + + const Vec4V v0=V4Scale(a.col0,x); + const Vec4V v1=V4Scale(a.col1,y); + const Vec4V v2=V4Scale(a.col2,z); + const Vec4V v3=V4Scale(a.col3,w); + const Vec4V v0PlusV1=V4Add(v0,v1); + const Vec4V v0PlusV1Plusv2=V4Add(v0PlusV1,v2); + return (V4Add(v0PlusV1Plusv2,v3)); +} + +NV_FORCE_INLINE Vec4V M44TrnspsMulV4(const Mat44V& a, const Vec4V b) +{ + NV_ALIGN(16,FloatV) dotProdArray[4]= + { + V4Dot(a.col0,b), + V4Dot(a.col1,b), + V4Dot(a.col2,b), + V4Dot(a.col3,b) + }; + return V4Merge(dotProdArray); +} + +NV_FORCE_INLINE Mat44V M44MulM44(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(M44MulV4(a,b.col0),M44MulV4(a,b.col1),M44MulV4(a,b.col2),M44MulV4(a,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Add(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(V4Add(a.col0,b.col0),V4Add(a.col1,b.col1),V4Add(a.col2,b.col2),V4Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Trnsps(const Mat44V& a) +{ + const Vec4V v0 = _mm_unpacklo_ps(a.col0, a.col2); + const Vec4V v1 = _mm_unpackhi_ps(a.col0, a.col2); + const Vec4V v2 = _mm_unpacklo_ps(a.col1, a.col3); + const Vec4V v3 = _mm_unpackhi_ps(a.col1, a.col3); + return Mat44V( _mm_unpacklo_ps(v0, v2),_mm_unpackhi_ps(v0, v2),_mm_unpacklo_ps(v1, v3),_mm_unpackhi_ps(v1, v3)); +} + +NV_FORCE_INLINE Mat44V M44Inverse(const Mat44V& a) +{ + __m128 minor0, minor1, minor2, minor3; + __m128 row0, row1, row2, row3; + __m128 det, tmp1; + + tmp1=V4Zero(); + row1=V4Zero(); + row3=V4Zero(); + + row0=a.col0; + row1=_mm_shuffle_ps(a.col1,a.col1,_MM_SHUFFLE(1,0,3,2)); + row2=a.col2; + row3=_mm_shuffle_ps(a.col3,a.col3,_MM_SHUFFLE(1,0,3,2)); + + tmp1 = _mm_mul_ps(row2, row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor0 = _mm_mul_ps(row1, tmp1); + minor1 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(_mm_mul_ps(row1, tmp1), minor0); + minor1 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor1); + minor1 = _mm_shuffle_ps(minor1, minor1, 0x4E); + + tmp1 = _mm_mul_ps(row1, row2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor0 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor0); + minor3 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(minor0, _mm_mul_ps(row3, tmp1)); + minor3 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor3); + minor3 = _mm_shuffle_ps(minor3, minor3, 0x4E); + + tmp1 = _mm_mul_ps(_mm_shuffle_ps(row1, row1, 0x4E), row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + row2 = _mm_shuffle_ps(row2, row2, 0x4E); + minor0 = _mm_add_ps(_mm_mul_ps(row2, tmp1), minor0); + minor2 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(minor0, _mm_mul_ps(row2, tmp1)); + minor2 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor2); + minor2 = _mm_shuffle_ps(minor2, minor2, 0x4E); + + tmp1 = _mm_mul_ps(row0, row1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor2 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor2); + minor3 = _mm_sub_ps(_mm_mul_ps(row2, tmp1), minor3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor2 = _mm_sub_ps(_mm_mul_ps(row3, tmp1), minor2); + minor3 = _mm_sub_ps(minor3, _mm_mul_ps(row2, tmp1)); + + tmp1 = _mm_mul_ps(row0, row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor1 = _mm_sub_ps(minor1, _mm_mul_ps(row2, tmp1)); + minor2 = _mm_add_ps(_mm_mul_ps(row1, tmp1), minor2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor1 = _mm_add_ps(_mm_mul_ps(row2, tmp1), minor1); + minor2 = _mm_sub_ps(minor2, _mm_mul_ps(row1, tmp1)); + + tmp1 = _mm_mul_ps(row0, row2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor1 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor1); + minor3 = _mm_sub_ps(minor3, _mm_mul_ps(row1, tmp1)); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor1 = _mm_sub_ps(minor1, _mm_mul_ps(row3, tmp1)); + minor3 = _mm_add_ps(_mm_mul_ps(row1, tmp1), minor3); + + det = _mm_mul_ps(row0, minor0); + det = _mm_add_ps(_mm_shuffle_ps(det, det, 0x4E), det); + det = _mm_add_ss(_mm_shuffle_ps(det, det, 0xB1), det); + tmp1 = _mm_rcp_ss(det); +#if 0 + det = _mm_sub_ss(_mm_add_ss(tmp1, tmp1), _mm_mul_ss(det, _mm_mul_ss(tmp1, tmp1))); + det = _mm_shuffle_ps(det, det, 0x00); +#else + det= _mm_shuffle_ps(tmp1, tmp1, _MM_SHUFFLE(0,0,0,0)); +#endif + + minor0 = _mm_mul_ps(det, minor0); + minor1 = _mm_mul_ps(det, minor1); + minor2 = _mm_mul_ps(det, minor2); + minor3 = _mm_mul_ps(det, minor3); + Mat44V invTrans(minor0,minor1,minor2,minor3); + return M44Trnsps(invTrans); +} + + +NV_FORCE_INLINE Vec4V V4LoadXYZW(const float& x, const float& y, const float& z, const float& w) +{ + return _mm_set_ps(w, z, y, x); +} + +/* +// AP: work in progress - use proper SSE intrinsics where possible +NV_FORCE_INLINE VecU16V V4U32PK(VecU32V a, VecU32V b) +{ + VecU16V result; + result.m128_u16[0] = uint16_t(NvClamp((a).m128_u32[0], 0, 0xFFFF)); + result.m128_u16[1] = uint16_t(NvClamp((a).m128_u32[1], 0, 0xFFFF)); + result.m128_u16[2] = uint16_t(NvClamp((a).m128_u32[2], 0, 0xFFFF)); + result.m128_u16[3] = uint16_t(NvClamp((a).m128_u32[3], 0, 0xFFFF)); + result.m128_u16[4] = uint16_t(NvClamp((b).m128_u32[0], 0, 0xFFFF)); + result.m128_u16[5] = uint16_t(NvClamp((b).m128_u32[1], 0, 0xFFFF)); + result.m128_u16[6] = uint16_t(NvClamp((b).m128_u32[2], 0, 0xFFFF)); + result.m128_u16[7] = uint16_t(NvClamp((b).m128_u32[3], 0, 0xFFFF)); + return result; +} +*/ + +NV_FORCE_INLINE VecU32V V4U32Sel(const BoolV c, const VecU32V a, const VecU32V b) +{ + return m128_I2F(_mm_or_si128( + _mm_andnot_si128(m128_F2I(c), m128_F2I(b)), + _mm_and_si128(m128_F2I(c), m128_F2I(a)) + )); +} + +NV_FORCE_INLINE VecU32V V4U32or(VecU32V a, VecU32V b) +{ + return m128_I2F(_mm_or_si128(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U32and(VecU32V a, VecU32V b) +{ + return m128_I2F(_mm_and_si128(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U32Andc(VecU32V a, VecU32V b) +{ + return m128_I2F(_mm_andnot_si128(m128_F2I(b), m128_F2I(a))); +} + +/* +NV_FORCE_INLINE VecU16V V4U16Or(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_or_si128(m128_F2I(a), m128_F2I(b))); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16And(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_and_si128(m128_F2I(a), m128_F2I(b))); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16Andc(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_andnot_si128(m128_F2I(b), m128_F2I(a))); +} +*/ + +NV_FORCE_INLINE VecI32V I4Load(const int32_t i) +{ + return (_mm_load1_ps((float*)&i)); +} + +NV_FORCE_INLINE VecI32V I4LoadU(const int32_t* i) +{ + return _mm_loadu_ps((float*)i); +} + +NV_FORCE_INLINE VecI32V I4LoadA(const int32_t* i) +{ + return _mm_load_ps((float*)i); +} + +NV_FORCE_INLINE VecI32V VecI32V_Add(const VecI32VArg a, const VecI32VArg b) +{ + return m128_I2F(_mm_add_epi32(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sub(const VecI32VArg a, const VecI32VArg b) +{ + return m128_I2F(_mm_sub_epi32(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE BoolV VecI32V_IsGrtr(const VecI32VArg a, const VecI32VArg b) +{ + return m128_I2F(_mm_cmpgt_epi32(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE BoolV VecI32V_IsEq(const VecI32VArg a, const VecI32VArg b) +{ + return m128_I2F(_mm_cmpeq_epi32(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecI32V V4I32Sel(const BoolV c, const VecI32V a, const VecI32V b) +{ + return V4U32Sel(c, a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Zero() +{ + return V4Zero(); +} + +NV_FORCE_INLINE VecI32V VecI32V_One() +{ + return I4Load(1); +} + +NV_FORCE_INLINE VecI32V VecI32V_Two() +{ + return I4Load(2); +} + +NV_FORCE_INLINE VecI32V VecI32V_MinusOne() +{ + return I4Load(-1); +} + +NV_FORCE_INLINE VecU32V U4Zero() +{ + return U4Load(0); +} + +NV_FORCE_INLINE VecU32V U4One() +{ + return U4Load(1); +} + +NV_FORCE_INLINE VecU32V U4Two() +{ + return U4Load(2); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sel(const BoolV c, const VecI32VArg a, const VecI32VArg b) +{ + VECMATHAOS_ASSERT(_VecMathTests::allElementsEqualBoolV(c,BTTTT()) || _VecMathTests::allElementsEqualBoolV(c,BFFFF())); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE VecShiftV VecI32V_PrepareShift(const VecI32VArg shift) +{ + VecShiftV s; + s.shift = VecI32V_Sel(BTFFF(), shift, VecI32V_Zero()); + return s; +} + +NV_FORCE_INLINE VecI32V VecI32V_LeftShift(const VecI32VArg a, const VecShiftVArg count) +{ + return m128_I2F(_mm_sll_epi32(m128_F2I(a), m128_F2I(count.shift))); +} + +NV_FORCE_INLINE VecI32V VecI32V_RightShift(const VecI32VArg a, const VecShiftVArg count) +{ + return m128_I2F(_mm_srl_epi32(m128_F2I(a), m128_F2I(count.shift))); +} + +NV_FORCE_INLINE VecI32V VecI32V_And(const VecI32VArg a, const VecI32VArg b) +{ + return _mm_and_ps(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Or(const VecI32VArg a, const VecI32VArg b) +{ + return _mm_or_ps(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetX(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetY(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetZ(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetW(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)); +} + +NV_FORCE_INLINE void NvI32_From_VecI32V(const VecI32VArg a, int32_t* i) +{ + _mm_store_ss((float*)i,a); +} + +NV_FORCE_INLINE VecI32V VecI32V_Merge(const VecI32VArg a, const VecI32VArg b, const VecI32VArg c, const VecI32VArg d) +{ + return V4Merge(a, b, c, d); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_BoolV(const BoolVArg a) +{ + return a; +} + +NV_FORCE_INLINE VecU32V VecU32V_From_BoolV(const BoolVArg a) +{ + return a; +} + +/* +template NV_FORCE_INLINE VecI32V V4ISplat() +{ + VecI32V result; + result.m128_i32[0] = a; + result.m128_i32[1] = a; + result.m128_i32[2] = a; + result.m128_i32[3] = a; + return result; +} + +template NV_FORCE_INLINE VecU32V V4USplat() +{ + VecU32V result; + result.m128_u32[0] = a; + result.m128_u32[1] = a; + result.m128_u32[2] = a; + result.m128_u32[3] = a; + return result; +} +*/ + +/* +NV_FORCE_INLINE void V4U16StoreAligned(VecU16V val, VecU16V* address) +{ + *address = val; +} +*/ + +NV_FORCE_INLINE void V4U32StoreAligned(VecU32V val, VecU32V* address) +{ + *address = val; +} + +NV_FORCE_INLINE Vec4V V4LoadAligned(Vec4V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE Vec4V V4LoadUnaligned(Vec4V* addr) +{ + return V4LoadU((float*)addr); +} + +NV_FORCE_INLINE Vec4V V4Andc(const Vec4V a, const VecU32V b) +{ + VecU32V result32(a); + result32 = V4U32Andc(result32, b); + return Vec4V(result32); +} + +NV_FORCE_INLINE VecU32V V4IsGrtrV32u(const Vec4V a, const Vec4V b) +{ + return V4IsGrtr(a, b); +} + +NV_FORCE_INLINE VecU16V V4U16LoadAligned(VecU16V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE VecU16V V4U16LoadUnaligned(VecU16V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE VecU16V V4U16CompareGt(VecU16V a, VecU16V b) +{ + // _mm_cmpgt_epi16 doesn't work for unsigned values unfortunately + // return m128_I2F(_mm_cmpgt_epi16(m128_F2I(a), m128_F2I(b))); + VecU16V result; + result.m128_u16[0] = (a).m128_u16[0]>(b).m128_u16[0]; + result.m128_u16[1] = (a).m128_u16[1]>(b).m128_u16[1]; + result.m128_u16[2] = (a).m128_u16[2]>(b).m128_u16[2]; + result.m128_u16[3] = (a).m128_u16[3]>(b).m128_u16[3]; + result.m128_u16[4] = (a).m128_u16[4]>(b).m128_u16[4]; + result.m128_u16[5] = (a).m128_u16[5]>(b).m128_u16[5]; + result.m128_u16[6] = (a).m128_u16[6]>(b).m128_u16[6]; + result.m128_u16[7] = (a).m128_u16[7]>(b).m128_u16[7]; + return result; +} + +NV_FORCE_INLINE VecU16V V4I16CompareGt(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_cmpgt_epi16(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a) +{ + Vec4V result = V4LoadXYZW(float(a.m128_u32[0]), float(a.m128_u32[1]), float(a.m128_u32[2]), float(a.m128_u32[3])); + return result; +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecI32V(VecI32V in) +{ + return _mm_cvtepi32_ps(m128_F2I(in)); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_Vec4V(Vec4V a) +{ + return _mm_cvttps_epi32(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecU32V(VecU32V a) +{ + return Vec4V(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecI32V(VecI32V a) +{ + return Vec4V(a); +} + +NV_FORCE_INLINE VecU32V VecU32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return VecU32V(a); +} + +NV_FORCE_INLINE VecI32V VecI32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return VecI32V(a); +} + +/* +template NV_FORCE_INLINE BoolV BSplatElement(BoolV a) +{ + BoolV result; + result[0] = result[1] = result[2] = result[3] = a[index]; + return result; +} +*/ + +template BoolV BSplatElement(BoolV a) +{ + float* data = (float*)&a; + return V4Load(data[index]); +} + +template NV_FORCE_INLINE VecU32V V4U32SplatElement(VecU32V a) +{ + VecU32V result; + result.m128_u32[0] = result.m128_u32[1] = result.m128_u32[2] = result.m128_u32[3] = a.m128_u32[index]; + return result; +} + +template NV_FORCE_INLINE Vec4V V4SplatElement(Vec4V a) +{ + float* data = (float*)&a; + return V4Load(data[index]); +} + +template NV_FORCE_INLINE VecU16V V4U16SplatElement(VecU16V a) +{ + VecU16V result; + for (int i = 0; i < 8; i ++) + result.m128_u16[i] = a.m128_u16[index]; + return result; +} + +template NV_FORCE_INLINE VecI16V V4I16SplatImmediate() +{ + VecI16V result; + result.m128_i16[0] = imm; + result.m128_i16[1] = imm; + result.m128_i16[2] = imm; + result.m128_i16[3] = imm; + result.m128_i16[4] = imm; + result.m128_i16[5] = imm; + result.m128_i16[6] = imm; + result.m128_i16[7] = imm; + return result; +} + +template NV_FORCE_INLINE VecU16V V4U16SplatImmediate() +{ + VecU16V result; + result.m128_u16[0] = imm; + result.m128_u16[1] = imm; + result.m128_u16[2] = imm; + result.m128_u16[3] = imm; + result.m128_u16[4] = imm; + result.m128_u16[5] = imm; + result.m128_u16[6] = imm; + result.m128_u16[7] = imm; + return result; +} + +NV_FORCE_INLINE VecU16V V4U16SubtractModulo(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_sub_epi16(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecU16V V4U16AddModulo(VecU16V a, VecU16V b) +{ + return m128_I2F(_mm_add_epi16(m128_F2I(a), m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U16GetLo16(VecU16V a) +{ + VecU32V result; + result.m128_u32[0] = a.m128_u16[0]; + result.m128_u32[1] = a.m128_u16[2]; + result.m128_u32[2] = a.m128_u16[4]; + result.m128_u32[3] = a.m128_u16[6]; + return result; +} + +NV_FORCE_INLINE VecU32V V4U16GetHi16(VecU16V a) +{ + VecU32V result; + result.m128_u32[0] = a.m128_u16[1]; + result.m128_u32[1] = a.m128_u16[3]; + result.m128_u32[2] = a.m128_u16[5]; + result.m128_u32[3] = a.m128_u16[7]; + return result; +} + +NV_FORCE_INLINE VecU32V VecU32VLoadXYZW(uint32_t x, uint32_t y, uint32_t z, uint32_t w) +{ + VecU32V result; + result.m128_u32[0] = x; + result.m128_u32[1] = y; + result.m128_u32[2] = z; + result.m128_u32[3] = w; + return result; +} + +NV_FORCE_INLINE Vec4V V4Ceil(const Vec4V in) +{ + UnionM128 a(in); + return V4LoadXYZW(NvCeil(a.m128_f32[0]), NvCeil(a.m128_f32[1]), NvCeil(a.m128_f32[2]), NvCeil(a.m128_f32[3])); +} + +NV_FORCE_INLINE Vec4V V4Floor(const Vec4V in) +{ + UnionM128 a(in); + return V4LoadXYZW(NvFloor(a.m128_f32[0]), NvFloor(a.m128_f32[1]), NvFloor(a.m128_f32[2]), NvFloor(a.m128_f32[3])); +} + +NV_FORCE_INLINE VecU32V V4ConvertToU32VSaturate(const Vec4V in, uint32_t power) +{ + NV_ASSERT(power == 0 && "Non-zero power not supported in convertToU32VSaturate"); + NV_UNUSED(power); // prevent warning in release builds + float ffffFFFFasFloat = float(0xFFFF0000); + UnionM128 a(in); + VecU32V result; + result.m128_u32[0] = uint32_t(NvClamp((a).m128_f32[0], 0.0f, ffffFFFFasFloat)); + result.m128_u32[1] = uint32_t(NvClamp((a).m128_f32[1], 0.0f, ffffFFFFasFloat)); + result.m128_u32[2] = uint32_t(NvClamp((a).m128_f32[2], 0.0f, ffffFFFFasFloat)); + result.m128_u32[3] = uint32_t(NvClamp((a).m128_f32[3], 0.0f, ffffFFFFasFloat)); + return result; +} + +#endif //PS_UNIX_SSE2_INLINE_AOS_H diff --git a/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsAoS.h b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsAoS.h new file mode 100644 index 000000000..23ff74a79 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsAoS.h @@ -0,0 +1,139 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_WINDOWS_AOS_H +#define PS_WINDOWS_AOS_H + +// no includes here! this file should be included from NvcVecMath.h only!!! + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +typedef __m128 FloatV; +typedef __m128 Vec3V; +typedef __m128 Vec4V; +typedef __m128 BoolV; +typedef __m128 VecU32V; +typedef __m128 VecI32V; +typedef __m128 VecU16V; +typedef __m128 VecI16V; +typedef __m128 VecU8V; +typedef __m128 QuatV; + +#define FloatVArg FloatV& +#define Vec3VArg Vec3V& +#define Vec4VArg Vec4V& +#define BoolVArg BoolV& +#define VecU32VArg VecU32V& +#define VecI32VArg VecI32V& +#define VecU16VArg VecU16V& +#define VecI16VArg VecI16V& +#define VecU8VArg VecU8V& +#define QuatVArg QuatV& + +//Optimization for situations in which you cross product multiple vectors with the same vector. +//Avoids 2X shuffles per product +struct VecCrossV +{ + Vec3V mL1; + Vec3V mR1; +}; + +struct VecShiftV +{ + VecI32V shift; +}; +#define VecShiftVArg VecShiftV& + +NV_ALIGN_PREFIX(16) +struct Mat33V +{ + Mat33V(){} + Mat33V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat34V +{ + Mat34V(){} + Mat34V(const Vec3V& c0, const Vec3V& c1, const Vec3V& c2, const Vec3V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec3V NV_ALIGN(16,col0); + Vec3V NV_ALIGN(16,col1); + Vec3V NV_ALIGN(16,col2); + Vec3V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat43V +{ + Mat43V(){} + Mat43V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2) + : col0(c0), + col1(c1), + col2(c2) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); +}NV_ALIGN_SUFFIX(16); + +NV_ALIGN_PREFIX(16) +struct Mat44V +{ + Mat44V(){} + Mat44V(const Vec4V& c0, const Vec4V& c1, const Vec4V& c2, const Vec4V& c3) + : col0(c0), + col1(c1), + col2(c2), + col3(c3) + { + } + Vec4V NV_ALIGN(16,col0); + Vec4V NV_ALIGN(16,col1); + Vec4V NV_ALIGN(16,col2); + Vec4V NV_ALIGN(16,col3); +}NV_ALIGN_SUFFIX(16); + + +#endif //PS_WINDOWS_AOS_H diff --git a/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsFPU.h b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsFPU.h new file mode 100644 index 000000000..619d2df02 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsFPU.h @@ -0,0 +1,50 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_WINDOWS_NSWINDOWSFPU_H +#define NV_WINDOWS_NSWINDOWSFPU_H + +NV_INLINE nvidia::shdfnd::SIMDGuard::SIMDGuard() +{ +#if !NV_ARM + mControlWord = _mm_getcsr(); + // set default (disable exceptions: _MM_MASK_MASK) and FTZ (_MM_FLUSH_ZERO_ON), DAZ (_MM_DENORMALS_ZERO_ON: (1<<6)) + _mm_setcsr(_MM_MASK_MASK | _MM_FLUSH_ZERO_ON | (1 << 6)); +#endif +} + +NV_INLINE nvidia::shdfnd::SIMDGuard::~SIMDGuard() +{ +#if !NV_ARM + // restore control word and clear any exception flags + // (setting exception state flags cause exceptions on the first following fp operation) + _mm_setcsr(mControlWord & ~_MM_EXCEPT_MASK); +#endif +} + +#endif // #ifndef NV_WINDOWS_NSWINDOWSFPU_H diff --git a/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsInlineAoS.h b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsInlineAoS.h new file mode 100644 index 000000000..516b9ccb0 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsInlineAoS.h @@ -0,0 +1,3244 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_WINDOWS_INLINE_AOS_H +#define PS_WINDOWS_INLINE_AOS_H + +#if !COMPILE_VECTOR_INTRINSICS +#error Vector intrinsics should not be included when using scalar implementation. +#endif + +//Remove this define when all platforms use simd solver. +#define NV_SUPPORT_SIMD + + +///////////////////////////////////////////////////////////////////// +////FUNCTIONS USED ONLY FOR ASSERTS IN VECTORISED IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////// +//USED ONLY INTERNALLY +////////////////////////////////////////////////////////////////////// + +namespace internalWindowsSimd +{ + NV_FORCE_INLINE __m128 m128_I2F(__m128i n) + { + return _mm_castsi128_ps(n); + } + + NV_FORCE_INLINE __m128i m128_F2I(__m128 n) + { + return _mm_castps_si128(n); + } + + NV_FORCE_INLINE uint32_t BAllTrue4_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return uint32_t(moveMask == (0xf)); + } + + NV_FORCE_INLINE uint32_t BAnyTrue4_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return uint32_t(moveMask != (0x0)); + } + + NV_FORCE_INLINE uint32_t BAllTrue3_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return uint32_t(((moveMask & 0x7) == (0x7))); + } + + NV_FORCE_INLINE uint32_t BAnyTrue3_R(const BoolV a) + { + const int32_t moveMask = _mm_movemask_ps(a); + return uint32_t(((moveMask & 0x7) != (0x0))); + } + + NV_FORCE_INLINE uint32_t FiniteTestEq(const Vec4V a, const Vec4V b) + { + //This is a bit of a bodge. + //_mm_comieq_ss returns 1 if either value is nan so we need to re-cast a and b with true encoded as a non-nan number. + //There must be a better way of doing this in sse. + const BoolV one = FOne(); + const BoolV zero = FZero(); + const BoolV a1 =V4Sel(a,one,zero); + const BoolV b1 =V4Sel(b,one,zero); + return + ( + uint32_t(_mm_comieq_ss(a1, b1) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(1,1,1,1)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(1,1,1,1))) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(2,2,2,2)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(2,2,2,2))) && + _mm_comieq_ss(_mm_shuffle_ps(a1, a1, _MM_SHUFFLE(3,3,3,3)),_mm_shuffle_ps(b1, b1, _MM_SHUFFLE(3,3,3,3)))) + ); + } + + NV_FORCE_INLINE bool hasZeroElementinFloatV(const FloatV a) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + return (_mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) ? true : false); + } + + NV_FORCE_INLINE bool hasZeroElementInVec3V(const Vec3V a) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)),FZero()) + ); + } + + NV_FORCE_INLINE bool hasZeroElementInVec4V(const Vec4V a) + { + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)),FZero()) || + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)),FZero()) + ); + } + + + const NV_ALIGN(16, uint32_t gMaskXYZ[4])={0xffffffff, 0xffffffff, 0xffffffff, 0}; +} + +namespace _VecMathTests +{ + NV_FORCE_INLINE bool allElementsEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return(_mm_comieq_ss(a,b)!=0); + } + + NV_FORCE_INLINE bool allElementsEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return V3AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVec4V(const Vec4V a, const Vec4V b) + { + return V4AllEq(a, b) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualBoolV(const BoolV a, const BoolV b) + { + return internalWindowsSimd::BAllTrue4_R(VecI32V_IsEq(a, b)) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVecU32V(const VecU32V a, const VecU32V b) + { + return internalWindowsSimd::BAllTrue4_R(V4IsEqU32(a, b)) != 0; + } + + NV_FORCE_INLINE bool allElementsEqualVecI32V(const VecI32V a, const VecI32V b) + { + BoolV c = internalWindowsSimd::m128_I2F(_mm_cmpeq_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); + return internalWindowsSimd::BAllTrue4_R(c) != 0; + } + + + #define VECMATH_AOS_EPSILON (1e-3f) + static const FloatV minFError=FLoad(-VECMATH_AOS_EPSILON); + static const FloatV maxFError=FLoad(VECMATH_AOS_EPSILON); + static const Vec3V minV3Error=V3Load(-VECMATH_AOS_EPSILON); + static const Vec3V maxV3Error=V3Load(VECMATH_AOS_EPSILON); + static const Vec4V minV4Error=V4Load(-VECMATH_AOS_EPSILON); + static const Vec4V maxV4Error=V4Load(VECMATH_AOS_EPSILON); + + + NV_FORCE_INLINE bool allElementsNearEqualFloatV(const FloatV a, const FloatV b) + { + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + const FloatV c=FSub(a,b); + return (_mm_comigt_ss(c,minFError) && _mm_comilt_ss(c,maxFError)); + } + + NV_FORCE_INLINE bool allElementsNearEqualVec3V(const Vec3V a, const Vec3V b) + { + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const Vec3V c=V3Sub(a,b); + return + ( + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),minV3Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),maxV3Error) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),minV3Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),maxV3Error) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),minV3Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),maxV3Error) + ); + } + + NV_FORCE_INLINE bool allElementsNearEqualVec4V(const Vec4V a, const Vec4V b) + { + const Vec4V c=V4Sub(a,b); + return + ( + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),minV4Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(0,0,0,0)),maxV4Error) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),minV4Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(1,1,1,1)),maxV4Error) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),minV4Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(2,2,2,2)),maxV4Error) && + _mm_comigt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(3,3,3,3)),minV4Error) && + _mm_comilt_ss(_mm_shuffle_ps(c, c, _MM_SHUFFLE(3,3,3,3)),maxV4Error) + ); + } + +} + + + +NV_FORCE_INLINE bool isValidFloatV(const FloatV a) +{ + return + ( + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1))) && + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))) && + _mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)),_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3))) + ); +} + +NV_FORCE_INLINE bool isValidVec3V(const Vec3V a) +{ + return (_mm_comieq_ss(_mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)),FZero()) ? true : false); +} + + +NV_FORCE_INLINE bool isFiniteFloatV(const FloatV a) +{ + return NvIsFinite(FStore(a)); + /* + const uint32_t badNumber = (_FPCLASS_SNAN | _FPCLASS_QNAN | _FPCLASS_NINF | _FPCLASS_PINF); + const FloatV vBadNum = FloatV_From_F32((float&)badNumber); + const BoolV vMask = BAnd(vBadNum, a); + return FiniteTestEq(vMask, BFFFF()) == 1; + */ +} + +NV_FORCE_INLINE bool isFiniteVec3V(const Vec3V a) +{ + NV_ALIGN(16, float f[4]); + V4StoreA((Vec4V&)a, f); + return NvIsFinite(f[0]) + && NvIsFinite(f[1]) + && NvIsFinite(f[2]); + + /* + const uint32_t badNumber = (_FPCLASS_SNAN | _FPCLASS_QNAN | _FPCLASS_NINF | _FPCLASS_PINF); + const Vec3V vBadNum = Vec3V_From_F32((float&)badNumber); + const BoolV vMask = BAnd(BAnd(vBadNum, a), BTTTF()); + return FiniteTestEq(vMask, BFFFF()) == 1; + */ +} + +NV_FORCE_INLINE bool isFiniteVec4V(const Vec4V a) +{ + + NV_ALIGN(16, float f[4]); + V4StoreA(a, f); + return NvIsFinite(f[0]) + && NvIsFinite(f[1]) + && NvIsFinite(f[2]) + && NvIsFinite(f[3]); + + + /* + const uint32_t badNumber = (_FPCLASS_SNAN | _FPCLASS_QNAN | _FPCLASS_NINF | _FPCLASS_PINF); + const Vec4V vBadNum = Vec4V_From_U32((float&)badNumber); + const BoolV vMask = BAnd(vBadNum, a); + + return FiniteTestEq(vMask, BFFFF()) == 1; + */ +} + + + + +///////////////////////////////////////////////////////////////////// +////VECTORISED FUNCTION IMPLEMENTATIONS +///////////////////////////////////////////////////////////////////// + +NV_FORCE_INLINE FloatV FLoad(const float f) +{ + return (_mm_load1_ps(&f)); +} + +NV_FORCE_INLINE Vec3V V3Load(const float f) +{ + return _mm_set_ps(0.0f,f,f,f); +} + +NV_FORCE_INLINE Vec4V V4Load(const float f) +{ + return (_mm_load1_ps(&f)); +} + +NV_FORCE_INLINE BoolV BLoad(const bool f) +{ + const uint32_t i=uint32_t(-(int32_t)f); + return _mm_load1_ps((float*)&i); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const NvVec3& f) +{ + VECMATHAOS_ASSERT(0 == ((size_t)&f & 0x0f)); + return _mm_and_ps(_mm_load_ps(&f.x), reinterpret_cast(internalWindowsSimd::gMaskXYZ)); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const NvVec3& f) +{ + return (_mm_set_ps(0.0f,f.z,f.y,f.x)); +} + +// w component of result is undefined +NV_FORCE_INLINE Vec3V V3LoadUnsafeA(const NvVec3& f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)&f & 0x0f)); + return _mm_load_ps(&f.x); +} + +NV_FORCE_INLINE Vec3V V3LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return V4ClearW(_mm_load_ps(f)); +} + +NV_FORCE_INLINE Vec3V V3LoadU(const float* const i) +{ + return (_mm_set_ps(0.0f,i[2],i[1],i[0])); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V(Vec4V v) +{ + return V4ClearW(v); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_Vec4V_WUndefined(const Vec4V v) +{ + return v; +} + + +NV_FORCE_INLINE Vec4V Vec4V_From_Vec3V(Vec3V f) +{ + return f; //ok if it is implemented as the same type. +} + +NV_FORCE_INLINE Vec4V Vec4V_From_FloatV(FloatV f) +{ + return f; +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV(FloatV f) +{ + return Vec3V_From_Vec4V(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Vec3V Vec3V_From_FloatV_WUndefined(FloatV f) +{ + return Vec3V_From_Vec4V_WUndefined(Vec4V_From_FloatV(f)); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_NvVec3_WUndefined(const NvVec3& f) +{ + return (_mm_set_ps(0.0f,f.z,f.y,f.x)); +} + +NV_FORCE_INLINE Vec4V V4LoadA(const float* const f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + return (_mm_load_ps(f)); +} + +NV_FORCE_INLINE void V4StoreA(const Vec4V a, float* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + _mm_store_ps(f,a); +} + +NV_FORCE_INLINE void V4StoreU(const Vec4V a, float* f) +{ + _mm_storeu_ps(f,a); +} + +NV_FORCE_INLINE void BStoreA(const BoolV a, uint32_t* f) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)f & 0x0f)); + _mm_store_ps((float*)f,a); +} + +NV_FORCE_INLINE void U4StoreA(const VecU32V uv, uint32_t* u) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)u & 0x0f)); + _mm_store_ps((float*)u,uv); +} + +NV_FORCE_INLINE void I4StoreA(const VecI32V iv, int32_t* i) +{ + VECMATHAOS_ASSERT(0 == ((uint64_t)i & 0x0f)); + _mm_store_ps((float*)i,iv); +} + +NV_FORCE_INLINE Vec4V V4LoadU(const float* const f) +{ + return (_mm_loadu_ps(f)); +} + +NV_FORCE_INLINE BoolV BLoad(const bool* const f) +{ + const NV_ALIGN(16, uint32_t b[4])={uint32_t(-(int32_t)f[0]), uint32_t(-(int32_t)f[1]), uint32_t(-(int32_t)f[2]), uint32_t(-(int32_t)f[3])}; + return _mm_load_ps((float*)&b); +} + + +NV_FORCE_INLINE float FStore(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + float f; + _mm_store_ss(&f,a); + return f; +} + + +NV_FORCE_INLINE void FStore(const FloatV a, float* NV_RESTRICT f) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + _mm_store_ss(f,a); +} + +NV_FORCE_INLINE void V3StoreA(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + VECMATHAOS_ASSERT(0 == ((int)&f & 0x0F)); + NV_ALIGN(16, float f2[4]); + _mm_store_ps(f2,a); + f=NvVec3(f2[0],f2[1],f2[2]); +} + +NV_FORCE_INLINE void Store_From_BoolV(const BoolV b, uint32_t* b2) +{ + _mm_store_ss((float*)b2,b); +} + +NV_FORCE_INLINE void V3StoreU(const Vec3V a, NvVec3& f) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(0 == ((int)&a & 0x0F)); + NV_ALIGN(16, float f2[4]); + _mm_store_ps(f2,a); + f=NvVec3(f2[0],f2[1],f2[2]); +} + + +NV_FORCE_INLINE Mat33V Mat33V_From_NvMat33(const NvMat33 &m) +{ + return Mat33V(V3LoadU(m.column0), + V3LoadU(m.column1), + V3LoadU(m.column2)); +} + +NV_FORCE_INLINE void NvMat33_From_Mat33V(const Mat33V &m, NvMat33 &out) +{ + NV_ASSERT((size_t(&out)&15)==0); + V3StoreU(m.col0, out.column0); + V3StoreU(m.col1, out.column1); + V3StoreU(m.col2, out.column2); +} + + +////////////////////////////////// +//FLOATV +////////////////////////////////// + +NV_FORCE_INLINE FloatV FZero() +{ + //return FloatV_From_F32(0.0f); + return _mm_setzero_ps(); +} + +NV_FORCE_INLINE FloatV FOne() +{ + return FLoad(1.0f); +} + +NV_FORCE_INLINE FloatV FHalf() +{ + return FLoad(0.5f); +} + +NV_FORCE_INLINE FloatV FEps() +{ + return FLoad(NV_EPS_REAL); +} + +NV_FORCE_INLINE FloatV FEps6() +{ + return FLoad(1e-6f); +} + +NV_FORCE_INLINE FloatV FMax() +{ + return FLoad(NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV FNegMax() +{ + return FLoad(-NV_MAX_REAL); +} + +NV_FORCE_INLINE FloatV IZero() +{ + const uint32_t zero = 0; + return _mm_load1_ps((float*)&zero); +} + +NV_FORCE_INLINE FloatV IOne() +{ + const uint32_t one = 1; + return _mm_load1_ps((float*)&one); +} + +NV_FORCE_INLINE FloatV ITwo() +{ + const uint32_t two = 2; + return _mm_load1_ps((float*)&two); +} + +NV_FORCE_INLINE FloatV IThree() +{ + const uint32_t three = 3; + return _mm_load1_ps((float*)&three); +} + +NV_FORCE_INLINE FloatV IFour() +{ + uint32_t four = 4; + return _mm_load1_ps((float*)&four); +} + +NV_FORCE_INLINE FloatV FNeg(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE FloatV FAdd(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE FloatV FSub(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE FloatV FMul(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE FloatV FDiv(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE FloatV FDivFast(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE FloatV FRecip(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_div_ps(FOne(),a); +} + +NV_FORCE_INLINE FloatV FRecipFast(const FloatV a) +{ + return _mm_rcp_ps(a); +} + +NV_FORCE_INLINE FloatV FRsqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_div_ps(FOne(),_mm_sqrt_ps(a)); +} + +NV_FORCE_INLINE FloatV FSqrt(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + return _mm_sqrt_ps(a); +} + +NV_FORCE_INLINE FloatV FRsqrtFast(const FloatV a) +{ + return _mm_rsqrt_ps(a); +} + +NV_FORCE_INLINE FloatV FScaleAdd(const FloatV a, const FloatV b, const FloatV c) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidFloatV(c)); + return FAdd(FMul(a,b),c); +} + +NV_FORCE_INLINE FloatV FNegScaleSub(const FloatV a, const FloatV b, const FloatV c) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidFloatV(c)); + return FSub(c,FMul(a,b)); +} + +NV_FORCE_INLINE FloatV FAbs(const FloatV a) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + NV_ALIGN(16, const static uint32_t absMask[4]) = {0x7fFFffFF, 0x7fFFffFF, 0x7fFFffFF, 0x7fFFffFF}; + return _mm_and_ps(a, _mm_load_ps((float*)absMask)); +} + +NV_FORCE_INLINE FloatV FSel(const BoolV c, const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(_VecMathTests::allElementsEqualBoolV(c,BTTTT()) || _VecMathTests::allElementsEqualBoolV(c,BFFFF())); + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE BoolV FIsGrtr(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV FIsGrtrOrEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV FIsEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE FloatV FMax(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE FloatV FMin(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_min_ps(a, b); +} + +NV_FORCE_INLINE FloatV FClamp(const FloatV a, const FloatV minV, const FloatV maxV) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(minV)); + VECMATHAOS_ASSERT(isValidFloatV(maxV)); + return FMax(FMin(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t FAllGrtr(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return uint32_t(_mm_comigt_ss(a,b)); +} + +NV_FORCE_INLINE uint32_t FAllGrtrOrEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + + return uint32_t(_mm_comige_ss(a,b)); +} + +NV_FORCE_INLINE uint32_t FAllEq(const FloatV a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + + return uint32_t(_mm_comieq_ss(a,b)); +} + +NV_FORCE_INLINE FloatV FRound(const FloatV a) +{ + //return _mm_round_ps(a, 0x0); + const FloatV half = FLoad(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const FloatV aRound = FSub(FAdd(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +} + + +NV_FORCE_INLINE FloatV FSin(const FloatV a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + FloatV Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const FloatV recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const FloatV twoPi = V4LoadA(g_NVTwoPi.f); + const FloatV tmp = FMul(a, recipTwoPi); + const FloatV b = FRound(tmp); + const FloatV V1 = FNegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const FloatV V2 = FMul(V1, V1); + const FloatV V3 = FMul(V2, V1); + const FloatV V5 = FMul(V3, V2); + const FloatV V7 = FMul(V5, V2); + const FloatV V9 = FMul(V7, V2); + const FloatV V11 = FMul(V9, V2); + const FloatV V13 = FMul(V11, V2); + const FloatV V15 = FMul(V13, V2); + const FloatV V17 = FMul(V15, V2); + const FloatV V19 = FMul(V17, V2); + const FloatV V21 = FMul(V19, V2); + const FloatV V23 = FMul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = FMulAdd(S1, V3, V1); + Result = FMulAdd(S2, V5, Result); + Result = FMulAdd(S3, V7, Result); + Result = FMulAdd(S4, V9, Result); + Result = FMulAdd(S5, V11, Result); + Result = FMulAdd(S6, V13, Result); + Result = FMulAdd(S7, V15, Result); + Result = FMulAdd(S8, V17, Result); + Result = FMulAdd(S9, V19, Result); + Result = FMulAdd(S10, V21, Result); + Result = FMulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE FloatV FCos(const FloatV a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + FloatV Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const FloatV recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const FloatV twoPi = V4LoadA(g_NVTwoPi.f); + const FloatV tmp = FMul(a, recipTwoPi); + const FloatV b = FRound(tmp); + const FloatV V1 = FNegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const FloatV V2 = FMul(V1, V1); + const FloatV V4 = FMul(V2, V2); + const FloatV V6 = FMul(V4, V2); + const FloatV V8 = FMul(V4, V4); + const FloatV V10 = FMul(V6, V4); + const FloatV V12 = FMul(V6, V6); + const FloatV V14 = FMul(V8, V6); + const FloatV V16 = FMul(V8, V8); + const FloatV V18 = FMul(V10, V8); + const FloatV V20 = FMul(V10, V10); + const FloatV V22 = FMul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = FMulAdd(C1, V2, V4One()); + Result = FMulAdd(C2, V4, Result); + Result = FMulAdd(C3, V6, Result); + Result = FMulAdd(C4, V8, Result); + Result = FMulAdd(C5, V10, Result); + Result = FMulAdd(C6, V12, Result); + Result = FMulAdd(C7, V14, Result); + Result = FMulAdd(C8, V16, Result); + Result = FMulAdd(C9, V18, Result); + Result = FMulAdd(C10, V20, Result); + Result = FMulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV min, const FloatV max) +{ + const BoolV ffff = BFFFF(); + const BoolV c = BOr(FIsGrtr(a, max), FIsGrtr(min, a)); + return uint32_t(!BAllEq(c, ffff)); +} + +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV min, const FloatV max) +{ + const BoolV tttt = BTTTT(); + const BoolV c = BAnd(FIsGrtrOrEq(a, min), FIsGrtrOrEq(max, a)); + return BAllEq(c, tttt); +} + +NV_FORCE_INLINE uint32_t FOutOfBounds(const FloatV a, const FloatV bounds) +{ + return FOutOfBounds(a, FNeg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t FInBounds(const FloatV a, const FloatV bounds) +{ + return FInBounds(a, FNeg(bounds), bounds); +} + +////////////////////////////////// +//VEC3V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V V3Splat(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + const __m128 zero=V3Zero(); + const __m128 fff0 = _mm_move_ss(f, zero); + return _mm_shuffle_ps(fff0, fff0, _MM_SHUFFLE(0,1,2,3)); +} + +NV_FORCE_INLINE Vec3V V3Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z) +{ + VECMATHAOS_ASSERT(isValidFloatV(x)); + VECMATHAOS_ASSERT(isValidFloatV(y)); + VECMATHAOS_ASSERT(isValidFloatV(z)); + // static on zero causes compiler crash on x64 debug_opt + const __m128 zero=V3Zero(); + const __m128 xy = _mm_move_ss(x, y); + const __m128 z0 = _mm_move_ss(zero, z); + + return _mm_shuffle_ps(xy, z0, _MM_SHUFFLE(1,0,0,1)); +} + +NV_FORCE_INLINE Vec3V V3UnitX() +{ + const NV_ALIGN(16, float x[4])={1.0f,0.0f,0.0f,0.0f}; + const __m128 x128=_mm_load_ps(x); + return x128; +} + +NV_FORCE_INLINE Vec3V V3UnitY() +{ + const NV_ALIGN(16, float y[4])={0.0f,1.0f,0.0f,0.0f}; + const __m128 y128=_mm_load_ps(y); + return y128; +} + +NV_FORCE_INLINE Vec3V V3UnitZ() +{ + const NV_ALIGN(16, float z[4])={0.0f,0.0f,1.0f,0.0f}; + const __m128 z128=_mm_load_ps(z); + return z128; +} + +NV_FORCE_INLINE FloatV V3GetX(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE FloatV V3GetY(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE FloatV V3GetZ(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE Vec3V V3SetX(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3SetY(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3SetZ(const Vec3V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V3Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE Vec3V V3ColX(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,0,3,0)); + return V3SetY(r, V3GetX(b)); +} + +NV_FORCE_INLINE Vec3V V3ColY(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,1,3,1)); + return V3SetY(r, V3GetY(b)); +} + +NV_FORCE_INLINE Vec3V V3ColZ(const Vec3V a, const Vec3V b, const Vec3V c) +{ + Vec3V r = _mm_shuffle_ps(a,c,_MM_SHUFFLE(3,2,3,2)); + return V3SetY(r, V3GetZ(b)); +} + +NV_FORCE_INLINE Vec3V V3Zero() +{ + return _mm_setzero_ps(); +} + +NV_FORCE_INLINE Vec3V V3One() +{ + return V3Load(1.0f); +} + +NV_FORCE_INLINE Vec3V V3Eps() +{ + return V3Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec3V V3Neg(const Vec3V f) +{ + VECMATHAOS_ASSERT(isValidVec3V(f)); + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE Vec3V V3Add(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Sub(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Scale(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Mul(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3ScaleInv(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Div(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + // why are these here? + //static const __m128 one=V3One(); + //static const __m128 tttf=BTTTF(); + //const __m128 b1=V3Sel(tttf,b,one); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3ScaleInvFast(const Vec3V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec3V V3DivFast(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + const __m128 one=V3One(); + const __m128 tttf=BTTTF(); + const __m128 b1=V3Sel(tttf,b,one); + return _mm_mul_ps(a,_mm_rcp_ps(b1)); +} + +NV_FORCE_INLINE Vec3V V3Recip(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_div_ps(V3One(),a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3RecipFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_rcp_ps(a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3Rsqrt(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_div_ps(V3One(),_mm_sqrt_ps(a)); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3RsqrtFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 tttf=BTTTF(); + const __m128 recipA=_mm_rsqrt_ps(a); + return V3Sel(tttf,recipA,zero); +} + +NV_FORCE_INLINE Vec3V V3ScaleAdd(const Vec3V a, const FloatV b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Add(V3Scale(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegScaleSub(const Vec3V a, const FloatV b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidFloatV(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Sub(c,V3Scale(a,b)); +} + +NV_FORCE_INLINE Vec3V V3MulAdd(const Vec3V a, const Vec3V b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Add(V3Mul(a,b),c); +} + +NV_FORCE_INLINE Vec3V V3NegMulSub(const Vec3V a, const Vec3V b, const Vec3V c) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + VECMATHAOS_ASSERT(isValidVec3V(c)); + return V3Sub(c,V3Mul(a,b)); +} + +NV_FORCE_INLINE Vec3V V3Abs(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Max(a,V3Neg(a)); +} + +NV_FORCE_INLINE FloatV V3Dot(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + __m128 dot1 = _mm_mul_ps(a, b); //w,z,y,x + //__m128 shuf1 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(2,1,0,3)); //z,y,x,w + //__m128 shuf2 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(1,0,3,2)); //y,x,w,z + //__m128 shuf3 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(0,3,2,1)); //x,w,z,y + //return _mm_add_ps(_mm_add_ps(shuf2, shuf3), _mm_add_ps(dot1,shuf1)); + + __m128 shuf1 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(0,0,0,0)); //z,y,x,w + __m128 shuf2 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(1,1,1,1)); //y,x,w,z + __m128 shuf3 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(2,2,2,2)); //x,w,z,y + return _mm_add_ps(_mm_add_ps(shuf1, shuf2), shuf3); +} + +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + __m128 r1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + __m128 r2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(l1, l2), _mm_mul_ps(r1,r2)); +} + +NV_FORCE_INLINE VecCrossV V3PrepareCross(const Vec3V a) +{ + VecCrossV v; + v.mR1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + v.mL1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + return v; +} + +NV_FORCE_INLINE Vec3V V3Cross(const VecCrossV& a, const Vec3V b) +{ + __m128 r2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(b, b, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(a.mL1, l2), _mm_mul_ps(a.mR1, r2)); +} + +NV_FORCE_INLINE Vec3V V3Cross(const Vec3V a, const VecCrossV& b) +{ + __m128 r2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 0, 2, 1)); //y,z,x,w + __m128 l2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(3, 1, 0, 2)); //z,x,y,w + return _mm_sub_ps(_mm_mul_ps(b.mR1, r2), _mm_mul_ps(b.mL1, l2)); +} + +NV_FORCE_INLINE Vec3V V3Cross(const VecCrossV& a, const VecCrossV& b) +{ + return _mm_sub_ps(_mm_mul_ps(a.mL1, b.mR1), _mm_mul_ps(a.mR1, b.mL1)); +} + +NV_FORCE_INLINE FloatV V3Length(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_sqrt_ps(V3Dot(a,a)); +} + +NV_FORCE_INLINE FloatV V3LengthSq(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Dot(a,a); +} + +NV_FORCE_INLINE Vec3V V3Normalize(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(!FAllEq(V3Dot(a,a), FZero())); + return V3ScaleInv(a, _mm_sqrt_ps(V3Dot(a,a))); +} + +NV_FORCE_INLINE Vec3V V3NormalizeFast(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return V3Mul(a, _mm_rsqrt_ps(V3Dot(a,a))); +} + +NV_FORCE_INLINE Vec3V V3NormalizeSafe(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero=V3Zero(); + const __m128 eps=FEps(); + const __m128 length=V3Length(a); + const __m128 isGreaterThanZero=FIsGrtr(length,eps); + return V3Sel(isGreaterThanZero,V3ScaleInv(a,length),zero); +} + +NV_FORCE_INLINE Vec3V V3Sel(const BoolV c, const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + + +NV_FORCE_INLINE BoolV V3IsGrtr(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV V3IsGrtrOrEq(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV V3IsEq(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE Vec3V V3Max(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE Vec3V V3Min(const Vec3V a, const Vec3V b) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(b)); + return _mm_min_ps(a, b); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMax(const Vec3V a) +{ + const __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); + const __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); + const __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); + + return _mm_max_ps(_mm_max_ps(shuf1, shuf2), shuf3); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V3ExtractMin(const Vec3V a) +{ + const __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); + const __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); + const __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); + + return _mm_min_ps(_mm_min_ps(shuf1, shuf2), shuf3); +} + +//// if(a > 0.0f) return 1.0f; else if a == 0.f return 0.f, else return -1.f; +//NV_FORCE_INLINE Vec3V V3MathSign(const Vec3V a) +//{ +// VECMATHAOS_ASSERT(isValidVec3V(a)); +// +// const __m128i ai = _mm_cvtps_epi32(a); +// const __m128i bi = _mm_cvtps_epi32(V3Neg(a)); +// const __m128 aa = _mm_cvtepi32_ps(_mm_srai_epi32(ai, 31)); +// const __m128 bb = _mm_cvtepi32_ps(_mm_srai_epi32(bi, 31)); +// return _mm_or_ps(aa, bb); +//} + +//return (a >= 0.0f) ? 1.0f : -1.0f; +NV_FORCE_INLINE Vec3V V3Sign(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + const __m128 zero = V3Zero(); + const __m128 one = V3One(); + const __m128 none = V3Neg(one); + return V3Sel(V3IsGrtrOrEq(a, zero), one, none); + +} + +NV_FORCE_INLINE Vec3V V3Clamp(const Vec3V a, const Vec3V minV, const Vec3V maxV) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(minV)); + VECMATHAOS_ASSERT(isValidVec3V(maxV)); + return V3Max(V3Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V3AllGrtr(const Vec3V a, const Vec3V b) +{ + return internalWindowsSimd::BAllTrue3_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V3AllGrtrOrEq(const Vec3V a, const Vec3V b) +{ + return internalWindowsSimd::BAllTrue3_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V3AllEq(const Vec3V a, const Vec3V b) +{ + return internalWindowsSimd::BAllTrue3_R(V4IsEq(a, b)); +} + + +NV_FORCE_INLINE Vec3V V3Round(const Vec3V a) +{ + //return _mm_round_ps(a, 0x0); + const Vec3V half = V3Load(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const Vec3V aRound = V3Sub(V3Add(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +} + + +NV_FORCE_INLINE Vec3V V3Sin(const Vec3V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V3 = V3Mul(V2, V1); + const Vec3V V5 = V3Mul(V3, V2); + const Vec3V V7 = V3Mul(V5, V2); + const Vec3V V9 = V3Mul(V7, V2); + const Vec3V V11 = V3Mul(V9, V2); + const Vec3V V13 = V3Mul(V11, V2); + const Vec3V V15 = V3Mul(V13, V2); + const Vec3V V17 = V3Mul(V15, V2); + const Vec3V V19 = V3Mul(V17, V2); + const Vec3V V21 = V3Mul(V19, V2); + const Vec3V V23 = V3Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V3MulAdd(S1, V3, V1); + Result = V3MulAdd(S2, V5, Result); + Result = V3MulAdd(S3, V7, Result); + Result = V3MulAdd(S4, V9, Result); + Result = V3MulAdd(S5, V11, Result); + Result = V3MulAdd(S6, V13, Result); + Result = V3MulAdd(S7, V15, Result); + Result = V3MulAdd(S8, V17, Result); + Result = V3MulAdd(S9, V19, Result); + Result = V3MulAdd(S10, V21, Result); + Result = V3MulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec3V V3Cos(const Vec3V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec3V Result; + + // Modulo the range of the given angles such that -XM_2PI <= Angles < XM_2PI + const Vec3V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec3V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec3V tmp = V3Mul(a, recipTwoPi); + const Vec3V b = V3Round(tmp); + const Vec3V V1 = V3NegMulSub(twoPi, b, a); + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec3V V2 = V3Mul(V1, V1); + const Vec3V V4 = V3Mul(V2, V2); + const Vec3V V6 = V3Mul(V4, V2); + const Vec3V V8 = V3Mul(V4, V4); + const Vec3V V10 = V3Mul(V6, V4); + const Vec3V V12 = V3Mul(V6, V6); + const Vec3V V14 = V3Mul(V8, V6); + const Vec3V V16 = V3Mul(V8, V8); + const Vec3V V18 = V3Mul(V10, V8); + const Vec3V V20 = V3Mul(V10, V10); + const Vec3V V22 = V3Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V3MulAdd(C1, V2, V4One()); + Result = V3MulAdd(C2, V4, Result); + Result = V3MulAdd(C3, V6, Result); + Result = V3MulAdd(C4, V8, Result); + Result = V3MulAdd(C5, V10, Result); + Result = V3MulAdd(C6, V12, Result); + Result = V3MulAdd(C7, V14, Result); + Result = V3MulAdd(C8, V16, Result); + Result = V3MulAdd(C9, V18, Result); + Result = V3MulAdd(C10, V20, Result); + Result = V3MulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec3V V3PermYZZ(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,2,2,1)); +} + +NV_FORCE_INLINE Vec3V V3PermXYX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,0,1,0)); +} + +NV_FORCE_INLINE Vec3V V3PermYZX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a,a,_MM_SHUFFLE(3,0,2,1)); +} + +NV_FORCE_INLINE Vec3V V3PermZXY(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,0,2)); +} + +NV_FORCE_INLINE Vec3V V3PermZZY(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,2,2)); +} + +NV_FORCE_INLINE Vec3V V3PermYXX(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,0,0,1)); +} + +NV_FORCE_INLINE Vec3V V3Perm_Zero_1Z_0Y(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + return _mm_shuffle_ps(v1, v0, _MM_SHUFFLE(3,1,2,3)); +} + +NV_FORCE_INLINE Vec3V V3Perm_0Z_Zero_1X(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + return _mm_shuffle_ps(v0, v1, _MM_SHUFFLE(3,0,3,2)); +} + +NV_FORCE_INLINE Vec3V V3Perm_1Y_0X_Zero(const Vec3V v0, const Vec3V v1) +{ + VECMATHAOS_ASSERT(isValidVec3V(v0)); + VECMATHAOS_ASSERT(isValidVec3V(v1)); + //There must be a better way to do this. + Vec3V v2=V3Zero(); + FloatV y1=V3GetY(v1); + FloatV x0=V3GetX(v0); + v2=V3SetX(v2,y1); + return V3SetY(v2,x0); +} + +NV_FORCE_INLINE FloatV V3SumElems(const Vec3V a) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); //z,y,x,w + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); //y,x,w,z + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); //x,w,z,y + return _mm_add_ps(_mm_add_ps(shuf1, shuf2), shuf3); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(min)); + VECMATHAOS_ASSERT(isValidVec3V(max)); + const BoolV ffff = BFFFF(); + const BoolV c = BOr(V3IsGrtr(a, max), V3IsGrtr(min, a)); + return uint32_t(!BAllEq(c, ffff)); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V min, const Vec3V max) +{ + VECMATHAOS_ASSERT(isValidVec3V(a)); + VECMATHAOS_ASSERT(isValidVec3V(min)); + VECMATHAOS_ASSERT(isValidVec3V(max)); + const BoolV tttt = BTTTT(); + const BoolV c = BAnd(V3IsGrtrOrEq(a, min), V3IsGrtrOrEq(max, a)); + return BAllEq(c, tttt); +} + +NV_FORCE_INLINE uint32_t V3OutOfBounds(const Vec3V a, const Vec3V bounds) +{ + return V3OutOfBounds(a, V3Neg(bounds), bounds); +} + +NV_FORCE_INLINE uint32_t V3InBounds(const Vec3V a, const Vec3V bounds) +{ + return V3InBounds(a, V3Neg(bounds), bounds); +} + + + + + +////////////////////////////////// +//VEC4V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V V4Splat(const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + //return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); + return f; +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatV* const floatVArray) +{ + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[0])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[1])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[2])); + VECMATHAOS_ASSERT(isValidFloatV(floatVArray[3])); + __m128 xw = _mm_move_ss(floatVArray[1], floatVArray[0]); //y, y, y, x + __m128 yz = _mm_move_ss(floatVArray[2], floatVArray[3]); //z, z, z, w + return (_mm_shuffle_ps(xw,yz,_MM_SHUFFLE(0,2,1,0))); +} + +NV_FORCE_INLINE Vec4V V4Merge(const FloatVArg x, const FloatVArg y, const FloatVArg z, const FloatVArg w) +{ + VECMATHAOS_ASSERT(isValidFloatV(x)); + VECMATHAOS_ASSERT(isValidFloatV(y)); + VECMATHAOS_ASSERT(isValidFloatV(z)); + VECMATHAOS_ASSERT(isValidFloatV(w)); + __m128 xw = _mm_move_ss(y, x); //y, y, y, x + __m128 yz = _mm_move_ss(z, w); //z, z, z, w + return (_mm_shuffle_ps(xw,yz,_MM_SHUFFLE(0,2,1,0))); +} + +NV_FORCE_INLINE Vec4V V4MergeW(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpackhi_ps(x, z); + const Vec4V yw = _mm_unpackhi_ps(y, w); + return _mm_unpackhi_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeZ(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpackhi_ps(x, z); + const Vec4V yw = _mm_unpackhi_ps(y, w); + return _mm_unpacklo_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeY(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpacklo_ps(x, z); + const Vec4V yw = _mm_unpacklo_ps(y, w); + return _mm_unpackhi_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4MergeX(const Vec4VArg x, const Vec4VArg y, const Vec4VArg z, const Vec4VArg w) +{ + const Vec4V xz = _mm_unpacklo_ps(x, z); + const Vec4V yw = _mm_unpacklo_ps(y, w); + return _mm_unpacklo_ps(xz, yw); +} + +NV_FORCE_INLINE Vec4V V4UnpackXY(const Vec4VArg a, const Vec4VArg b) +{ + return _mm_unpacklo_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4UnpackZW(const Vec4VArg a, const Vec4VArg b) +{ + return _mm_unpackhi_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4Perm_YXWZ(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,0,1)); +} + +NV_FORCE_INLINE Vec4V V4Perm_XZXZ(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,0,2,0)); +} + +NV_FORCE_INLINE Vec4V V4Perm_YWYW(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,1,3,1)); +} + +template NV_FORCE_INLINE Vec4V V4Perm(const Vec4V a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(w, z, y, x)); +} + +NV_FORCE_INLINE Vec4V V4UnitW() +{ + const NV_ALIGN(16, float w[4])={0.0f,0.0f,0.0f,1.0f}; + const __m128 w128=_mm_load_ps(w); + return w128; +} + +NV_FORCE_INLINE Vec4V V4UnitX() +{ + const NV_ALIGN(16, float x[4])={1.0f,0.0f,0.0f,0.0f}; + const __m128 x128=_mm_load_ps(x); + return x128; +} + +NV_FORCE_INLINE Vec4V V4UnitY() +{ + const NV_ALIGN(16, float y[4])={0.0f,1.0f,0.0f,0.0f}; + const __m128 y128=_mm_load_ps(y); + return y128; +} + +NV_FORCE_INLINE Vec4V V4UnitZ() +{ + const NV_ALIGN(16, float z[4])={0.0f,0.0f,1.0f,0.0f}; + const __m128 z128=_mm_load_ps(z); + return z128; +} + +NV_FORCE_INLINE FloatV V4GetW(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(3,3,3,3)); +} + +NV_FORCE_INLINE FloatV V4GetX(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE FloatV V4GetY(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE FloatV V4GetZ(const Vec4V f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE Vec4V V4SetW(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTTF(),v,f); +} + +NV_FORCE_INLINE Vec4V V4ClearW(const Vec4V v) +{ + return _mm_and_ps(v, (VecI32V&)internalWindowsSimd::gMaskXYZ); +} + +NV_FORCE_INLINE Vec4V V4SetX(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4SetY(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4SetZ(const Vec4V v, const FloatV f) +{ + VECMATHAOS_ASSERT(isValidVec3V(v)); + VECMATHAOS_ASSERT(isValidFloatV(f)); + return V4Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE Vec4V V4Zero() +{ + return _mm_setzero_ps(); +} + +NV_FORCE_INLINE Vec4V V4One() +{ + return V4Load(1.0f); +} + +NV_FORCE_INLINE Vec4V V4Eps() +{ + return V4Load(NV_EPS_REAL); +} + +NV_FORCE_INLINE Vec4V V4Neg(const Vec4V f) +{ + return _mm_sub_ps( _mm_setzero_ps(), f); +} + +NV_FORCE_INLINE Vec4V V4Add(const Vec4V a, const Vec4V b) +{ + return _mm_add_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Sub(const Vec4V a, const Vec4V b) +{ + return _mm_sub_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Scale(const Vec4V a, const FloatV b) +{ + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Mul(const Vec4V a, const Vec4V b) +{ + return _mm_mul_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4ScaleInv(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4Div(const Vec4V a, const Vec4V b) +{ + return _mm_div_ps(a,b); +} + +NV_FORCE_INLINE Vec4V V4ScaleInvFast(const Vec4V a, const FloatV b) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec4V V4DivFast(const Vec4V a, const Vec4V b) +{ + return _mm_mul_ps(a,_mm_rcp_ps(b)); +} + +NV_FORCE_INLINE Vec4V V4Recip(const Vec4V a) +{ + return _mm_div_ps(V4One(),a); +} + +NV_FORCE_INLINE Vec4V V4RecipFast(const Vec4V a) +{ + return _mm_rcp_ps(a); +} + +NV_FORCE_INLINE Vec4V V4Rsqrt(const Vec4V a) +{ + return _mm_div_ps(V4One(),_mm_sqrt_ps(a)); +} + +NV_FORCE_INLINE Vec4V V4RsqrtFast(const Vec4V a) +{ + return _mm_rsqrt_ps(a); +} + +NV_FORCE_INLINE Vec4V V4Sqrt(const Vec4V a) +{ + return _mm_sqrt_ps(a); +} + +NV_FORCE_INLINE Vec4V V4ScaleAdd(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return V4Add(V4Scale(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegScaleSub(const Vec4V a, const FloatV b, const Vec4V c) +{ + VECMATHAOS_ASSERT(isValidFloatV(b)); + return V4Sub(c,V4Scale(a,b)); +} + +NV_FORCE_INLINE Vec4V V4MulAdd(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Add(V4Mul(a,b),c); +} + +NV_FORCE_INLINE Vec4V V4NegMulSub(const Vec4V a, const Vec4V b, const Vec4V c) +{ + return V4Sub(c,V4Mul(a,b)); +} + +NV_FORCE_INLINE Vec4V V4Abs(const Vec4V a) +{ + return V4Max(a,V4Neg(a)); +} + +NV_FORCE_INLINE FloatV V4SumElements(const Vec4V a) +{ + const Vec4V xy = V4UnpackXY(a, a); //x,x,y,y + const Vec4V zw = V4UnpackZW(a, a); //z,z,w,w + const Vec4V xz_yw = V4Add(xy, zw); //x+z,x+z,y+w,y+w + const FloatV xz = V4GetX(xz_yw); //x+z + const FloatV yw = V4GetZ(xz_yw); //y+w + return FAdd(xz, yw); //sum +} + +NV_FORCE_INLINE FloatV V4Dot(const Vec4V a, const Vec4V b) +{ + __m128 dot1 = _mm_mul_ps(a, b); //x,y,z,w + __m128 shuf1 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(2,1,0,3)); //w,x,y,z + __m128 shuf2 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(1,0,3,2)); //z,w,x,y + __m128 shuf3 = _mm_shuffle_ps(dot1, dot1, _MM_SHUFFLE(0,3,2,1)); //y,z,w,x + return _mm_add_ps(_mm_add_ps(shuf2, shuf3), _mm_add_ps(dot1,shuf1)); +} + +NV_FORCE_INLINE FloatV V4Length(const Vec4V a) +{ + return _mm_sqrt_ps(V4Dot(a,a)); +} + +NV_FORCE_INLINE FloatV V4LengthSq(const Vec4V a) +{ + return V4Dot(a,a); +} + +NV_FORCE_INLINE Vec4V V4Normalize(const Vec4V a) +{ + VECMATHAOS_ASSERT(!FAllEq(V4Dot(a,a), FZero())); + return V4ScaleInv(a,_mm_sqrt_ps(V4Dot(a,a))); +} + +NV_FORCE_INLINE Vec4V V4NormalizeFast(const Vec4V a) +{ + return V4ScaleInvFast(a,_mm_sqrt_ps(V4Dot(a,a))); +} + +NV_FORCE_INLINE Vec4V V4NormalizeSafe(const Vec4V a) +{ + const __m128 zero=FZero(); + const __m128 eps=V3Eps(); + const __m128 length=V4Length(a); + const __m128 isGreaterThanZero=V4IsGrtr(length,eps); + return V4Sel(isGreaterThanZero,V4ScaleInv(a,length),zero); +} + +NV_FORCE_INLINE Vec4V V4Sel(const BoolV c, const Vec4V a, const Vec4V b) +{ + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE BoolV V4IsGrtr(const Vec4V a, const Vec4V b) +{ + return _mm_cmpgt_ps(a,b); +} + +NV_FORCE_INLINE BoolV V4IsGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return _mm_cmpge_ps(a,b); +} + +NV_FORCE_INLINE BoolV V4IsEq(const Vec4V a, const Vec4V b) +{ + return _mm_cmpeq_ps(a,b); +} + +NV_FORCE_INLINE BoolV V4IsEqU32(const VecU32V a, const VecU32V b) +{ + return internalWindowsSimd::m128_I2F(_mm_cmpeq_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE Vec4V V4Max(const Vec4V a, const Vec4V b) +{ + return _mm_max_ps(a, b); +} + +NV_FORCE_INLINE Vec4V V4Min(const Vec4V a, const Vec4V b) +{ + return _mm_min_ps(a, b); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V4ExtractMax(const Vec4V a) +{ + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,1,0,3)); + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,0,3,2)); + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,3,2,1)); + + return _mm_max_ps(_mm_max_ps(a, shuf1), _mm_max_ps(shuf2, shuf3)); +} + +//Extract the maximum value from a +NV_FORCE_INLINE FloatV V4ExtractMin(const Vec4V a) +{ + __m128 shuf1 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,1,0,3)); + __m128 shuf2 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,0,3,2)); + __m128 shuf3 = _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,3,2,1)); + + return _mm_min_ps(_mm_min_ps(a, shuf1), _mm_min_ps(shuf2, shuf3)); +} + +NV_FORCE_INLINE Vec4V V4Clamp(const Vec4V a, const Vec4V minV, const Vec4V maxV) +{ + return V4Max(V4Min(a,maxV),minV); +} + +NV_FORCE_INLINE uint32_t V4AllGrtr(const Vec4V a, const Vec4V b) +{ + return internalWindowsSimd::BAllTrue4_R(V4IsGrtr(a, b)); +} + + +NV_FORCE_INLINE uint32_t V4AllGrtrOrEq(const Vec4V a, const Vec4V b) +{ + return internalWindowsSimd::BAllTrue4_R(V4IsGrtrOrEq(a, b)); +} + +NV_FORCE_INLINE uint32_t V4AllEq(const Vec4V a, const Vec4V b) +{ + return internalWindowsSimd::BAllTrue4_R(V4IsEq(a, b)); +} + +NV_FORCE_INLINE Vec4V V4Round(const Vec4V a) +{ + //return _mm_round_ps(a, 0x0); + const Vec4V half = V4Load(0.5f); + const __m128 signBit = _mm_cvtepi32_ps(_mm_srli_epi32(_mm_cvtps_epi32(a), 31)); + const Vec4V aRound = V4Sub(V4Add(a, half), signBit); + __m128i tmp = _mm_cvttps_epi32(aRound); + return _mm_cvtepi32_ps(tmp); +} + + +NV_FORCE_INLINE Vec4V V4Sin(const Vec4V a) +{ + //Vec4V V1, V2, V3, V5, V7, V9, V11, V13, V15, V17, V19, V21, V23; + //Vec4V S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const Vec4V twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + // sin(V) ~= V - V^3 / 3! + V^5 / 5! - V^7 / 7! + V^9 / 9! - V^11 / 11! + V^13 / 13! - + // V^15 / 15! + V^17 / 17! - V^19 / 19! + V^21 / 21! - V^23 / 23! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V3 = V4Mul(V2, V1); + const Vec4V V5 = V4Mul(V3, V2); + const Vec4V V7 = V4Mul(V5, V2); + const Vec4V V9 = V4Mul(V7, V2); + const Vec4V V11 = V4Mul(V9, V2); + const Vec4V V13 = V4Mul(V11, V2); + const Vec4V V15 = V4Mul(V13, V2); + const Vec4V V17 = V4Mul(V15, V2); + const Vec4V V19 = V4Mul(V17, V2); + const Vec4V V21 = V4Mul(V19, V2); + const Vec4V V23 = V4Mul(V21, V2); + + const Vec4V sinCoefficients0 = V4LoadA(g_NVSinCoefficients0.f); + const Vec4V sinCoefficients1 = V4LoadA(g_NVSinCoefficients1.f); + const Vec4V sinCoefficients2 = V4LoadA(g_NVSinCoefficients2.f); + + const FloatV S1 = V4GetY(sinCoefficients0); + const FloatV S2 = V4GetZ(sinCoefficients0); + const FloatV S3 = V4GetW(sinCoefficients0); + const FloatV S4 = V4GetX(sinCoefficients1); + const FloatV S5 = V4GetY(sinCoefficients1); + const FloatV S6 = V4GetZ(sinCoefficients1); + const FloatV S7 = V4GetW(sinCoefficients1); + const FloatV S8 = V4GetX(sinCoefficients2); + const FloatV S9 = V4GetY(sinCoefficients2); + const FloatV S10 = V4GetZ(sinCoefficients2); + const FloatV S11 = V4GetW(sinCoefficients2); + + Result = V4MulAdd(S1, V3, V1); + Result = V4MulAdd(S2, V5, Result); + Result = V4MulAdd(S3, V7, Result); + Result = V4MulAdd(S4, V9, Result); + Result = V4MulAdd(S5, V11, Result); + Result = V4MulAdd(S6, V13, Result); + Result = V4MulAdd(S7, V15, Result); + Result = V4MulAdd(S8, V17, Result); + Result = V4MulAdd(S9, V19, Result); + Result = V4MulAdd(S10, V21, Result); + Result = V4MulAdd(S11, V23, Result); + + return Result; + +} + +NV_FORCE_INLINE Vec4V V4Cos(const Vec4V a) +{ + //XMVECTOR V1, V2, V4, V6, V8, V10, V12, V14, V16, V18, V20, V22; + //XMVECTOR C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11; + Vec4V Result; + + const Vec4V recipTwoPi = V4LoadA(g_NVReciprocalTwoPi.f); + const FloatV twoPi = V4LoadA(g_NVTwoPi.f); + const Vec4V tmp = V4Mul(a, recipTwoPi); + const Vec4V b = V4Round(tmp); + const Vec4V V1 = V4NegMulSub(twoPi, b, a); + + + // cos(V) ~= 1 - V^2 / 2! + V^4 / 4! - V^6 / 6! + V^8 / 8! - V^10 / 10! + V^12 / 12! - + // V^14 / 14! + V^16 / 16! - V^18 / 18! + V^20 / 20! - V^22 / 22! (for -PI <= V < PI) + const Vec4V V2 = V4Mul(V1, V1); + const Vec4V V4 = V4Mul(V2, V2); + const Vec4V V6 = V4Mul(V4, V2); + const Vec4V V8 = V4Mul(V4, V4); + const Vec4V V10 = V4Mul(V6, V4); + const Vec4V V12 = V4Mul(V6, V6); + const Vec4V V14 = V4Mul(V8, V6); + const Vec4V V16 = V4Mul(V8, V8); + const Vec4V V18 = V4Mul(V10, V8); + const Vec4V V20 = V4Mul(V10, V10); + const Vec4V V22 = V4Mul(V12, V10); + + const Vec4V cosCoefficients0 = V4LoadA(g_NVCosCoefficients0.f); + const Vec4V cosCoefficients1 = V4LoadA(g_NVCosCoefficients1.f); + const Vec4V cosCoefficients2 = V4LoadA(g_NVCosCoefficients2.f); + + const FloatV C1 = V4GetY(cosCoefficients0); + const FloatV C2 = V4GetZ(cosCoefficients0); + const FloatV C3 = V4GetW(cosCoefficients0); + const FloatV C4 = V4GetX(cosCoefficients1); + const FloatV C5 = V4GetY(cosCoefficients1); + const FloatV C6 = V4GetZ(cosCoefficients1); + const FloatV C7 = V4GetW(cosCoefficients1); + const FloatV C8 = V4GetX(cosCoefficients2); + const FloatV C9 = V4GetY(cosCoefficients2); + const FloatV C10 = V4GetZ(cosCoefficients2); + const FloatV C11 = V4GetW(cosCoefficients2); + + Result = V4MulAdd(C1, V2, V4One()); + Result = V4MulAdd(C2, V4, Result); + Result = V4MulAdd(C3, V6, Result); + Result = V4MulAdd(C4, V8, Result); + Result = V4MulAdd(C5, V10, Result); + Result = V4MulAdd(C6, V12, Result); + Result = V4MulAdd(C7, V14, Result); + Result = V4MulAdd(C8, V16, Result); + Result = V4MulAdd(C9, V18, Result); + Result = V4MulAdd(C10, V20, Result); + Result = V4MulAdd(C11, V22, Result); + + return Result; + +} + +NV_FORCE_INLINE void V4Transpose(Vec4V& col0, Vec4V& col1, Vec4V& col2, Vec4V& col3) +{ + Vec4V tmp0 = _mm_unpacklo_ps(col0, col1); + Vec4V tmp2 = _mm_unpacklo_ps(col2, col3); + Vec4V tmp1 = _mm_unpackhi_ps(col0, col1); + Vec4V tmp3 = _mm_unpackhi_ps(col2, col3); + col0 = _mm_movelh_ps(tmp0, tmp2); + col1 = _mm_movehl_ps(tmp2, tmp0); + col2 = _mm_movelh_ps(tmp1, tmp3); + col3 = _mm_movehl_ps(tmp3, tmp1); +} + +////////////////////////////////// +//BoolV +////////////////////////////////// + +NV_FORCE_INLINE BoolV BFFFF() +{ + return _mm_setzero_ps(); +} + +NV_FORCE_INLINE BoolV BFFFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0,0xFFFFFFFF}; + const __m128 ffft=_mm_load_ps((float*)&f); + return ffft;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, 0, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFFTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0}; + const __m128 fftf=_mm_load_ps((float*)&f); + return fftf;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFFTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 fftt=_mm_load_ps((float*)&f); + return fftt;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BFTFF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0}; + const __m128 ftff=_mm_load_ps((float*)&f); + return ftff;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0xFFFFFFFF}; + const __m128 ftft=_mm_load_ps((float*)&f); + return ftft;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0xFFFFFFFF,0}; + const __m128 fttf=_mm_load_ps((float*)&f); + return fttf;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, -1, -1, 0)); +} + +NV_FORCE_INLINE BoolV BFTTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 fttt=_mm_load_ps((float*)&f); + return fttt;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, -1, -1, 0)); +} + +NV_FORCE_INLINE BoolV BTFFF() +{ + //const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0}; + //const __m128 tfff=_mm_load_ps((float*)&f); + //return tfff; + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0xFFFFFFFF}; + const __m128 tfft=_mm_load_ps((float*)&f); + return tfft;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0xFFFFFFFF,0}; + const __m128 tftf=_mm_load_ps((float*)&f); + return tftf;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, -1, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTFTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 tftt=_mm_load_ps((float*)&f); + return tftt;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, -1, 0, -1)); +} + +NV_FORCE_INLINE BoolV BTTFF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0,0}; + const __m128 ttff=_mm_load_ps((float*)&f); + return ttff;*/ + + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, 0, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTFT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0,0xFFFFFFFF}; + const __m128 ttft=_mm_load_ps((float*)&f); + return ttft;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, 0, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTTF() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0}; + const __m128 tttf=_mm_load_ps((float*)&f); + return tttf;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, -1, -1, -1)); +} + +NV_FORCE_INLINE BoolV BTTTT() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}; + const __m128 tttt=_mm_load_ps((float*)&f); + return tttt;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, -1, -1, -1)); +} + +NV_FORCE_INLINE BoolV BXMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0xFFFFFFFF,0,0,0}; + const __m128 tfff=_mm_load_ps((float*)&f); + return tfff;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, 0, 0, -1)); +} + +NV_FORCE_INLINE BoolV BYMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0xFFFFFFFF,0,0}; + const __m128 ftff=_mm_load_ps((float*)&f); + return ftff;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, 0, -1, 0)); +} + +NV_FORCE_INLINE BoolV BZMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0xFFFFFFFF,0}; + const __m128 fftf=_mm_load_ps((float*)&f); + return fftf;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(0, -1, 0, 0)); +} + +NV_FORCE_INLINE BoolV BWMask() +{ + /*const NV_ALIGN(16, uint32_t f[4])={0,0,0,0xFFFFFFFF}; + const __m128 ffft=_mm_load_ps((float*)&f); + return ffft;*/ + return internalWindowsSimd::m128_I2F(_mm_set_epi32(-1, 0, 0, 0)); +} + + +NV_FORCE_INLINE BoolV BGetX(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE BoolV BGetY(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE BoolV BGetZ(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE BoolV BGetW(const BoolV f) +{ + return _mm_shuffle_ps(f, f, _MM_SHUFFLE(3,3,3,3)); +} + +NV_FORCE_INLINE BoolV BSetX(const BoolV v, const BoolV f) +{ + return V4Sel(BFTTT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetY(const BoolV v, const BoolV f) +{ + return V4Sel(BTFTT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetZ(const BoolV v, const BoolV f) +{ + return V4Sel(BTTFT(),v,f); +} + +NV_FORCE_INLINE BoolV BSetW(const BoolV v, const BoolV f) +{ + return V4Sel(BTTTF(),v,f); +} + +template BoolV BSplatElement(BoolV a) +{ + return internalWindowsSimd::m128_I2F(_mm_shuffle_epi32(internalWindowsSimd::m128_F2I(a), _MM_SHUFFLE(index, index, index, index))); +} + +NV_FORCE_INLINE BoolV BAnd(const BoolV a, const BoolV b) +{ + return (_mm_and_ps(a,b)); +} + +NV_FORCE_INLINE BoolV BNot(const BoolV a) +{ + const BoolV bAllTrue(BTTTT()); + return _mm_xor_ps(a, bAllTrue); +} + +NV_FORCE_INLINE BoolV BAndNot(const BoolV a, const BoolV b) +{ + return (_mm_andnot_ps(b, a)); +} + +NV_FORCE_INLINE BoolV BOr(const BoolV a, const BoolV b) +{ + return (_mm_or_ps(a,b)); +} + +NV_FORCE_INLINE BoolV BAllTrue4(const BoolV a) +{ + const BoolV bTmp = _mm_and_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,2,3))); + return _mm_and_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAnyTrue4(const BoolV a) +{ + const BoolV bTmp = _mm_or_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,3,2,3))); + return _mm_or_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAllTrue3(const BoolV a) +{ + const BoolV bTmp = _mm_and_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))); + return _mm_and_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE BoolV BAnyTrue3(const BoolV a) +{ + const BoolV bTmp = _mm_or_ps(_mm_shuffle_ps(a, a, _MM_SHUFFLE(0,1,0,1)), _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2))); + return _mm_or_ps(_mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(0,0,0,0)), _mm_shuffle_ps(bTmp, bTmp, _MM_SHUFFLE(1,1,1,1))); +} + +NV_FORCE_INLINE uint32_t BAllEq(const BoolV a, const BoolV b) +{ + const BoolV bTest = internalWindowsSimd::m128_I2F(_mm_cmpeq_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); + return internalWindowsSimd::BAllTrue4_R(bTest); +} + +NV_FORCE_INLINE uint32_t BAllEqTTTT(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)==15); +} + +NV_FORCE_INLINE uint32_t BAllEqFFFF(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)==0); +} + +NV_FORCE_INLINE uint32_t BGetBitMask(const BoolV a) +{ + return uint32_t(_mm_movemask_ps(a)); +} + +////////////////////////////////// +//MAT33V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M33MulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M33TrnspsMulV3(const Mat33V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Vec3V M33MulV3AddV3(const Mat33V& A, const Vec3V b, const Vec3V c) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + Vec3V result = V3MulAdd(A.col0, x, c); + result = V3MulAdd(A.col1, y, result); + return V3MulAdd(A.col2, z, result); +} + +NV_FORCE_INLINE Mat33V M33MulM33(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(M33MulV3(a,b.col0),M33MulV3(a,b.col1),M33MulV3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Add(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Scale(const Mat33V& a, const FloatV& b) +{ + return Mat33V(V3Scale(a.col0,b),V3Scale(a.col1,b),V3Scale(a.col2,b)); +} + +NV_FORCE_INLINE Mat33V M33Sub(const Mat33V& a, const Mat33V& b) +{ + return Mat33V(V3Sub(a.col0,b.col0),V3Sub(a.col1,b.col1),V3Sub(a.col2,b.col2)); +} + +NV_FORCE_INLINE Mat33V M33Neg(const Mat33V& a) +{ + return Mat33V(V3Neg(a.col0),V3Neg(a.col1),V3Neg(a.col2)); +} + +NV_FORCE_INLINE Mat33V M33Abs(const Mat33V& a) +{ + return Mat33V(V3Abs(a.col0),V3Abs(a.col1),V3Abs(a.col2)); +} + + +NV_FORCE_INLINE Mat33V M33Inverse(const Mat33V& a) +{ + const BoolV tfft=BTFFT(); + const BoolV tttf=BTTTF(); + const FloatV zero=V3Zero(); + const Vec3V cross01 = V3Cross(a.col0,a.col1); + const Vec3V cross12 = V3Cross(a.col1,a.col2); + const Vec3V cross20 = V3Cross(a.col2,a.col0); + const FloatV dot = V3Dot(cross01,a.col2); + const FloatV invDet = _mm_rcp_ps(dot); + const Vec3V mergeh = _mm_unpacklo_ps(cross12,cross01); + const Vec3V mergel = _mm_unpackhi_ps(cross12,cross01); + Vec3V colInv0 = _mm_unpacklo_ps(mergeh,cross20); + colInv0 = _mm_or_ps(_mm_andnot_ps(tttf, zero), _mm_and_ps(tttf, colInv0)); + const Vec3V zppd=_mm_shuffle_ps(mergeh,cross20,_MM_SHUFFLE(3,0,0,2)); + const Vec3V pbwp=_mm_shuffle_ps(cross20,mergeh,_MM_SHUFFLE(3,3,1,0)); + const Vec3V colInv1=_mm_or_ps(_mm_andnot_ps(BTFFT(), pbwp), _mm_and_ps(BTFFT(), zppd)); + const Vec3V xppd=_mm_shuffle_ps(mergel,cross20,_MM_SHUFFLE(3,0,0,0)); + const Vec3V pcyp=_mm_shuffle_ps(cross20,mergel,_MM_SHUFFLE(3,1,2,0)); + const Vec3V colInv2=_mm_or_ps(_mm_andnot_ps(tfft, pcyp), _mm_and_ps(tfft, xppd)); + + return Mat33V + ( + _mm_mul_ps(colInv0,invDet), + _mm_mul_ps(colInv1,invDet), + _mm_mul_ps(colInv2,invDet) + ); +} + + + +NV_FORCE_INLINE Mat33V M33Trnsps(const Mat33V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + + +NV_FORCE_INLINE Mat33V M33Identity() +{ + return Mat33V + ( + V3UnitX(), + V3UnitY(), + V3UnitZ() + ); +} + +NV_FORCE_INLINE Mat33V M33Diagonal(const Vec3VArg d) +{ + const FloatV x = V3Mul(V3UnitX(), d); + const FloatV y = V3Mul(V3UnitY(), d); + const FloatV z = V3Mul(V3UnitZ(), d); + return Mat33V(x, y, z); +} + + + +////////////////////////////////// +//MAT34V +////////////////////////////////// + +NV_FORCE_INLINE Vec3V M34MulV3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + const Vec3V v0PlusV1Plusv2=V3Add(v0PlusV1,v2); + return (V3Add(v0PlusV1Plusv2,a.col3)); +} + +NV_FORCE_INLINE Vec3V M34Mul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3GetX(b); + const FloatV y=V3GetY(b); + const FloatV z=V3GetZ(b); + const Vec3V v0=V3Scale(a.col0,x); + const Vec3V v1=V3Scale(a.col1,y); + const Vec3V v2=V3Scale(a.col2,z); + const Vec3V v0PlusV1=V3Add(v0,v1); + return V3Add(v0PlusV1,v2); +} + +NV_FORCE_INLINE Vec3V M34TrnspsMul33V3(const Mat34V& a, const Vec3V b) +{ + const FloatV x=V3Dot(a.col0,b); + const FloatV y=V3Dot(a.col1,b); + const FloatV z=V3Dot(a.col2,b); + return V3Merge(x,y,z); +} + +NV_FORCE_INLINE Mat34V M34MulM34(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(M34Mul33V3(a,b.col0), M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2),M34MulV3(a,b.col3)); +} + +NV_FORCE_INLINE Mat33V M34MulM33(const Mat34V& a, const Mat33V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat33V M34Mul33MM34(const Mat34V& a, const Mat34V& b) +{ + return Mat33V(M34Mul33V3(a,b.col0),M34Mul33V3(a,b.col1),M34Mul33V3(a,b.col2)); +} + +NV_FORCE_INLINE Mat34V M34Add(const Mat34V& a, const Mat34V& b) +{ + return Mat34V(V3Add(a.col0,b.col0),V3Add(a.col1,b.col1),V3Add(a.col2,b.col2),V3Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat34V M34Inverse(const Mat34V& a) +{ + Mat34V aInv; + const BoolV tfft=BTFFT(); + const BoolV tttf=BTTTF(); + const FloatV zero=V3Zero(); + const Vec3V cross01 = V3Cross(a.col0,a.col1); + const Vec3V cross12 = V3Cross(a.col1,a.col2); + const Vec3V cross20 = V3Cross(a.col2,a.col0); + const FloatV dot = V3Dot(cross01,a.col2); + const FloatV invDet = _mm_rcp_ps(dot); + const Vec3V mergeh = _mm_unpacklo_ps(cross12,cross01); + const Vec3V mergel = _mm_unpackhi_ps(cross12,cross01); + Vec3V colInv0 = _mm_unpacklo_ps(mergeh,cross20); + colInv0 = _mm_or_ps(_mm_andnot_ps(tttf, zero), _mm_and_ps(tttf, colInv0)); + const Vec3V zppd=_mm_shuffle_ps(mergeh,cross20,_MM_SHUFFLE(3,0,0,2)); + const Vec3V pbwp=_mm_shuffle_ps(cross20,mergeh,_MM_SHUFFLE(3,3,1,0)); + const Vec3V colInv1=_mm_or_ps(_mm_andnot_ps(BTFFT(), pbwp), _mm_and_ps(BTFFT(), zppd)); + const Vec3V xppd=_mm_shuffle_ps(mergel,cross20,_MM_SHUFFLE(3,0,0,0)); + const Vec3V pcyp=_mm_shuffle_ps(cross20,mergel,_MM_SHUFFLE(3,1,2,0)); + const Vec3V colInv2=_mm_or_ps(_mm_andnot_ps(tfft, pcyp), _mm_and_ps(tfft, xppd)); + aInv.col0=_mm_mul_ps(colInv0,invDet); + aInv.col1=_mm_mul_ps(colInv1,invDet); + aInv.col2=_mm_mul_ps(colInv2,invDet); + aInv.col3=M34Mul33V3(aInv,V3Neg(a.col3)); + return aInv; +} + +NV_FORCE_INLINE Mat33V M34Trnsps33(const Mat34V& a) +{ + return Mat33V + ( + V3Merge(V3GetX(a.col0),V3GetX(a.col1),V3GetX(a.col2)), + V3Merge(V3GetY(a.col0),V3GetY(a.col1),V3GetY(a.col2)), + V3Merge(V3GetZ(a.col0),V3GetZ(a.col1),V3GetZ(a.col2)) + ); +} + + + + +////////////////////////////////// +//MAT44V +////////////////////////////////// + +NV_FORCE_INLINE Vec4V M44MulV4(const Mat44V& a, const Vec4V b) +{ + const FloatV x=V4GetX(b); + const FloatV y=V4GetY(b); + const FloatV z=V4GetZ(b); + const FloatV w=V4GetW(b); + + const Vec4V v0=V4Scale(a.col0,x); + const Vec4V v1=V4Scale(a.col1,y); + const Vec4V v2=V4Scale(a.col2,z); + const Vec4V v3=V4Scale(a.col3,w); + const Vec4V v0PlusV1=V4Add(v0,v1); + const Vec4V v0PlusV1Plusv2=V4Add(v0PlusV1,v2); + return (V4Add(v0PlusV1Plusv2,v3)); +} + +NV_FORCE_INLINE Vec4V M44TrnspsMulV4(const Mat44V& a, const Vec4V b) +{ + NV_ALIGN(16, FloatV dotProdArray[4])= + { + V4Dot(a.col0,b), + V4Dot(a.col1,b), + V4Dot(a.col2,b), + V4Dot(a.col3,b) + }; + return V4Merge(dotProdArray); +} + +NV_FORCE_INLINE Mat44V M44MulM44(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(M44MulV4(a,b.col0),M44MulV4(a,b.col1),M44MulV4(a,b.col2),M44MulV4(a,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Add(const Mat44V& a, const Mat44V& b) +{ + return Mat44V(V4Add(a.col0,b.col0),V4Add(a.col1,b.col1),V4Add(a.col2,b.col2),V4Add(a.col3,b.col3)); +} + +NV_FORCE_INLINE Mat44V M44Trnsps(const Mat44V& a) +{ + const Vec4V v0 = _mm_unpacklo_ps(a.col0, a.col2); + const Vec4V v1 = _mm_unpackhi_ps(a.col0, a.col2); + const Vec4V v2 = _mm_unpacklo_ps(a.col1, a.col3); + const Vec4V v3 = _mm_unpackhi_ps(a.col1, a.col3); + return Mat44V( _mm_unpacklo_ps(v0, v2),_mm_unpackhi_ps(v0, v2),_mm_unpacklo_ps(v1, v3),_mm_unpackhi_ps(v1, v3)); +} + +NV_FORCE_INLINE Mat44V M44Inverse(const Mat44V& a) +{ + __m128 minor0, minor1, minor2, minor3; + __m128 row0, row1, row2, row3; + __m128 det, tmp1; + + tmp1=V4Zero(); + row1=V4Zero(); + row3=V4Zero(); + + row0=a.col0; + row1=_mm_shuffle_ps(a.col1,a.col1,_MM_SHUFFLE(1,0,3,2)); + row2=a.col2; + row3=_mm_shuffle_ps(a.col3,a.col3,_MM_SHUFFLE(1,0,3,2)); + + tmp1 = _mm_mul_ps(row2, row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor0 = _mm_mul_ps(row1, tmp1); + minor1 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(_mm_mul_ps(row1, tmp1), minor0); + minor1 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor1); + minor1 = _mm_shuffle_ps(minor1, minor1, 0x4E); + + tmp1 = _mm_mul_ps(row1, row2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor0 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor0); + minor3 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(minor0, _mm_mul_ps(row3, tmp1)); + minor3 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor3); + minor3 = _mm_shuffle_ps(minor3, minor3, 0x4E); + + tmp1 = _mm_mul_ps(_mm_shuffle_ps(row1, row1, 0x4E), row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + row2 = _mm_shuffle_ps(row2, row2, 0x4E); + minor0 = _mm_add_ps(_mm_mul_ps(row2, tmp1), minor0); + minor2 = _mm_mul_ps(row0, tmp1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor0 = _mm_sub_ps(minor0, _mm_mul_ps(row2, tmp1)); + minor2 = _mm_sub_ps(_mm_mul_ps(row0, tmp1), minor2); + minor2 = _mm_shuffle_ps(minor2, minor2, 0x4E); + + tmp1 = _mm_mul_ps(row0, row1); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor2 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor2); + minor3 = _mm_sub_ps(_mm_mul_ps(row2, tmp1), minor3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor2 = _mm_sub_ps(_mm_mul_ps(row3, tmp1), minor2); + minor3 = _mm_sub_ps(minor3, _mm_mul_ps(row2, tmp1)); + + tmp1 = _mm_mul_ps(row0, row3); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor1 = _mm_sub_ps(minor1, _mm_mul_ps(row2, tmp1)); + minor2 = _mm_add_ps(_mm_mul_ps(row1, tmp1), minor2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor1 = _mm_add_ps(_mm_mul_ps(row2, tmp1), minor1); + minor2 = _mm_sub_ps(minor2, _mm_mul_ps(row1, tmp1)); + + tmp1 = _mm_mul_ps(row0, row2); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0xB1); + minor1 = _mm_add_ps(_mm_mul_ps(row3, tmp1), minor1); + minor3 = _mm_sub_ps(minor3, _mm_mul_ps(row1, tmp1)); + tmp1 = _mm_shuffle_ps(tmp1, tmp1, 0x4E); + minor1 = _mm_sub_ps(minor1, _mm_mul_ps(row3, tmp1)); + minor3 = _mm_add_ps(_mm_mul_ps(row1, tmp1), minor3); + + det = _mm_mul_ps(row0, minor0); + det = _mm_add_ps(_mm_shuffle_ps(det, det, 0x4E), det); + det = _mm_add_ss(_mm_shuffle_ps(det, det, 0xB1), det); + tmp1 = _mm_rcp_ss(det); +#if 0 + det = _mm_sub_ss(_mm_add_ss(tmp1, tmp1), _mm_mul_ss(det, _mm_mul_ss(tmp1, tmp1))); + det = _mm_shuffle_ps(det, det, 0x00); +#else + det= _mm_shuffle_ps(tmp1, tmp1, _MM_SHUFFLE(0,0,0,0)); +#endif + + minor0 = _mm_mul_ps(det, minor0); + minor1 = _mm_mul_ps(det, minor1); + minor2 = _mm_mul_ps(det, minor2); + minor3 = _mm_mul_ps(det, minor3); + Mat44V invTrans(minor0,minor1,minor2,minor3); + return M44Trnsps(invTrans); +} + +NV_FORCE_INLINE Vec4V V4LoadXYZW(const float& x, const float& y, const float& z, const float& w) +{ + return _mm_set_ps(w, z, y, x); +} + +/* +// AP: work in progress - use proper SSE intrinsics where possible +NV_FORCE_INLINE VecU16V V4U32PK(VecU32V a, VecU32V b) +{ + VecU16V result; + result.m128_u16[0] = uint16_t(NvClamp((a).m128_u32[0], 0, 0xFFFF)); + result.m128_u16[1] = uint16_t(NvClamp((a).m128_u32[1], 0, 0xFFFF)); + result.m128_u16[2] = uint16_t(NvClamp((a).m128_u32[2], 0, 0xFFFF)); + result.m128_u16[3] = uint16_t(NvClamp((a).m128_u32[3], 0, 0xFFFF)); + result.m128_u16[4] = uint16_t(NvClamp((b).m128_u32[0], 0, 0xFFFF)); + result.m128_u16[5] = uint16_t(NvClamp((b).m128_u32[1], 0, 0xFFFF)); + result.m128_u16[6] = uint16_t(NvClamp((b).m128_u32[2], 0, 0xFFFF)); + result.m128_u16[7] = uint16_t(NvClamp((b).m128_u32[3], 0, 0xFFFF)); + return result; +} +*/ + +NV_FORCE_INLINE VecU32V V4U32Sel(const BoolV c, const VecU32V a, const VecU32V b) +{ + return internalWindowsSimd::m128_I2F(_mm_or_si128( + _mm_andnot_si128(internalWindowsSimd::m128_F2I(c), internalWindowsSimd::m128_F2I(b)), + _mm_and_si128(internalWindowsSimd::m128_F2I(c), internalWindowsSimd::m128_F2I(a)) + )); +} + +NV_FORCE_INLINE VecU32V V4U32or(VecU32V a, VecU32V b) +{ + return internalWindowsSimd::m128_I2F(_mm_or_si128(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U32and(VecU32V a, VecU32V b) +{ + return internalWindowsSimd::m128_I2F(_mm_and_si128(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U32Andc(VecU32V a, VecU32V b) +{ + return internalWindowsSimd::m128_I2F(_mm_andnot_si128(internalWindowsSimd::m128_F2I(b), internalWindowsSimd::m128_F2I(a))); +} + +/* +NV_FORCE_INLINE VecU16V V4U16Or(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_or_si128(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16And(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_and_si128(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} +*/ + +/* +NV_FORCE_INLINE VecU16V V4U16Andc(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_andnot_si128(internalWindowsSimd::m128_F2I(b), internalWindowsSimd::m128_F2I(a))); +} +*/ + +NV_FORCE_INLINE VecI32V U4Load(const uint32_t i) +{ + return (_mm_load1_ps((float*)&i)); +} + +NV_FORCE_INLINE VecU32V U4LoadU(const uint32_t* i) +{ + return _mm_loadu_ps((float*)i); +} + +NV_FORCE_INLINE VecU32V U4LoadA(const uint32_t* i) +{ + VECMATHAOS_ASSERT(0==((size_t)i & 0x0f)); + return _mm_load_ps((float*)i); +} + +NV_FORCE_INLINE VecI32V I4Load(const int32_t i) +{ + return (_mm_load1_ps((float*)&i)); +} + +NV_FORCE_INLINE VecI32V I4LoadU(const int32_t* i) +{ + return _mm_loadu_ps((float*)i); +} + +NV_FORCE_INLINE VecI32V I4LoadA(const int32_t* i) +{ + return _mm_load_ps((float*)i); +} + +NV_FORCE_INLINE VecI32V VecI32V_Add(const VecI32VArg a, const VecI32VArg b) +{ + return internalWindowsSimd::m128_I2F(_mm_add_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sub(const VecI32VArg a, const VecI32VArg b) +{ + return internalWindowsSimd::m128_I2F(_mm_sub_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE BoolV VecI32V_IsGrtr(const VecI32VArg a, const VecI32VArg b) +{ + return internalWindowsSimd::m128_I2F(_mm_cmpgt_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE BoolV VecI32V_IsEq(const VecI32VArg a, const VecI32VArg b) +{ + return internalWindowsSimd::m128_I2F(_mm_cmpeq_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecI32V V4I32Sel(const BoolV c, const VecI32V a, const VecI32V b) +{ + return V4U32Sel(c, a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Zero() +{ + return V4Zero(); +} + +NV_FORCE_INLINE VecI32V VecI32V_One() +{ + return I4Load(1); +} + +NV_FORCE_INLINE VecI32V VecI32V_Two() +{ + return I4Load(2); +} + +NV_FORCE_INLINE VecI32V VecI32V_MinusOne() +{ + return I4Load(-1); +} + +NV_FORCE_INLINE VecU32V U4Zero() +{ + return U4Load(0); +} + +NV_FORCE_INLINE VecU32V U4One() +{ + return U4Load(1); +} + +NV_FORCE_INLINE VecU32V U4Two() +{ + return U4Load(2); +} + +NV_FORCE_INLINE VecI32V VecI32V_Sel(const BoolV c, const VecI32VArg a, const VecI32VArg b) +{ + VECMATHAOS_ASSERT(_VecMathTests::allElementsEqualBoolV(c,BTTTT()) || _VecMathTests::allElementsEqualBoolV(c,BFFFF())); + return _mm_or_ps(_mm_andnot_ps(c, b), _mm_and_ps(c, a)); +} + +NV_FORCE_INLINE VecShiftV VecI32V_PrepareShift(const VecI32VArg shift) +{ + VecShiftV preparedShift; + preparedShift.shift = VecI32V_Sel(BTFFF(), shift, VecI32V_Zero()); + return preparedShift; +} + +NV_FORCE_INLINE VecI32V VecI32V_LeftShift(const VecI32VArg a, const VecShiftVArg count) +{ + return internalWindowsSimd::m128_I2F(_mm_sll_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(count.shift))); +} + +NV_FORCE_INLINE VecI32V VecI32V_RightShift(const VecI32VArg a, const VecShiftVArg count) +{ + return internalWindowsSimd::m128_I2F(_mm_srl_epi32(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(count.shift))); +} + +NV_FORCE_INLINE VecI32V VecI32V_And(const VecI32VArg a, const VecI32VArg b) +{ + return _mm_and_ps(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_Or(const VecI32VArg a, const VecI32VArg b) +{ + return _mm_or_ps(a, b); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetX(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(0,0,0,0)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetY(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(1,1,1,1)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetZ(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(2,2,2,2)); +} + +NV_FORCE_INLINE VecI32V VecI32V_GetW(const VecI32VArg a) +{ + return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)); +} + + +NV_FORCE_INLINE void NvI32_From_VecI32V(const VecI32VArg a, int32_t* i) +{ + _mm_store_ss((float*)i,a); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_BoolV(const BoolVArg a) +{ + return a; +} + +NV_FORCE_INLINE VecU32V VecU32V_From_BoolV(const BoolVArg a) +{ + return a; +} + +NV_FORCE_INLINE VecI32V VecI32V_Merge(const VecI32VArg a, const VecI32VArg b, const VecI32VArg c, const VecI32VArg d) +{ + return V4Merge(a, b, c, d); +} + +/* +template NV_FORCE_INLINE VecI32V V4ISplat() +{ + VecI32V result; + result.m128_i32[0] = a; + result.m128_i32[1] = a; + result.m128_i32[2] = a; + result.m128_i32[3] = a; + return result; +} + +template NV_FORCE_INLINE VecU32V V4USplat() +{ + VecU32V result; + result.m128_u32[0] = a; + result.m128_u32[1] = a; + result.m128_u32[2] = a; + result.m128_u32[3] = a; + return result; +} +*/ + +/* +NV_FORCE_INLINE void V4U16StoreAligned(VecU16V val, VecU16V* address) +{ + *address = val; +} +*/ + +NV_FORCE_INLINE void V4U32StoreAligned(VecU32V val, VecU32V* address) +{ + *address = val; +} + +NV_FORCE_INLINE Vec4V V4Andc(const Vec4V a, const VecU32V b) +{ + VecU32V result32(a); + result32 = V4U32Andc(result32, b); + return Vec4V(result32); +} + +NV_FORCE_INLINE VecU32V V4IsGrtrV32u(const Vec4V a, const Vec4V b) +{ + return V4IsGrtr(a, b); +} + +NV_FORCE_INLINE VecU16V V4U16LoadAligned(VecU16V* addr) +{ + return *addr; +} + +NV_FORCE_INLINE VecU16V V4U16LoadUnaligned(VecU16V* addr) +{ + return *addr; +} + +// unsigned compares are not supported on x86 +NV_FORCE_INLINE VecU16V V4U16CompareGt(VecU16V a, VecU16V b) +{ + // _mm_cmpgt_epi16 doesn't work for unsigned values unfortunately + // return m128_I2F(_mm_cmpgt_epi16(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); + VecU16V result; + result.m128_u16[0] = uint16_t((a).m128_u16[0]>(b).m128_u16[0]); + result.m128_u16[1] = uint16_t((a).m128_u16[1]>(b).m128_u16[1]); + result.m128_u16[2] = uint16_t((a).m128_u16[2]>(b).m128_u16[2]); + result.m128_u16[3] = uint16_t((a).m128_u16[3]>(b).m128_u16[3]); + result.m128_u16[4] = uint16_t((a).m128_u16[4]>(b).m128_u16[4]); + result.m128_u16[5] = uint16_t((a).m128_u16[5]>(b).m128_u16[5]); + result.m128_u16[6] = uint16_t((a).m128_u16[6]>(b).m128_u16[6]); + result.m128_u16[7] = uint16_t((a).m128_u16[7]>(b).m128_u16[7]); + return result; +} + +NV_FORCE_INLINE VecU16V V4I16CompareGt(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_cmpgt_epi16(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecU32V(VecU32V a) +{ + Vec4V result = V4LoadXYZW(float(a.m128_u32[0]), float(a.m128_u32[1]), float(a.m128_u32[2]), float(a.m128_u32[3])); + return result; +} + +NV_FORCE_INLINE Vec4V Vec4V_From_VecI32V(VecI32V a) +{ + return _mm_cvtepi32_ps(internalWindowsSimd::m128_F2I(a)); +} + +NV_FORCE_INLINE VecI32V VecI32V_From_Vec4V(Vec4V a) +{ + return internalWindowsSimd::m128_I2F(_mm_cvttps_epi32(a)); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecU32V(VecU32V a) +{ + return Vec4V(a); +} + +NV_FORCE_INLINE Vec4V Vec4V_ReinterpretFrom_VecI32V(VecI32V a) +{ + return Vec4V(a); +} + +NV_FORCE_INLINE VecU32V VecU32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return VecU32V(a); +} + +NV_FORCE_INLINE VecI32V VecI32V_ReinterpretFrom_Vec4V(Vec4V a) +{ + return VecI32V(a); +} + +template NV_FORCE_INLINE VecU32V V4U32SplatElement(VecU32V a) +{ + return internalWindowsSimd::m128_I2F(_mm_shuffle_epi32(internalWindowsSimd::m128_F2I(a), _MM_SHUFFLE(index, index, index, index))); +} + +template NV_FORCE_INLINE Vec4V V4SplatElement(Vec4V a) +{ + return internalWindowsSimd::m128_I2F(_mm_shuffle_epi32(internalWindowsSimd::m128_F2I(a), _MM_SHUFFLE(index, index, index, index))); +} + +template NV_FORCE_INLINE VecU16V V4U16SplatElement(VecU16V a) +{ + VecU16V result = a; //AM: initializing to avoid nonsensical warning 4701 here with VC10. + for (int i = 0; i < 8; i ++) + result.m128_u16[i] = a.m128_u16[index]; + return result; +} + +template NV_FORCE_INLINE VecI16V V4I16SplatImmediate() +{ + VecI16V result; + result.m128_i16[0] = imm; + result.m128_i16[1] = imm; + result.m128_i16[2] = imm; + result.m128_i16[3] = imm; + result.m128_i16[4] = imm; + result.m128_i16[5] = imm; + result.m128_i16[6] = imm; + result.m128_i16[7] = imm; + return result; +} + +template NV_FORCE_INLINE VecU16V V4U16SplatImmediate() +{ + VecU16V result; + result.m128_u16[0] = imm; + result.m128_u16[1] = imm; + result.m128_u16[2] = imm; + result.m128_u16[3] = imm; + result.m128_u16[4] = imm; + result.m128_u16[5] = imm; + result.m128_u16[6] = imm; + result.m128_u16[7] = imm; + return result; +} + +NV_FORCE_INLINE VecU16V V4U16SubtractModulo(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_sub_epi16(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecU16V V4U16AddModulo(VecU16V a, VecU16V b) +{ + return internalWindowsSimd::m128_I2F(_mm_add_epi16(internalWindowsSimd::m128_F2I(a), internalWindowsSimd::m128_F2I(b))); +} + +NV_FORCE_INLINE VecU32V V4U16GetLo16(VecU16V a) +{ + VecU32V result; + result.m128_u32[0] = a.m128_u16[0]; + result.m128_u32[1] = a.m128_u16[2]; + result.m128_u32[2] = a.m128_u16[4]; + result.m128_u32[3] = a.m128_u16[6]; + return result; +} + +NV_FORCE_INLINE VecU32V V4U16GetHi16(VecU16V a) +{ + VecU32V result; + result.m128_u32[0] = a.m128_u16[1]; + result.m128_u32[1] = a.m128_u16[3]; + result.m128_u32[2] = a.m128_u16[5]; + result.m128_u32[3] = a.m128_u16[7]; + return result; +} + +NV_FORCE_INLINE VecU32V VecU32VLoadXYZW(uint32_t x, uint32_t y, uint32_t z, uint32_t w) +{ + VecU32V result; + result.m128_u32[0] = x; + result.m128_u32[1] = y; + result.m128_u32[2] = z; + result.m128_u32[3] = w; + return result; +} + + + +NV_FORCE_INLINE Vec4V V4ConvertFromI32V(const VecI32V in) +{ + return _mm_cvtepi32_ps(internalWindowsSimd::m128_F2I(in)); +} + + + +//not used + + +/* +NV_FORCE_INLINE Vec4V V4LoadAligned(Vec4V* addr) +{ + return *addr; +} +*/ + +/* +NV_FORCE_INLINE Vec4V V4LoadUnaligned(Vec4V* addr) +{ + return Vec4V_From_F32Array((float*)addr); +} +*/ + +/* +NV_FORCE_INLINE Vec4V V4Ceil(const Vec4V a) +{ + return Vec4V_From_XYZW(NvCeil(a.m128_f32[0]), NvCeil(a.m128_f32[1]), NvCeil(a.m128_f32[2]), NvCeil(a.m128_f32[3])); +} +*/ + +/* +NV_FORCE_INLINE Vec4V V4Floor(const Vec4V a) +{ + return Vec4V_From_XYZW(NvFloor(a.m128_f32[0]), NvFloor(a.m128_f32[1]), NvFloor(a.m128_f32[2]), NvFloor(a.m128_f32[3])); +} +*/ + +/* +NV_FORCE_INLINE VecU32V V4ConvertToU32VSaturate(const Vec4V a, uint32_t power) +{ + NV_ASSERT(power == 0 && "Non-zero power not supported in convertToU32VSaturate"); + NV_UNUSED(power); // prevent warning in release builds + float ffffFFFFasFloat = float(0xFFFF0000); + VecU32V result; + result.m128_u32[0] = uint32_t(NvClamp((a).m128_f32[0], 0.0f, ffffFFFFasFloat)); + result.m128_u32[1] = uint32_t(NvClamp((a).m128_f32[1], 0.0f, ffffFFFFasFloat)); + result.m128_u32[2] = uint32_t(NvClamp((a).m128_f32[2], 0.0f, ffffFFFFasFloat)); + result.m128_u32[3] = uint32_t(NvClamp((a).m128_f32[3], 0.0f, ffffFFFFasFloat)); + return result; +} +*/ + + +#endif //PS_WINDOWS_INLINE_AOS_H + diff --git a/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsIntrinsics.h b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsIntrinsics.h new file mode 100644 index 000000000..bfd4a5690 --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsIntrinsics.h @@ -0,0 +1,189 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_WINDOWS_NSWINDOWSINTRINSICS_H +#define NV_WINDOWS_NSWINDOWSINTRINSICS_H + +#include "Ns.h" +#include "NvAssert.h" + +// this file is for internal intrinsics - that is, intrinsics that are used in +// cross platform code but do not appear in the API + +#if !(NV_WINDOWS_FAMILY || NV_WINRT) +#error "This file should only be included by Windows or WIN8ARM builds!!" +#endif + +#pragma warning(push) +//'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives' +#pragma warning(disable : 4668) +#if NV_VC == 10 +#pragma warning(disable : 4987) // nonstandard extension used: 'throw (...)' +#endif +#include +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable : 4985) // 'symbol name': attributes not present on previous declaration +#include +#pragma warning(pop) + +#include +#include + +#pragma intrinsic(_BitScanForward) +#pragma intrinsic(_BitScanReverse) + +namespace nvidia +{ +namespace shdfnd +{ + +/* +* Implements a memory barrier +*/ +NV_FORCE_INLINE void memoryBarrier() +{ + _ReadWriteBarrier(); + /* long Barrier; + __asm { + xchg Barrier, eax + }*/ +} + +/*! +Returns the index of the highest set bit. Not valid for zero arg. +*/ +NV_FORCE_INLINE uint32_t highestSetBitUnsafe(uint32_t v) +{ + unsigned long retval; + _BitScanReverse(&retval, v); + return retval; +} + +/*! +Returns the index of the highest set bit. Undefined for zero arg. +*/ +NV_FORCE_INLINE uint32_t lowestSetBitUnsafe(uint32_t v) +{ + unsigned long retval; + _BitScanForward(&retval, v); + return retval; +} + +/*! +Returns the number of leading zeros in v. Returns 32 for v=0. +*/ +NV_FORCE_INLINE uint32_t countLeadingZeros(uint32_t v) +{ + if(v) + { + unsigned long bsr = (unsigned long)-1; + _BitScanReverse(&bsr, v); + return 31 - bsr; + } + else + return 32; +} + +/*! +Prefetch aligned cache size around \c ptr+offset. +*/ +#if !NV_ARM +NV_FORCE_INLINE void prefetchLine(const void* ptr, uint32_t offset = 0) +{ + // cache line on X86/X64 is 64-bytes so a 128-byte prefetch would require 2 prefetches. + // However, we can only dispatch a limited number of prefetch instructions so we opt to prefetch just 1 cache line + /*_mm_prefetch(((const char*)ptr + offset), _MM_HINT_T0);*/ + // We get slightly better performance prefetching to non-temporal addresses instead of all cache levels + _mm_prefetch(((const char*)ptr + offset), _MM_HINT_NTA); +} +#else +NV_FORCE_INLINE void prefetchLine(const void* ptr, uint32_t offset = 0) +{ + // arm does have 32b cache line size + __prefetch(((const char*)ptr + offset)); +} +#endif + +/*! +Prefetch \c count bytes starting at \c ptr. +*/ +#if !NV_ARM +NV_FORCE_INLINE void prefetch(const void* ptr, uint32_t count = 1) +{ + const char* cp = (char*)ptr; + uint64_t p = size_t(ptr); + uint64_t startLine = p >> 6, endLine = (p + count - 1) >> 6; + uint64_t lines = endLine - startLine + 1; + do + { + prefetchLine(cp); + cp += 64; + } while(--lines); +} +#else +NV_FORCE_INLINE void prefetch(const void* ptr, uint32_t count = 1) +{ + const char* cp = (char*)ptr; + uint32_t p = size_t(ptr); + uint32_t startLine = p >> 5, endLine = (p + count - 1) >> 5; + uint32_t lines = endLine - startLine + 1; + do + { + prefetchLine(cp); + cp += 32; + } while(--lines); +} +#endif + +//! \brief platform-specific reciprocal +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipFast(float a) +{ + return 1.0f / a; +} + +//! \brief platform-specific fast reciprocal square root +NV_CUDA_CALLABLE NV_FORCE_INLINE float recipSqrtFast(float a) +{ + return 1.0f / ::sqrtf(a); +} + +//! \brief platform-specific floor +NV_CUDA_CALLABLE NV_FORCE_INLINE float floatFloor(float x) +{ + return ::floorf(x); +} + +#define NS_EXPECT_TRUE(x) x +#define NS_EXPECT_FALSE(x) x + +} // namespace shdfnd +} // namespace nvidia + +#endif // #ifndef NV_WINDOWS_NSWINDOWSINTRINSICS_H diff --git a/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsTrigConstants.h b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsTrigConstants.h new file mode 100644 index 000000000..cc3b2d7ec --- /dev/null +++ b/blast/source/shared/NsFoundation/include/platform/windows/NsWindowsTrigConstants.h @@ -0,0 +1,74 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef PS_WINDOWS_TRIG_CONSTANTS_H +#define PS_WINDOWS_TRIG_CONSTANTS_H + +//#include "NvMath.h" + +#define NV_GLOBALCONST extern const __declspec(selectany) + +__declspec(align(16)) struct NV_VECTORF32 +{ + float f[4]; +}; + + +//#define NV_PI 3.141592654f +//#define NV_2PI 6.283185307f +//#define NV_1DIVPI 0.318309886f +//#define NV_1DIV2PI 0.159154943f +//#define NV_PIDIV2 1.570796327f +//#define NV_PIDIV4 0.785398163f + +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients0 = {{1.0f, -0.166666667f, 8.333333333e-3f, -1.984126984e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients1 = {{2.755731922e-6f, -2.505210839e-8f, 1.605904384e-10f, -7.647163732e-13f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinCoefficients2 = {{2.811457254e-15f, -8.220635247e-18f, 1.957294106e-20f, -3.868170171e-23f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients0 = {{1.0f, -0.5f, 4.166666667e-2f, -1.388888889e-3f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients1 = {{2.480158730e-5f, -2.755731922e-7f, 2.087675699e-9f, -1.147074560e-11f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosCoefficients2 = {{4.779477332e-14f, -1.561920697e-16f, 4.110317623e-19f, -8.896791392e-22f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients0 = {{1.0f, 0.333333333f, 0.133333333f, 5.396825397e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients1 = {{2.186948854e-2f, 8.863235530e-3f, 3.592128167e-3f, 1.455834485e-3f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanCoefficients2 = {{5.900274264e-4f, 2.391290764e-4f, 9.691537707e-5f, 3.927832950e-5f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients0 = {{-0.05806367563904f, -0.41861972469416f, 0.22480114791621f, 2.17337241360606f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients1 = {{0.61657275907170f, 4.29696498283455f, -1.18942822255452f, -6.53784832094831f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinCoefficients2 = {{-1.36926553863413f, -4.48179294237210f, 1.41810672941833f, 5.48179257935713f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients0 = {{1.0f, 0.333333334f, 0.2f, 0.142857143f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients1 = {{1.111111111e-1f, 9.090909091e-2f, 7.692307692e-2f, 6.666666667e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanCoefficients2 = {{5.882352941e-2f, 5.263157895e-2f, 4.761904762e-2f, 4.347826087e-2f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVSinEstCoefficients = {{1.0f, -1.66521856991541e-1f, 8.199913018755e-3f, -1.61475937228e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVCosEstCoefficients = {{1.0f, -4.95348008918096e-1f, 3.878259962881e-2f, -9.24587976263e-4f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTanEstCoefficients = {{2.484f, -1.954923183e-1f, 2.467401101f, NvInvPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVATanEstCoefficients = {{7.689891418951e-1f, 1.104742493348f, 8.661844266006e-1f, NvPiDivTwo}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinEstCoefficients = {{-1.36178272886711f, 2.37949493464538f, -8.08228565650486e-1f, 2.78440142746736e-1f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVASinEstConstants = {{1.00000011921f, NvPiDivTwo, 0.0f, 0.0f}}; +NV_GLOBALCONST NV_VECTORF32 g_NVPiConstants0 = {{NvPi, NvTwoPi, NvInvPi, NvInvTwoPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVReciprocalTwoPi = {{NvInvTwoPi, NvInvTwoPi, NvInvTwoPi, NvInvTwoPi}}; +NV_GLOBALCONST NV_VECTORF32 g_NVTwoPi = {{NvTwoPi, NvTwoPi, NvTwoPi, NvTwoPi}}; + +#endif diff --git a/blast/source/shared/NvTask/include/NvCpuDispatcher.h b/blast/source/shared/NvTask/include/NvCpuDispatcher.h new file mode 100644 index 000000000..b025432c8 --- /dev/null +++ b/blast/source/shared/NvTask/include/NvCpuDispatcher.h @@ -0,0 +1,82 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_CPU_DISPATCHER_H +#define NV_CPU_DISPATCHER_H + +#include "NvTaskDefine.h" +#include "NvSimpleTypes.h" + +namespace nvidia +{ + namespace task + { + +class NvBaseTask; + +/** + \brief A CpuDispatcher is responsible for scheduling the execution of tasks passed to it by the SDK. + + A typical implementation would for example use a thread pool with the dispatcher + pushing tasks onto worker thread queues or a global queue. + + @see NvBaseTask + @see NvTask + @see NvTaskManager +*/ +class NvCpuDispatcher +{ +public: + /** + \brief Called by the TaskManager when a task is to be queued for execution. + + Upon receiving a task, the dispatcher should schedule the task + to run when resource is available. After the task has been run, + it should call the release() method and discard it's pointer. + + \param[in] task The task to be run. + + @see NvBaseTask + */ + virtual void submitTask( NvBaseTask& task ) = 0; + + /** + \brief Returns the number of available worker threads for this dispatcher. + + The SDK will use this count to control how many tasks are submitted. By + matching the number of tasks with the number of execution units task + overhead can be reduced. + */ + virtual uint32_t getWorkerCount() const = 0; + + virtual ~NvCpuDispatcher() {} +}; + +} } // end nvidia namespace + +#endif diff --git a/blast/source/shared/NvTask/include/NvGpuDispatcher.h b/blast/source/shared/NvTask/include/NvGpuDispatcher.h new file mode 100644 index 000000000..bf3983aa5 --- /dev/null +++ b/blast/source/shared/NvTask/include/NvGpuDispatcher.h @@ -0,0 +1,269 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_GPU_DISPATCHER_H +#define NV_GPU_DISPATCHER_H + +#include "NvTaskDefine.h" +#include "NvTask.h" + +/* forward decl to avoid including */ +typedef struct CUstream_st* CUstream; + +namespace nvidia +{ + namespace cudamanager + { + struct NvGpuCopyDesc; + class NvCudaContextManager; + } + + namespace task + { + +NV_PUSH_PACK_DEFAULT + +class NvTaskManager; + +/** \brief A GpuTask dispatcher + * + * A NvGpuDispatcher executes GpuTasks submitted by one or more TaskManagers (one + * or more scenes). It maintains a CPU worker thread which waits on GpuTask + * "groups" to be submitted. The submission API is explicitly sessioned so that + * GpuTasks are dispatched together as a group whenever possible to improve + * parallelism on the GPU. + * + * A NvGpuDispatcher cannot be allocated ad-hoc, they are created as a result of + * creating a NvCudaContextManager. Every NvCudaContextManager has a NvGpuDispatcher + * instance that can be queried. In this way, each NvGpuDispatcher is tied to + * exactly one CUDA context. + * + * A scene will use CPU fallback Tasks for GpuTasks if the NvTaskManager provided + * to it does not have a NvGpuDispatcher. For this reason, the NvGpuDispatcher must + * be assigned to the NvTaskManager before the NvTaskManager is given to a scene. + * + * Multiple TaskManagers may safely share a single NvGpuDispatcher instance, thus + * enabling scenes to share a CUDA context. + * + * Only failureDetected() is intended for use by the user. The rest of the + * nvGpuDispatcher public methods are reserved for internal use by only both + * TaskManagers and GpuTasks. + */ +class NvGpuDispatcher +{ +public: + /** \brief Record the start of a simulation step + * + * A NvTaskManager calls this function to record the beginning of a simulation + * step. The NvGpuDispatcher uses this notification to initialize the + * profiler state. + */ + virtual void startSimulation() = 0; + + /** \brief Record the start of a GpuTask batch submission + * + * A NvTaskManager calls this function to notify the NvGpuDispatcher that one or + * more GpuTasks are about to be submitted for execution. The NvGpuDispatcher + * will not read the incoming task queue until it receives one finishGroup() + * call for each startGroup() call. This is to ensure as many GpuTasks as + * possible are executed together as a group, generating optimal parallelism + * on the GPU. + */ + virtual void startGroup() = 0; + + /** \brief Submit a GpuTask for execution + * + * Submitted tasks are pushed onto an incoming queue. The NvGpuDispatcher + * will take the contents of this queue every time the pending group count + * reaches 0 and run the group of submitted GpuTasks as an interleaved + * group. + */ + virtual void submitTask(NvTask& task) = 0; + + /** \brief Record the end of a GpuTask batch submission + * + * A NvTaskManager calls this function to notify the NvGpuDispatcher that it is + * done submitting a group of GpuTasks (GpuTasks which were all make ready + * to run by the same prerequisite dependency becoming resolved). If no + * other group submissions are in progress, the NvGpuDispatcher will execute + * the set of ready tasks. + */ + virtual void finishGroup() = 0; + + /** \brief Add a CUDA completion prerequisite dependency to a task + * + * A GpuTask calls this function to add a prerequisite dependency on another + * task (usually a CpuTask) preventing that task from starting until all of + * the CUDA kernels and copies already launched have been completed. The + * NvGpuDispatcher will increment that task's reference count, blocking its + * execution, until the CUDA work is complete. + * + * This is generally only required when a CPU task is expecting the results + * of the CUDA kernels to have been copied into host memory. + * + * This mechanism is not at all not required to ensure CUDA kernels and + * copies are issued in the correct order. Kernel issue order is determined + * by normal task dependencies. The rule of thumb is to only use a blocking + * completion prerequisite if the task in question depends on a completed + * GPU->Host DMA. + * + * The NvGpuDispatcher issues a blocking event record to CUDA for the purposes + * of tracking the already submitted CUDA work. When this event is + * resolved, the NvGpuDispatcher manually decrements the reference count of + * the specified task, allowing it to execute (assuming it does not have + * other pending prerequisites). + */ + virtual void addCompletionPrereq(NvBaseTask& task) = 0; + + /** \brief Retrieve the NvCudaContextManager associated with this + * NvGpuDispatcher + * + * Every NvCudaContextManager has one NvGpuDispatcher, and every NvGpuDispatcher + * has one NvCudaContextManager. + */ + virtual cudamanager::NvCudaContextManager* getCudaContextManager() = 0; + + /** \brief Record the end of a simulation frame + * + * A NvTaskManager calls this function to record the completion of its + * dependency graph. If profiling is enabled, the NvGpuDispatcher will + * trigger the retrieval of profiling data from the GPU at this point. + */ + virtual void stopSimulation() = 0; + + /** \brief Returns true if a CUDA call has returned a non-recoverable error + * + * A return value of true indicates a fatal error has occurred. To protect + * itself, the NvGpuDispatcher enters a fall through mode that allows GpuTasks + * to complete without being executed. This allows simulations to continue + * but leaves GPU content static or corrupted. + * + * The user may try to recover from these failures by deleting GPU content + * so the visual artifacts are minimized. But there is no way to recover + * the state of the GPU actors before the failure. Once a CUDA context is + * in this state, the only recourse is to create a new CUDA context, a new + * scene, and start over. + * + * This is our "Best Effort" attempt to not turn a soft failure into a hard + * failure because continued use of a CUDA context after it has returned an + * error will usually result in a driver reset. However if the initial + * failure was serious enough, a reset may have already occurred by the time + * we learn of it. + */ + virtual bool failureDetected() const = 0; + + /** \brief Force the NvGpuDispatcher into failure mode + * + * This API should be used if user code detects a non-recoverable CUDA + * error. This ensures the NvGpuDispatcher does not launch any further + * CUDA work. Subsequent calls to failureDetected() will return true. + */ + virtual void forceFailureMode() = 0; + + /** \brief Returns a pointer to the current in-use profile buffer + * + * The returned pointer should be passed to all kernel launches to enable + * CTA/Warp level profiling. If a data collector is not attached, or CTA + * profiling is not enabled, the pointer will be zero. + */ + virtual void* getCurrentProfileBuffer() const = 0; + + /** \brief Register kernel names with PlatformAnalyzer + * + * The returned uint16_t must be stored and used as a base offset for the ID + * passed to the KERNEL_START|STOP_EVENT macros. + */ + virtual uint16_t registerKernelNames(const char**, uint16_t count) = 0; + + /** \brief Launch a copy kernel with arbitrary number of copy commands + * + * This method is intended to be called from Kernel GpuTasks, but it can + * function outside of that context as well. + * + * If count is 1, the descriptor is passed to the kernel as arguments, so it + * may be declared on the stack. + * + * If count is greater than 1, the kernel will read the descriptors out of + * host memory. Because of this, the descriptor array must be located in + * page locked (pinned) memory. The provided descriptors may be modified by + * this method (converting host pointers to their GPU mapped equivalents) + * and should be considered *owned* by CUDA until the current batch of work + * has completed, so descriptor arrays should not be freed or modified until + * you have received a completion notification. + * + * If your GPU does not support mapping of page locked memory (SM>=1.1), + * this function degrades to calling CUDA copy methods. + */ + virtual void launchCopyKernel(cudamanager::NvGpuCopyDesc* desc, uint32_t count, CUstream stream) = 0; + + /** \brief Query pre launch task that runs before launching gpu kernels. + * + * This is part of an optional feature to schedule multiple gpu features + * at the same time to get kernels to run in parallel. + * \note Do *not* set the continuation on the returned task, but use addPreLaunchDependent(). + */ + virtual NvBaseTask& getPreLaunchTask() = 0; + + /** \brief Adds a gpu launch task that gets executed after the pre launch task. + * + * This is part of an optional feature to schedule multiple gpu features + * at the same time to get kernels to run in parallel. + * \note Each call adds a reference to the pre-launch task. + */ + virtual void addPreLaunchDependent(NvBaseTask& dependent) = 0; + + /** \brief Query post launch task that runs after the gpu is done. + * + * This is part of an optional feature to schedule multiple gpu features + * at the same time to get kernels to run in parallel. + * \note Do *not* set the continuation on the returned task, but use addPostLaunchDependent(). + */ + virtual NvBaseTask& getPostLaunchTask() = 0; + + /** \brief Adds a task that gets executed after the post launch task. + * + * This is part of an optional feature to schedule multiple gpu features + * at the same time to get kernels to run in parallel. + * \note Each call adds a reference to the pre-launch task. + */ + virtual void addPostLaunchDependent(NvBaseTask& dependent) = 0; + +protected: + /** \brief protected destructor + * + * GpuDispatchers are allocated and freed by their NvCudaContextManager. + */ + virtual ~NvGpuDispatcher() {} +}; + +NV_POP_PACK + +} } // end nvidia namespace + + +#endif diff --git a/blast/source/shared/NvTask/include/NvTask.h b/blast/source/shared/NvTask/include/NvTask.h new file mode 100644 index 000000000..8938b20eb --- /dev/null +++ b/blast/source/shared/NvTask/include/NvTask.h @@ -0,0 +1,363 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_TASK_H +#define NV_TASK_H + +#include "NvTaskDefine.h" +#include "NvTaskManager.h" +#include "NvAssert.h" + +namespace nvidia +{ + namespace task + { + +/** + * \brief Base class of all task types + * + * NvBaseTask defines a runnable reference counted task with built-in profiling. + */ +class NvBaseTask +{ +public: + NvBaseTask() : mEventID(0xFFFF), mProfileStat(0), mTm(0) {} + virtual ~NvBaseTask() {} + + /** + * \brief The user-implemented run method where the task's work should be performed + * + * run() methods must be thread safe, stack friendly (no alloca, etc), and + * must never block. + */ + virtual void run() = 0; + + /** + * \brief Return a user-provided task name for profiling purposes. + * + * It does not have to be unique, but unique names are helpful. + * + * \return The name of this task + */ + virtual const char* getName() const = 0; + + //! \brief Implemented by derived implementation classes + virtual void addReference() = 0; + //! \brief Implemented by derived implementation classes + virtual void removeReference() = 0; + //! \brief Implemented by derived implementation classes + virtual int32_t getReference() const = 0; + + /** \brief Implemented by derived implementation classes + * + * A task may assume in its release() method that the task system no longer holds + * references to it - so it may safely run its destructor, recycle itself, etc. + * provided no additional user references to the task exist + */ + + virtual void release() = 0; + + /** + * \brief Execute user run method with wrapping profiling events. + * + * Optional entry point for use by CpuDispatchers. + * + * \param[in] threadId The threadId of the thread that executed the task. + */ + NV_INLINE void runProfiled(uint32_t threadId=0) + { + mTm->emitStartEvent(*this, threadId); + run(); + mTm->emitStopEvent(*this, threadId); + } + + /** + * \brief Specify stop event statistic + * + * If called before or while the task is executing, the given value + * will appear in the task's event bar in the profile viewer + * + * \param[in] stat The stat to signal when the task is finished + */ + NV_INLINE void setProfileStat( uint16_t stat ) + { + mProfileStat = stat; + } + + /** + * \brief Return NvTaskManager to which this task was submitted + * + * Note, can return NULL if task was not submitted, or has been + * completed. + */ + NV_INLINE NvTaskManager* getTaskManager() const + { + return mTm; + } + +protected: + uint16_t mEventID; //!< Registered profile event ID + uint16_t mProfileStat; //!< Profiling statistic + NvTaskManager* mTm; //!< Owning NvTaskManager instance + + friend class NvTaskMgr; +}; + + +/** + * \brief A NvBaseTask implementation with deferred execution and full dependencies + * + * A NvTask must be submitted to a NvTaskManager to to be executed, Tasks may + * optionally be named when they are submitted. + */ +class NvTask : public NvBaseTask +{ +public: + NvTask() : mTaskID(0) {} + virtual ~NvTask() {} + + //! \brief Release method implementation + virtual void release() + { + NV_ASSERT(mTm); + + // clear mTm before calling taskCompleted() for safety + NvTaskManager* save = mTm; + mTm = NULL; + save->taskCompleted( *this ); + } + + //! \brief Inform the NvTaskManager this task must finish before the given + // task is allowed to start. + NV_INLINE void finishBefore( NvTaskID taskID ) + { + NV_ASSERT(mTm); + mTm->finishBefore( *this, taskID); + } + + //! \brief Inform the NvTaskManager this task cannot start until the given + // task has completed. + NV_INLINE void startAfter( NvTaskID taskID ) + { + NV_ASSERT(mTm); + mTm->startAfter( *this, taskID ); + } + + /** + * \brief Manually increment this task's reference count. The task will + * not be allowed to run until removeReference() is called. + */ + NV_INLINE void addReference() + { + NV_ASSERT(mTm); + mTm->addReference( mTaskID ); + } + + /** + * \brief Manually decrement this task's reference count. If the reference + * count reaches zero, the task will be dispatched. + */ + NV_INLINE void removeReference() + { + NV_ASSERT(mTm); + mTm->decrReference( mTaskID ); + } + + /** + * \brief Return the ref-count for this task + */ + NV_INLINE int32_t getReference() const + { + return mTm->getReference( mTaskID ); + } + + /** + * \brief Return the unique ID for this task + */ + NV_INLINE NvTaskID getTaskID() const + { + return mTaskID; + } + + /** + * \brief Called by NvTaskManager at submission time for initialization + * + * Perform simulation step initialization here. + */ + virtual void submitted() + { + mStreamIndex = 0; + mPreSyncRequired = false; + mProfileStat = 0; + } + + /** + * \brief Specify that the GpuTask sync flag be set + */ + NV_INLINE void requestSyncPoint() + { + mPreSyncRequired = true; + } + + +protected: + NvTaskID mTaskID; //!< ID assigned at submission + uint32_t mStreamIndex; //!< GpuTask CUDA stream index + bool mPreSyncRequired; //!< GpuTask sync flag + + friend class NvTaskMgr; + friend class NvGpuWorkerThread; +}; + + +/** + * \brief A NvBaseTask implementation with immediate execution and simple dependencies + * + * A NvLightCpuTask bypasses the NvTaskManager launch dependencies and will be + * submitted directly to your scene's CpuDispatcher. When the run() function + * completes, it will decrement the reference count of the specified + * continuation task. + * + * You must use a full-blown NvTask if you want your task to be resolved + * by another NvTask, or you need more than a single dependency to be + * resolved when your task completes, or your task will not run on the + * CpuDispatcher. + */ +class NvLightCpuTask : public NvBaseTask +{ +public: + NvLightCpuTask() + : mCont( NULL ) + , mRefCount( 0 ) + { + } + virtual ~NvLightCpuTask() + { + mTm = NULL; + } + + /** + * \brief Initialize this task and specify the task that will have its ref count decremented on completion. + * + * Submission is deferred until the task's mRefCount is decremented to zero. + * Note that we only use the NvTaskManager to query the appropriate dispatcher. + * + * \param[in] tm The NvTaskManager this task is managed by + * \param[in] c The task to be executed when this task has finished running + */ + NV_INLINE void setContinuation(NvTaskManager& tm, NvBaseTask* c) + { + NV_ASSERT( mRefCount == 0 ); + mRefCount = 1; + mCont = c; + mTm = &tm; + if( mCont ) + { + mCont->addReference(); + } + } + + /** + * \brief Initialize this task and specify the task that will have its ref count decremented on completion. + * + * This overload of setContinuation() queries the NvTaskManager from the continuation + * task, which cannot be NULL. + * \param[in] c The task to be executed after this task has finished running + */ + NV_INLINE void setContinuation( NvBaseTask* c ) + { + NV_ASSERT( c ); + NV_ASSERT( mRefCount == 0 ); + mRefCount = 1; + mCont = c; + if( mCont ) + { + mCont->addReference(); + mTm = mCont->getTaskManager(); + NV_ASSERT( mTm ); + } + } + + /** + * \brief Retrieves continuation task + */ + NV_INLINE NvBaseTask* getContinuation() const + { + return mCont; + } + + /** + * \brief Manually decrement this task's reference count. If the reference + * count reaches zero, the task will be dispatched. + */ + NV_INLINE void removeReference() + { + mTm->decrReference(*this); + } + + /** \brief Return the ref-count for this task */ + NV_INLINE int32_t getReference() const + { + return mRefCount; + } + + /** + * \brief Manually increment this task's reference count. The task will + * not be allowed to run until removeReference() is called. + */ + NV_INLINE void addReference() + { + mTm->addReference(*this); + } + + /** + * \brief called by CpuDispatcher after run method has completed + * + * Decrements the continuation task's reference count, if specified. + */ + NV_INLINE void release() + { + if( mCont ) + { + mCont->removeReference(); + } + } + +protected: + + NvBaseTask* mCont; //!< Continuation task, can be NULL + volatile int32_t mRefCount; //!< NvTask is dispatched when reaches 0 + + friend class NvTaskMgr; +}; + + +} }// end physx namespace + + +#endif diff --git a/physx/source/compiler/resource_x86/resource.h b/blast/source/shared/NvTask/include/NvTaskDefine.h similarity index 72% rename from physx/source/compiler/resource_x86/resource.h rename to blast/source/shared/NvTask/include/NvTaskDefine.h index 0f414a559..8a5e913ae 100644 --- a/physx/source/compiler/resource_x86/resource.h +++ b/blast/source/shared/NvTask/include/NvTaskDefine.h @@ -22,22 +22,27 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. -// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. -// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by PhysX3.rc -// +#ifndef NV_TASK_DEFINE_H +#define NV_TASK_DEFINE_H + +#include "NvPreprocessor.h" + +#define NV_SUPPORT_GPU ((NV_WINDOWS_FAMILY && !NV_WINRT) || NV_LINUX) + +namespace nvidia +{ + namespace task + { -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 +#ifndef NV_SUPPORT_NVTASK_PROFILING +#define NV_SUPPORT_NVTASK_PROFILING 1 #endif + +} } // end nvidia namespace + + #endif diff --git a/blast/source/shared/NvTask/include/NvTaskManager.h b/blast/source/shared/NvTask/include/NvTaskManager.h new file mode 100644 index 000000000..074cd1c8e --- /dev/null +++ b/blast/source/shared/NvTask/include/NvTaskManager.h @@ -0,0 +1,235 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2023 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2023 NovodeX AG. All rights reserved. + +#ifndef NV_TASK_MANAGER_H +#define NV_TASK_MANAGER_H + +#include "NvTaskDefine.h" +#include "NvSimpleTypes.h" +#include "NvErrorCallback.h" + +namespace nvidia +{ + namespace task + { + +NV_PUSH_PACK_DEFAULT + +class NvBaseTask; +class NvTask; +class NvLightCpuTask; +typedef unsigned int NvTaskID; + +/** +\brief Identifies the type of each heavyweight NvTask object + +\note This enum type is only used by NvTask and GpuTask objects, LightCpuTasks do not use this enum. + +@see NvTask +@see NvLightCpuTask +*/ +struct NvTaskType +{ + /** + * \brief Identifies the type of each heavyweight NvTask object + */ + enum Enum + { + TT_CPU, //!< NvTask will be run on the CPU + TT_GPU, //!< NvTask will be run on the GPU + TT_NOT_PRESENT, //!< Return code when attempting to find a task that does not exist + TT_COMPLETED //!< NvTask execution has been completed + }; +}; + +class NvCpuDispatcher; +class NvGpuDispatcher; + +/** + \brief The NvTaskManager interface + + A NvTaskManager instance holds references to user-provided dispatcher objects, when tasks are + submitted the NvTaskManager routes them to the appropriate dispatcher and handles task profiling if enabled. + + + @see CpuDispatcher + @see NvGpuDispatcher + +*/ +class NvTaskManager +{ +public: + + /** + \brief Set the user-provided dispatcher object for CPU tasks + + \param[in] ref The dispatcher object. + + @see CpuDispatcher + */ + virtual void setCpuDispatcher(NvCpuDispatcher& ref) = 0; + + /** + \brief Set the user-provided dispatcher object for GPU tasks + + \param[in] ref The dispatcher object. + + @see NvGpuDispatcher + */ + virtual void setGpuDispatcher(NvGpuDispatcher& ref) = 0; + + /** + \brief Get the user-provided dispatcher object for CPU tasks + + \return The CPU dispatcher object. + + @see CpuDispatcher + */ + virtual NvCpuDispatcher* getCpuDispatcher() const = 0; + + /** + \brief Get the user-provided dispatcher object for GPU tasks + + \return The GPU dispatcher object. + + @see NvGpuDispatcher + */ + virtual NvGpuDispatcher* getGpuDispatcher() const = 0; + + /** + \brief Reset any dependencies between Tasks + + \note Will be called at the start of every frame before tasks are submitted. + + @see NvTask + */ + virtual void resetDependencies() = 0; + + /** + \brief Called by the owning scene to start the task graph. + + \note All tasks with with ref count of 1 will be dispatched. + + @see NvTask + */ + virtual void startSimulation() = 0; + + /** + \brief Called by the owning scene at the end of a simulation step to synchronize the NvGpuDispatcher + + @see NvGpuDispatcher + */ + virtual void stopSimulation() = 0; + + /** + \brief Called by the worker threads to inform the NvTaskManager that a task has completed processing + + \param[in] task The task which has been completed + */ + virtual void taskCompleted(NvTask& task) = 0; + + /** + \brief Retrieve a task by name + + \param[in] name The unique name of a task + \return The ID of the task with that name, or TT_NOT_PRESENT if not found + */ + virtual NvTaskID getNamedTask(const char* name) = 0; + + /** + \brief Submit a task with a unique name. + + \param[in] task The task to be executed + \param[in] name The unique name of a task + \param[in] type The type of the task (default TT_CPU) + \return The ID of the task with that name, or TT_NOT_PRESENT if not found + + */ + virtual NvTaskID submitNamedTask(NvTask* task, const char* name, NvTaskType::Enum type = NvTaskType::TT_CPU) = 0; + + /** + \brief Submit an unnamed task. + + \param[in] task The task to be executed + \param[in] type The type of the task (default TT_CPU) + + \return The ID of the task with that name, or TT_NOT_PRESENT if not found + */ + virtual NvTaskID submitUnnamedTask(NvTask& task, NvTaskType::Enum type = NvTaskType::TT_CPU) = 0; + + /** + \brief Retrieve a task given a task ID + + \param[in] id The ID of the task to return, a valid ID must be passed or results are undefined + + \return The task associated with the ID + */ + virtual NvTask* getTaskFromID(NvTaskID id) = 0; + + /** + \brief Release the NvTaskManager object, referenced dispatchers will not be released + */ + virtual void release() = 0; + + /** + \brief Construct a new NvTaskManager instance with the given [optional] dispatchers + */ + static NvTaskManager* createTaskManager(NvErrorCallback& errorCallback, NvCpuDispatcher* = 0, NvGpuDispatcher* = 0); + +protected: + virtual ~NvTaskManager() {} + + /*! \cond PRIVATE */ + + virtual void finishBefore(NvTask& task, NvTaskID taskID) = 0; + virtual void startAfter(NvTask& task, NvTaskID taskID) = 0; + + virtual void addReference(NvTaskID taskID) = 0; + virtual void decrReference(NvTaskID taskID) = 0; + virtual int32_t getReference(NvTaskID taskID) const = 0; + + virtual void decrReference(NvLightCpuTask&) = 0; + virtual void addReference(NvLightCpuTask&) = 0; + + virtual void emitStartEvent(NvBaseTask&, uint32_t threadId=0) = 0; + virtual void emitStopEvent(NvBaseTask&, uint32_t threadId=0) = 0; + + /*! \endcond */ + + friend class NvBaseTask; + friend class NvTask; + friend class NvLightCpuTask; + friend class NvGpuWorkerThread; +}; + +NV_POP_PACK + +} } // end nvidia namespace + + +#endif diff --git a/blast/source/shared/filebuf/include/PsAsciiConversion.h b/blast/source/shared/filebuf/include/PsAsciiConversion.h deleted file mode 100644 index adfe53315..000000000 --- a/blast/source/shared/filebuf/include/PsAsciiConversion.h +++ /dev/null @@ -1,99 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -#ifndef PSFILEBUFFER_PSASCIICONVERSION_H -#define PSFILEBUFFER_PSASCIICONVERSION_H - -/*! -\file -\brief PxAsciiConversion namespace contains string/value helper functions -*/ - -#include "PxMath.h" -#include "PsString.h" -#include -#include -#include -#include -#include - -namespace physx -{ -namespace general_string_parsing2 -{ -namespace PxAsc -{ - -const uint32_t PxF32StrLen = 24; -const uint32_t PxF64StrLen = 32; -const uint32_t IntStrLen = 32; - -PX_INLINE bool isWhiteSpace(char c); -PX_INLINE const char * skipNonWhiteSpace(const char *scan); -PX_INLINE const char * skipWhiteSpace(const char *scan); - -////////////////////////// -// str to value functions -////////////////////////// -PX_INLINE bool strToBool(const char *str, const char **endptr); -PX_INLINE int8_t strToI8(const char *str, const char **endptr); -PX_INLINE int16_t strToI16(const char *str, const char **endptr); -PX_INLINE int32_t strToI32(const char *str, const char **endptr); -PX_INLINE int64_t strToI64(const char *str, const char **endptr); -PX_INLINE uint8_t strToU8(const char *str, const char **endptr); -PX_INLINE uint16_t strToU16(const char *str, const char **endptr); -PX_INLINE uint32_t strToU32(const char *str, const char **endptr); -PX_INLINE uint64_t strToU64(const char *str, const char **endptr); -PX_INLINE float strToF32(const char *str, const char **endptr); -PX_INLINE double strToF64(const char *str, const char **endptr); -PX_INLINE void strToF32s(float *v,uint32_t count,const char *str, const char**endptr); - - -////////////////////////// -// value to str functions -////////////////////////// -PX_INLINE const char * valueToStr( bool val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( int8_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( int16_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( int32_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( int64_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( uint8_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( uint16_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( uint32_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( uint64_t val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( float val, char *buf, uint32_t n ); -PX_INLINE const char * valueToStr( double val, char *buf, uint32_t n ); - -#include "PsAsciiConversion.inl" - -} // end of namespace -} // end of namespace -using namespace general_string_parsing2; -} // end of namespace - - -#endif // PSFILEBUFFER_PSASCIICONVERSION_H diff --git a/blast/source/shared/filebuf/include/PsAsciiConversion.inl b/blast/source/shared/filebuf/include/PsAsciiConversion.inl deleted file mode 100644 index 1403c914e..000000000 --- a/blast/source/shared/filebuf/include/PsAsciiConversion.inl +++ /dev/null @@ -1,566 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -/*! -\file -\brief NvAsciiConversion namespace contains string/value helper functions -*/ - -#include - -PX_INLINE bool isWhiteSpace(char c) -{ - bool ret = false; - if ( c == 32 || c == 9 || c == 13 || c == 10 || c == ',' ) ret = true; - return ret; -} - -PX_INLINE const char * skipNonWhiteSpace(const char *scan) -{ - while ( !isWhiteSpace(*scan) && *scan) scan++; - if ( *scan == 0 ) scan = NULL; - return scan; -} -PX_INLINE const char * skipWhiteSpace(const char *scan) -{ - while ( isWhiteSpace(*scan) && *scan ) scan++; - if ( *scan == 0 ) scan = NULL; - return scan; -} - -static double strtod_fast(const char * pString) -{ - //--- - // Find the start of the string - const char* pNumberStart = skipWhiteSpace(pString); - - //--- - // Find the end of the string - const char* pNumberEnd = pNumberStart; - - // skip optional sign - if( *pNumberEnd == '-' || *pNumberEnd == '+' ) - ++pNumberEnd; - - // skip optional digits - while( isdigit(*pNumberEnd) ) - ++pNumberEnd; - - // skip optional decimal and digits - if( *pNumberEnd == '.' ) - { - ++pNumberEnd; - - while( isdigit(*pNumberEnd) ) - ++pNumberEnd; - } - - // skip optional exponent - if( *pNumberEnd == 'd' - || *pNumberEnd == 'D' - || *pNumberEnd == 'e' - || *pNumberEnd == 'E' ) - { - ++pNumberEnd; - - if( *pNumberEnd == '-' || *pNumberEnd == '+' ) - ++pNumberEnd; - - while( isdigit(*pNumberEnd) ) - ++pNumberEnd; - } - - //--- - // Process the string - const uint32_t numberLen = (const uint32_t)(pNumberEnd-pNumberStart); - char buffer[32]; - if( numberLen+1 < sizeof(buffer)/sizeof(buffer[0]) ) - { - // copy into buffer and terminate with NUL before calling the - // standard function - memcpy( buffer, pNumberStart, numberLen*sizeof(buffer[0]) ); - buffer[numberLen] = '\0'; - const double result = strtod( buffer, NULL ); - - return result; - } - else - { - // buffer was too small so just call the standard function on the - // source input to get a proper result - return strtod( pString, NULL ); - } -} - -static float strtof_fast(const char* pString) -{ - return (float)strtod_fast(pString); -} - - -////////////////////////// -// str to value functions -////////////////////////// -PX_INLINE bool strToBool(const char *str, const char **endptr) -{ - bool ret = false; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - size_t len = (size_t)(end - begin); - if ( physx::shdfnd::strnicmp(begin,"true", len) == 0 || physx::shdfnd::strnicmp(begin,"1", len) == 0 ) - ret = true; - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE int8_t strToI8(const char *str, const char **endptr) -{ - int8_t ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - if( strncmp(begin, "INT8_MIN", (size_t)(end-begin)) == 0) - ret = INT8_MIN; - else if( strncmp(begin, "INT8_MAX", (size_t)(end-begin)) == 0) - ret = INT8_MAX; - else if( strncmp(begin, "PX_MIN_I8", (size_t)(end-begin)) == 0) - ret = INT8_MIN; - else if( strncmp(begin, "PX_MAX_I8", (size_t)(end-begin)) == 0) - ret = INT8_MAX; - else - ret = (int8_t)strtol(begin, 0, 0); //FIXME - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE int16_t strToI16(const char *str, const char **endptr) -{ - int16_t ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - if( strncmp(begin, "INT16_MIN", (size_t)(end-begin)) == 0) - ret = INT16_MIN; - else if( strncmp(begin, "INT16_MAX", (size_t)(end-begin)) == 0) - ret = INT16_MAX; - else if( strncmp(begin, "PX_MIN_I16", (size_t)(end-begin)) == 0) - ret = INT16_MIN; - else if( strncmp(begin, "PX_MAX_I16", (size_t)(end-begin)) == 0) - ret = INT16_MAX; - else - ret = (int16_t)strtol(begin, 0, 0); //FIXME - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE int32_t strToI32(const char *str, const char **endptr) -{ - int32_t ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - if( strncmp(begin, "INT32_MIN", (size_t)(end-begin)) == 0) - ret = INT32_MIN; - else if( strncmp(begin, "INT32_MAX", (size_t)(end-begin)) == 0) - ret = INT32_MAX; - else if( strncmp(begin, "PX_MIN_I32", (size_t)(end-begin)) == 0) - ret = INT32_MIN; - else if( strncmp(begin, "PX_MAX_I32", (size_t)(end-begin)) == 0) - ret = INT32_MAX; - else - ret = (int32_t)strtol(begin, 0, 0); //FIXME - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE int64_t strToI64(const char *str, const char **endptr) -{ - int64_t ret; - const char *begin = skipWhiteSpace(str); - - //FIXME -#ifdef _WIN32 //NV_WINDOWS, NV_XBOX - ret = (int64_t)_strtoi64(begin,0,10); -#else - ret = (int64_t)strtoll(begin,0,10); -#endif - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE uint8_t strToU8(const char *str, const char **endptr) -{ - uint8_t ret; - const char *begin = skipWhiteSpace(str); - - ret = (uint8_t)strtoul(begin, 0, 0); - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE uint16_t strToU16(const char *str, const char **endptr) -{ - uint16_t ret; - const char *end; - const char *begin = skipWhiteSpace(str); - - end = skipNonWhiteSpace(begin); - if( !end ) - end = begin + strlen(str); - - if( strncmp(begin, "UINT16_MAX", (size_t)(end-begin)) == 0) - ret = UINT16_MAX; - else if( strncmp(begin, "PX_MAX_U16", (size_t)(end-begin)) == 0) - ret = UINT16_MAX; - else - ret = (uint16_t)strtoul(begin,0,0); - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE uint32_t strToU32(const char *str, const char **endptr) -{ - uint32_t ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - if( strncmp(begin, "UINT32_MAX", (size_t)(end-begin)) == 0) - ret = UINT32_MAX; - else if( strncmp(begin, "PX_U32_MAX", (size_t)(end-begin)) == 0) - ret = UINT32_MAX; - else - ret = (uint32_t)strtoul(begin,0,0); - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE uint64_t strToU64(const char *str, const char **endptr) -{ - uint64_t ret; - const char *begin; - begin = skipWhiteSpace(str); - - //FIXME -#ifdef _WIN32 //NV_WINDOWS, NV_XBOX - ret = (uint64_t)_strtoui64(begin,0,10); -#else - ret = (uint64_t)strtoull(begin,0,10); -#endif - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -#ifndef DEBUGGING_MISMATCHES -#define DEBUGGING_MISMATCHES 0 -#endif - -PX_INLINE float strToF32(const char *str, const char **endptr) -{ - float ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - const uint32_t len = (uint32_t)(end - begin); - - const char F32_MIN[] = "NV_MIN_F32"; - const char F32_MAX[] = "NV_MAX_F32"; - const char PX_F32_MIN[] = "PX_MIN_F32"; - const char PX_F32_MAX[] = "PX_MAX_F32"; - - if( strncmp(begin, PX_F32_MIN, physx::PxMin(len, (uint32_t)(sizeof(PX_F32_MIN) - 1))) == 0) - ret = -PX_MAX_F32; - else if( strncmp(begin, PX_F32_MAX, physx::PxMin(len, (uint32_t)(sizeof(PX_F32_MAX) - 1))) == 0) - ret = PX_MAX_F32; - else if( strncmp(begin, F32_MIN, physx::PxMin(len, (uint32_t)(sizeof(F32_MIN) - 1))) == 0) - ret = -PX_MAX_F32; - else if( strncmp(begin, F32_MAX, physx::PxMin(len, (uint32_t)(sizeof(F32_MAX) - 1))) == 0) - ret = PX_MAX_F32; - else - { - ret = (float)strtof_fast(begin); - } - -#if DEBUGGING_MISMATCHES - float testRet = (float)atof(begin); - if( ret != testRet ) - { - PX_ASSERT(0 && "Inaccurate float string"); - } -#endif - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - - -PX_INLINE double strToF64(const char *str, const char **endptr) -{ - double ret; - const char *begin = skipWhiteSpace(str); - const char *end = skipNonWhiteSpace(begin); - - end = skipNonWhiteSpace(begin); - - if( !end ) - end = begin + strlen(str); - - const uint32_t len = (const uint32_t)(end - begin); - - const char F64_MIN[] = "PX_MIN_F364"; - const char F64_MAX[] = "PX_MAX_F64"; - const char PX_F64_MIN[] = "PX_MIN_F64"; - const char PX_F64_MAX[] = "PX_MAX_F64"; - - if( strncmp(begin, F64_MIN, physx::PxMin(len, (uint32_t)(sizeof(F64_MIN) - 1))) == 0) - ret = -PX_MAX_F64; - else if( strncmp(begin, F64_MAX, physx::PxMin(len, (uint32_t)(sizeof(F64_MAX) - 1))) == 0) - ret = PX_MAX_F64; - else if( strncmp(begin, PX_F64_MIN, physx::PxMin(len, (uint32_t)(sizeof(PX_F64_MIN) - 1))) == 0) - ret = -PX_MAX_F64; - else if( strncmp(begin, PX_F64_MAX, physx::PxMin(len, (uint32_t)(sizeof(PX_F64_MAX) - 1))) == 0) - ret = PX_MAX_F64; - else - ret = (double)strtod_fast(begin); - - if( endptr ) - *endptr = skipNonWhiteSpace(begin); - - return ret; -} - -PX_INLINE void strToF32s(float *v,uint32_t count,const char *str, const char**endptr) -{ - const char *begin = skipWhiteSpace(str); - - if ( *begin == '(' ) begin++; - for (uint32_t i=0; i - -namespace physx -{ -namespace general_PxIOStream2 -{ - using namespace shdfnd; - -//Use this class if you want to use your own allocator -class PxFileBufferBase : public PxFileBuf -{ -public: - PxFileBufferBase(const char *fileName,OpenMode mode) - { - mOpenMode = mode; - mFph = NULL; - mFileLength = 0; - mSeekRead = 0; - mSeekWrite = 0; - mSeekCurrent = 0; - switch ( mode ) - { - case OPEN_READ_ONLY: - mFph = fopen(fileName,"rb"); - break; - case OPEN_WRITE_ONLY: - mFph = fopen(fileName,"wb"); - break; - case OPEN_READ_WRITE_NEW: - mFph = fopen(fileName,"wb+"); - break; - case OPEN_READ_WRITE_EXISTING: - mFph = fopen(fileName,"rb+"); - break; - case OPEN_FILE_NOT_FOUND: - break; - } - if ( mFph ) - { - fseek(mFph,0L,SEEK_END); - mFileLength = static_cast(ftell(mFph)); - fseek(mFph,0L,SEEK_SET); - } - else - { - mOpenMode = OPEN_FILE_NOT_FOUND; - } - } - - virtual ~PxFileBufferBase() - { - close(); - } - - virtual void close() - { - if( mFph ) - { - fclose(mFph); - mFph = 0; - } - } - - virtual SeekType isSeekable(void) const - { - return mSeekType; - } - - virtual uint32_t read(void* buffer, uint32_t size) - { - uint32_t ret = 0; - if ( mFph ) - { - setSeekRead(); - ret = static_cast(::fread(buffer,1,size,mFph)); - mSeekRead+=ret; - mSeekCurrent+=ret; - } - return ret; - } - - virtual uint32_t peek(void* buffer, uint32_t size) - { - uint32_t ret = 0; - if ( mFph ) - { - uint32_t loc = tellRead(); - setSeekRead(); - ret = static_cast(::fread(buffer,1,size,mFph)); - mSeekCurrent+=ret; - seekRead(loc); - } - return ret; - } - - virtual uint32_t write(const void* buffer, uint32_t size) - { - uint32_t ret = 0; - if ( mFph ) - { - setSeekWrite(); - ret = static_cast(::fwrite(buffer,1,size,mFph)); - mSeekWrite+=ret; - mSeekCurrent+=ret; - if ( mSeekWrite > mFileLength ) - { - mFileLength = mSeekWrite; - } - } - return ret; - } - - virtual uint32_t tellRead(void) const - { - return mSeekRead; - } - - virtual uint32_t tellWrite(void) const - { - return mSeekWrite; - } - - virtual uint32_t seekRead(uint32_t loc) - { - mSeekRead = loc; - if ( mSeekRead > mFileLength ) - { - mSeekRead = mFileLength; - } - return mSeekRead; - } - - virtual uint32_t seekWrite(uint32_t loc) - { - mSeekWrite = loc; - if ( mSeekWrite > mFileLength ) - { - mSeekWrite = mFileLength; - } - return mSeekWrite; - } - - virtual void flush(void) - { - if ( mFph ) - { - ::fflush(mFph); - } - } - - virtual OpenMode getOpenMode(void) const - { - return mOpenMode; - } - - virtual uint32_t getFileLength(void) const - { - return mFileLength; - } - -private: - // Moves the actual file pointer to the current read location - void setSeekRead(void) - { - if ( mSeekRead != mSeekCurrent && mFph ) - { - if ( mSeekRead >= mFileLength ) - { - fseek(mFph,0L,SEEK_END); - } - else - { - fseek(mFph,static_cast(mSeekRead),SEEK_SET); - } - mSeekCurrent = mSeekRead = static_cast(ftell(mFph)); - } - } - // Moves the actual file pointer to the current write location - void setSeekWrite(void) - { - if ( mSeekWrite != mSeekCurrent && mFph ) - { - if ( mSeekWrite >= mFileLength ) - { - fseek(mFph,0L,SEEK_END); - } - else - { - fseek(mFph,static_cast(mSeekWrite),SEEK_SET); - } - mSeekCurrent = mSeekWrite = static_cast(ftell(mFph)); - } - } - - - FILE *mFph; - uint32_t mSeekRead; - uint32_t mSeekWrite; - uint32_t mSeekCurrent; - uint32_t mFileLength; - SeekType mSeekType; - OpenMode mOpenMode; -}; - -//Use this class if you want to use PhysX memory allocator -class PsFileBuffer: public PxFileBufferBase, public UserAllocated -{ -public: - PsFileBuffer(const char *fileName,OpenMode mode): PxFileBufferBase(fileName, mode) {} -}; - -} -using namespace general_PxIOStream2; -} - -#endif // PSFILEBUFFER_PSFILEBUFFER_H diff --git a/blast/source/shared/filebuf/include/PsIOStream.h b/blast/source/shared/filebuf/include/PsIOStream.h deleted file mode 100644 index 963f6f391..000000000 --- a/blast/source/shared/filebuf/include/PsIOStream.h +++ /dev/null @@ -1,137 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -#ifndef PSFILEBUFFER_PSIOSTREAM_H -#define PSFILEBUFFER_PSIOSTREAM_H - -/*! -\file -\brief PsIOStream class -*/ -#include "filebuf/PxFileBuf.h" - -#include "Ps.h" -#include "PsString.h" -#include -#include -#include "PsAsciiConversion.h" - -#define safePrintf physx::shdfnd::snprintf - -PX_PUSH_PACK_DEFAULT - -namespace physx -{ - namespace general_PxIOStream2 - { - -/** -\brief A wrapper class for physx::PxFileBuf that provides both binary and ASCII streaming capabilities -*/ -class PsIOStream -{ - static const uint32_t MAX_STREAM_STRING = 1024; -public: - /** - \param [in] stream the physx::PxFileBuf through which all reads and writes will be performed - \param [in] streamLen the length of the input data stream when de-serializing - */ - PsIOStream(physx::PxFileBuf &stream,uint32_t streamLen) : mBinary(true), mStreamLen(streamLen), mStream(stream) { } - ~PsIOStream(void) { } - - /** - \brief Set the stream to binary or ASCII - - \param [in] state if true, stream is binary, if false, stream is ASCII - - If the stream is binary, stream access is passed straight through to the respecitve - physx::PxFileBuf methods. If the stream is ASCII, all stream reads and writes are converted to - human readable ASCII. - */ - PX_INLINE void setBinary(bool state) { mBinary = state; } - PX_INLINE bool getBinary() { return mBinary; } - - PX_INLINE PsIOStream& operator<<(bool v); - PX_INLINE PsIOStream& operator<<(char c); - PX_INLINE PsIOStream& operator<<(uint8_t v); - PX_INLINE PsIOStream& operator<<(int8_t v); - - PX_INLINE PsIOStream& operator<<(const char *c); - PX_INLINE PsIOStream& operator<<(int64_t v); - PX_INLINE PsIOStream& operator<<(uint64_t v); - PX_INLINE PsIOStream& operator<<(double v); - PX_INLINE PsIOStream& operator<<(float v); - PX_INLINE PsIOStream& operator<<(uint32_t v); - PX_INLINE PsIOStream& operator<<(int32_t v); - PX_INLINE PsIOStream& operator<<(uint16_t v); - PX_INLINE PsIOStream& operator<<(int16_t v); - PX_INLINE PsIOStream& operator<<(const physx::PxVec3 &v); - PX_INLINE PsIOStream& operator<<(const physx::PxQuat &v); - PX_INLINE PsIOStream& operator<<(const physx::PxBounds3 &v); - - PX_INLINE PsIOStream& operator>>(const char *&c); - PX_INLINE PsIOStream& operator>>(bool &v); - PX_INLINE PsIOStream& operator>>(char &c); - PX_INLINE PsIOStream& operator>>(uint8_t &v); - PX_INLINE PsIOStream& operator>>(int8_t &v); - PX_INLINE PsIOStream& operator>>(int64_t &v); - PX_INLINE PsIOStream& operator>>(uint64_t &v); - PX_INLINE PsIOStream& operator>>(double &v); - PX_INLINE PsIOStream& operator>>(float &v); - PX_INLINE PsIOStream& operator>>(uint32_t &v); - PX_INLINE PsIOStream& operator>>(int32_t &v); - PX_INLINE PsIOStream& operator>>(uint16_t &v); - PX_INLINE PsIOStream& operator>>(int16_t &v); - PX_INLINE PsIOStream& operator>>(physx::PxVec3 &v); - PX_INLINE PsIOStream& operator>>(physx::PxQuat &v); - PX_INLINE PsIOStream& operator>>(physx::PxBounds3 &v); - - uint32_t getStreamLen(void) const { return mStreamLen; } - - physx::PxFileBuf& getStream(void) { return mStream; } - - PX_INLINE void storeString(const char *c,bool zeroTerminate=false); - -private: - PsIOStream& operator=( const PsIOStream& ); - - - bool mBinary; // true if we are serializing binary data. Otherwise, everything is assumed converted to ASCII - uint32_t mStreamLen; // the length of the input data stream when de-serializing. - physx::PxFileBuf &mStream; - char mReadString[MAX_STREAM_STRING]; // a temp buffer for streaming strings on input. -}; - -#include "PsIOStream.inl" // inline methods... - - } // end of namespace - using namespace general_PxIOStream2; -} // end of physx namespace - -PX_POP_PACK - -#endif // PSFILEBUFFER_PSIOSTREAM_H diff --git a/blast/source/shared/filebuf/include/PsIOStream.inl b/blast/source/shared/filebuf/include/PsIOStream.inl deleted file mode 100644 index c0669989b..000000000 --- a/blast/source/shared/filebuf/include/PsIOStream.inl +++ /dev/null @@ -1,415 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -/*! -\file -\brief PsIOStream inline implementation -*/ - -PX_INLINE PsIOStream& PsIOStream::operator<<(bool v) -{ - if ( mBinary ) - { - mStream.storeByte((uint8_t)v); - } - else - { - char scratch[6]; - storeString( physx::PxAsc::valueToStr(v, scratch, 6) ); - } - return *this; -} - - -PX_INLINE PsIOStream& PsIOStream::operator<<(char c) -{ - mStream.storeByte((uint8_t)c); - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(uint8_t c) -{ - if ( mBinary ) - { - mStream.storeByte((uint8_t)c); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(c, scratch, physx::PxAsc::IntStrLen) ); - } - - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(int8_t c) -{ - if ( mBinary ) - { - mStream.storeByte((uint8_t)c); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(c, scratch, physx::PxAsc::IntStrLen) ); - } - - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(const char *c) -{ - if ( mBinary ) - { - c = c ? c : ""; // it it is a null pointer, assign it to an empty string. - uint32_t len = (uint32_t)strlen(c); - PX_ASSERT( len < (MAX_STREAM_STRING-1)); - if ( len > (MAX_STREAM_STRING-1) ) - { - len = MAX_STREAM_STRING-1; - } - mStream.storeDword(len); - if ( len ) - mStream.write(c,len); - } - else - { - storeString(c); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(uint64_t v) -{ - if ( mBinary ) - { - mStream.storeDouble( (double) v ); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(int64_t v) -{ - if ( mBinary ) - { - mStream.storeDouble( (double) v ); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(double v) -{ - if ( mBinary ) - { - mStream.storeDouble( (double) v ); - } - else - { - char scratch[physx::PxAsc::PxF64StrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::PxF64StrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(float v) -{ - if ( mBinary ) - { - mStream.storeFloat(v); - } - else - { - char scratch[physx::PxAsc::PxF32StrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::PxF32StrLen) ); - - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(uint32_t v) -{ - if ( mBinary ) - { - mStream.storeDword(v); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(int32_t v) -{ - if ( mBinary ) - { - mStream.storeDword( (uint32_t) v ); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(uint16_t v) -{ - if ( mBinary ) - { - mStream.storeWord(v); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(int16_t v) -{ - if ( mBinary ) - { - mStream.storeWord( (uint16_t) v ); - } - else - { - char scratch[physx::PxAsc::IntStrLen]; - storeString( physx::PxAsc::valueToStr(v, scratch, physx::PxAsc::IntStrLen) ); - } - return *this; -} - - -PX_INLINE PsIOStream& PsIOStream::operator>>(uint32_t &v) -{ - if ( mBinary ) - { - v = mStream.readDword(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(char &v) -{ - if ( mBinary ) - { - v = (char)mStream.readByte(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(uint8_t &v) -{ - if ( mBinary ) - { - v = mStream.readByte(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(int8_t &v) -{ - if ( mBinary ) - { - v = (int8_t)mStream.readByte(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(int64_t &v) -{ - if ( mBinary ) - { - v = mStream.readDword(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(uint64_t &v) -{ - if ( mBinary ) - { - v = (uint64_t)mStream.readDouble(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(double &v) -{ - if ( mBinary ) - { - v = mStream.readDouble(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(float &v) -{ - if ( mBinary ) - { - v = mStream.readFloat(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(int32_t &v) -{ - if ( mBinary ) - { - v = (int32_t)mStream.readDword(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(uint16_t &v) -{ - if ( mBinary ) - { - v = mStream.readWord(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(int16_t &v) -{ - if ( mBinary ) - { - v = (int16_t)mStream.readWord(); - } - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(bool &v) -{ - int8_t iv; - iv = (int8_t)mStream.readByte(); - v = iv ? true : false; - return *this; -} - -#define NX_IOSTREAM_COMMA_SEPARATOR if(!mBinary) *this << ' '; - -PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxVec3 &v) -{ - *this << v.x; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.y; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.z; - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxQuat &v) -{ - *this << v.x; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.y; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.z; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.w; - return *this; -} - - -PX_INLINE PsIOStream& PsIOStream::operator<<(const physx::PxBounds3 &v) -{ - *this << v.minimum; - NX_IOSTREAM_COMMA_SEPARATOR; - *this << v.maximum; - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxVec3 &v) -{ - *this >> v.x; - *this >> v.y; - *this >> v.z; - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxQuat &v) -{ - *this>>v.x; - *this>>v.y; - *this>>v.z; - *this>>v.w; - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(physx::PxBounds3 &v) -{ - *this >> v.minimum; - *this >> v.maximum; - return *this; -} - -PX_INLINE PsIOStream& PsIOStream::operator>>(const char *&str) -{ - str = NULL; // by default no string streamed... - if ( mBinary ) - { - uint32_t len=0; - *this >> len; - - PX_ASSERT( len < (MAX_STREAM_STRING-1) ); - if ( len < (MAX_STREAM_STRING-1) ) - { - mStream.read(mReadString,len); - mReadString[len] = 0; - str = mReadString; - } - } - return *this; -} - - -PX_INLINE void PsIOStream::storeString(const char *c,bool zeroTerminate) -{ - while ( *c ) - { - mStream.storeByte((uint8_t)*c); - c++; - } - if ( zeroTerminate ) - { - mStream.storeByte(0); - } -} diff --git a/blast/source/shared/filebuf/include/PsMemoryBuffer.h b/blast/source/shared/filebuf/include/PsMemoryBuffer.h deleted file mode 100644 index 5d6b2e75c..000000000 --- a/blast/source/shared/filebuf/include/PsMemoryBuffer.h +++ /dev/null @@ -1,449 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -#ifndef PSFILEBUFFER_PSMEMORYBUFFER_H -#define PSFILEBUFFER_PSMEMORYBUFFER_H - -#include "Ps.h" -#include "PsUserAllocated.h" -#include "PsAlignedMalloc.h" -#include "filebuf/PxFileBuf.h" -#include "foundation/PxAssert.h" - -namespace physx -{ -namespace general_PxIOStream2 -{ - using namespace shdfnd; - - const uint32_t BUFFER_SIZE_DEFAULT = 4096; - -//Use this class if you want to use your own allocator -template -class PxMemoryBufferBase : public PxFileBuf, public Allocator -{ - PX_NOCOPY(PxMemoryBufferBase) - void init(const void *readMem, uint32_t readLen) - { - mAllocator = this; - - mReadBuffer = mReadLoc = static_cast(readMem); - mReadStop = &mReadLoc[readLen]; - - mWriteBuffer = mWriteLoc = mWriteStop = NULL; - mWriteBufferSize = 0; - mDefaultWriteBufferSize = BUFFER_SIZE_DEFAULT; - - mOpenMode = OPEN_READ_ONLY; - mSeekType = SEEKABLE_READ; - } - - void init(uint32_t defaultWriteBufferSize) - { - mAllocator = this; - - mReadBuffer = mReadLoc = mReadStop = NULL; - - mWriteBuffer = mWriteLoc = mWriteStop = NULL; - mWriteBufferSize = 0; - mDefaultWriteBufferSize = defaultWriteBufferSize; - - mOpenMode = OPEN_READ_WRITE_NEW; - mSeekType = SEEKABLE_READWRITE; - } - -public: - PxMemoryBufferBase(const void *readMem,uint32_t readLen) - { - init(readMem, readLen); - } - - PxMemoryBufferBase(const void *readMem,uint32_t readLen, const Allocator &alloc): Allocator(alloc) - { - init(readMem, readLen); - } - - PxMemoryBufferBase(uint32_t defaultWriteBufferSize = BUFFER_SIZE_DEFAULT) - { - init(defaultWriteBufferSize); - } - - PxMemoryBufferBase(uint32_t defaultWriteBufferSize, const Allocator &alloc): Allocator(alloc) - { - init(defaultWriteBufferSize); - } - - virtual ~PxMemoryBufferBase(void) - { - reset(); - } - - void setAllocator(Allocator *allocator) - { - mAllocator = allocator; - } - - void initWriteBuffer(uint32_t size) - { - if ( mWriteBuffer == NULL ) - { - if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize; - mWriteBuffer = static_cast(mAllocator->allocate(size)); - PX_ASSERT( mWriteBuffer ); - mWriteLoc = mWriteBuffer; - mWriteStop = &mWriteBuffer[size]; - mWriteBufferSize = size; - mReadBuffer = mWriteBuffer; - mReadStop = &mWriteBuffer[size]; - mReadLoc = mWriteBuffer; - } - } - - void reset(void) - { - mAllocator->deallocate(mWriteBuffer); - mWriteBuffer = NULL; - mWriteBufferSize = 0; - mWriteLoc = NULL; - mWriteStop = NULL; - mReadBuffer = NULL; - mReadStop = NULL; - mReadLoc = NULL; - } - - virtual OpenMode getOpenMode(void) const - { - return mOpenMode; - } - - - SeekType isSeekable(void) const - { - return mSeekType; - } - - virtual uint32_t read(void* buffer, uint32_t size) - { - if ( (mReadLoc+size) > mReadStop ) - { - size = uint32_t(mReadStop - mReadLoc); - } - if ( size != 0 ) - { - memmove(buffer,mReadLoc,size); - mReadLoc+=size; - } - return size; - } - - virtual uint32_t peek(void* buffer, uint32_t size) - { - if ( (mReadLoc+size) > mReadStop ) - { - size = uint32_t(mReadStop - mReadLoc); - } - if ( size != 0 ) - { - memmove(buffer,mReadLoc,size); - } - return size; - } - - virtual uint32_t write(const void* buffer, uint32_t size) - { - PX_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW ); - if ( mOpenMode == OPEN_READ_WRITE_NEW ) - { - if ( (mWriteLoc+size) > mWriteStop ) - growWriteBuffer(size); - memmove(mWriteLoc,buffer,size); - mWriteLoc+=size; - mReadStop = mWriteLoc; - } - else - { - size = 0; - } - return size; - } - - PX_INLINE const uint8_t * getReadLoc(void) const { return mReadLoc; } - PX_INLINE void advanceReadLoc(uint32_t len) - { - PX_ASSERT(mReadBuffer); - if ( mReadBuffer ) - { - mReadLoc+=len; - if ( mReadLoc >= mReadStop ) - { - mReadLoc = mReadStop; - } - } - } - - virtual uint32_t tellRead(void) const - { - uint32_t ret=0; - - if ( mReadBuffer ) - { - ret = uint32_t(mReadLoc-mReadBuffer); - } - return ret; - } - - virtual uint32_t tellWrite(void) const - { - return uint32_t(mWriteLoc-mWriteBuffer); - } - - virtual uint32_t seekRead(uint32_t loc) - { - uint32_t ret = 0; - PX_ASSERT(mReadBuffer); - if ( mReadBuffer ) - { - mReadLoc = &mReadBuffer[loc]; - if ( mReadLoc >= mReadStop ) - { - mReadLoc = mReadStop; - } - ret = uint32_t(mReadLoc-mReadBuffer); - } - return ret; - } - - virtual uint32_t seekWrite(uint32_t loc) - { - uint32_t ret = 0; - PX_ASSERT( mOpenMode == OPEN_READ_WRITE_NEW ); - if ( mWriteBuffer ) - { - if ( loc > mWriteBufferSize ) - { - mWriteLoc = mWriteStop; - growWriteBuffer(loc - mWriteBufferSize); - } - mWriteLoc = &mWriteBuffer[loc]; - ret = uint32_t(mWriteLoc-mWriteBuffer); - } - return ret; - } - - virtual void flush(void) - { - - } - - virtual uint32_t getFileLength(void) const - { - uint32_t ret = 0; - if ( mReadBuffer ) - { - ret = uint32_t(mReadStop-mReadBuffer); - } - else if ( mWriteBuffer ) - { - ret = uint32_t(mWriteLoc-mWriteBuffer); - } - return ret; - } - - uint32_t getWriteBufferSize(void) const - { - return uint32_t(mWriteLoc-mWriteBuffer); - } - - void setWriteLoc(uint8_t *writeLoc) - { - PX_ASSERT(writeLoc >= mWriteBuffer && writeLoc < mWriteStop ); - mWriteLoc = writeLoc; - mReadStop = mWriteLoc; - } - - const uint8_t * getWriteBuffer(void) const - { - return mWriteBuffer; - } - - /** - * Attention: if you use aligned allocator you cannot free memory with PX_FREE macros instead use deallocate method from base - */ - uint8_t * getWriteBufferOwnership(uint32_t &dataLen) // return the write buffer, and zero it out, the caller is taking ownership of the memory - { - uint8_t *ret = mWriteBuffer; - dataLen = uint32_t(mWriteLoc-mWriteBuffer); - mWriteBuffer = NULL; - mWriteLoc = NULL; - mWriteStop = NULL; - mWriteBufferSize = 0; - return ret; - } - - - void alignRead(uint32_t a) - { - uint32_t loc = tellRead(); - uint32_t aloc = ((loc+(a-1))/a)*a; - if ( aloc != loc ) - { - seekRead(aloc); - } - } - - void alignWrite(uint32_t a) - { - uint32_t loc = tellWrite(); - uint32_t aloc = ((loc+(a-1))/a)*a; - if ( aloc != loc ) - { - seekWrite(aloc); - } - } - -private: - - - // double the size of the write buffer or at least as large as the 'size' value passed in. - void growWriteBuffer(uint32_t size) - { - if ( mWriteBuffer == NULL ) - { - if ( size < mDefaultWriteBufferSize ) size = mDefaultWriteBufferSize; - initWriteBuffer(size); - } - else - { - uint32_t oldWriteIndex = uint32_t(mWriteLoc - mWriteBuffer); - uint32_t newSize = mWriteBufferSize*2; - uint32_t avail = newSize-oldWriteIndex; - if ( size >= avail ) newSize = newSize+size; - uint8_t *writeBuffer = static_cast(mAllocator->allocate(newSize)); - PX_ASSERT( writeBuffer ); - memmove(writeBuffer,mWriteBuffer,mWriteBufferSize); - mAllocator->deallocate(mWriteBuffer); - mWriteBuffer = writeBuffer; - mWriteBufferSize = newSize; - mWriteLoc = &mWriteBuffer[oldWriteIndex]; - mWriteStop = &mWriteBuffer[mWriteBufferSize]; - uint32_t oldReadLoc = uint32_t(mReadLoc-mReadBuffer); - mReadBuffer = mWriteBuffer; - mReadStop = mWriteLoc; - mReadLoc = &mReadBuffer[oldReadLoc]; - } - } - - const uint8_t *mReadBuffer; - const uint8_t *mReadLoc; - const uint8_t *mReadStop; - - uint8_t *mWriteBuffer; - uint8_t *mWriteLoc; - uint8_t *mWriteStop; - - uint32_t mWriteBufferSize; - uint32_t mDefaultWriteBufferSize; - Allocator *mAllocator; - OpenMode mOpenMode; - SeekType mSeekType; - -}; - -class PxMemoryBufferAllocator -{ -public: - PxMemoryBufferAllocator(uint32_t a = 0) : alignment(a) {} - - virtual void * allocate(uint32_t size) - { - switch(alignment) - { - case 0: - return PX_ALLOC(size, PX_DEBUG_EXP("PxMemoryBufferAllocator")); - case 16 : - return physx::AlignedAllocator<16>().allocate(size, __FILE__, __LINE__); - case 32 : - return physx::AlignedAllocator<32>().allocate(size, __FILE__, __LINE__); - case 64 : - return physx::AlignedAllocator<64>().allocate(size, __FILE__, __LINE__); - case 128 : - return physx::AlignedAllocator<128>().allocate(size, __FILE__, __LINE__); - default : - PX_ASSERT(0); - } - return NULL; - } - virtual void deallocate(void *mem) - { - switch(alignment) - { - case 0: - PX_FREE(mem); - break; - case 16 : - physx::AlignedAllocator<16>().deallocate(mem); - break; - case 32 : - physx::AlignedAllocator<32>().deallocate(mem); - break; - case 64 : - physx::AlignedAllocator<64>().deallocate(mem); - break; - case 128 : - physx::AlignedAllocator<128>().deallocate(mem); - break; - default : - PX_ASSERT(0); - } - } - virtual ~PxMemoryBufferAllocator(void) {} -private: - PxMemoryBufferAllocator& operator=(const PxMemoryBufferAllocator&); - - const uint32_t alignment; -}; - -//Use this class if you want to use PhysX memory allocator -class PsMemoryBuffer: public PxMemoryBufferBase, public UserAllocated -{ - PX_NOCOPY(PsMemoryBuffer) - typedef PxMemoryBufferBase BaseClass; - -public: - PsMemoryBuffer(const void *readMem,uint32_t readLen): BaseClass(readMem, readLen) {} - PsMemoryBuffer(const void *readMem,uint32_t readLen, uint32_t alignment): BaseClass(readMem, readLen, PxMemoryBufferAllocator(alignment)) {} - - PsMemoryBuffer(uint32_t defaultWriteBufferSize=BUFFER_SIZE_DEFAULT): BaseClass(defaultWriteBufferSize) {} - PsMemoryBuffer(uint32_t defaultWriteBufferSize,uint32_t alignment): BaseClass(defaultWriteBufferSize, PxMemoryBufferAllocator(alignment)) {} -}; - -} -using namespace general_PxIOStream2; -} - -#endif // PSFILEBUFFER_PSMEMORYBUFFER_H - diff --git a/blast/source/shared/stress_solver/anglin6.h b/blast/source/shared/stress_solver/anglin6.h index a3616961e..7601c15ea 100644 --- a/blast/source/shared/stress_solver/anglin6.h +++ b/blast/source/shared/stress_solver/anglin6.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/bond.h b/blast/source/shared/stress_solver/bond.h index d154e0623..cc7c78855 100644 --- a/blast/source/shared/stress_solver/bond.h +++ b/blast/source/shared/stress_solver/bond.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/buffer.h b/blast/source/shared/stress_solver/buffer.h index 133b1b570..463ad58b3 100644 --- a/blast/source/shared/stress_solver/buffer.h +++ b/blast/source/shared/stress_solver/buffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/coupling.h b/blast/source/shared/stress_solver/coupling.h index 355b92f76..1531e8217 100644 --- a/blast/source/shared/stress_solver/coupling.h +++ b/blast/source/shared/stress_solver/coupling.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/inertia.h b/blast/source/shared/stress_solver/inertia.h index 6365c89c7..9446ae3f0 100644 --- a/blast/source/shared/stress_solver/inertia.h +++ b/blast/source/shared/stress_solver/inertia.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/math/cgnr.h b/blast/source/shared/stress_solver/math/cgnr.h index 99ad0dcce..2eb4d2a8c 100644 --- a/blast/source/shared/stress_solver/math/cgnr.h +++ b/blast/source/shared/stress_solver/math/cgnr.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/simd/simd.h b/blast/source/shared/stress_solver/simd/simd.h index ee470931d..fa4cdedcb 100644 --- a/blast/source/shared/stress_solver/simd/simd.h +++ b/blast/source/shared/stress_solver/simd/simd.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/simd/simd_device_query.h b/blast/source/shared/stress_solver/simd/simd_device_query.h index 793d3d910..e41025dd8 100644 --- a/blast/source/shared/stress_solver/simd/simd_device_query.h +++ b/blast/source/shared/stress_solver/simd/simd_device_query.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/solver_types.h b/blast/source/shared/stress_solver/solver_types.h index d684ccc3e..efab3b75d 100644 --- a/blast/source/shared/stress_solver/solver_types.h +++ b/blast/source/shared/stress_solver/solver_types.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/stress_solver/stress.cpp b/blast/source/shared/stress_solver/stress.cpp index 09cc31c4e..a57b0c62c 100644 --- a/blast/source/shared/stress_solver/stress.cpp +++ b/blast/source/shared/stress_solver/stress.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #include "stress.h" #include "math/cgnr.h" diff --git a/blast/source/shared/stress_solver/stress.h b/blast/source/shared/stress_solver/stress.h index 79131c29e..ef1b65e99 100644 --- a/blast/source/shared/stress_solver/stress.h +++ b/blast/source/shared/stress_solver/stress.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2022-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/shared/task/TaskManager.cpp b/blast/source/shared/task/TaskManager.cpp deleted file mode 100644 index 857c8d364..000000000 --- a/blast/source/shared/task/TaskManager.cpp +++ /dev/null @@ -1,456 +0,0 @@ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of NVIDIA CORPORATION nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. - -#include "task/PxTask.h" -#include "task/PxTaskDefine.h" -#include "foundation/PxErrors.h" - -#include "PsThread.h" -#include "PsAtomic.h" -#include "PsMutex.h" -#include "PsHashMap.h" -#include "PsArray.h" -#include "PsAllocator.h" - -#define DOT_LOG 0 - -#define LOCK() shdfnd::Mutex::ScopedLock __lock__(mMutex) - -namespace physx -{ - const int EOL = -1; - typedef shdfnd::HashMap PxTaskNameToIDMap; - - struct PxTaskDepTableRow - { - PxTaskID mTaskID; - int mNextDep; - }; - typedef shdfnd::Array PxTaskDepTable; - - class PxTaskTableRow - { - public: - PxTaskTableRow() : mRefCount( 1 ), mStartDep(EOL), mLastDep(EOL) {} - void addDependency( PxTaskDepTable& depTable, PxTaskID taskID ) - { - int newDep = int(depTable.size()); - PxTaskDepTableRow row; - row.mTaskID = taskID; - row.mNextDep = EOL; - depTable.pushBack( row ); - - if( mLastDep == EOL ) - { - mStartDep = mLastDep = newDep; - } - else - { - depTable[ uint32_t(mLastDep) ].mNextDep = newDep; - mLastDep = newDep; - } - } - - PxTask * mTask; - volatile int mRefCount; - PxTaskType::Enum mType; - int mStartDep; - int mLastDep; - }; - typedef shdfnd::Array PxTaskTable; - - -/* Implementation of PxTaskManager abstract API */ -class PxTaskMgr : public PxTaskManager, public shdfnd::UserAllocated -{ - PX_NOCOPY(PxTaskMgr) -public: - PxTaskMgr(PxErrorCallback& , PxCpuDispatcher*); - ~PxTaskMgr(); - - void setCpuDispatcher( PxCpuDispatcher& ref ) - { - mCpuDispatcher = &ref; - } - - PxCpuDispatcher* getCpuDispatcher() const - { - return mCpuDispatcher; - } - - void resetDependencies(); - void startSimulation(); - void stopSimulation(); - void taskCompleted( PxTask& task ); - - PxTaskID getNamedTask( const char *name ); - PxTaskID submitNamedTask( PxTask *task, const char *name, PxTaskType::Enum type = PxTaskType::TT_CPU ); - PxTaskID submitUnnamedTask( PxTask& task, PxTaskType::Enum type = PxTaskType::TT_CPU ); - PxTask* getTaskFromID( PxTaskID ); - - void dispatchTask( PxTaskID taskID ); - void resolveRow( PxTaskID taskID ); - - void release(); - - void finishBefore( PxTask& task, PxTaskID taskID ); - void startAfter( PxTask& task, PxTaskID taskID ); - - void addReference( PxTaskID taskID ); - void decrReference( PxTaskID taskID ); - int32_t getReference( PxTaskID taskID ) const; - - void decrReference( PxLightCpuTask& lighttask ); - void addReference( PxLightCpuTask& lighttask ); - - PxErrorCallback& mErrorCallback; - PxCpuDispatcher *mCpuDispatcher; - PxTaskNameToIDMap mName2IDmap; - volatile int mPendingTasks; - shdfnd::Mutex mMutex; - - PxTaskDepTable mDepTable; - PxTaskTable mTaskTable; - - shdfnd::Array mStartDispatch; - }; - -PxTaskManager* PxTaskManager::createTaskManager(PxErrorCallback& errorCallback, PxCpuDispatcher* cpuDispatcher) -{ - return PX_NEW(PxTaskMgr)(errorCallback, cpuDispatcher); -} - -PxTaskMgr::PxTaskMgr(PxErrorCallback& errorCallback, PxCpuDispatcher* cpuDispatcher) - : mErrorCallback (errorCallback) - , mCpuDispatcher( cpuDispatcher ) - , mPendingTasks( 0 ) - , mDepTable(PX_DEBUG_EXP("PxTaskDepTable")) - , mTaskTable(PX_DEBUG_EXP("PxTaskTable")) - , mStartDispatch(PX_DEBUG_EXP("StartDispatch")) -{ -} - -PxTaskMgr::~PxTaskMgr() -{ -} - -void PxTaskMgr::release() -{ - PX_DELETE(this); -} - -void PxTaskMgr::decrReference(PxLightCpuTask& lighttask) -{ - /* This does not need a lock! */ - if (!shdfnd::atomicDecrement(&lighttask.mRefCount)) - { - PX_ASSERT(mCpuDispatcher); - if (mCpuDispatcher) - { - mCpuDispatcher->submitTask(lighttask); - } - else - { - lighttask.release(); - } - } -} - -void PxTaskMgr::addReference(PxLightCpuTask& lighttask) -{ - /* This does not need a lock! */ - shdfnd::atomicIncrement(&lighttask.mRefCount); -} - -/* - * Called by the owner (Scene) at the start of every frame, before - * asking for tasks to be submitted. - */ -void PxTaskMgr::resetDependencies() -{ - PX_ASSERT( !mPendingTasks ); // only valid if you don't resubmit named tasks, this is true for the SDK - PX_ASSERT( mCpuDispatcher ); - mTaskTable.clear(); - mDepTable.clear(); - mName2IDmap.clear(); - mPendingTasks = 0; -} - -/* - * Called by the owner (Scene) to start simulating the task graph. - * Dispatch all tasks with refCount == 1 - */ -void PxTaskMgr::startSimulation() -{ - PX_ASSERT( mCpuDispatcher ); - - /* Handle empty task graph */ - if( mPendingTasks == 0 ) - { - - return; - } - - for( PxTaskID i = 0 ; i < mTaskTable.size() ; i++ ) - { - if( mTaskTable[ i ].mType == PxTaskType::TT_COMPLETED ) - { - continue; - } - if( !shdfnd::atomicDecrement( &mTaskTable[ i ].mRefCount ) ) - { - mStartDispatch.pushBack(i); - } - } - for( uint32_t i=0; isecond; - } - else - { - // create named entry in task table, without a task - return submitNamedTask( NULL, name, PxTaskType::TT_NOT_PRESENT ); -} -} - -PxTask* PxTaskMgr::getTaskFromID( PxTaskID id ) -{ - LOCK(); // todo: reader lock necessary? - return mTaskTable[ id ].mTask; -} - - -/* If called at runtime, must be thread-safe */ -PxTaskID PxTaskMgr::submitNamedTask( PxTask *task, const char *name, PxTaskType::Enum type ) -{ - if( task ) - { - task->mTm = this; - task->submitted(); - } - - LOCK(); - - const PxTaskNameToIDMap::Entry *ret = mName2IDmap.find( name ); - if( ret ) - { - PxTaskID prereg = ret->second; - if( task ) - { - /* name was registered for us by a dependent task */ - PX_ASSERT( !mTaskTable[ prereg ].mTask ); - PX_ASSERT( mTaskTable[ prereg ].mType == PxTaskType::TT_NOT_PRESENT ); - mTaskTable[ prereg ].mTask = task; - mTaskTable[ prereg ].mType = type; - task->mTaskID = prereg; - } - return prereg; - } - else - { - shdfnd::atomicIncrement(&mPendingTasks); - PxTaskID id = static_cast(mTaskTable.size()); - mName2IDmap[ name ] = id; - if( task ) - { - task->mTaskID = id; - } - PxTaskTableRow r; - r.mTask = task; - r.mType = type; - mTaskTable.pushBack(r); - return id; - } -} - -/* - * Add an unnamed task to the task table - */ -PxTaskID PxTaskMgr::submitUnnamedTask( PxTask& task, PxTaskType::Enum type ) -{ - shdfnd::atomicIncrement(&mPendingTasks); - - task.mTm = this; - task.submitted(); - - LOCK(); - task.mTaskID = static_cast(mTaskTable.size()); - PxTaskTableRow r; - r.mTask = &task; - r.mType = type; - mTaskTable.pushBack(r); - return task.mTaskID; -} - - -/* Called by worker threads (or cooperating application threads) when a - * PxTask has completed. Propogate depdenencies, decrementing all - * referenced tasks' refCounts. If any of those reach zero, activate - * those tasks. - */ -void PxTaskMgr::taskCompleted( PxTask& task ) -{ - LOCK(); - resolveRow(task.mTaskID); -} - -/* ================== Private Functions ======================= */ - -/* - * Add a dependency to force 'task' to complete before the - * referenced 'taskID' is allowed to be dispatched. - */ -void PxTaskMgr::finishBefore( PxTask& task, PxTaskID taskID ) -{ - LOCK(); - PX_ASSERT( mTaskTable[ taskID ].mType != PxTaskType::TT_COMPLETED ); - - mTaskTable[ task.mTaskID ].addDependency( mDepTable, taskID ); - shdfnd::atomicIncrement( &mTaskTable[ taskID ].mRefCount ); -} - - -/* - * Add a dependency to force 'task' to wait for the referenced 'taskID' - * to complete before it is allowed to be dispatched. - */ -void PxTaskMgr::startAfter( PxTask& task, PxTaskID taskID ) -{ - LOCK(); - PX_ASSERT( mTaskTable[ taskID ].mType != PxTaskType::TT_COMPLETED ); - - mTaskTable[ taskID ].addDependency( mDepTable, task.mTaskID ); - shdfnd::atomicIncrement( &mTaskTable[ task.mTaskID ].mRefCount ); -} - - -void PxTaskMgr::addReference( PxTaskID taskID ) -{ - LOCK(); - shdfnd::atomicIncrement( &mTaskTable[ taskID ].mRefCount ); -} - -/* - * Remove one reference count from a task. Must be done here to make it thread safe. - */ -void PxTaskMgr::decrReference( PxTaskID taskID ) -{ - LOCK(); - - if( !shdfnd::atomicDecrement( &mTaskTable[ taskID ].mRefCount ) ) - { - dispatchTask(taskID); - } -} - -int32_t PxTaskMgr::getReference(PxTaskID taskID) const -{ - return mTaskTable[ taskID ].mRefCount; -} - -/* - * A task has completed, decrement all dependencies and submit tasks - * that are ready to run. Signal simulation end if ther are no more - * pending tasks. - */ -void PxTaskMgr::resolveRow( PxTaskID taskID ) -{ - int depRow = mTaskTable[ taskID ].mStartDep; - - - while( depRow != EOL ) - { - PxTaskDepTableRow& row = mDepTable[ uint32_t(depRow) ]; - PxTaskTableRow& dtt = mTaskTable[ row.mTaskID ]; - - if( !shdfnd::atomicDecrement( &dtt.mRefCount ) ) - { - dispatchTask( row.mTaskID ); - } - - depRow = row.mNextDep; - } - - shdfnd::atomicDecrement( &mPendingTasks ); -} - -/* - * Submit a ready task to its appropriate dispatcher. - */ -void PxTaskMgr::dispatchTask( PxTaskID taskID ) -{ - LOCK(); // todo: reader lock necessary? - PxTaskTableRow& tt = mTaskTable[ taskID ]; - - // prevent re-submission - if( tt.mType == PxTaskType::TT_COMPLETED ) - { - mErrorCallback.reportError(PxErrorCode::eDEBUG_WARNING, "PxTask dispatched twice", __FILE__, __LINE__); - return; - } - - switch ( tt.mType ) - { - case PxTaskType::TT_CPU: - mCpuDispatcher->submitTask( *tt.mTask ); - break; - case PxTaskType::TT_NOT_PRESENT: - /* No task registered with this taskID, resolve its dependencies */ - PX_ASSERT(!tt.mTask); - //shdfnd::getFoundation().error(PX_INFO, "unregistered task resolved"); - resolveRow( taskID ); - break; - case PxTaskType::TT_COMPLETED: - default: - mErrorCallback.reportError(PxErrorCode::eDEBUG_WARNING, "Unknown task type", __FILE__, __LINE__); - resolveRow( taskID ); - break; - } - - tt.mType = PxTaskType::TT_COMPLETED; -} - -}// end physx namespace diff --git a/blast/source/shared/utils/AssetGenerator.cpp b/blast/source/shared/utils/AssetGenerator.cpp index 6ab367667..76e5409a9 100644 --- a/blast/source/shared/utils/AssetGenerator.cpp +++ b/blast/source/shared/utils/AssetGenerator.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "AssetGenerator.h" diff --git a/blast/source/shared/utils/AssetGenerator.h b/blast/source/shared/utils/AssetGenerator.h index 7fc31dfd9..0737701a3 100644 --- a/blast/source/shared/utils/AssetGenerator.h +++ b/blast/source/shared/utils/AssetGenerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef ASSETGENERATOR_H diff --git a/blast/source/test/src/BlastBaseTest.h b/blast/source/test/src/BlastBaseTest.h index e19cfec50..acdf2c5d2 100644 --- a/blast/source/test/src/BlastBaseTest.h +++ b/blast/source/test/src/BlastBaseTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef BLASTBASETEST_H @@ -43,7 +43,7 @@ template -class BlastBaseTest : public testing::Test, public Nv::Blast::ErrorCallback +class BlastBaseTest : public testing::Test, public nvidia::NvErrorCallback { public: BlastBaseTest() @@ -88,16 +88,16 @@ class BlastBaseTest : public testing::Test, public Nv::Blast::ErrorCallback } } - // ErrorCallback interface - virtual void reportError(Nv::Blast::ErrorCode::Enum code, const char* message, const char* file, int line) override + // nvidia::NvErrorCallback interface + virtual void reportError(nvidia::NvErrorCode::Enum code, const char* message, const char* file, int line) override { uint32_t failMask = 0; switch (FailLevel) { case NvBlastMessage::Debug: - case NvBlastMessage::Info: failMask |= Nv::Blast::ErrorCode::eDEBUG_INFO; - case NvBlastMessage::Warning: failMask |= Nv::Blast::ErrorCode::eDEBUG_WARNING; - case NvBlastMessage::Error: failMask |= Nv::Blast::ErrorCode::eABORT | Nv::Blast::ErrorCode::eABORT | Nv::Blast::ErrorCode::eINTERNAL_ERROR | Nv::Blast::ErrorCode::eOUT_OF_MEMORY | Nv::Blast::ErrorCode::eINVALID_OPERATION | Nv::Blast::ErrorCode::eINVALID_PARAMETER; + case NvBlastMessage::Info: failMask |= nvidia::NvErrorCode::eDEBUG_INFO; + case NvBlastMessage::Warning: failMask |= nvidia::NvErrorCode::eDEBUG_WARNING; + case NvBlastMessage::Error: failMask |= nvidia::NvErrorCode::eABORT | nvidia::NvErrorCode::eABORT | nvidia::NvErrorCode::eINTERNAL_ERROR | nvidia::NvErrorCode::eOUT_OF_MEMORY | nvidia::NvErrorCode::eINVALID_OPERATION | nvidia::NvErrorCode::eINVALID_PARAMETER; default: break; } @@ -109,15 +109,15 @@ class BlastBaseTest : public testing::Test, public Nv::Blast::ErrorCallback std::string output = "NvBlast Test "; switch (code) { - case Nv::Blast::ErrorCode::eNO_ERROR: break; - case Nv::Blast::ErrorCode::eDEBUG_INFO: output += "Debug Info"; break; - case Nv::Blast::ErrorCode::eDEBUG_WARNING: output += "Debug Warning"; break; - case Nv::Blast::ErrorCode::eINVALID_PARAMETER: output += "Invalid Parameter"; break; - case Nv::Blast::ErrorCode::eINVALID_OPERATION: output += "Invalid Operation"; break; - case Nv::Blast::ErrorCode::eOUT_OF_MEMORY: output += "Out of Memory"; break; - case Nv::Blast::ErrorCode::eINTERNAL_ERROR: output += "Internal Error"; break; - case Nv::Blast::ErrorCode::eABORT: output += "Abort"; break; - case Nv::Blast::ErrorCode::ePERF_WARNING: output += "Perf Warning"; break; + case nvidia::NvErrorCode::eNO_ERROR: break; + case nvidia::NvErrorCode::eDEBUG_INFO: output += "Debug Info"; break; + case nvidia::NvErrorCode::eDEBUG_WARNING: output += "Debug Warning"; break; + case nvidia::NvErrorCode::eINVALID_PARAMETER: output += "Invalid Parameter"; break; + case nvidia::NvErrorCode::eINVALID_OPERATION: output += "Invalid Operation"; break; + case nvidia::NvErrorCode::eOUT_OF_MEMORY: output += "Out of Memory"; break; + case nvidia::NvErrorCode::eINTERNAL_ERROR: output += "Internal Error"; break; + case nvidia::NvErrorCode::eABORT: output += "Abort"; break; + case nvidia::NvErrorCode::ePERF_WARNING: output += "Perf Warning"; break; default: FAIL(); } output += std::string(" message in ") + file + "(" + std::to_string(line) + "): " + message + "\n"; diff --git a/blast/source/test/src/TkBaseTest.h b/blast/source/test/src/TkBaseTest.h index 480f4aaa4..5590d7112 100644 --- a/blast/source/test/src/TkBaseTest.h +++ b/blast/source/test/src/TkBaseTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef TKBASETEST_H @@ -31,22 +31,19 @@ #include "NvBlastTk.h" #include "NvBlastTkActor.h" -#include "NvBlastPxCallbacks.h" +#include "NvTaskManager.h" +#include "NvBlastTkGroupTaskManager.h" +#include "NvCpuDispatcher.h" +#include "NsGlobals.h" #include "BlastBaseTest.h" #include "NvBlastExtDamageShaders.h" #include "NvBlastIndexFns.h" -#include "NvBlastPxCustomProfiler.h" #include "TestProfiler.h" -#include "NvBlastExtPxTask.h" -#include "task/PxCpuDispatcher.h" -#include "task/PxTask.h" -#include "PxFoundation.h" - -#include +#include "NvTask.h" #include #include @@ -56,15 +53,9 @@ #include -#define USE_PHYSX_DISPATCHER 0 - -#if USE_PHYSX_DISPATCHER -#include "PxDefaultCpuDispatcher.h" -#endif - - using namespace Nv::Blast; -using namespace physx; +using namespace nvidia; +using namespace nvidia::task; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Helpers @@ -78,17 +69,17 @@ NV_INLINE void ExpectArrayMatch(TkObject** arr0, size_t size0, TkObject** arr1, EXPECT_TRUE(set0 == set1); } -class TestCpuDispatcher : public physx::PxCpuDispatcher +class TestCpuDispatcher : public NvCpuDispatcher { struct SharedContext { - std::queue workQueue; + std::queue workQueue; std::condition_variable cv; std::mutex mutex; std::atomic quit; }; - void submitTask(PxBaseTask& task) override + void submitTask(NvBaseTask& task) override { if (m_threads.size() > 0) { @@ -115,7 +106,7 @@ class TestCpuDispatcher : public physx::PxCpuDispatcher std::unique_lock lk(context.mutex); if (!context.workQueue.empty()) { - PxBaseTask& task = *context.workQueue.front(); + NvBaseTask& task = *context.workQueue.front(); context.workQueue.pop(); lk.unlock(); TEST_ZONE_BEGIN(task.getName()); @@ -210,28 +201,19 @@ template class TkBaseTest : public BlastBaseTest { public: - TkBaseTest() : m_cpuDispatcher(), m_taskman(nullptr), m_foundation(nullptr) + TkBaseTest() : m_cpuDispatcher(), m_taskman(nullptr) { } virtual void SetUp() override { - m_foundation = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback()); - - NvBlastProfilerSetCallback(&m_profiler); - NvBlastProfilerSetDetail(Nv::Blast::ProfilerDetail::LOW); - m_profiler.setPlatformEnabled(true); + NvBlastInternalProfilerSetDetail(Nv::Blast::InternalProfilerDetail::LOW); + NvBlastInternalProfilerSetPlatformEnabled(true); -#if USE_PHYSX_DISPATCHER - PxU32 affinity[] = { 1, 2, 4, 8 }; - m_cpuDispatcher = PxDefaultCpuDispatcherCreate(4, affinity); - m_cpuDispatcher->setRunProfiled(false); -#else m_cpuDispatcher = new TestCpuDispatcher(4); -#endif - m_taskman = PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), m_cpuDispatcher); - m_groupTM = ExtGroupTaskManager::create(*m_taskman); + m_taskman = NvTaskManager::createTaskManager(*NvBlastGlobalGetErrorCallback(), m_cpuDispatcher); + m_groupTM = TkGroupTaskManager::create(*m_taskman); } virtual void TearDown() override @@ -239,7 +221,6 @@ class TkBaseTest : public BlastBaseTest m_groupTM->release(); m_cpuDispatcher->release(); if (m_taskman) m_taskman->release(); - if (m_foundation) m_foundation->release(); } void createFramework() @@ -371,22 +352,16 @@ class TkBaseTest : public BlastBaseTest std::vector testAssets; -#if USE_PHYSX_DISPATCHER - PxDefaultCpuDispatcher* m_cpuDispatcher; -#else - TestCpuDispatcher* m_cpuDispatcher; -#endif + TestCpuDispatcher* m_cpuDispatcher; - PxTaskManager* m_taskman; - PxFoundation* m_foundation; + NvTaskManager* m_taskman; - ExtGroupTaskManager* m_groupTM; - ExtCustomProfiler m_profiler; + TkGroupTaskManager* m_groupTM; }; -#define TkPxErrorMask (PxErrorCode::eINVALID_PARAMETER | PxErrorCode::eINVALID_OPERATION | PxErrorCode::eOUT_OF_MEMORY | PxErrorCode::eINTERNAL_ERROR | PxErrorCode::eABORT) -#define TkPxWarningMask (PxErrorCode::eDEBUG_WARNING | PxErrorCode::ePERF_WARNING) +#define TkNvErrorMask (NvErrorCode::eINVALID_PARAMETER | NvErrorCode::eINVALID_OPERATION | NvErrorCode::eOUT_OF_MEMORY | NvErrorCode::eINTERNAL_ERROR | NvErrorCode::eABORT) +#define TkNvWarningMask (NvErrorCode::eDEBUG_WARNING | NvErrorCode::ePERF_WARNING) typedef TkBaseTest TkTestAllowWarnings; typedef TkBaseTest TkTestStrict; diff --git a/blast/source/test/src/perf/BlastBasePerfTest.h b/blast/source/test/src/perf/BlastBasePerfTest.h index 4143d8085..5fd08eaa4 100644 --- a/blast/source/test/src/perf/BlastBasePerfTest.h +++ b/blast/source/test/src/perf/BlastBasePerfTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef BLASTBASEPERFTEST_H diff --git a/blast/source/test/src/perf/DamagePerfTests.cpp b/blast/source/test/src/perf/DamagePerfTests.cpp index bf949455e..9315104aa 100644 --- a/blast/source/test/src/perf/DamagePerfTests.cpp +++ b/blast/source/test/src/perf/DamagePerfTests.cpp @@ -22,21 +22,21 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBasePerfTest.h" #include "NvBlastExtDamageShaders.h" #include "NvBlastExtSerialization.h" #include "NvBlastTime.h" -#include "foundation/PxVec3.h" -#include "foundation/PxBounds3.h" +#include "NvVec3.h" +#include "NvBounds3.h" #include #include #include using namespace Nv::Blast; -using namespace physx; +using namespace nvidia; static void blast ( @@ -168,13 +168,13 @@ class PerfTest : public BlastBasePerfTestStrict { std::vector scratch; - physx::PxBounds3 bounds = physx::PxBounds3::empty(); + nvidia::NvBounds3 bounds = nvidia::NvBounds3::empty(); #if 1 scratch.resize((size_t)NvBlastGetRequiredScratchForCreateAsset(&desc, messageLog)); void* mem = alignedZeroedAlloc(NvBlastGetAssetMemorySize(&desc, messageLog)); NvBlastAsset* asset = NvBlastCreateAsset(mem, &desc, scratch.data(), messageLog); EXPECT_TRUE(asset != nullptr); - bounds = physx::PxBounds3::centerExtents(physx::PxVec3(0, 0, 0), physx::PxVec3(cube.extents.x, cube.extents.y, cube.extents.z)); + bounds = nvidia::NvBounds3::centerExtents(nvidia::NvVec3(0, 0, 0), nvidia::NvVec3(cube.extents.x, cube.extents.y, cube.extents.z)); #else // load asset NvBlastAsset* asset = nullptr; @@ -189,7 +189,7 @@ class PerfTest : public BlastBasePerfTestStrict const NvBlastBond* bonds = NvBlastAssetGetBonds(asset, messageLog); for (uint32_t i = 0; i < bc; i++) { - bounds.include(reinterpret_cast(bonds[i].centroid)); + bounds.include(reinterpret_cast(bonds[i].centroid)); } #endif diff --git a/blast/source/test/src/perf/SolverPerfTests.cpp b/blast/source/test/src/perf/SolverPerfTests.cpp index a3df64ab0..ad15e4d47 100644 --- a/blast/source/test/src/perf/SolverPerfTests.cpp +++ b/blast/source/test/src/perf/SolverPerfTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBasePerfTest.h" diff --git a/blast/source/test/src/unit/APITests.cpp b/blast/source/test/src/unit/APITests.cpp index d50310b4b..2227dafe8 100644 --- a/blast/source/test/src/unit/APITests.cpp +++ b/blast/source/test/src/unit/APITests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBaseTest.h" diff --git a/blast/source/test/src/unit/ActorTests.cpp b/blast/source/test/src/unit/ActorTests.cpp index 9b1ccdf37..49ebca829 100644 --- a/blast/source/test/src/unit/ActorTests.cpp +++ b/blast/source/test/src/unit/ActorTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBaseTest.h" diff --git a/blast/source/test/src/unit/AssetTests.cpp b/blast/source/test/src/unit/AssetTests.cpp index dc12e588b..fb81a0ca4 100644 --- a/blast/source/test/src/unit/AssetTests.cpp +++ b/blast/source/test/src/unit/AssetTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "NvBlastAsset.h" diff --git a/blast/source/test/src/unit/CoreTests.cpp b/blast/source/test/src/unit/CoreTests.cpp index c8f9ee257..47a39396a 100644 --- a/blast/source/test/src/unit/CoreTests.cpp +++ b/blast/source/test/src/unit/CoreTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include diff --git a/blast/source/test/src/unit/FamilyGraphTests.cpp b/blast/source/test/src/unit/FamilyGraphTests.cpp index b48c32430..35361960d 100644 --- a/blast/source/test/src/unit/FamilyGraphTests.cpp +++ b/blast/source/test/src/unit/FamilyGraphTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBaseTest.h" diff --git a/blast/source/test/src/unit/MultithreadingTests.cpp b/blast/source/test/src/unit/MultithreadingTests.cpp index 9daac25d7..7a9f54aed 100644 --- a/blast/source/test/src/unit/MultithreadingTests.cpp +++ b/blast/source/test/src/unit/MultithreadingTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "BlastBaseTest.h" diff --git a/blast/source/test/src/unit/SyncTests.cpp b/blast/source/test/src/unit/SyncTests.cpp index a8c3ea518..03814e074 100644 --- a/blast/source/test/src/unit/SyncTests.cpp +++ b/blast/source/test/src/unit/SyncTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "TkBaseTest.h" diff --git a/blast/source/test/src/unit/TkCompositeTests.cpp b/blast/source/test/src/unit/TkCompositeTests.cpp index da352a238..3a5f58001 100644 --- a/blast/source/test/src/unit/TkCompositeTests.cpp +++ b/blast/source/test/src/unit/TkCompositeTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "TkBaseTest.h" @@ -31,7 +31,7 @@ #include #include -#include "PsMemoryBuffer.h" +#include "NsMemoryBuffer.h" #include "NvBlastTime.h" @@ -56,7 +56,7 @@ Composite and joint tests: struct Composite { std::vector m_actorDescs; - std::vector m_relTMs; + std::vector m_relTMs; std::vector m_jointDescs; }; @@ -91,39 +91,39 @@ class TkCompositeTest : public TkBaseTest const TkJointDesc jointDescsNoNRF[8] = { // Actor indices, chunk indices, attach position in the composite frame - { { families[0], families[1] }, { 6, 5 }, { PxVec3(0.0f, -1.5f, 0.5f), PxVec3(0.0f, -1.5f, 0.5f) } }, - { { families[0], families[1] }, { 4, 3 }, { PxVec3(0.0f, -0.5f, -0.5f), PxVec3(0.0f, -0.5f, -0.5f) } }, + { { families[0], families[1] }, { 6, 5 }, { NvVec3(0.0f, -1.5f, 0.5f), NvVec3(0.0f, -1.5f, 0.5f) } }, + { { families[0], families[1] }, { 4, 3 }, { NvVec3(0.0f, -0.5f, -0.5f), NvVec3(0.0f, -0.5f, -0.5f) } }, - { { families[0], families[2] }, { 8, 6 }, { PxVec3(-0.5f, 0.0f, 0.5f), PxVec3(-0.5f, 0.0f, 0.5f) } }, - { { families[0], families[2] }, { 3, 1 }, { PxVec3(-1.5f, 0.0f, -0.5f), PxVec3(-1.5f, 0.0f, -0.5f) } }, + { { families[0], families[2] }, { 8, 6 }, { NvVec3(-0.5f, 0.0f, 0.5f), NvVec3(-0.5f, 0.0f, 0.5f) } }, + { { families[0], families[2] }, { 3, 1 }, { NvVec3(-1.5f, 0.0f, -0.5f), NvVec3(-1.5f, 0.0f, -0.5f) } }, - { { families[1], families[3] }, { 7, 5 }, { PxVec3(0.5f, 0.0f, 0.5f), PxVec3(0.5f, 0.0f, 0.5f) } }, - { { families[1], families[3] }, { 4, 2 }, { PxVec3(1.0f, 0.0f, -0.5f), PxVec3(1.0f, 0.0f, -0.5f) } }, + { { families[1], families[3] }, { 7, 5 }, { NvVec3(0.5f, 0.0f, 0.5f), NvVec3(0.5f, 0.0f, 0.5f) } }, + { { families[1], families[3] }, { 4, 2 }, { NvVec3(1.0f, 0.0f, -0.5f), NvVec3(1.0f, 0.0f, -0.5f) } }, - { { families[2], families[3] }, { 8, 7 }, { PxVec3(0.0f, 1.5f, 0.5f), PxVec3(0.0f, 1.5f, 0.5f) } }, - { { families[2], families[3] }, { 2, 1 }, { PxVec3(0.0f, 0.5f, -0.5f), PxVec3(0.0f, 0.5f, -0.5f) } } + { { families[2], families[3] }, { 8, 7 }, { NvVec3(0.0f, 1.5f, 0.5f), NvVec3(0.0f, 1.5f, 0.5f) } }, + { { families[2], families[3] }, { 2, 1 }, { NvVec3(0.0f, 0.5f, -0.5f), NvVec3(0.0f, 0.5f, -0.5f) } } }; const TkJointDesc jointDescsWithNRF[12] = { // Actor indices, chunk indices, attach position in the composite frame - { { families[0], families[1] }, { 6, 5 }, { PxVec3(0.0f, -1.5f, 0.5f), PxVec3(0.0f, -1.5f, 0.5f) } }, - { { families[0], families[1] }, { 4, 3 }, { PxVec3(0.0f, -0.5f, -0.5f), PxVec3(0.0f, -0.5f, -0.5f) } }, + { { families[0], families[1] }, { 6, 5 }, { NvVec3(0.0f, -1.5f, 0.5f), NvVec3(0.0f, -1.5f, 0.5f) } }, + { { families[0], families[1] }, { 4, 3 }, { NvVec3(0.0f, -0.5f, -0.5f), NvVec3(0.0f, -0.5f, -0.5f) } }, - { { families[0], nullptr }, { 8, 0xFFFFFFFF }, { PxVec3(-0.5f, 0.0f, 0.5f), PxVec3(-0.5f, 0.0f, 0.5f) } }, - { { families[0], nullptr }, { 3, 0xFFFFFFFF }, { PxVec3(-1.5f, 0.0f, -0.5f), PxVec3(-1.5f, 0.0f, -0.5f) } }, + { { families[0], nullptr }, { 8, 0xFFFFFFFF }, { NvVec3(-0.5f, 0.0f, 0.5f), NvVec3(-0.5f, 0.0f, 0.5f) } }, + { { families[0], nullptr }, { 3, 0xFFFFFFFF }, { NvVec3(-1.5f, 0.0f, -0.5f), NvVec3(-1.5f, 0.0f, -0.5f) } }, - { { nullptr, families[2] }, { 0xFFFFFFFF, 6 }, { PxVec3(-0.5f, 0.0f, 0.5f), PxVec3(-0.5f, 0.0f, 0.5f) } }, - { { nullptr, families[2] }, { 0xFFFFFFFF, 1 }, { PxVec3(-1.5f, 0.0f, -0.5f), PxVec3(-1.5f, 0.0f, -0.5f) } }, + { { nullptr, families[2] }, { 0xFFFFFFFF, 6 }, { NvVec3(-0.5f, 0.0f, 0.5f), NvVec3(-0.5f, 0.0f, 0.5f) } }, + { { nullptr, families[2] }, { 0xFFFFFFFF, 1 }, { NvVec3(-1.5f, 0.0f, -0.5f), NvVec3(-1.5f, 0.0f, -0.5f) } }, - { { families[1], nullptr }, { 7, 0xFFFFFFFF }, { PxVec3(0.5f, 0.0f, 0.5f), PxVec3(0.5f, 0.0f, 0.5f) } }, - { { families[1], nullptr }, { 4, 0xFFFFFFFF }, { PxVec3(1.0f, 0.0f, -0.5f), PxVec3(1.0f, 0.0f, -0.5f) } }, + { { families[1], nullptr }, { 7, 0xFFFFFFFF }, { NvVec3(0.5f, 0.0f, 0.5f), NvVec3(0.5f, 0.0f, 0.5f) } }, + { { families[1], nullptr }, { 4, 0xFFFFFFFF }, { NvVec3(1.0f, 0.0f, -0.5f), NvVec3(1.0f, 0.0f, -0.5f) } }, - { { nullptr, families[3] }, { 0xFFFFFFFF, 5 }, { PxVec3(0.5f, 0.0f, 0.5f), PxVec3(0.5f, 0.0f, 0.5f) } }, - { { nullptr, families[3] }, { 0xFFFFFFFF, 2 }, { PxVec3(1.0f, 0.0f, -0.5f), PxVec3(1.0f, 0.0f, -0.5f) } }, + { { nullptr, families[3] }, { 0xFFFFFFFF, 5 }, { NvVec3(0.5f, 0.0f, 0.5f), NvVec3(0.5f, 0.0f, 0.5f) } }, + { { nullptr, families[3] }, { 0xFFFFFFFF, 2 }, { NvVec3(1.0f, 0.0f, -0.5f), NvVec3(1.0f, 0.0f, -0.5f) } }, - { { families[2], families[3] }, { 8, 7 }, { PxVec3(0.0f, 1.5f, 0.5f), PxVec3(0.0f, 1.5f, 0.5f) } }, - { { families[2], families[3] }, { 2, 1 }, { PxVec3(0.0f, 0.5f, -0.5f), PxVec3(0.0f, 0.5f, -0.5f), } } + { { families[2], families[3] }, { 8, 7 }, { NvVec3(0.0f, 1.5f, 0.5f), NvVec3(0.0f, 1.5f, 0.5f) } }, + { { families[2], families[3] }, { 2, 1 }, { NvVec3(0.0f, 0.5f, -0.5f), NvVec3(0.0f, 0.5f, -0.5f), } } }; const TkJointDesc* jointDescs = createNRFJoints ? jointDescsWithNRF : jointDescsNoNRF; @@ -145,7 +145,7 @@ class TkCompositeTest : public TkBaseTest #else TkFramework* fw = NvBlastTkFrameworkGet(); - PsMemoryBuffer* membuf = PX_NEW(PsMemoryBuffer); + PsMemoryBuffer* membuf = NVBLAST_NEW(PsMemoryBuffer); EXPECT_TRUE(membuf != nullptr); if (membuf == nullptr) { @@ -622,8 +622,8 @@ class TkCompositeTest : public TkBaseTest jdesc.families[1] = family2; jdesc.chunkIndices[0] = 2; jdesc.chunkIndices[1] = 1; - jdesc.attachPositions[0] = PxVec3(0.0f, 1.0f, 0.0f); - jdesc.attachPositions[1] = PxVec3(0.0f, -1.0f, 0.0f); + jdesc.attachPositions[0] = NvVec3(0.0f, 1.0f, 0.0f); + jdesc.attachPositions[1] = NvVec3(0.0f, -1.0f, 0.0f); TkJoint* joint = framework->createJoint(jdesc); EXPECT_TRUE(joint != nullptr); tracker.joints.insert(joint); diff --git a/blast/source/test/src/unit/TkTests.cpp b/blast/source/test/src/unit/TkTests.cpp index 72d35a3bf..8ec68bf3a 100644 --- a/blast/source/test/src/unit/TkTests.cpp +++ b/blast/source/test/src/unit/TkTests.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "TkBaseTest.h" @@ -32,12 +32,10 @@ #include #include -#include "PsMemoryBuffer.h" +#include "NsMemoryBuffer.h" #include "NvBlastTime.h" -#include "NvBlastExtPxTask.h" - struct ExpectedVisibleChunks { ExpectedVisibleChunks() :numActors(0), numChunks(0) {} @@ -91,21 +89,6 @@ TEST_F(TkTestStrict, CreateAsset) releaseFramework(); } -#if USE_PHYSX_DISPATCHER -TEST_F(TkTestStrict, DISABLED_MemLeak) -{ - PxFoundation* pxFoundation = PxCreateFoundation(PX_PHYSICS_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback()); - PxU32 affinity[] = { 1, 2, 4, 8 }; - PxDefaultCpuDispatcher* cpuDispatcher = PxDefaultCpuDispatcherCreate(4, affinity); - cpuDispatcher->setRunProfiled(false); - PxTaskManager* taskman = PxTaskManager::createTaskManager(NvBlastGetPxErrorCallback(), cpuDispatcher, nullptr); - - cpuDispatcher->release(); - taskman->release(); - pxFoundation->release(); -} -#endif - TEST_F(TkTestStrict, ActorDamageNoGroup) { createFramework(); @@ -365,8 +348,8 @@ TEST_F(TkTestStrict, ActorDamageMultiGroup) TkGroup* group1 = fwk->createGroup(gdesc); EXPECT_TRUE(group1 != nullptr); - ExtGroupTaskManager& gtm1 = *ExtGroupTaskManager::create(*m_taskman, group1); - ExtGroupTaskManager& gtm0 = *ExtGroupTaskManager::create(*m_taskman, group0); + TkGroupTaskManager& gtm1 = *TkGroupTaskManager::create(*m_taskman, group1); + TkGroupTaskManager& gtm0 = *TkGroupTaskManager::create(*m_taskman, group0); std::vector families(2); std::map expectedVisibleChunks; @@ -796,7 +779,7 @@ TkFamily* TkBaseTest::familySerialization(TkFamily* family) const TkType* familyType = fw->getType(TkTypeIndex::Family); EXPECT_TRUE(familyType != nullptr); - PsMemoryBuffer* membuf = PX_NEW(PsMemoryBuffer); + PsMemoryBuffer* membuf = NVBLAST_NEW(PsMemoryBuffer); EXPECT_TRUE(membuf != nullptr); if (membuf != nullptr) { @@ -1356,16 +1339,8 @@ TEST_F(TkTestAllowWarnings, ChangeThreadCountToZero) actor3->getFamily().addListener(listener); actor4->getFamily().addListener(listener); -#if USE_PHYSX_DISPATCHER - PxU32 affinity[] = { 1, 2, 4, 8 }; - PxDefaultCpuDispatcher* disp0 = PxDefaultCpuDispatcherCreate(0, affinity); - disp0->setRunProfiled(false); - PxDefaultCpuDispatcher* disp4 = PxDefaultCpuDispatcherCreate(4, affinity); - disp4->setRunProfiled(false); -#else TestCpuDispatcher* disp0 = new TestCpuDispatcher(0); TestCpuDispatcher* disp4 = new TestCpuDispatcher(4); -#endif m_taskman->setCpuDispatcher(*disp4); @@ -1461,16 +1436,8 @@ TEST_F(TkTestStrict, ChangeThreadCountUp) actor3->getFamily().addListener(listener); actor4->getFamily().addListener(listener); -#if USE_PHYSX_DISPATCHER - PxU32 affinity[] = { 1, 2, 4, 8 }; - PxDefaultCpuDispatcher* disp2 = PxDefaultCpuDispatcherCreate(2, affinity); - disp2->setRunProfiled(false); - PxDefaultCpuDispatcher* disp4 = PxDefaultCpuDispatcherCreate(4, affinity); - disp4->setRunProfiled(false); -#else TestCpuDispatcher* disp2 = new TestCpuDispatcher(2); TestCpuDispatcher* disp4 = new TestCpuDispatcher(4); -#endif m_taskman->setCpuDispatcher(*disp2); TkGroupDesc groupDesc = { m_taskman->getCpuDispatcher()->getWorkerCount() }; @@ -1566,11 +1533,7 @@ TEST_F(TkTestAllowWarnings, GroupNoWorkers) actor3->getFamily().addListener(listener); actor4->getFamily().addListener(listener); -#if USE_PHYSX_DISPATCHER - PxDefaultCpuDispatcher* disp = PxDefaultCpuDispatcherCreate(0); -#else TestCpuDispatcher* disp = new TestCpuDispatcher(0); -#endif m_taskman->setCpuDispatcher(*disp); TkGroupDesc groupDesc = { m_taskman->getCpuDispatcher()->getWorkerCount() }; diff --git a/blast/source/test/src/utils/TaskDispatcher.h b/blast/source/test/src/utils/TaskDispatcher.h index 204860516..552e6f69e 100644 --- a/blast/source/test/src/utils/TaskDispatcher.h +++ b/blast/source/test/src/utils/TaskDispatcher.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #pragma once diff --git a/blast/source/test/src/utils/TestAssets.cpp b/blast/source/test/src/utils/TestAssets.cpp index 7d15e7af9..5e416168c 100644 --- a/blast/source/test/src/utils/TestAssets.cpp +++ b/blast/source/test/src/utils/TestAssets.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #include "TestAssets.h" diff --git a/blast/source/test/src/utils/TestAssets.h b/blast/source/test/src/utils/TestAssets.h index a03fbb633..f35443029 100644 --- a/blast/source/test/src/utils/TestAssets.h +++ b/blast/source/test/src/utils/TestAssets.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef TESTASSETS_H diff --git a/blast/source/test/src/utils/TestProfiler.h b/blast/source/test/src/utils/TestProfiler.h index f883633df..812182a9a 100644 --- a/blast/source/test/src/utils/TestProfiler.h +++ b/blast/source/test/src/utils/TestProfiler.h @@ -22,12 +22,14 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2016-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2016-2023 NVIDIA Corporation. All rights reserved. #ifndef TESTPROFILER_H #define TESTPROFILER_H +#include "NvBlastInternalProfiler.h" + #define TEST_ZONE_BEGIN(name) platformZoneStart(name) #define TEST_ZONE_END(name) platformZoneEnd() diff --git a/physx/CHANGELOG.md b/physx/CHANGELOG.md index 4c509d2d0..d6a6bc14b 100644 --- a/physx/CHANGELOG.md +++ b/physx/CHANGELOG.md @@ -1,3 +1,48 @@ +# v5.1.3 + +## General + +### Added: + +* Support for Microsoft Visual Studio 2022 for Windows builds. + +### Fixed + +* Changing the materials of a shape did not work when using GPU dynamics. + +## Rigid Body + +### Fixed + +* A rare bug involving GPU aggregates, in which newly created actors could freely move through existing actors, has been fixed. + +## Joints + +### Fixed + +* The D6 joint's twist drive was using the wrong actor's axis (B instead of A). This has been fixed, and it could affect joint setups in existing scenes. To fix this in existing content it might be enough to flip the joint frames of involved actors, but this may not be possible depending on which other features (joint limits, etc) have been setup for the same joint. In the worst case it might be necessary to re-tune these joints. + +## Soft Body + +### Fixed + +* Rendering for tetmeshes in snippets had some tet faces inverted. This has been fixed. +* The voxel tetmesher won't crash anymore when called with zero elements as input. +* A bug in collision computation between a soft body and a scaled triangle mesh has been fixed. + +## Particles + +### Fixed + +* The Poisson Sampler will not cause number overflows and crashes anymore when called with parameters that lead to too many samples. + +## Pvd + +### Fixed + +* Fixed a potential crash bug when contact points are recorded through OmniPVD. + + # v5.1.2 ## General diff --git a/physx/README.md b/physx/README.md index 89f00c8d3..41e8b2471 100644 --- a/physx/README.md +++ b/physx/README.md @@ -1,6 +1,6 @@ # NVIDIA PhysX SDK 5 -Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/physx/buildtools/cmake_generate_projects.py b/physx/buildtools/cmake_generate_projects.py index de9114de5..dab3dab6d 100644 --- a/physx/buildtools/cmake_generate_projects.py +++ b/physx/buildtools/cmake_generate_projects.py @@ -131,6 +131,10 @@ def getCMakeSwitches(self): print('VS16CL:' + os.environ['VS160CLPATH']) outString = outString + ' -DCUDA_HOST_COMPILER=' + \ os.environ['VS160CLPATH'] + if self.compiler == 'vc17': + print('VS17CL:' + os.environ['VS170CLPATH']) + outString = outString + ' -DCUDA_HOST_COMPILER=' + \ + os.environ['VS170CLPATH'] return outString @@ -142,14 +146,12 @@ def getCMakeParams(self): def getPlatformCMakeParams(self): outString = ' ' - if self.compiler == 'vc12': - outString = outString + '-G \"Visual Studio 12 2013\"' - elif self.compiler == 'vc14': - outString = outString + '-G \"Visual Studio 14 2015\"' - elif self.compiler == 'vc15': + if self.compiler == 'vc15': outString = outString + '-G \"Visual Studio 15 2017\"' elif self.compiler == 'vc16': outString = outString + '-G \"Visual Studio 16 2019\"' + elif self.compiler == 'vc17': + outString = outString + '-G \"Visual Studio 17 2022\"' elif self.compiler == 'xcode': outString = outString + '-G Xcode' elif self.targetPlatform == 'linux': @@ -157,23 +159,11 @@ def getPlatformCMakeParams(self): elif self.targetPlatform == 'linuxAarch64': outString = outString + '-G \"Unix Makefiles\"' - if self.targetPlatform == 'win32': - outString = outString + ' -AWin32' - outString = outString + ' -DTARGET_BUILD_PLATFORM=windows' - outString = outString + ' -DPX_OUTPUT_ARCH=x86' - return outString - elif self.targetPlatform == 'win64': + if self.targetPlatform == 'win64': outString = outString + ' -Ax64' outString = outString + ' -DTARGET_BUILD_PLATFORM=windows' outString = outString + ' -DPX_OUTPUT_ARCH=x86' return outString - elif self.targetPlatform == 'switch32': - outString = outString + ' -DTARGET_BUILD_PLATFORM=switch' - outString = outString + ' -DCMAKE_TOOLCHAIN_FILE=' + \ - os.environ['PM_CMakeModules_PATH'] + \ - '/switch/NX32Toolchain.txt' - outString = outString + ' -DCMAKE_GENERATOR_PLATFORM=NX32' - return outString elif self.targetPlatform == 'switch64': outString = outString + ' -DTARGET_BUILD_PLATFORM=switch' outString = outString + ' -DCMAKE_TOOLCHAIN_FILE=' + \ diff --git a/physx/buildtools/presets/public/vc17win64.xml b/physx/buildtools/presets/public/vc17win64.xml new file mode 100644 index 000000000..c2436a091 --- /dev/null +++ b/physx/buildtools/presets/public/vc17win64.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/physx/buildtools/templates/boilerplate_bsd.txt b/physx/buildtools/templates/boilerplate_bsd.txt index c079840d4..b2b7a7b39 100644 --- a/physx/buildtools/templates/boilerplate_bsd.txt +++ b/physx/buildtools/templates/boilerplate_bsd.txt @@ -22,4 +22,4 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. \ No newline at end of file +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. \ No newline at end of file diff --git a/physx/compiler/public/CMakeLists.txt b/physx/compiler/public/CMakeLists.txt index 59a9f8cc6..73c316852 100644 --- a/physx/compiler/public/CMakeLists.txt +++ b/physx/compiler/public/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. IF(TARGET_BUILD_PLATFORM STREQUAL "mac") cmake_minimum_required(VERSION 3.12) diff --git a/physx/dependencies.xml b/physx/dependencies.xml index f81a15294..b92483f8e 100644 --- a/physx/dependencies.xml +++ b/physx/dependencies.xml @@ -1,26 +1,26 @@ - + - + - + - + - + - + diff --git a/physx/documentation/platformreadme/windows/README_WINDOWS.md b/physx/documentation/platformreadme/windows/README_WINDOWS.md index 321176755..0d48eb88d 100644 --- a/physx/documentation/platformreadme/windows/README_WINDOWS.md +++ b/physx/documentation/platformreadme/windows/README_WINDOWS.md @@ -7,7 +7,7 @@ ## Required packages to generate projects: -* CMake, minimum version 3.14 +* CMake, minimum version 3.21 * Python, minimum version 3.5 ## PhysX GPU Acceleration: diff --git a/physx/generate_projects.bat b/physx/generate_projects.bat index d919f35d5..338f7cdb2 100644 --- a/physx/generate_projects.bat +++ b/physx/generate_projects.bat @@ -31,6 +31,11 @@ for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [16 set VS160PATH="%%i" ) +for /f "usebackq tokens=*" %%i in (`"%PM_vswhere_PATH%\VsWhere.exe -version [17.0,18.0) -latest -property installationPath"`) do ( + set Install2022Dir=%%i + set VS170PATH="%%i" +) + if exist "%Install2017Dir%\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt" ( pushd "%Install2017Dir%\VC\Auxiliary\Build\" set /p Version=& result, PxReal rVolume = 0.0f, PxArray* triangleIds = NULL, PxArray* barycentricCoordinates = NULL, + static bool poissonSample(const PxSimpleTriangleMesh& mesh, PxReal r, PxArray& result, PxReal rVolume = 0.0f, PxArray* triangleIds = NULL, PxArray* barycentricCoordinates = NULL, const PxBounds3* axisAlignedBox = NULL, const PxQuat* boxOrientation = NULL, PxU32 maxNumSamples = 0, PxU32 numSampleAttemptsAroundPoint = 30); /** Computes samples on a geometry's surface that are not closer to each other than a given distance. @@ -76,8 +77,9 @@ class PxSamplingExt \param[in] boxOrientation The orientation of the box that limits the space where samples can get created \param[in] maxNumSamples If larger than zero, the sampler will stop when the sample count reaches maxNumSamples \param[in] numSampleAttemptsAroundPoint Number of repetitions the underlying algorithm performs to find a new valid sample that matches all criteria like minimal distance to existing samples etc. + \return Returns true if the sampling was successful and false if there was a problem. Usually an internal overflow is the problem for very big meshes or very small sampling radii. */ - static void poissonSample(const PxGeometry& geometry, const PxTransform& transform, const PxBounds3& worldBounds, PxReal r, PxArray& result, PxReal rVolume = 0.0f, + static bool poissonSample(const PxGeometry& geometry, const PxTransform& transform, const PxBounds3& worldBounds, PxReal r, PxArray& result, PxReal rVolume = 0.0f, const PxBounds3* axisAlignedBox = NULL, const PxQuat* boxOrientation = NULL, PxU32 maxNumSamples = 0, PxU32 numSampleAttemptsAroundPoint = 30); }; @@ -89,8 +91,9 @@ class PxPoissonSampler : public PxUserAllocated public: /** Sets the sampling radius \param[in] samplingRadius The closest distance two surface samples are allowed to have. Changing the sampling radius is a bit an expensive operation. + \return Returns true if the sampling was successful and false if there was a problem. Usually an internal overflow is the problem for very big meshes or very small sampling radii. */ - virtual void setSamplingRadius(PxReal samplingRadius) = 0; + virtual bool setSamplingRadius(PxReal samplingRadius) = 0; /** Adds samples \param[in] samples The samples to add. Adding samples is a bit an expensive operation. diff --git a/physx/include/extensions/PxSceneQueryExt.h b/physx/include/extensions/PxSceneQueryExt.h index 369153961..f089abf21 100644 --- a/physx/include/extensions/PxSceneQueryExt.h +++ b/physx/include/extensions/PxSceneQueryExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSceneQuerySystemExt.h b/physx/include/extensions/PxSceneQuerySystemExt.h index 696fafefc..909fd726f 100644 --- a/physx/include/extensions/PxSceneQuerySystemExt.h +++ b/physx/include/extensions/PxSceneQuerySystemExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSerialization.h b/physx/include/extensions/PxSerialization.h index 7f4c017e2..fca17512a 100644 --- a/physx/include/extensions/PxSerialization.h +++ b/physx/include/extensions/PxSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -44,7 +44,7 @@ PX_BINARY_SERIAL_VERSION is used to version the PhysX binary data and meta data. The global unique identifier of the PhysX SDK needs to match the one in the data and meta data, otherwise they are considered incompatible. A 32 character wide GUID can be generated with https://www.guidgenerator.com/ for example. */ -#define PX_BINARY_SERIAL_VERSION "4ACDCFBFCFC047699FFC47263E9670C0" +#define PX_BINARY_SERIAL_VERSION "0E16D844227B469DB23DA9C42CB4E624" #if !PX_DOXYGEN diff --git a/physx/include/extensions/PxShapeExt.h b/physx/include/extensions/PxShapeExt.h index ec4f1a492..e0c059d4e 100644 --- a/physx/include/extensions/PxShapeExt.h +++ b/physx/include/extensions/PxShapeExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSimpleFactory.h b/physx/include/extensions/PxSimpleFactory.h index 4ee862416..ac21af09f 100644 --- a/physx/include/extensions/PxSimpleFactory.h +++ b/physx/include/extensions/PxSimpleFactory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSmoothNormals.h b/physx/include/extensions/PxSmoothNormals.h index bab66eb30..7b5285015 100644 --- a/physx/include/extensions/PxSmoothNormals.h +++ b/physx/include/extensions/PxSmoothNormals.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSoftBodyExt.h b/physx/include/extensions/PxSoftBodyExt.h index db4cc880a..ffc1c3093 100644 --- a/physx/include/extensions/PxSoftBodyExt.h +++ b/physx/include/extensions/PxSoftBodyExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxSphericalJoint.h b/physx/include/extensions/PxSphericalJoint.h index b5cdf45e8..bee05853f 100644 --- a/physx/include/extensions/PxSphericalJoint.h +++ b/physx/include/extensions/PxSphericalJoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxStringTableExt.h b/physx/include/extensions/PxStringTableExt.h index e656340aa..b4fdb1cf8 100644 --- a/physx/include/extensions/PxStringTableExt.h +++ b/physx/include/extensions/PxStringTableExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxTetMakerExt.h b/physx/include/extensions/PxTetMakerExt.h index b424824cc..e5d8dd51b 100644 --- a/physx/include/extensions/PxTetMakerExt.h +++ b/physx/include/extensions/PxTetMakerExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxTetrahedronMeshAnalysisResult.h b/physx/include/extensions/PxTetrahedronMeshAnalysisResult.h index dfd114d4e..be88af9e7 100644 --- a/physx/include/extensions/PxTetrahedronMeshAnalysisResult.h +++ b/physx/include/extensions/PxTetrahedronMeshAnalysisResult.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_TETRAHEDRON_MESH_ANALYSIS_RESULT_H #define PX_TETRAHEDRON_MESH_ANALYSIS_RESULT_H diff --git a/physx/include/extensions/PxTetrahedronMeshExt.h b/physx/include/extensions/PxTetrahedronMeshExt.h index d424e6a96..ca24c4415 100644 --- a/physx/include/extensions/PxTetrahedronMeshExt.h +++ b/physx/include/extensions/PxTetrahedronMeshExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/extensions/PxTriangleMeshAnalysisResult.h b/physx/include/extensions/PxTriangleMeshAnalysisResult.h index c9f79e27e..e84bcf95c 100644 --- a/physx/include/extensions/PxTriangleMeshAnalysisResult.h +++ b/physx/include/extensions/PxTriangleMeshAnalysisResult.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_TRIANGLE_MESH_ANALYSIS_RESULT_H #define PX_TRIANGLE_MESH_ANALYSIS_RESULT_H diff --git a/physx/include/extensions/PxTriangleMeshExt.h b/physx/include/extensions/PxTriangleMeshExt.h index 6704358b9..c5de6966d 100644 --- a/physx/include/extensions/PxTriangleMeshExt.h +++ b/physx/include/extensions/PxTriangleMeshExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/filebuf/PxFileBuf.h b/physx/include/filebuf/PxFileBuf.h index 135a639e6..79ab02661 100644 --- a/physx/include/filebuf/PxFileBuf.h +++ b/physx/include/filebuf/PxFileBuf.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/Px.h b/physx/include/foundation/Px.h index f2325d0ad..1d3dd4e74 100644 --- a/physx/include/foundation/Px.h +++ b/physx/include/foundation/Px.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAlignedMalloc.h b/physx/include/foundation/PxAlignedMalloc.h index b6cd9ee92..6e71f5988 100644 --- a/physx/include/foundation/PxAlignedMalloc.h +++ b/physx/include/foundation/PxAlignedMalloc.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAlloca.h b/physx/include/foundation/PxAlloca.h index 5f037e2dd..088cda195 100644 --- a/physx/include/foundation/PxAlloca.h +++ b/physx/include/foundation/PxAlloca.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAllocator.h b/physx/include/foundation/PxAllocator.h index 6d2cf13ea..5fb41997d 100644 --- a/physx/include/foundation/PxAllocator.h +++ b/physx/include/foundation/PxAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAllocatorCallback.h b/physx/include/foundation/PxAllocatorCallback.h index 986d0f6f8..c82ceb0d3 100644 --- a/physx/include/foundation/PxAllocatorCallback.h +++ b/physx/include/foundation/PxAllocatorCallback.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAoS.h b/physx/include/foundation/PxAoS.h index bb7f6e786..5d95793b1 100644 --- a/physx/include/foundation/PxAoS.h +++ b/physx/include/foundation/PxAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxArray.h b/physx/include/foundation/PxArray.h index 1c61dffea..5b636f891 100644 --- a/physx/include/foundation/PxArray.h +++ b/physx/include/foundation/PxArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAssert.h b/physx/include/foundation/PxAssert.h index 6c9948956..f1d4d2688 100644 --- a/physx/include/foundation/PxAssert.h +++ b/physx/include/foundation/PxAssert.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxAtomic.h b/physx/include/foundation/PxAtomic.h index ec101b9a5..5cf4a16fa 100644 --- a/physx/include/foundation/PxAtomic.h +++ b/physx/include/foundation/PxAtomic.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBasicTemplates.h b/physx/include/foundation/PxBasicTemplates.h index 9a06effd1..7243e5d8a 100644 --- a/physx/include/foundation/PxBasicTemplates.h +++ b/physx/include/foundation/PxBasicTemplates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBitAndData.h b/physx/include/foundation/PxBitAndData.h index 13d39ba4e..38f937b4e 100644 --- a/physx/include/foundation/PxBitAndData.h +++ b/physx/include/foundation/PxBitAndData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBitMap.h b/physx/include/foundation/PxBitMap.h index 6603bb138..cb7ce9d17 100644 --- a/physx/include/foundation/PxBitMap.h +++ b/physx/include/foundation/PxBitMap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBitUtils.h b/physx/include/foundation/PxBitUtils.h index 7ab2ebe8e..49942c171 100644 --- a/physx/include/foundation/PxBitUtils.h +++ b/physx/include/foundation/PxBitUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBounds3.h b/physx/include/foundation/PxBounds3.h index 36c9ec7f8..40d0ebe9b 100644 --- a/physx/include/foundation/PxBounds3.h +++ b/physx/include/foundation/PxBounds3.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxBroadcast.h b/physx/include/foundation/PxBroadcast.h index 911597dfc..2d160896c 100644 --- a/physx/include/foundation/PxBroadcast.h +++ b/physx/include/foundation/PxBroadcast.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxErrorCallback.h b/physx/include/foundation/PxErrorCallback.h index 279ef196c..3a9a52220 100644 --- a/physx/include/foundation/PxErrorCallback.h +++ b/physx/include/foundation/PxErrorCallback.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxErrors.h b/physx/include/foundation/PxErrors.h index 595a5b8fc..17311daa9 100644 --- a/physx/include/foundation/PxErrors.h +++ b/physx/include/foundation/PxErrors.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxFPU.h b/physx/include/foundation/PxFPU.h index 3b459f615..037fc8019 100644 --- a/physx/include/foundation/PxFPU.h +++ b/physx/include/foundation/PxFPU.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxFlags.h b/physx/include/foundation/PxFlags.h index 7689c1200..65d6ed2b8 100644 --- a/physx/include/foundation/PxFlags.h +++ b/physx/include/foundation/PxFlags.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxFoundation.h b/physx/include/foundation/PxFoundation.h index 775b695a1..c103b2d55 100644 --- a/physx/include/foundation/PxFoundation.h +++ b/physx/include/foundation/PxFoundation.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxFoundationConfig.h b/physx/include/foundation/PxFoundationConfig.h index 5abd7a573..53c14ace4 100644 --- a/physx/include/foundation/PxFoundationConfig.h +++ b/physx/include/foundation/PxFoundationConfig.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxHash.h b/physx/include/foundation/PxHash.h index 47392785b..43ea55215 100644 --- a/physx/include/foundation/PxHash.h +++ b/physx/include/foundation/PxHash.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxHashInternals.h b/physx/include/foundation/PxHashInternals.h index d73ef9c91..024084da2 100644 --- a/physx/include/foundation/PxHashInternals.h +++ b/physx/include/foundation/PxHashInternals.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxHashMap.h b/physx/include/foundation/PxHashMap.h index 0cf8f9399..cc34ae177 100644 --- a/physx/include/foundation/PxHashMap.h +++ b/physx/include/foundation/PxHashMap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxHashSet.h b/physx/include/foundation/PxHashSet.h index 5a5c0fc55..354b04493 100644 --- a/physx/include/foundation/PxHashSet.h +++ b/physx/include/foundation/PxHashSet.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxIO.h b/physx/include/foundation/PxIO.h index 994159c58..a3d53f755 100644 --- a/physx/include/foundation/PxIO.h +++ b/physx/include/foundation/PxIO.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxInlineAllocator.h b/physx/include/foundation/PxInlineAllocator.h index 5951ab523..9ff73881a 100644 --- a/physx/include/foundation/PxInlineAllocator.h +++ b/physx/include/foundation/PxInlineAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxInlineAoS.h b/physx/include/foundation/PxInlineAoS.h index e639cbbe7..c0884021f 100644 --- a/physx/include/foundation/PxInlineAoS.h +++ b/physx/include/foundation/PxInlineAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxInlineArray.h b/physx/include/foundation/PxInlineArray.h index 5f6487dad..f3c9d8428 100644 --- a/physx/include/foundation/PxInlineArray.h +++ b/physx/include/foundation/PxInlineArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxIntrinsics.h b/physx/include/foundation/PxIntrinsics.h index 8d09c2644..46ddaf224 100644 --- a/physx/include/foundation/PxIntrinsics.h +++ b/physx/include/foundation/PxIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMat33.h b/physx/include/foundation/PxMat33.h index 17d880364..0f5485827 100644 --- a/physx/include/foundation/PxMat33.h +++ b/physx/include/foundation/PxMat33.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMat34.h b/physx/include/foundation/PxMat34.h index d002ff863..ccbc6c0d7 100644 --- a/physx/include/foundation/PxMat34.h +++ b/physx/include/foundation/PxMat34.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMat44.h b/physx/include/foundation/PxMat44.h index b04339b1d..92cfa51d4 100644 --- a/physx/include/foundation/PxMat44.h +++ b/physx/include/foundation/PxMat44.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMath.h b/physx/include/foundation/PxMath.h index afdb77968..cff5b1795 100644 --- a/physx/include/foundation/PxMath.h +++ b/physx/include/foundation/PxMath.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -45,6 +45,12 @@ #pragma warning(pop) #endif +#if (PX_LINUX_FAMILY && !PX_ARM_FAMILY) +// Force linking against nothing newer than glibc v2.17 to remain compatible with platforms with older glibc versions +__asm__(".symver expf,expf@GLIBC_2.2.5"); +__asm__(".symver powf,powf@GLIBC_2.2.5"); +#endif + #include #include "foundation/PxMathIntrinsics.h" #include "foundation/PxAssert.h" diff --git a/physx/include/foundation/PxMathIntrinsics.h b/physx/include/foundation/PxMathIntrinsics.h index 1211b8e42..0f40918ee 100644 --- a/physx/include/foundation/PxMathIntrinsics.h +++ b/physx/include/foundation/PxMathIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMathUtils.h b/physx/include/foundation/PxMathUtils.h index b473cb240..bfbf3b7be 100644 --- a/physx/include/foundation/PxMathUtils.h +++ b/physx/include/foundation/PxMathUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMemory.h b/physx/include/foundation/PxMemory.h index 19ff67763..750a5faef 100644 --- a/physx/include/foundation/PxMemory.h +++ b/physx/include/foundation/PxMemory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxMutex.h b/physx/include/foundation/PxMutex.h index daac6762c..fcb8e021b 100644 --- a/physx/include/foundation/PxMutex.h +++ b/physx/include/foundation/PxMutex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxPhysicsVersion.h b/physx/include/foundation/PxPhysicsVersion.h index 7a1cca4ac..bab58af26 100644 --- a/physx/include/foundation/PxPhysicsVersion.h +++ b/physx/include/foundation/PxPhysicsVersion.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -50,7 +50,7 @@ sometimes they are stored in a byte. #define PX_PHYSICS_VERSION_MAJOR 5 #define PX_PHYSICS_VERSION_MINOR 1 -#define PX_PHYSICS_VERSION_BUGFIX 2 +#define PX_PHYSICS_VERSION_BUGFIX 3 /** The constant PX_PHYSICS_VERSION is used when creating certain PhysX module objects. diff --git a/physx/include/foundation/PxPinnedArray.h b/physx/include/foundation/PxPinnedArray.h index 720f8b1d7..020fb4383 100644 --- a/physx/include/foundation/PxPinnedArray.h +++ b/physx/include/foundation/PxPinnedArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxPlane.h b/physx/include/foundation/PxPlane.h index 0d5fc01a0..a04186204 100644 --- a/physx/include/foundation/PxPlane.h +++ b/physx/include/foundation/PxPlane.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxPool.h b/physx/include/foundation/PxPool.h index 1ad89dce5..21c83678a 100644 --- a/physx/include/foundation/PxPool.h +++ b/physx/include/foundation/PxPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxPreprocessor.h b/physx/include/foundation/PxPreprocessor.h index e2b644c0d..43cda0429 100644 --- a/physx/include/foundation/PxPreprocessor.h +++ b/physx/include/foundation/PxPreprocessor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxProfiler.h b/physx/include/foundation/PxProfiler.h index b1b77ebb2..b72a6b2f8 100644 --- a/physx/include/foundation/PxProfiler.h +++ b/physx/include/foundation/PxProfiler.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILER_H #define PX_PROFILER_H diff --git a/physx/include/foundation/PxQuat.h b/physx/include/foundation/PxQuat.h index 8638d41a9..70d0ca6bd 100644 --- a/physx/include/foundation/PxQuat.h +++ b/physx/include/foundation/PxQuat.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSIMDHelpers.h b/physx/include/foundation/PxSIMDHelpers.h index fb9858ab7..85e065679 100644 --- a/physx/include/foundation/PxSIMDHelpers.h +++ b/physx/include/foundation/PxSIMDHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSList.h b/physx/include/foundation/PxSList.h index 3cfee6636..e0a33617f 100644 --- a/physx/include/foundation/PxSList.h +++ b/physx/include/foundation/PxSList.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSimpleTypes.h b/physx/include/foundation/PxSimpleTypes.h index 990896bdd..49b44fc5e 100644 --- a/physx/include/foundation/PxSimpleTypes.h +++ b/physx/include/foundation/PxSimpleTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSocket.h b/physx/include/foundation/PxSocket.h index 529d34c87..eaa0485f4 100644 --- a/physx/include/foundation/PxSocket.h +++ b/physx/include/foundation/PxSocket.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSort.h b/physx/include/foundation/PxSort.h index 13229969d..24ad1bc34 100644 --- a/physx/include/foundation/PxSort.h +++ b/physx/include/foundation/PxSort.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSortInternals.h b/physx/include/foundation/PxSortInternals.h index 07bac9f21..b6702d133 100644 --- a/physx/include/foundation/PxSortInternals.h +++ b/physx/include/foundation/PxSortInternals.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxStrideIterator.h b/physx/include/foundation/PxStrideIterator.h index 7178fd3d2..c1326fa18 100644 --- a/physx/include/foundation/PxStrideIterator.h +++ b/physx/include/foundation/PxStrideIterator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxString.h b/physx/include/foundation/PxString.h index 1998dff83..eb744bb2c 100644 --- a/physx/include/foundation/PxString.h +++ b/physx/include/foundation/PxString.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxSync.h b/physx/include/foundation/PxSync.h index 2b10576e8..46865d7e5 100644 --- a/physx/include/foundation/PxSync.h +++ b/physx/include/foundation/PxSync.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxTempAllocator.h b/physx/include/foundation/PxTempAllocator.h index ac56b4c5f..395bce9a2 100644 --- a/physx/include/foundation/PxTempAllocator.h +++ b/physx/include/foundation/PxTempAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxThread.h b/physx/include/foundation/PxThread.h index 0a1fd0c96..abfc8a423 100644 --- a/physx/include/foundation/PxThread.h +++ b/physx/include/foundation/PxThread.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxTime.h b/physx/include/foundation/PxTime.h index 44a2352f4..6839ccc9d 100644 --- a/physx/include/foundation/PxTime.h +++ b/physx/include/foundation/PxTime.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxTransform.h b/physx/include/foundation/PxTransform.h index 4d672a5eb..bf877a6d6 100644 --- a/physx/include/foundation/PxTransform.h +++ b/physx/include/foundation/PxTransform.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxUnionCast.h b/physx/include/foundation/PxUnionCast.h index d5dd0d8b4..95d7d1d25 100644 --- a/physx/include/foundation/PxUnionCast.h +++ b/physx/include/foundation/PxUnionCast.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxUserAllocated.h b/physx/include/foundation/PxUserAllocated.h index 9e79415e3..d5be1724c 100644 --- a/physx/include/foundation/PxUserAllocated.h +++ b/physx/include/foundation/PxUserAllocated.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxUtilities.h b/physx/include/foundation/PxUtilities.h index 48bfb0a20..d4f014b35 100644 --- a/physx/include/foundation/PxUtilities.h +++ b/physx/include/foundation/PxUtilities.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVec2.h b/physx/include/foundation/PxVec2.h index 22668fe9f..12c2f51be 100644 --- a/physx/include/foundation/PxVec2.h +++ b/physx/include/foundation/PxVec2.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVec3.h b/physx/include/foundation/PxVec3.h index e347b3acb..af51e8c4c 100644 --- a/physx/include/foundation/PxVec3.h +++ b/physx/include/foundation/PxVec3.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVec4.h b/physx/include/foundation/PxVec4.h index 1742e3635..f467a2f44 100644 --- a/physx/include/foundation/PxVec4.h +++ b/physx/include/foundation/PxVec4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecMath.h b/physx/include/foundation/PxVecMath.h index 9f98f507f..f805c55e9 100644 --- a/physx/include/foundation/PxVecMath.h +++ b/physx/include/foundation/PxVecMath.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecMathAoSScalar.h b/physx/include/foundation/PxVecMathAoSScalar.h index 8db886d6f..11243cd13 100644 --- a/physx/include/foundation/PxVecMathAoSScalar.h +++ b/physx/include/foundation/PxVecMathAoSScalar.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecMathAoSScalarInline.h b/physx/include/foundation/PxVecMathAoSScalarInline.h index 6b77129ea..b328ebb79 100644 --- a/physx/include/foundation/PxVecMathAoSScalarInline.h +++ b/physx/include/foundation/PxVecMathAoSScalarInline.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecMathSSE.h b/physx/include/foundation/PxVecMathSSE.h index 106078eed..0b0aaa924 100644 --- a/physx/include/foundation/PxVecMathSSE.h +++ b/physx/include/foundation/PxVecMathSSE.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecQuat.h b/physx/include/foundation/PxVecQuat.h index 0822c1772..017048292 100644 --- a/physx/include/foundation/PxVecQuat.h +++ b/physx/include/foundation/PxVecQuat.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/PxVecTransform.h b/physx/include/foundation/PxVecTransform.h index bd29307f8..433c2fcaa 100644 --- a/physx/include/foundation/PxVecTransform.h +++ b/physx/include/foundation/PxVecTransform.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixAoS.h b/physx/include/foundation/unix/PxUnixAoS.h index 230c3cf4c..530cc9525 100644 --- a/physx/include/foundation/unix/PxUnixAoS.h +++ b/physx/include/foundation/unix/PxUnixAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixFPU.h b/physx/include/foundation/unix/PxUnixFPU.h index c6434bb6a..19ae1263e 100644 --- a/physx/include/foundation/unix/PxUnixFPU.h +++ b/physx/include/foundation/unix/PxUnixFPU.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixInlineAoS.h b/physx/include/foundation/unix/PxUnixInlineAoS.h index 0f28522c0..e257d17b5 100644 --- a/physx/include/foundation/unix/PxUnixInlineAoS.h +++ b/physx/include/foundation/unix/PxUnixInlineAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixIntrinsics.h b/physx/include/foundation/unix/PxUnixIntrinsics.h index 42b340f2a..4d3808989 100644 --- a/physx/include/foundation/unix/PxUnixIntrinsics.h +++ b/physx/include/foundation/unix/PxUnixIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixMathIntrinsics.h b/physx/include/foundation/unix/PxUnixMathIntrinsics.h index 044c0e57e..f8662760a 100644 --- a/physx/include/foundation/unix/PxUnixMathIntrinsics.h +++ b/physx/include/foundation/unix/PxUnixMathIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/PxUnixTrigConstants.h b/physx/include/foundation/unix/PxUnixTrigConstants.h index ec0fb43f9..635d5222e 100644 --- a/physx/include/foundation/unix/PxUnixTrigConstants.h +++ b/physx/include/foundation/unix/PxUnixTrigConstants.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/neon/PxUnixNeonAoS.h b/physx/include/foundation/unix/neon/PxUnixNeonAoS.h index 8e99b41d5..bf0085163 100644 --- a/physx/include/foundation/unix/neon/PxUnixNeonAoS.h +++ b/physx/include/foundation/unix/neon/PxUnixNeonAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/neon/PxUnixNeonInlineAoS.h b/physx/include/foundation/unix/neon/PxUnixNeonInlineAoS.h index 2fa177f4a..d8a3c746a 100644 --- a/physx/include/foundation/unix/neon/PxUnixNeonInlineAoS.h +++ b/physx/include/foundation/unix/neon/PxUnixNeonInlineAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/sse2/PxUnixSse2AoS.h b/physx/include/foundation/unix/sse2/PxUnixSse2AoS.h index ee8fda86e..d7761a150 100644 --- a/physx/include/foundation/unix/sse2/PxUnixSse2AoS.h +++ b/physx/include/foundation/unix/sse2/PxUnixSse2AoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/unix/sse2/PxUnixSse2InlineAoS.h b/physx/include/foundation/unix/sse2/PxUnixSse2InlineAoS.h index 63cebd55c..ac776942a 100644 --- a/physx/include/foundation/unix/sse2/PxUnixSse2InlineAoS.h +++ b/physx/include/foundation/unix/sse2/PxUnixSse2InlineAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsAoS.h b/physx/include/foundation/windows/PxWindowsAoS.h index 76f1d99eb..13175e3ec 100644 --- a/physx/include/foundation/windows/PxWindowsAoS.h +++ b/physx/include/foundation/windows/PxWindowsAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsFPU.h b/physx/include/foundation/windows/PxWindowsFPU.h index 0b8b46654..f70383eae 100644 --- a/physx/include/foundation/windows/PxWindowsFPU.h +++ b/physx/include/foundation/windows/PxWindowsFPU.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsInclude.h b/physx/include/foundation/windows/PxWindowsInclude.h index 88e48a19d..992a5a6ef 100644 --- a/physx/include/foundation/windows/PxWindowsInclude.h +++ b/physx/include/foundation/windows/PxWindowsInclude.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsInlineAoS.h b/physx/include/foundation/windows/PxWindowsInlineAoS.h index f3b49f88f..ac6ebabd5 100644 --- a/physx/include/foundation/windows/PxWindowsInlineAoS.h +++ b/physx/include/foundation/windows/PxWindowsInlineAoS.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsIntrinsics.h b/physx/include/foundation/windows/PxWindowsIntrinsics.h index c842434b8..9d79d3568 100644 --- a/physx/include/foundation/windows/PxWindowsIntrinsics.h +++ b/physx/include/foundation/windows/PxWindowsIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsMathIntrinsics.h b/physx/include/foundation/windows/PxWindowsMathIntrinsics.h index d7c739841..1eed28188 100644 --- a/physx/include/foundation/windows/PxWindowsMathIntrinsics.h +++ b/physx/include/foundation/windows/PxWindowsMathIntrinsics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/foundation/windows/PxWindowsTrigConstants.h b/physx/include/foundation/windows/PxWindowsTrigConstants.h index bcb3ccb16..673244d03 100644 --- a/physx/include/foundation/windows/PxWindowsTrigConstants.h +++ b/physx/include/foundation/windows/PxWindowsTrigConstants.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxBVH.h b/physx/include/geometry/PxBVH.h index 588945088..70d40e5c5 100644 --- a/physx/include/geometry/PxBVH.h +++ b/physx/include/geometry/PxBVH.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxBVHBuildStrategy.h b/physx/include/geometry/PxBVHBuildStrategy.h index 95408af37..4397201b0 100644 --- a/physx/include/geometry/PxBVHBuildStrategy.h +++ b/physx/include/geometry/PxBVHBuildStrategy.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxBoxGeometry.h b/physx/include/geometry/PxBoxGeometry.h index e5ed2b620..de04acc06 100644 --- a/physx/include/geometry/PxBoxGeometry.h +++ b/physx/include/geometry/PxBoxGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxCapsuleGeometry.h b/physx/include/geometry/PxCapsuleGeometry.h index fc1fc1207..69a59f9ff 100644 --- a/physx/include/geometry/PxCapsuleGeometry.h +++ b/physx/include/geometry/PxCapsuleGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxConvexMesh.h b/physx/include/geometry/PxConvexMesh.h index b556c3529..a0c945732 100644 --- a/physx/include/geometry/PxConvexMesh.h +++ b/physx/include/geometry/PxConvexMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxConvexMeshGeometry.h b/physx/include/geometry/PxConvexMeshGeometry.h index 54d2aa773..1a35d3397 100644 --- a/physx/include/geometry/PxConvexMeshGeometry.h +++ b/physx/include/geometry/PxConvexMeshGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxCustomGeometry.h b/physx/include/geometry/PxCustomGeometry.h index 8563ca143..2fb9f686b 100644 --- a/physx/include/geometry/PxCustomGeometry.h +++ b/physx/include/geometry/PxCustomGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometry.h b/physx/include/geometry/PxGeometry.h index df17ef296..043484c66 100644 --- a/physx/include/geometry/PxGeometry.h +++ b/physx/include/geometry/PxGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryHelpers.h b/physx/include/geometry/PxGeometryHelpers.h index dcd823192..02983c1a8 100644 --- a/physx/include/geometry/PxGeometryHelpers.h +++ b/physx/include/geometry/PxGeometryHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryHit.h b/physx/include/geometry/PxGeometryHit.h index 72be15db3..2fcd83f93 100644 --- a/physx/include/geometry/PxGeometryHit.h +++ b/physx/include/geometry/PxGeometryHit.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryInternal.h b/physx/include/geometry/PxGeometryInternal.h index ccd35196d..b269b02a9 100644 --- a/physx/include/geometry/PxGeometryInternal.h +++ b/physx/include/geometry/PxGeometryInternal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryQuery.h b/physx/include/geometry/PxGeometryQuery.h index 2ccaf928f..1cb4a615b 100644 --- a/physx/include/geometry/PxGeometryQuery.h +++ b/physx/include/geometry/PxGeometryQuery.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryQueryContext.h b/physx/include/geometry/PxGeometryQueryContext.h index 0babf2ca3..0b64cfeaf 100644 --- a/physx/include/geometry/PxGeometryQueryContext.h +++ b/physx/include/geometry/PxGeometryQueryContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGeometryQueryFlags.h b/physx/include/geometry/PxGeometryQueryFlags.h index ee7836f14..e2edb9061 100644 --- a/physx/include/geometry/PxGeometryQueryFlags.h +++ b/physx/include/geometry/PxGeometryQueryFlags.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxGjkQuery.h b/physx/include/geometry/PxGjkQuery.h index 400381264..c85b79171 100644 --- a/physx/include/geometry/PxGjkQuery.h +++ b/physx/include/geometry/PxGjkQuery.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxHairSystemDesc.h b/physx/include/geometry/PxHairSystemDesc.h index 676eabfc0..f5ab60ed9 100644 --- a/physx/include/geometry/PxHairSystemDesc.h +++ b/physx/include/geometry/PxHairSystemDesc.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_HAIRSYSTEM_DESC_H diff --git a/physx/include/geometry/PxHairSystemGeometry.h b/physx/include/geometry/PxHairSystemGeometry.h index c19ad1b03..6d35c5245 100644 --- a/physx/include/geometry/PxHairSystemGeometry.h +++ b/physx/include/geometry/PxHairSystemGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_HAIRSYSTEM_GEOMETRY_H diff --git a/physx/include/geometry/PxHeightField.h b/physx/include/geometry/PxHeightField.h index a81b0741d..d76042228 100644 --- a/physx/include/geometry/PxHeightField.h +++ b/physx/include/geometry/PxHeightField.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxHeightFieldDesc.h b/physx/include/geometry/PxHeightFieldDesc.h index ba6a4f5bb..bb9ac8228 100644 --- a/physx/include/geometry/PxHeightFieldDesc.h +++ b/physx/include/geometry/PxHeightFieldDesc.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxHeightFieldFlag.h b/physx/include/geometry/PxHeightFieldFlag.h index 7bf8b0fd5..b09472551 100644 --- a/physx/include/geometry/PxHeightFieldFlag.h +++ b/physx/include/geometry/PxHeightFieldFlag.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxHeightFieldGeometry.h b/physx/include/geometry/PxHeightFieldGeometry.h index ab9956449..b64c32dda 100644 --- a/physx/include/geometry/PxHeightFieldGeometry.h +++ b/physx/include/geometry/PxHeightFieldGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxHeightFieldSample.h b/physx/include/geometry/PxHeightFieldSample.h index ab48f26e1..82df7fdf1 100644 --- a/physx/include/geometry/PxHeightFieldSample.h +++ b/physx/include/geometry/PxHeightFieldSample.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxMeshQuery.h b/physx/include/geometry/PxMeshQuery.h index 37045dc6a..a7c657aac 100644 --- a/physx/include/geometry/PxMeshQuery.h +++ b/physx/include/geometry/PxMeshQuery.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxMeshScale.h b/physx/include/geometry/PxMeshScale.h index e672da3b3..813435664 100644 --- a/physx/include/geometry/PxMeshScale.h +++ b/physx/include/geometry/PxMeshScale.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxParticleSystemGeometry.h b/physx/include/geometry/PxParticleSystemGeometry.h index 033ba73dc..f4578d120 100644 --- a/physx/include/geometry/PxParticleSystemGeometry.h +++ b/physx/include/geometry/PxParticleSystemGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxPlaneGeometry.h b/physx/include/geometry/PxPlaneGeometry.h index 551b52174..72c6d1424 100644 --- a/physx/include/geometry/PxPlaneGeometry.h +++ b/physx/include/geometry/PxPlaneGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxReportCallback.h b/physx/include/geometry/PxReportCallback.h index 3e52ee7ed..36f2a8fd0 100644 --- a/physx/include/geometry/PxReportCallback.h +++ b/physx/include/geometry/PxReportCallback.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxSimpleTriangleMesh.h b/physx/include/geometry/PxSimpleTriangleMesh.h index 7d2858c20..76b448719 100644 --- a/physx/include/geometry/PxSimpleTriangleMesh.h +++ b/physx/include/geometry/PxSimpleTriangleMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxSphereGeometry.h b/physx/include/geometry/PxSphereGeometry.h index b495aca63..d93985153 100644 --- a/physx/include/geometry/PxSphereGeometry.h +++ b/physx/include/geometry/PxSphereGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTetrahedron.h b/physx/include/geometry/PxTetrahedron.h index da5d85622..2e0233737 100644 --- a/physx/include/geometry/PxTetrahedron.h +++ b/physx/include/geometry/PxTetrahedron.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTetrahedronMesh.h b/physx/include/geometry/PxTetrahedronMesh.h index 0e24f4eb1..147a64390 100644 --- a/physx/include/geometry/PxTetrahedronMesh.h +++ b/physx/include/geometry/PxTetrahedronMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTetrahedronMeshGeometry.h b/physx/include/geometry/PxTetrahedronMeshGeometry.h index 7ed8f2e2e..2c32cdf79 100644 --- a/physx/include/geometry/PxTetrahedronMeshGeometry.h +++ b/physx/include/geometry/PxTetrahedronMeshGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTriangle.h b/physx/include/geometry/PxTriangle.h index 3789b32ef..5fe2dd156 100644 --- a/physx/include/geometry/PxTriangle.h +++ b/physx/include/geometry/PxTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTriangleMesh.h b/physx/include/geometry/PxTriangleMesh.h index c498f4538..1a9f4892a 100644 --- a/physx/include/geometry/PxTriangleMesh.h +++ b/physx/include/geometry/PxTriangleMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geometry/PxTriangleMeshGeometry.h b/physx/include/geometry/PxTriangleMeshGeometry.h index 8212e8f10..3f347a156 100644 --- a/physx/include/geometry/PxTriangleMeshGeometry.h +++ b/physx/include/geometry/PxTriangleMeshGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geomutils/PxContactBuffer.h b/physx/include/geomutils/PxContactBuffer.h index ad0ec9975..92a47f271 100644 --- a/physx/include/geomutils/PxContactBuffer.h +++ b/physx/include/geomutils/PxContactBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/geomutils/PxContactPoint.h b/physx/include/geomutils/PxContactPoint.h index febb8cbda..9630bf255 100644 --- a/physx/include/geomutils/PxContactPoint.h +++ b/physx/include/geomutils/PxContactPoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/gpu/PxGpu.h b/physx/include/gpu/PxGpu.h index 917b968c5..4b0f34b38 100644 --- a/physx/include/gpu/PxGpu.h +++ b/physx/include/gpu/PxGpu.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_GPU_H #define PX_GPU_H diff --git a/physx/include/omnipvd/PxOmniPvd.h b/physx/include/omnipvd/PxOmniPvd.h index 14561421a..cc7b8420b 100644 --- a/physx/include/omnipvd/PxOmniPvd.h +++ b/physx/include/omnipvd/PxOmniPvd.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/pvd/PxPvd.h b/physx/include/pvd/PxPvd.h index ec88ce13d..1597e3ab1 100644 --- a/physx/include/pvd/PxPvd.h +++ b/physx/include/pvd/PxPvd.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/pvd/PxPvdSceneClient.h b/physx/include/pvd/PxPvdSceneClient.h index 8217f8eb4..0c9140089 100644 --- a/physx/include/pvd/PxPvdSceneClient.h +++ b/physx/include/pvd/PxPvdSceneClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/pvd/PxPvdTransport.h b/physx/include/pvd/PxPvdTransport.h index 24e25fc0b..d9da9dfad 100644 --- a/physx/include/pvd/PxPvdTransport.h +++ b/physx/include/pvd/PxPvdTransport.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/solver/PxSolverDefs.h b/physx/include/solver/PxSolverDefs.h index 05f65b5bd..1e67f88ab 100644 --- a/physx/include/solver/PxSolverDefs.h +++ b/physx/include/solver/PxSolverDefs.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/task/PxCpuDispatcher.h b/physx/include/task/PxCpuDispatcher.h index d6f130f20..fc2e30ca0 100644 --- a/physx/include/task/PxCpuDispatcher.h +++ b/physx/include/task/PxCpuDispatcher.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_CPU_DISPATCHER_H #define PX_CPU_DISPATCHER_H diff --git a/physx/include/task/PxTask.h b/physx/include/task/PxTask.h index e64ed2306..73851e5d4 100644 --- a/physx/include/task/PxTask.h +++ b/physx/include/task/PxTask.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_TASK_H #define PX_TASK_H diff --git a/physx/include/task/PxTaskManager.h b/physx/include/task/PxTaskManager.h index 0b10c41a9..33af75478 100644 --- a/physx/include/task/PxTaskManager.h +++ b/physx/include/task/PxTaskManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_TASK_MANAGER_H #define PX_TASK_MANAGER_H diff --git a/physx/include/vehicle/PxVehicleComponents.h b/physx/include/vehicle/PxVehicleComponents.h index 74cde932c..1b2c38146 100644 --- a/physx/include/vehicle/PxVehicleComponents.h +++ b/physx/include/vehicle/PxVehicleComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleDrive.h b/physx/include/vehicle/PxVehicleDrive.h index ed1c6ca8e..57be28f50 100644 --- a/physx/include/vehicle/PxVehicleDrive.h +++ b/physx/include/vehicle/PxVehicleDrive.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleDrive4W.h b/physx/include/vehicle/PxVehicleDrive4W.h index 227a42f4e..e2212df48 100644 --- a/physx/include/vehicle/PxVehicleDrive4W.h +++ b/physx/include/vehicle/PxVehicleDrive4W.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleDriveNW.h b/physx/include/vehicle/PxVehicleDriveNW.h index 815f2f15b..23c984bee 100644 --- a/physx/include/vehicle/PxVehicleDriveNW.h +++ b/physx/include/vehicle/PxVehicleDriveNW.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleDriveTank.h b/physx/include/vehicle/PxVehicleDriveTank.h index d9f283346..420161217 100644 --- a/physx/include/vehicle/PxVehicleDriveTank.h +++ b/physx/include/vehicle/PxVehicleDriveTank.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleNoDrive.h b/physx/include/vehicle/PxVehicleNoDrive.h index aab7b29bb..f8d8cc74d 100644 --- a/physx/include/vehicle/PxVehicleNoDrive.h +++ b/physx/include/vehicle/PxVehicleNoDrive.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleSDK.h b/physx/include/vehicle/PxVehicleSDK.h index 797e2a6e5..cfe58f01a 100644 --- a/physx/include/vehicle/PxVehicleSDK.h +++ b/physx/include/vehicle/PxVehicleSDK.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleShaders.h b/physx/include/vehicle/PxVehicleShaders.h index 56508d9d7..0c08d9fd2 100644 --- a/physx/include/vehicle/PxVehicleShaders.h +++ b/physx/include/vehicle/PxVehicleShaders.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleTireFriction.h b/physx/include/vehicle/PxVehicleTireFriction.h index a9b79bcfd..d2408eace 100644 --- a/physx/include/vehicle/PxVehicleTireFriction.h +++ b/physx/include/vehicle/PxVehicleTireFriction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleUpdate.h b/physx/include/vehicle/PxVehicleUpdate.h index a5d906e1e..ae6bc5078 100644 --- a/physx/include/vehicle/PxVehicleUpdate.h +++ b/physx/include/vehicle/PxVehicleUpdate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleUtil.h b/physx/include/vehicle/PxVehicleUtil.h index f1700fec4..3eea356cd 100644 --- a/physx/include/vehicle/PxVehicleUtil.h +++ b/physx/include/vehicle/PxVehicleUtil.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleUtilControl.h b/physx/include/vehicle/PxVehicleUtilControl.h index c3f0851b3..3a6361ece 100644 --- a/physx/include/vehicle/PxVehicleUtilControl.h +++ b/physx/include/vehicle/PxVehicleUtilControl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleUtilSetup.h b/physx/include/vehicle/PxVehicleUtilSetup.h index af496c62c..cbec49cf5 100644 --- a/physx/include/vehicle/PxVehicleUtilSetup.h +++ b/physx/include/vehicle/PxVehicleUtilSetup.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleUtilTelemetry.h b/physx/include/vehicle/PxVehicleUtilTelemetry.h index f027b538d..936a95af2 100644 --- a/physx/include/vehicle/PxVehicleUtilTelemetry.h +++ b/physx/include/vehicle/PxVehicleUtilTelemetry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle/PxVehicleWheels.h b/physx/include/vehicle/PxVehicleWheels.h index 7e941cafb..4a000d82c 100644 --- a/physx/include/vehicle/PxVehicleWheels.h +++ b/physx/include/vehicle/PxVehicleWheels.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleAPI.h b/physx/include/vehicle2/PxVehicleAPI.h index 9d4cda441..922a5f117 100644 --- a/physx/include/vehicle2/PxVehicleAPI.h +++ b/physx/include/vehicle2/PxVehicleAPI.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleComponent.h b/physx/include/vehicle2/PxVehicleComponent.h index b8a906d20..0e2d5f813 100644 --- a/physx/include/vehicle2/PxVehicleComponent.h +++ b/physx/include/vehicle2/PxVehicleComponent.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleComponentSequence.h b/physx/include/vehicle2/PxVehicleComponentSequence.h index 2ca0a27ad..8ddb99a06 100644 --- a/physx/include/vehicle2/PxVehicleComponentSequence.h +++ b/physx/include/vehicle2/PxVehicleComponentSequence.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleFunctions.h b/physx/include/vehicle2/PxVehicleFunctions.h index 02ee3531b..9cfafdc57 100644 --- a/physx/include/vehicle2/PxVehicleFunctions.h +++ b/physx/include/vehicle2/PxVehicleFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleLimits.h b/physx/include/vehicle2/PxVehicleLimits.h index 039748fc4..e91c53cd0 100644 --- a/physx/include/vehicle2/PxVehicleLimits.h +++ b/physx/include/vehicle2/PxVehicleLimits.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleMaths.h b/physx/include/vehicle2/PxVehicleMaths.h index 8ef198ec0..a4d409884 100644 --- a/physx/include/vehicle2/PxVehicleMaths.h +++ b/physx/include/vehicle2/PxVehicleMaths.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/PxVehicleParams.h b/physx/include/vehicle2/PxVehicleParams.h index f67ddada2..7eb58e492 100644 --- a/physx/include/vehicle2/PxVehicleParams.h +++ b/physx/include/vehicle2/PxVehicleParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/braking/PxVehicleBrakingFunctions.h b/physx/include/vehicle2/braking/PxVehicleBrakingFunctions.h index fb912de8a..f72fed12e 100644 --- a/physx/include/vehicle2/braking/PxVehicleBrakingFunctions.h +++ b/physx/include/vehicle2/braking/PxVehicleBrakingFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/braking/PxVehicleBrakingParams.h b/physx/include/vehicle2/braking/PxVehicleBrakingParams.h index c4ad24a18..c48259aef 100644 --- a/physx/include/vehicle2/braking/PxVehicleBrakingParams.h +++ b/physx/include/vehicle2/braking/PxVehicleBrakingParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/commands/PxVehicleCommandHelpers.h b/physx/include/vehicle2/commands/PxVehicleCommandHelpers.h index e973bd809..b746bfc25 100644 --- a/physx/include/vehicle2/commands/PxVehicleCommandHelpers.h +++ b/physx/include/vehicle2/commands/PxVehicleCommandHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/commands/PxVehicleCommandParams.h b/physx/include/vehicle2/commands/PxVehicleCommandParams.h index 563756643..3b8265603 100644 --- a/physx/include/vehicle2/commands/PxVehicleCommandParams.h +++ b/physx/include/vehicle2/commands/PxVehicleCommandParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/commands/PxVehicleCommandStates.h b/physx/include/vehicle2/commands/PxVehicleCommandStates.h index 5cc7a1275..6dec45eb3 100644 --- a/physx/include/vehicle2/commands/PxVehicleCommandStates.h +++ b/physx/include/vehicle2/commands/PxVehicleCommandStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainComponents.h b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainComponents.h index 53e4e143d..75050de7b 100644 --- a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainComponents.h +++ b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainFunctions.h b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainFunctions.h index b6a97f4c5..33bef117f 100644 --- a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainFunctions.h +++ b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainHelpers.h b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainHelpers.h index bfce8c150..908e5a922 100644 --- a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainHelpers.h +++ b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainParams.h b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainParams.h index 746fa0c84..cb2bdc871 100644 --- a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainParams.h +++ b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainStates.h b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainStates.h index 3892fd26f..aacfc75e9 100644 --- a/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainStates.h +++ b/physx/include/vehicle2/drivetrain/PxVehicleDrivetrainStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorComponents.h b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorComponents.h index 9fa5a06c6..f97c8f5b7 100644 --- a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorComponents.h +++ b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorFunctions.h b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorFunctions.h index d0fa94d64..cd7072ef6 100644 --- a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorFunctions.h +++ b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorHelpers.h b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorHelpers.h index 697a213a3..a4ee94df7 100644 --- a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorHelpers.h +++ b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorStates.h b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorStates.h index 3434805fa..617649c36 100644 --- a/physx/include/vehicle2/physxActor/PxVehiclePhysXActorStates.h +++ b/physx/include/vehicle2/physxActor/PxVehiclePhysXActorStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintComponents.h b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintComponents.h index b6904cdd8..a362e0839 100644 --- a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintComponents.h +++ b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintFunctions.h b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintFunctions.h index b1a3856d0..d1993ccfa 100644 --- a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintFunctions.h +++ b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintHelpers.h b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintHelpers.h index 5278c079a..a42f126ad 100644 --- a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintHelpers.h +++ b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintParams.h b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintParams.h index 42814cd6c..9da860729 100644 --- a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintParams.h +++ b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintStates.h b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintStates.h index 9e5dc7e46..ae312341e 100644 --- a/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintStates.h +++ b/physx/include/vehicle2/physxConstraints/PxVehiclePhysXConstraintStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryComponents.h b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryComponents.h index cdf67675e..b422aea85 100644 --- a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryComponents.h +++ b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryFunctions.h b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryFunctions.h index a5e04fb7e..20ddaf685 100644 --- a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryFunctions.h +++ b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryHelpers.h b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryHelpers.h index 88fb0ac2b..4dbe39d43 100644 --- a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryHelpers.h +++ b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryParams.h b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryParams.h index 0130c7300..896204c5d 100644 --- a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryParams.h +++ b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryState.h b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryState.h index 85d51490e..28ef45fbf 100644 --- a/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryState.h +++ b/physx/include/vehicle2/physxRoadGeometry/PxVehiclePhysXRoadGeometryState.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/pvd/PxVehiclePvdComponents.h b/physx/include/vehicle2/pvd/PxVehiclePvdComponents.h index cdaf9e397..676ff738f 100644 --- a/physx/include/vehicle2/pvd/PxVehiclePvdComponents.h +++ b/physx/include/vehicle2/pvd/PxVehiclePvdComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/pvd/PxVehiclePvdFunctions.h b/physx/include/vehicle2/pvd/PxVehiclePvdFunctions.h index 095611b6b..9bff4dbb3 100644 --- a/physx/include/vehicle2/pvd/PxVehiclePvdFunctions.h +++ b/physx/include/vehicle2/pvd/PxVehiclePvdFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/pvd/PxVehiclePvdHelpers.h b/physx/include/vehicle2/pvd/PxVehiclePvdHelpers.h index 15ec9f27f..1151dee8d 100644 --- a/physx/include/vehicle2/pvd/PxVehiclePvdHelpers.h +++ b/physx/include/vehicle2/pvd/PxVehiclePvdHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyComponents.h b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyComponents.h index bdca128ac..c4a976660 100644 --- a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyComponents.h +++ b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyFunctions.h b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyFunctions.h index 155cb89e5..c1e555ea6 100644 --- a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyFunctions.h +++ b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyParams.h b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyParams.h index 0d15c096d..8fe3dea37 100644 --- a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyParams.h +++ b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyStates.h b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyStates.h index cd19f76e5..ce2b33e9a 100644 --- a/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyStates.h +++ b/physx/include/vehicle2/rigidBody/PxVehicleRigidBodyStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/roadGeometry/PxVehicleRoadGeometryState.h b/physx/include/vehicle2/roadGeometry/PxVehicleRoadGeometryState.h index 81e4e1bae..1c4a9e2e2 100644 --- a/physx/include/vehicle2/roadGeometry/PxVehicleRoadGeometryState.h +++ b/physx/include/vehicle2/roadGeometry/PxVehicleRoadGeometryState.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/steering/PxVehicleSteeringFunctions.h b/physx/include/vehicle2/steering/PxVehicleSteeringFunctions.h index 4447224ff..3b77b3921 100644 --- a/physx/include/vehicle2/steering/PxVehicleSteeringFunctions.h +++ b/physx/include/vehicle2/steering/PxVehicleSteeringFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/steering/PxVehicleSteeringParams.h b/physx/include/vehicle2/steering/PxVehicleSteeringParams.h index fcd45495d..f40cd14f2 100644 --- a/physx/include/vehicle2/steering/PxVehicleSteeringParams.h +++ b/physx/include/vehicle2/steering/PxVehicleSteeringParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/suspension/PxVehicleSuspensionComponents.h b/physx/include/vehicle2/suspension/PxVehicleSuspensionComponents.h index 33a92a023..fd6201fd8 100644 --- a/physx/include/vehicle2/suspension/PxVehicleSuspensionComponents.h +++ b/physx/include/vehicle2/suspension/PxVehicleSuspensionComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/suspension/PxVehicleSuspensionFunctions.h b/physx/include/vehicle2/suspension/PxVehicleSuspensionFunctions.h index b7dfd38a4..5e63350af 100644 --- a/physx/include/vehicle2/suspension/PxVehicleSuspensionFunctions.h +++ b/physx/include/vehicle2/suspension/PxVehicleSuspensionFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/suspension/PxVehicleSuspensionHelpers.h b/physx/include/vehicle2/suspension/PxVehicleSuspensionHelpers.h index 3aa75f7e8..648e73959 100644 --- a/physx/include/vehicle2/suspension/PxVehicleSuspensionHelpers.h +++ b/physx/include/vehicle2/suspension/PxVehicleSuspensionHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/suspension/PxVehicleSuspensionParams.h b/physx/include/vehicle2/suspension/PxVehicleSuspensionParams.h index f896b40a6..a58a8d7cf 100644 --- a/physx/include/vehicle2/suspension/PxVehicleSuspensionParams.h +++ b/physx/include/vehicle2/suspension/PxVehicleSuspensionParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/suspension/PxVehicleSuspensionStates.h b/physx/include/vehicle2/suspension/PxVehicleSuspensionStates.h index 86efab434..af916c86b 100644 --- a/physx/include/vehicle2/suspension/PxVehicleSuspensionStates.h +++ b/physx/include/vehicle2/suspension/PxVehicleSuspensionStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/tire/PxVehicleTireComponents.h b/physx/include/vehicle2/tire/PxVehicleTireComponents.h index 3d8c02e08..32b1f1f74 100644 --- a/physx/include/vehicle2/tire/PxVehicleTireComponents.h +++ b/physx/include/vehicle2/tire/PxVehicleTireComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/tire/PxVehicleTireFunctions.h b/physx/include/vehicle2/tire/PxVehicleTireFunctions.h index 86fcbc5f6..cd8cd14c4 100644 --- a/physx/include/vehicle2/tire/PxVehicleTireFunctions.h +++ b/physx/include/vehicle2/tire/PxVehicleTireFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/tire/PxVehicleTireHelpers.h b/physx/include/vehicle2/tire/PxVehicleTireHelpers.h index 328e93d1e..5a6d1eb41 100644 --- a/physx/include/vehicle2/tire/PxVehicleTireHelpers.h +++ b/physx/include/vehicle2/tire/PxVehicleTireHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/tire/PxVehicleTireParams.h b/physx/include/vehicle2/tire/PxVehicleTireParams.h index 0c2ed122f..a47428a54 100644 --- a/physx/include/vehicle2/tire/PxVehicleTireParams.h +++ b/physx/include/vehicle2/tire/PxVehicleTireParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/tire/PxVehicleTireStates.h b/physx/include/vehicle2/tire/PxVehicleTireStates.h index 914362e4d..7e666dba7 100644 --- a/physx/include/vehicle2/tire/PxVehicleTireStates.h +++ b/physx/include/vehicle2/tire/PxVehicleTireStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/wheel/PxVehicleWheelComponents.h b/physx/include/vehicle2/wheel/PxVehicleWheelComponents.h index af12e47f1..bb3ca8484 100644 --- a/physx/include/vehicle2/wheel/PxVehicleWheelComponents.h +++ b/physx/include/vehicle2/wheel/PxVehicleWheelComponents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/wheel/PxVehicleWheelFunctions.h b/physx/include/vehicle2/wheel/PxVehicleWheelFunctions.h index 622d2c843..cd5588c48 100644 --- a/physx/include/vehicle2/wheel/PxVehicleWheelFunctions.h +++ b/physx/include/vehicle2/wheel/PxVehicleWheelFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/wheel/PxVehicleWheelHelpers.h b/physx/include/vehicle2/wheel/PxVehicleWheelHelpers.h index 1cb8bf230..5a62db2df 100644 --- a/physx/include/vehicle2/wheel/PxVehicleWheelHelpers.h +++ b/physx/include/vehicle2/wheel/PxVehicleWheelHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/wheel/PxVehicleWheelParams.h b/physx/include/vehicle2/wheel/PxVehicleWheelParams.h index e5ce92718..016f0ccfd 100644 --- a/physx/include/vehicle2/wheel/PxVehicleWheelParams.h +++ b/physx/include/vehicle2/wheel/PxVehicleWheelParams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/include/vehicle2/wheel/PxVehicleWheelStates.h b/physx/include/vehicle2/wheel/PxVehicleWheelStates.h index 9c87c562d..01b28d227 100644 --- a/physx/include/vehicle2/wheel/PxVehicleWheelStates.h +++ b/physx/include/vehicle2/wheel/PxVehicleWheelStates.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/compiler/cmake/CMakeLists.txt b/physx/pvdruntime/compiler/cmake/CMakeLists.txt index f0fffecbf..620bbc6a9 100644 --- a/physx/pvdruntime/compiler/cmake/CMakeLists.txt +++ b/physx/pvdruntime/compiler/cmake/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. cmake_minimum_required(VERSION 3.7) diff --git a/physx/pvdruntime/compiler/cmake/PVDRuntime.cmake b/physx/pvdruntime/compiler/cmake/PVDRuntime.cmake index ed5040a88..63f1b23af 100644 --- a/physx/pvdruntime/compiler/cmake/PVDRuntime.cmake +++ b/physx/pvdruntime/compiler/cmake/PVDRuntime.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Server Test template diff --git a/physx/pvdruntime/compiler/cmake/linux/CMakeLists.txt b/physx/pvdruntime/compiler/cmake/linux/CMakeLists.txt index d5825abe4..b9a474763 100644 --- a/physx/pvdruntime/compiler/cmake/linux/CMakeLists.txt +++ b/physx/pvdruntime/compiler/cmake/linux/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. IF(NOT DEFINED PHYSX_LINUX_COMPILE_DEFS) MESSAGE(FATAL ERROR "Cloud uses the PhysX compile defs, and they're not defined when they need to be.") diff --git a/physx/pvdruntime/compiler/cmake/linux/PVDRuntime.cmake b/physx/pvdruntime/compiler/cmake/linux/PVDRuntime.cmake index f9c0f0ab5..a00c40fdc 100644 --- a/physx/pvdruntime/compiler/cmake/linux/PVDRuntime.cmake +++ b/physx/pvdruntime/compiler/cmake/linux/PVDRuntime.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build ServerTest template diff --git a/physx/pvdruntime/compiler/cmake/windows/CMakeLists.txt b/physx/pvdruntime/compiler/cmake/windows/CMakeLists.txt index ff8fab3f0..4f1fc2aa5 100644 --- a/physx/pvdruntime/compiler/cmake/windows/CMakeLists.txt +++ b/physx/pvdruntime/compiler/cmake/windows/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. IF(NOT DEFINED PHYSX_WINDOWS_COMPILE_DEFS) MESSAGE(FATAL ERROR "Cloud uses the PhysX compile defs, and they're not defined when they need to be.") diff --git a/physx/pvdruntime/compiler/cmake/windows/PVDRuntime.cmake b/physx/pvdruntime/compiler/cmake/windows/PVDRuntime.cmake index 8a9c560a9..3d25145d6 100644 --- a/physx/pvdruntime/compiler/cmake/windows/PVDRuntime.cmake +++ b/physx/pvdruntime/compiler/cmake/windows/PVDRuntime.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build ServerTest template diff --git a/physx/pvdruntime/include/OmniPvdCommands.h b/physx/pvdruntime/include/OmniPvdCommands.h index bb08976fe..514e54efd 100644 --- a/physx/pvdruntime/include/OmniPvdCommands.h +++ b/physx/pvdruntime/include/OmniPvdCommands.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdDefines.h b/physx/pvdruntime/include/OmniPvdDefines.h index 10c47911e..dfcd5b0d1 100644 --- a/physx/pvdruntime/include/OmniPvdDefines.h +++ b/physx/pvdruntime/include/OmniPvdDefines.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdFileReadStream.h b/physx/pvdruntime/include/OmniPvdFileReadStream.h index b7cdcc144..3ae050059 100644 --- a/physx/pvdruntime/include/OmniPvdFileReadStream.h +++ b/physx/pvdruntime/include/OmniPvdFileReadStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdFileWriteStream.h b/physx/pvdruntime/include/OmniPvdFileWriteStream.h index 3aac10edf..ea66eafe7 100644 --- a/physx/pvdruntime/include/OmniPvdFileWriteStream.h +++ b/physx/pvdruntime/include/OmniPvdFileWriteStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdLibraryFunctions.h b/physx/pvdruntime/include/OmniPvdLibraryFunctions.h index d38c4565f..e292d224e 100644 --- a/physx/pvdruntime/include/OmniPvdLibraryFunctions.h +++ b/physx/pvdruntime/include/OmniPvdLibraryFunctions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef OMNI_PVD_LIBRARY_FUNCTIONS_H diff --git a/physx/pvdruntime/include/OmniPvdLibraryHelpers.h b/physx/pvdruntime/include/OmniPvdLibraryHelpers.h index c631a8cd7..e35b910b2 100644 --- a/physx/pvdruntime/include/OmniPvdLibraryHelpers.h +++ b/physx/pvdruntime/include/OmniPvdLibraryHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef OMNI_PVD_LIBRARY_FUNCTIONS_H #define OMNI_PVD_LIBRARY_FUNCTIONS_H diff --git a/physx/pvdruntime/include/OmniPvdLoader.h b/physx/pvdruntime/include/OmniPvdLoader.h index bfc7c2830..a15c0bc42 100644 --- a/physx/pvdruntime/include/OmniPvdLoader.h +++ b/physx/pvdruntime/include/OmniPvdLoader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef OMNI_PVD_LOADER_H #define OMNI_PVD_LOADER_H diff --git a/physx/pvdruntime/include/OmniPvdMemoryStream.h b/physx/pvdruntime/include/OmniPvdMemoryStream.h index 0a3099dc9..5d87c1a4d 100644 --- a/physx/pvdruntime/include/OmniPvdMemoryStream.h +++ b/physx/pvdruntime/include/OmniPvdMemoryStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdReadStream.h b/physx/pvdruntime/include/OmniPvdReadStream.h index b9467f166..d089d705c 100644 --- a/physx/pvdruntime/include/OmniPvdReadStream.h +++ b/physx/pvdruntime/include/OmniPvdReadStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdReader.h b/physx/pvdruntime/include/OmniPvdReader.h index 86af02630..f8d1a31ba 100644 --- a/physx/pvdruntime/include/OmniPvdReader.h +++ b/physx/pvdruntime/include/OmniPvdReader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdWriteStream.h b/physx/pvdruntime/include/OmniPvdWriteStream.h index 8d84558fc..d636a5a17 100644 --- a/physx/pvdruntime/include/OmniPvdWriteStream.h +++ b/physx/pvdruntime/include/OmniPvdWriteStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/include/OmniPvdWriter.h b/physx/pvdruntime/include/OmniPvdWriter.h index a2e82a3ac..1528d7d84 100644 --- a/physx/pvdruntime/include/OmniPvdWriter.h +++ b/physx/pvdruntime/include/OmniPvdWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.cpp b/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.cpp index 931ac0070..520b6a49f 100644 --- a/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.h b/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.h index 3d0d74123..445431dd3 100644 --- a/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.h +++ b/physx/pvdruntime/src/OmniPvdFileReadStreamImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.cpp b/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.cpp index 3254feeb7..a8bd6ce0c 100644 --- a/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.h b/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.h index 497f0cc3c..71f8d1ef3 100644 --- a/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.h +++ b/physx/pvdruntime/src/OmniPvdFileWriteStreamImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdHelpers.cpp b/physx/pvdruntime/src/OmniPvdHelpers.cpp index 382557c47..93a2b1f4f 100644 --- a/physx/pvdruntime/src/OmniPvdHelpers.cpp +++ b/physx/pvdruntime/src/OmniPvdHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdHelpers.h b/physx/pvdruntime/src/OmniPvdHelpers.h index 9d07f6080..b64b3b954 100644 --- a/physx/pvdruntime/src/OmniPvdHelpers.h +++ b/physx/pvdruntime/src/OmniPvdHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdLibraryFunctionsImpl.cpp b/physx/pvdruntime/src/OmniPvdLibraryFunctionsImpl.cpp index 9ef84c38a..6ce68efbd 100644 --- a/physx/pvdruntime/src/OmniPvdLibraryFunctionsImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdLibraryFunctionsImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdLog.cpp b/physx/pvdruntime/src/OmniPvdLog.cpp index b7fdd904b..7951aa740 100644 --- a/physx/pvdruntime/src/OmniPvdLog.cpp +++ b/physx/pvdruntime/src/OmniPvdLog.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdLog.h b/physx/pvdruntime/src/OmniPvdLog.h index 0932cf80c..f7af840c7 100644 --- a/physx/pvdruntime/src/OmniPvdLog.h +++ b/physx/pvdruntime/src/OmniPvdLog.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.cpp b/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.cpp index f33d7fd52..f907b5db0 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.h b/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.h index 7333f7ded..49d6cf6a5 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.h +++ b/physx/pvdruntime/src/OmniPvdMemoryReadStreamImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.cpp b/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.cpp index fb5b5b64d..a58345af4 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.h b/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.h index 5abfd20a4..7b5ce9e6e 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.h +++ b/physx/pvdruntime/src/OmniPvdMemoryStreamImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.cpp b/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.cpp index 758d0f7b9..262cca3a5 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.h b/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.h index 32674e7e8..11c25600b 100644 --- a/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.h +++ b/physx/pvdruntime/src/OmniPvdMemoryWriteStreamImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdReaderImpl.cpp b/physx/pvdruntime/src/OmniPvdReaderImpl.cpp index 47fdb8f47..395148645 100644 --- a/physx/pvdruntime/src/OmniPvdReaderImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdReaderImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdReaderImpl.h b/physx/pvdruntime/src/OmniPvdReaderImpl.h index 6cfd4c984..ebeb85ac3 100644 --- a/physx/pvdruntime/src/OmniPvdReaderImpl.h +++ b/physx/pvdruntime/src/OmniPvdReaderImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdWriterImpl.cpp b/physx/pvdruntime/src/OmniPvdWriterImpl.cpp index 59638720d..4a5aa5776 100644 --- a/physx/pvdruntime/src/OmniPvdWriterImpl.cpp +++ b/physx/pvdruntime/src/OmniPvdWriterImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/pvdruntime/src/OmniPvdWriterImpl.h b/physx/pvdruntime/src/OmniPvdWriterImpl.h index 51ac14fd5..e575facfc 100644 --- a/physx/pvdruntime/src/OmniPvdWriterImpl.h +++ b/physx/pvdruntime/src/OmniPvdWriterImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/compiler/cmake/CMakeLists.txt b/physx/snippets/compiler/cmake/CMakeLists.txt index b6af51eb8..ed9a6837f 100644 --- a/physx/snippets/compiler/cmake/CMakeLists.txt +++ b/physx/snippets/compiler/cmake/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. cmake_minimum_required(VERSION 3.7) project(Snippets C CXX) @@ -82,7 +82,7 @@ SET(SOURCE_DISTRO_FILE_LIST "") # Include all of the projects SET(SNIPPETS_LIST ArticulationRC BVHStructure CCD ContactModification ContactReport ContactReportCCD ConvexMeshCreate - CustomJoint CustomProfiler DeformableMesh FrustumQuery GearJoint GeometryQuery Gyroscopic HelloWorld ImmediateArticulation ImmediateMode Joint MassProperties + CustomJoint CustomProfiler DeformableMesh FrustumQuery GearJoint GeometryQuery Gyroscopic HelloWorld ImmediateArticulation ImmediateMode Joint JointDrive MassProperties MBP MultiPruners MultiThreading OmniPvd PathTracing PointDistanceQuery PrunerSerialization QuerySystemAllQueries QuerySystemCustomCompound RackJoint Serialization SplitFetchResults SplitSim StandaloneBVH StandaloneBroadphase StandaloneQuerySystem Stepper ToleranceScale TriangleMeshCreate Triggers CustomGeometry CustomConvex CustomGeometryCollision CustomGeometryQueries FixedTendon SpatialTendon) LIST(APPEND SNIPPETS_LIST ${PLATFORM_SNIPPETS_LIST}) diff --git a/physx/snippets/compiler/cmake/SnippetRender.cmake b/physx/snippets/compiler/cmake/SnippetRender.cmake index 8857081c7..162a82368 100644 --- a/physx/snippets/compiler/cmake/SnippetRender.cmake +++ b/physx/snippets/compiler/cmake/SnippetRender.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetRender common diff --git a/physx/snippets/compiler/cmake/SnippetTemplate.cmake b/physx/snippets/compiler/cmake/SnippetTemplate.cmake index 3efce445e..2e3c8a33b 100644 --- a/physx/snippets/compiler/cmake/SnippetTemplate.cmake +++ b/physx/snippets/compiler/cmake/SnippetTemplate.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Snippet common template diff --git a/physx/snippets/compiler/cmake/SnippetUtils.cmake b/physx/snippets/compiler/cmake/SnippetUtils.cmake index 9aee4a32b..2c7413c4c 100644 --- a/physx/snippets/compiler/cmake/SnippetUtils.cmake +++ b/physx/snippets/compiler/cmake/SnippetUtils.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetUtils common diff --git a/physx/snippets/compiler/cmake/SnippetVehicle2Template.cmake b/physx/snippets/compiler/cmake/SnippetVehicle2Template.cmake index 0a15ab12e..c399ec1b6 100644 --- a/physx/snippets/compiler/cmake/SnippetVehicle2Template.cmake +++ b/physx/snippets/compiler/cmake/SnippetVehicle2Template.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Snippetvehicle2 common template diff --git a/physx/snippets/compiler/cmake/linux/CMakeLists.txt b/physx/snippets/compiler/cmake/linux/CMakeLists.txt index af25edfdf..19ce45deb 100644 --- a/physx/snippets/compiler/cmake/linux/CMakeLists.txt +++ b/physx/snippets/compiler/cmake/linux/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. IF(NOT DEFINED PHYSX_LINUX_COMPILE_DEFS) MESSAGE(FATAL ERROR "Snippets uses the PhysX compile defs, and they're not defined when they need to be.") diff --git a/physx/snippets/compiler/cmake/linux/SnippetRender.cmake b/physx/snippets/compiler/cmake/linux/SnippetRender.cmake index a5f07b0f2..9d8c4bfc5 100644 --- a/physx/snippets/compiler/cmake/linux/SnippetRender.cmake +++ b/physx/snippets/compiler/cmake/linux/SnippetRender.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetRender diff --git a/physx/snippets/compiler/cmake/linux/SnippetTemplate.cmake b/physx/snippets/compiler/cmake/linux/SnippetTemplate.cmake index 247bbb427..256fe46d8 100644 --- a/physx/snippets/compiler/cmake/linux/SnippetTemplate.cmake +++ b/physx/snippets/compiler/cmake/linux/SnippetTemplate.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Snippet linux template diff --git a/physx/snippets/compiler/cmake/linux/SnippetUtils.cmake b/physx/snippets/compiler/cmake/linux/SnippetUtils.cmake index 00ed839dd..32343c52a 100644 --- a/physx/snippets/compiler/cmake/linux/SnippetUtils.cmake +++ b/physx/snippets/compiler/cmake/linux/SnippetUtils.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetUtils diff --git a/physx/snippets/compiler/cmake/linux/SnippetVehicle2Template.cmake b/physx/snippets/compiler/cmake/linux/SnippetVehicle2Template.cmake index ffce71f8a..eee68b3c9 100644 --- a/physx/snippets/compiler/cmake/linux/SnippetVehicle2Template.cmake +++ b/physx/snippets/compiler/cmake/linux/SnippetVehicle2Template.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetVehicle linux template diff --git a/physx/snippets/compiler/cmake/windows/CMakeLists.txt b/physx/snippets/compiler/cmake/windows/CMakeLists.txt index 37c3fcb08..c672789fc 100644 --- a/physx/snippets/compiler/cmake/windows/CMakeLists.txt +++ b/physx/snippets/compiler/cmake/windows/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. IF(NOT DEFINED PHYSX_WINDOWS_COMPILE_DEFS) MESSAGE(FATAL ERROR "Snippets uses the PhysX compile defs, and they're not defined when they need to be.") diff --git a/physx/snippets/compiler/cmake/windows/SnippetRender.cmake b/physx/snippets/compiler/cmake/windows/SnippetRender.cmake index 88b8ac97d..625a6a9ec 100644 --- a/physx/snippets/compiler/cmake/windows/SnippetRender.cmake +++ b/physx/snippets/compiler/cmake/windows/SnippetRender.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetRender diff --git a/physx/snippets/compiler/cmake/windows/SnippetTemplate.cmake b/physx/snippets/compiler/cmake/windows/SnippetTemplate.cmake index dc87c2b02..0a9d8a492 100644 --- a/physx/snippets/compiler/cmake/windows/SnippetTemplate.cmake +++ b/physx/snippets/compiler/cmake/windows/SnippetTemplate.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Snippet win template diff --git a/physx/snippets/compiler/cmake/windows/SnippetUtils.cmake b/physx/snippets/compiler/cmake/windows/SnippetUtils.cmake index 28ebc789b..d548f11ea 100644 --- a/physx/snippets/compiler/cmake/windows/SnippetUtils.cmake +++ b/physx/snippets/compiler/cmake/windows/SnippetUtils.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SnippetUtils diff --git a/physx/snippets/compiler/cmake/windows/SnippetVehicle2Template.cmake b/physx/snippets/compiler/cmake/windows/SnippetVehicle2Template.cmake index da8d0aaa2..168ae64ce 100644 --- a/physx/snippets/compiler/cmake/windows/SnippetVehicle2Template.cmake +++ b/physx/snippets/compiler/cmake/windows/SnippetVehicle2Template.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build Snippet win template diff --git a/physx/snippets/snippetarticulationrc/SnippetArticulation.cpp b/physx/snippets/snippetarticulationrc/SnippetArticulation.cpp index f682c498c..de25e9b49 100644 --- a/physx/snippets/snippetarticulationrc/SnippetArticulation.cpp +++ b/physx/snippets/snippetarticulationrc/SnippetArticulation.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetarticulationrc/SnippetArticulationRender.cpp b/physx/snippets/snippetarticulationrc/SnippetArticulationRender.cpp index 7639dc6a5..6711b1ffc 100644 --- a/physx/snippets/snippetarticulationrc/SnippetArticulationRender.cpp +++ b/physx/snippets/snippetarticulationrc/SnippetArticulationRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetbvhstructure/SnippetBVHStructure.cpp b/physx/snippets/snippetbvhstructure/SnippetBVHStructure.cpp index f168d745a..c7555aa2b 100644 --- a/physx/snippets/snippetbvhstructure/SnippetBVHStructure.cpp +++ b/physx/snippets/snippetbvhstructure/SnippetBVHStructure.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetccd/SnippetCCD.cpp b/physx/snippets/snippetccd/SnippetCCD.cpp index cff45ea38..12ff6925a 100644 --- a/physx/snippets/snippetccd/SnippetCCD.cpp +++ b/physx/snippets/snippetccd/SnippetCCD.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetccd/SnippetCCDRender.cpp b/physx/snippets/snippetccd/SnippetCCDRender.cpp index 22c64e311..99da76ab2 100644 --- a/physx/snippets/snippetccd/SnippetCCDRender.cpp +++ b/physx/snippets/snippetccd/SnippetCCDRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcommon/ClassicMain.cpp b/physx/snippets/snippetcommon/ClassicMain.cpp index 62717e85d..3b60a2879 100644 --- a/physx/snippets/snippetcommon/ClassicMain.cpp +++ b/physx/snippets/snippetcommon/ClassicMain.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcommon/SnippetPVD.h b/physx/snippets/snippetcommon/SnippetPVD.h index 9d49d8614..a6ef77292 100644 --- a/physx/snippets/snippetcommon/SnippetPVD.h +++ b/physx/snippets/snippetcommon/SnippetPVD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcommon/SnippetPrint.h b/physx/snippets/snippetcommon/SnippetPrint.h index 3415e983d..b9a22fef9 100644 --- a/physx/snippets/snippetcommon/SnippetPrint.h +++ b/physx/snippets/snippetcommon/SnippetPrint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactmodification/SnippetContactModification.cpp b/physx/snippets/snippetcontactmodification/SnippetContactModification.cpp index 6b3519aea..2c304170a 100644 --- a/physx/snippets/snippetcontactmodification/SnippetContactModification.cpp +++ b/physx/snippets/snippetcontactmodification/SnippetContactModification.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactmodification/SnippetContactModificationRender.cpp b/physx/snippets/snippetcontactmodification/SnippetContactModificationRender.cpp index 4c4b0187d..21ec02cec 100644 --- a/physx/snippets/snippetcontactmodification/SnippetContactModificationRender.cpp +++ b/physx/snippets/snippetcontactmodification/SnippetContactModificationRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactreport/SnippetContactReport.cpp b/physx/snippets/snippetcontactreport/SnippetContactReport.cpp index 97d263e6b..b324c5166 100644 --- a/physx/snippets/snippetcontactreport/SnippetContactReport.cpp +++ b/physx/snippets/snippetcontactreport/SnippetContactReport.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactreport/SnippetContactReportRender.cpp b/physx/snippets/snippetcontactreport/SnippetContactReportRender.cpp index 4c4b0187d..21ec02cec 100644 --- a/physx/snippets/snippetcontactreport/SnippetContactReportRender.cpp +++ b/physx/snippets/snippetcontactreport/SnippetContactReportRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactreportccd/SnippetContactReportCCD.cpp b/physx/snippets/snippetcontactreportccd/SnippetContactReportCCD.cpp index ef5d11c66..e8fff8022 100644 --- a/physx/snippets/snippetcontactreportccd/SnippetContactReportCCD.cpp +++ b/physx/snippets/snippetcontactreportccd/SnippetContactReportCCD.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcontactreportccd/SnippetContactReportCCDRender.cpp b/physx/snippets/snippetcontactreportccd/SnippetContactReportCCDRender.cpp index fb01f7937..fb0ac9f4e 100644 --- a/physx/snippets/snippetcontactreportccd/SnippetContactReportCCDRender.cpp +++ b/physx/snippets/snippetcontactreportccd/SnippetContactReportCCDRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetconvert/SnippetConvert.cpp b/physx/snippets/snippetconvert/SnippetConvert.cpp index 0c3a05e45..1a6dbe4b7 100644 --- a/physx/snippets/snippetconvert/SnippetConvert.cpp +++ b/physx/snippets/snippetconvert/SnippetConvert.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetconvexmeshcreate/SnippetConvexMeshCreate.cpp b/physx/snippets/snippetconvexmeshcreate/SnippetConvexMeshCreate.cpp index 1b66a4f4c..ae5334681 100644 --- a/physx/snippets/snippetconvexmeshcreate/SnippetConvexMeshCreate.cpp +++ b/physx/snippets/snippetconvexmeshcreate/SnippetConvexMeshCreate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomconvex/CustomConvex.cpp b/physx/snippets/snippetcustomconvex/CustomConvex.cpp index bbd31ae07..5336b8d04 100644 --- a/physx/snippets/snippetcustomconvex/CustomConvex.cpp +++ b/physx/snippets/snippetcustomconvex/CustomConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomconvex/CustomConvex.h b/physx/snippets/snippetcustomconvex/CustomConvex.h index 24d04946b..c7fbcb314 100644 --- a/physx/snippets/snippetcustomconvex/CustomConvex.h +++ b/physx/snippets/snippetcustomconvex/CustomConvex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomconvex/SnippetCustomConvex.cpp b/physx/snippets/snippetcustomconvex/SnippetCustomConvex.cpp index 5b1339231..4a77d4d6d 100644 --- a/physx/snippets/snippetcustomconvex/SnippetCustomConvex.cpp +++ b/physx/snippets/snippetcustomconvex/SnippetCustomConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomconvex/SnippetCustomConvexRender.cpp b/physx/snippets/snippetcustomconvex/SnippetCustomConvexRender.cpp index 438af99a5..de1342ef8 100644 --- a/physx/snippets/snippetcustomconvex/SnippetCustomConvexRender.cpp +++ b/physx/snippets/snippetcustomconvex/SnippetCustomConvexRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometry/SnippetCustomGeometry.cpp b/physx/snippets/snippetcustomgeometry/SnippetCustomGeometry.cpp index a33fc86eb..3846958ec 100644 --- a/physx/snippets/snippetcustomgeometry/SnippetCustomGeometry.cpp +++ b/physx/snippets/snippetcustomgeometry/SnippetCustomGeometry.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometry/SnippetCustomGeometryRender.cpp b/physx/snippets/snippetcustomgeometry/SnippetCustomGeometryRender.cpp index 6954db466..3290cb2f2 100644 --- a/physx/snippets/snippetcustomgeometry/SnippetCustomGeometryRender.cpp +++ b/physx/snippets/snippetcustomgeometry/SnippetCustomGeometryRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometry/VoxelMap.cpp b/physx/snippets/snippetcustomgeometry/VoxelMap.cpp index 23c502df2..3548bd90e 100644 --- a/physx/snippets/snippetcustomgeometry/VoxelMap.cpp +++ b/physx/snippets/snippetcustomgeometry/VoxelMap.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometry/VoxelMap.h b/physx/snippets/snippetcustomgeometry/VoxelMap.h index c6989bcb9..ca9509297 100644 --- a/physx/snippets/snippetcustomgeometry/VoxelMap.h +++ b/physx/snippets/snippetcustomgeometry/VoxelMap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollision.cpp b/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollision.cpp index 9bab769e7..6975057aa 100644 --- a/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollision.cpp +++ b/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollision.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollisionRender.cpp b/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollisionRender.cpp index d186cb506..69ce7a130 100644 --- a/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollisionRender.cpp +++ b/physx/snippets/snippetcustomgeometrycollision/SnippetCustomGeometryCollisionRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueries.cpp b/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueries.cpp index 7b09da834..2be0e8396 100644 --- a/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueries.cpp +++ b/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueries.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueriesRender.cpp b/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueriesRender.cpp index 0e90dcd92..dc0dfe645 100644 --- a/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueriesRender.cpp +++ b/physx/snippets/snippetcustomgeometryqueries/SnippetCustomGeometryQueriesRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomjoint/PulleyJoint.cpp b/physx/snippets/snippetcustomjoint/PulleyJoint.cpp index bb5d0f9e7..369b02bc2 100644 --- a/physx/snippets/snippetcustomjoint/PulleyJoint.cpp +++ b/physx/snippets/snippetcustomjoint/PulleyJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomjoint/PulleyJoint.h b/physx/snippets/snippetcustomjoint/PulleyJoint.h index e792ecf43..af86fdc9d 100644 --- a/physx/snippets/snippetcustomjoint/PulleyJoint.h +++ b/physx/snippets/snippetcustomjoint/PulleyJoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomjoint/SnippetCustomJoint.cpp b/physx/snippets/snippetcustomjoint/SnippetCustomJoint.cpp index 1508ee29a..997d48410 100644 --- a/physx/snippets/snippetcustomjoint/SnippetCustomJoint.cpp +++ b/physx/snippets/snippetcustomjoint/SnippetCustomJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomjoint/SnippetCustomJointRender.cpp b/physx/snippets/snippetcustomjoint/SnippetCustomJointRender.cpp index 86a0be485..03ce1d1c5 100644 --- a/physx/snippets/snippetcustomjoint/SnippetCustomJointRender.cpp +++ b/physx/snippets/snippetcustomjoint/SnippetCustomJointRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomprofiler/SnippetCustomProfiler.cpp b/physx/snippets/snippetcustomprofiler/SnippetCustomProfiler.cpp index 5f59105a1..77c709816 100644 --- a/physx/snippets/snippetcustomprofiler/SnippetCustomProfiler.cpp +++ b/physx/snippets/snippetcustomprofiler/SnippetCustomProfiler.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetcustomprofiler/SnippetCustomProfilerRender.cpp b/physx/snippets/snippetcustomprofiler/SnippetCustomProfilerRender.cpp index 8ee1ee32a..68c799636 100644 --- a/physx/snippets/snippetcustomprofiler/SnippetCustomProfilerRender.cpp +++ b/physx/snippets/snippetcustomprofiler/SnippetCustomProfilerRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetdeformablemesh/SnippetDeformableMesh.cpp b/physx/snippets/snippetdeformablemesh/SnippetDeformableMesh.cpp index f36763062..75adacc50 100644 --- a/physx/snippets/snippetdeformablemesh/SnippetDeformableMesh.cpp +++ b/physx/snippets/snippetdeformablemesh/SnippetDeformableMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetdeformablemesh/SnippetDeformableMeshRender.cpp b/physx/snippets/snippetdeformablemesh/SnippetDeformableMeshRender.cpp index 7ace0bf89..aa7b1a082 100644 --- a/physx/snippets/snippetdeformablemesh/SnippetDeformableMeshRender.cpp +++ b/physx/snippets/snippetdeformablemesh/SnippetDeformableMeshRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHook.cpp b/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHook.cpp index 943f1001f..f358ffb39 100644 --- a/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHook.cpp +++ b/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHook.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHookRender.cpp b/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHookRender.cpp index a1c9fc7e9..a56e7bc60 100644 --- a/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHookRender.cpp +++ b/physx/snippets/snippetdelayloadhook/SnippetDelayLoadHookRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetfixedtendon/SnippetFixedTendon.cpp b/physx/snippets/snippetfixedtendon/SnippetFixedTendon.cpp index c883eeeef..1d2b993fa 100644 --- a/physx/snippets/snippetfixedtendon/SnippetFixedTendon.cpp +++ b/physx/snippets/snippetfixedtendon/SnippetFixedTendon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetfixedtendon/SnippetFixedTendonRender.cpp b/physx/snippets/snippetfixedtendon/SnippetFixedTendonRender.cpp index 9d91741d7..f1b7b56bb 100644 --- a/physx/snippets/snippetfixedtendon/SnippetFixedTendonRender.cpp +++ b/physx/snippets/snippetfixedtendon/SnippetFixedTendonRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetfrustumquery/SnippetFrustumQuery.cpp b/physx/snippets/snippetfrustumquery/SnippetFrustumQuery.cpp index 130373c7f..7059865b9 100644 --- a/physx/snippets/snippetfrustumquery/SnippetFrustumQuery.cpp +++ b/physx/snippets/snippetfrustumquery/SnippetFrustumQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetfrustumquery/SnippetFrustumQueryRender.cpp b/physx/snippets/snippetfrustumquery/SnippetFrustumQueryRender.cpp index 0c88cd4ab..db690af86 100644 --- a/physx/snippets/snippetfrustumquery/SnippetFrustumQueryRender.cpp +++ b/physx/snippets/snippetfrustumquery/SnippetFrustumQueryRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgearjoint/SnippetGearJoint.cpp b/physx/snippets/snippetgearjoint/SnippetGearJoint.cpp index 84052acb5..2fb12a4ce 100644 --- a/physx/snippets/snippetgearjoint/SnippetGearJoint.cpp +++ b/physx/snippets/snippetgearjoint/SnippetGearJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgearjoint/SnippetGearJointRender.cpp b/physx/snippets/snippetgearjoint/SnippetGearJointRender.cpp index 722e24ce7..8204c2c69 100644 --- a/physx/snippets/snippetgearjoint/SnippetGearJointRender.cpp +++ b/physx/snippets/snippetgearjoint/SnippetGearJointRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgeometryquery/SnippetGeometryQuery.cpp b/physx/snippets/snippetgeometryquery/SnippetGeometryQuery.cpp index 10bffd71f..f87f792ca 100644 --- a/physx/snippets/snippetgeometryquery/SnippetGeometryQuery.cpp +++ b/physx/snippets/snippetgeometryquery/SnippetGeometryQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgeometryquery/SnippetGeometryQueryRender.cpp b/physx/snippets/snippetgeometryquery/SnippetGeometryQueryRender.cpp index d5be23b59..c542666d9 100644 --- a/physx/snippets/snippetgeometryquery/SnippetGeometryQueryRender.cpp +++ b/physx/snippets/snippetgeometryquery/SnippetGeometryQueryRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgyroscopic/SnippetGyroscopic.cpp b/physx/snippets/snippetgyroscopic/SnippetGyroscopic.cpp index 2555daaa2..9830608da 100644 --- a/physx/snippets/snippetgyroscopic/SnippetGyroscopic.cpp +++ b/physx/snippets/snippetgyroscopic/SnippetGyroscopic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetgyroscopic/SnippetGyroscopicRender.cpp b/physx/snippets/snippetgyroscopic/SnippetGyroscopicRender.cpp index 8a8ec2070..56a582a6d 100644 --- a/physx/snippets/snippetgyroscopic/SnippetGyroscopicRender.cpp +++ b/physx/snippets/snippetgyroscopic/SnippetGyroscopicRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippethellogrb/SnippetHelloGRB.cpp b/physx/snippets/snippethellogrb/SnippetHelloGRB.cpp index 687464b82..21491ecd7 100644 --- a/physx/snippets/snippethellogrb/SnippetHelloGRB.cpp +++ b/physx/snippets/snippethellogrb/SnippetHelloGRB.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -93,10 +93,7 @@ void initPhysics(bool /*interactive*/) if( gCudaContextManager ) { if( !gCudaContextManager->contextIsValid() ) - { - gCudaContextManager->release(); - gCudaContextManager = NULL; - } + PX_RELEASE(gCudaContextManager); } PxSceneDesc sceneDesc(gPhysics->getTolerancesScale()); diff --git a/physx/snippets/snippethellogrb/SnippetHelloGRBRender.cpp b/physx/snippets/snippethellogrb/SnippetHelloGRBRender.cpp index 241a78d7d..efebbbe6d 100644 --- a/physx/snippets/snippethellogrb/SnippetHelloGRBRender.cpp +++ b/physx/snippets/snippethellogrb/SnippetHelloGRBRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippethelloworld/SnippetHelloWorld.cpp b/physx/snippets/snippethelloworld/SnippetHelloWorld.cpp index 2413795f3..3b5f4bdaa 100644 --- a/physx/snippets/snippethelloworld/SnippetHelloWorld.cpp +++ b/physx/snippets/snippethelloworld/SnippetHelloWorld.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippethelloworld/SnippetHelloWorldRender.cpp b/physx/snippets/snippethelloworld/SnippetHelloWorldRender.cpp index c5ee8e2fb..123df97ef 100644 --- a/physx/snippets/snippethelloworld/SnippetHelloWorldRender.cpp +++ b/physx/snippets/snippethelloworld/SnippetHelloWorldRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulation.cpp b/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulation.cpp index b3f2b9f38..a0e076b07 100644 --- a/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulation.cpp +++ b/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulation.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulationRender.cpp b/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulationRender.cpp index 3c91e4f0b..bf9d7ceb0 100644 --- a/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulationRender.cpp +++ b/physx/snippets/snippetimmediatearticulation/SnippetImmediateArticulationRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetimmediatemode/SnippetImmediateMode.cpp b/physx/snippets/snippetimmediatemode/SnippetImmediateMode.cpp index ec0abe982..88c8187a4 100644 --- a/physx/snippets/snippetimmediatemode/SnippetImmediateMode.cpp +++ b/physx/snippets/snippetimmediatemode/SnippetImmediateMode.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // **************************************************************************** // This snippet illustrates the use of PhysX immediate mode. diff --git a/physx/snippets/snippetimmediatemode/SnippetImmediateModeRender.cpp b/physx/snippets/snippetimmediatemode/SnippetImmediateModeRender.cpp index 71e3dcbd5..87e2b6e9c 100644 --- a/physx/snippets/snippetimmediatemode/SnippetImmediateModeRender.cpp +++ b/physx/snippets/snippetimmediatemode/SnippetImmediateModeRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifdef RENDER_SNIPPET diff --git a/physx/snippets/snippetjoint/SnippetJoint.cpp b/physx/snippets/snippetjoint/SnippetJoint.cpp index daece9367..8bcecc0a2 100644 --- a/physx/snippets/snippetjoint/SnippetJoint.cpp +++ b/physx/snippets/snippetjoint/SnippetJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -68,8 +68,6 @@ static PxJoint* createLimitedSpherical(PxRigidActor* a0, const PxTransform& t0, return j; } -// revolute joint limited to an angle of at most pi/4 radians (45 degrees) - // fixed, breakable joint static PxJoint* createBreakableFixed(PxRigidActor* a0, const PxTransform& t0, PxRigidActor* a1, const PxTransform& t1) { diff --git a/physx/snippets/snippetjoint/SnippetJointRender.cpp b/physx/snippets/snippetjoint/SnippetJointRender.cpp index 4d0b77f4d..f15e8307d 100644 --- a/physx/snippets/snippetjoint/SnippetJointRender.cpp +++ b/physx/snippets/snippetjoint/SnippetJointRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetjointdrive/SnippetJointDrive.cpp b/physx/snippets/snippetjointdrive/SnippetJointDrive.cpp new file mode 100644 index 000000000..d1440df3b --- /dev/null +++ b/physx/snippets/snippetjointdrive/SnippetJointDrive.cpp @@ -0,0 +1,325 @@ +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. + +// **************************************************************************** +// This snippet illustrates simple use of joint drives in physx +// **************************************************************************** + +#include +#include "PxPhysicsAPI.h" +#include "../snippetcommon/SnippetPrint.h" +#include "../snippetcommon/SnippetPVD.h" +#include "../snippetutils/SnippetUtils.h" +#ifdef RENDER_SNIPPET + #include "../snippetrender/SnippetRender.h" +#endif + +using namespace physx; + +static PxDefaultAllocator gAllocator; +static PxDefaultErrorCallback gErrorCallback; +static PxFoundation* gFoundation = NULL; +static PxPhysics* gPhysics = NULL; +static PxDefaultCpuDispatcher* gDispatcher = NULL; +static PxScene* gScene = NULL; +static PxMaterial* gMaterial = NULL; +static PxPvd* gPvd = NULL; +#if PX_SUPPORT_GPU_PHYSX +static PxCudaContextManager* gCudaContextManager = NULL; +#endif +static bool gPause = false; +static bool gOneFrame = false; +static bool gChangeObjectBRotation = false; +static bool gChangeJointFrameARotation = false; +static bool gChangeJointFrameBRotation = false; +#if PX_SUPPORT_GPU_PHYSX +static bool gUseGPU = false; +#endif +static PxU32 gSceneIndex = 0; +static const PxU32 gMaxSceneIndex = 4; + +static void setupActor(PxRigidActor* actor) +{ + actor->setActorFlag(PxActorFlag::eVISUALIZATION, true); + gScene->addActor(*actor); +} + +static void createScene() +{ + PX_RELEASE(gScene); + + PxSceneDesc sceneDesc(gPhysics->getTolerancesScale()); + // Disable gravity so that the motion is only produced by the drive + sceneDesc.gravity = PxVec3(0.0f); + gDispatcher = PxDefaultCpuDispatcherCreate(2); + sceneDesc.cpuDispatcher = gDispatcher; + sceneDesc.filterShader = PxDefaultSimulationFilterShader; +#if PX_SUPPORT_GPU_PHYSX + if(gUseGPU) + { + sceneDesc.cudaContextManager = gCudaContextManager; + sceneDesc.flags |= PxSceneFlag::eENABLE_GPU_DYNAMICS; + sceneDesc.flags |= PxSceneFlag::eENABLE_PCM; + sceneDesc.broadPhaseType = PxBroadPhaseType::eGPU; + sceneDesc.gpuMaxNumPartitions = 8; + } +#endif + gScene = gPhysics->createScene(sceneDesc); + // Visualize joint local frames + gScene->setVisualizationParameter(PxVisualizationParameter::eSCALE, 1.0f); + gScene->setVisualizationParameter(PxVisualizationParameter::eJOINT_LOCAL_FRAMES, 1.0f); + + PxPvdSceneClient* pvdClient = gScene->getScenePvdClient(); + if(pvdClient) + { + pvdClient->setScenePvdFlag(PxPvdSceneFlag::eTRANSMIT_CONSTRAINTS, true); + pvdClient->setScenePvdFlag(PxPvdSceneFlag::eTRANSMIT_CONTACTS, true); + pvdClient->setScenePvdFlag(PxPvdSceneFlag::eTRANSMIT_SCENEQUERIES, true); + } + + PxRigidStatic* groundPlane = PxCreatePlane(*gPhysics, PxPlane(0,1,0,0), *gMaterial); + gScene->addActor(*groundPlane); + + if(gSceneIndexsetConstraintFlag(PxConstraintFlag::eVISUALIZATION, true); + + // Locked axes would move the joint frames & snap them together. In this test we explicitly want them disjoint, + // to check in which direction the drives operates. So we set all DOFs free to make sure none of that interferes + // with the drive. + j->setMotion(PxD6Axis::eX, PxD6Motion::eFREE); + j->setMotion(PxD6Axis::eY, PxD6Motion::eFREE); + j->setMotion(PxD6Axis::eZ, PxD6Motion::eFREE); + j->setMotion(PxD6Axis::eSWING1, PxD6Motion::eFREE); + j->setMotion(PxD6Axis::eSWING2, PxD6Motion::eFREE); + j->setMotion(PxD6Axis::eTWIST, PxD6Motion::eFREE); + + if(gSceneIndex==0) + { + // Linear drive along "X" = actor0's joint frame's X axis + j->setDrive(PxD6Drive::eX, PxD6JointDrive(0, 1000, FLT_MAX, true)); + j->setDriveVelocity(PxVec3(1.0f, 0.0f, 0.0f), PxVec3(0.0f), true); + } + else if(gSceneIndex==1) + { + j->setDrive(PxD6Drive::eTWIST, PxD6JointDrive(0, 1000, FLT_MAX, true)); + j->setDriveVelocity(PxVec3(0.0f), PxVec3(1.0f, 0.0f, 0.0f), true); + } + else if(gSceneIndex==2) + { + j->setDrive(PxD6Drive::eSWING, PxD6JointDrive(0, 1000, FLT_MAX, true)); + j->setDriveVelocity(PxVec3(0.0f), PxVec3(0.0f, 1.0f, 0.0f), true); + } + else if(gSceneIndex==3) + { + j->setDrive(PxD6Drive::eSLERP, PxD6JointDrive(0, 1000, FLT_MAX, true)); + j->setDriveVelocity(PxVec3(0.0f), PxVec3(0.0f, 1.0f, 0.0f), true); + } + } +} + +void initPhysics(bool /*interactive*/) +{ + gFoundation = PxCreateFoundation(PX_PHYSICS_VERSION, gAllocator, gErrorCallback); + gPvd = PxCreatePvd(*gFoundation); + PxPvdTransport* transport = PxDefaultPvdSocketTransportCreate(PVD_HOST, 5425, 10); + gPvd->connect(*transport,PxPvdInstrumentationFlag::eALL); + + gPhysics = PxCreatePhysics(PX_PHYSICS_VERSION, *gFoundation, PxTolerancesScale(),true, gPvd); + PxInitExtensions(*gPhysics, gPvd); + +#if PX_SUPPORT_GPU_PHYSX + PxCudaContextManagerDesc cudaContextManagerDesc; + gCudaContextManager = PxCreateCudaContextManager(*gFoundation, cudaContextManagerDesc, PxGetProfilerCallback()); + if(gCudaContextManager) + { + if(!gCudaContextManager->contextIsValid()) + PX_RELEASE(gCudaContextManager); + } +#endif + + gMaterial = gPhysics->createMaterial(0.5f, 0.5f, 0.6f); + + createScene(); +} + +void stepPhysics(bool /*interactive*/) +{ + if(gPause && !gOneFrame) + return; + gOneFrame = false; + + gScene->simulate(1.0f / 60.0f); + gScene->fetchResults(true); +} + +void cleanupPhysics(bool /*interactive*/) +{ + PX_RELEASE(gScene); + PX_RELEASE(gDispatcher); + PxCloseExtensions(); + PX_RELEASE(gPhysics); + if(gPvd) + { + PxPvdTransport* transport = gPvd->getTransport(); + gPvd->release(); gPvd = NULL; + PX_RELEASE(transport); + } +#if PX_SUPPORT_GPU_PHYSX + PX_RELEASE(gCudaContextManager); +#endif + PX_RELEASE(gFoundation); + + printf("SnippetJointDrive done.\n"); +} + +void renderText() +{ +#ifdef RENDER_SNIPPET + Snippets::print("Press F1 to change body0's joint frame orientation"); + Snippets::print("Press F2 to change body1's joint frame orientation"); + Snippets::print("Press F3 to change body1's orientation"); +#if PX_SUPPORT_GPU_PHYSX + Snippets::print("Press F4 to use CPU or GPU"); +#endif + Snippets::print("Press F5 to select the next drive"); + switch(gSceneIndex) + { + case 0: + Snippets::print("Current drive: linear X"); + break; + case 1: + Snippets::print("Current drive: angular twist (around X)"); + break; + case 2: + Snippets::print("Current drive: angular swing (around Y)"); + break; + case 3: + Snippets::print("Current drive: angular slerp (around Y)"); + break; + } +#if PX_SUPPORT_GPU_PHYSX + if(gUseGPU) + Snippets::print("Current mode: GPU"); + else + Snippets::print("Current mode: CPU"); +#endif + Snippets::print("body1's translation or rotation (drive) axis should only depend on body0's joint axes."); +#endif +} + +void keyPress(unsigned char key, const PxTransform&) +{ + if(key=='p' || key=='P') + gPause = !gPause; + + if(key=='o' || key=='O') + { + gPause = true; + gOneFrame = true; + } + + if(key==1) + { + gChangeJointFrameARotation = !gChangeJointFrameARotation; + createScene(); + } + + if(key==2) + { + gChangeJointFrameBRotation = !gChangeJointFrameBRotation; + createScene(); + } + + if(key==3) + { + gChangeObjectBRotation = !gChangeObjectBRotation; + createScene(); + } + +#if PX_SUPPORT_GPU_PHYSX + if(key==4) + { + gUseGPU = !gUseGPU; + createScene(); + } +#endif + + if(key==5) + { + gSceneIndex = gSceneIndex + 1; + if(gSceneIndex==gMaxSceneIndex) + gSceneIndex = 0; + createScene(); + } +} + +int snippetMain(int, const char*const*) +{ +#ifdef RENDER_SNIPPET + extern void renderLoop(); + renderLoop(); +#else + static const PxU32 frameCount = 100; + initPhysics(false); + for(PxU32 i=0; i + +#include "PxPhysicsAPI.h" + +#include "../snippetrender/SnippetRender.h" +#include "../snippetrender/SnippetCamera.h" + +using namespace physx; + +extern void initPhysics(bool interactive); +extern void stepPhysics(bool interactive); +extern void cleanupPhysics(bool interactive); +extern void keyPress(unsigned char key, const PxTransform& camera); +extern void renderText(); + +namespace +{ +Snippets::Camera* sCamera; + +void renderCallback() +{ + stepPhysics(true); + + Snippets::startRender(sCamera); + + PxScene* scene; + PxGetPhysics().getScenes(&scene,1); + PxU32 nbActors = scene->getNbActors(PxActorTypeFlag::eRIGID_DYNAMIC | PxActorTypeFlag::eRIGID_STATIC); + if(nbActors) + { + const PxVec3 dynColor(1.0f, 0.5f, 0.25f); + + std::vector actors(nbActors); + scene->getActors(PxActorTypeFlag::eRIGID_DYNAMIC | PxActorTypeFlag::eRIGID_STATIC, reinterpret_cast(&actors[0]), nbActors); + Snippets::renderActors(&actors[0], static_cast(actors.size()), true, dynColor); + } + + { + const PxRenderBuffer& renderBuffer = scene->getRenderBuffer(); + const PxDebugLine* lines = renderBuffer.getLines(); + const PxU32 nbLines = renderBuffer.getNbLines(); + for(PxU32 i=0;i>8) & 0xff))/255.0f; + const float r = float(((lines[i].color0>>16) & 0xff))/255.0f; + + Snippets::DrawLine(lines[i].pos0, lines[i].pos1, PxVec3(r, g, b)); + } + } + + renderText(); + + Snippets::finishRender(); +} + +void exitCallback(void) +{ + delete sCamera; + cleanupPhysics(true); +} +} + +void renderLoop() +{ + sCamera = new Snippets::Camera(PxVec3(1.847750f, 2.8f, -15.241850f), PxVec3(-0.219386f, -0.289038f, -0.931841f)); + + Snippets::setupDefault("PhysX Snippet Joint Drive", sCamera, keyPress, renderCallback, exitCallback); + + initPhysics(true); + glutMainLoop(); +} +#endif diff --git a/physx/snippets/snippetloadcollection/SnippetLoadCollection.cpp b/physx/snippets/snippetloadcollection/SnippetLoadCollection.cpp index 59fe2071d..13bffd5be 100644 --- a/physx/snippets/snippetloadcollection/SnippetLoadCollection.cpp +++ b/physx/snippets/snippetloadcollection/SnippetLoadCollection.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmassproperties/SnippetMassProperties.cpp b/physx/snippets/snippetmassproperties/SnippetMassProperties.cpp index d54f31f74..e6fefa38f 100644 --- a/physx/snippets/snippetmassproperties/SnippetMassProperties.cpp +++ b/physx/snippets/snippetmassproperties/SnippetMassProperties.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmassproperties/SnippetMassPropertiesRender.cpp b/physx/snippets/snippetmassproperties/SnippetMassPropertiesRender.cpp index ac107338b..14cc46025 100644 --- a/physx/snippets/snippetmassproperties/SnippetMassPropertiesRender.cpp +++ b/physx/snippets/snippetmassproperties/SnippetMassPropertiesRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmbp/SnippetMBP.cpp b/physx/snippets/snippetmbp/SnippetMBP.cpp index ec1fade2e..be9da2b6e 100644 --- a/physx/snippets/snippetmbp/SnippetMBP.cpp +++ b/physx/snippets/snippetmbp/SnippetMBP.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmbp/SnippetMBPRender.cpp b/physx/snippets/snippetmbp/SnippetMBPRender.cpp index e6790887f..e339c7f87 100644 --- a/physx/snippets/snippetmbp/SnippetMBPRender.cpp +++ b/physx/snippets/snippetmbp/SnippetMBPRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmultipruners/SnippetMultiPruners.cpp b/physx/snippets/snippetmultipruners/SnippetMultiPruners.cpp index b754efa5f..6816c4782 100644 --- a/physx/snippets/snippetmultipruners/SnippetMultiPruners.cpp +++ b/physx/snippets/snippetmultipruners/SnippetMultiPruners.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmultipruners/SnippetMultiPrunersRender.cpp b/physx/snippets/snippetmultipruners/SnippetMultiPrunersRender.cpp index d38b8ae35..5a1ef7ad4 100644 --- a/physx/snippets/snippetmultipruners/SnippetMultiPrunersRender.cpp +++ b/physx/snippets/snippetmultipruners/SnippetMultiPrunersRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetmultithreading/SnippetMultiThreading.cpp b/physx/snippets/snippetmultithreading/SnippetMultiThreading.cpp index 5aad89507..54b977552 100644 --- a/physx/snippets/snippetmultithreading/SnippetMultiThreading.cpp +++ b/physx/snippets/snippetmultithreading/SnippetMultiThreading.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetomnipvd/SnippetOmniPvd.cpp b/physx/snippets/snippetomnipvd/SnippetOmniPvd.cpp index c0c5b282f..a7bdfb34c 100644 --- a/physx/snippets/snippetomnipvd/SnippetOmniPvd.cpp +++ b/physx/snippets/snippetomnipvd/SnippetOmniPvd.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetomnipvd/SnippetOmniPvdRender.cpp b/physx/snippets/snippetomnipvd/SnippetOmniPvdRender.cpp index ab861d932..204ce3d0d 100644 --- a/physx/snippets/snippetomnipvd/SnippetOmniPvdRender.cpp +++ b/physx/snippets/snippetomnipvd/SnippetOmniPvdRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpathtracing/SnippetPathTracing.cpp b/physx/snippets/snippetpathtracing/SnippetPathTracing.cpp index 8a94dfb8e..af1bf8379 100644 --- a/physx/snippets/snippetpathtracing/SnippetPathTracing.cpp +++ b/physx/snippets/snippetpathtracing/SnippetPathTracing.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpathtracing/SnippetPathTracingRender.cpp b/physx/snippets/snippetpathtracing/SnippetPathTracingRender.cpp index 413ab26ad..0c7cd8370 100644 --- a/physx/snippets/snippetpathtracing/SnippetPathTracingRender.cpp +++ b/physx/snippets/snippetpathtracing/SnippetPathTracingRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbdcloth/SnippetPBDCloth.cpp b/physx/snippets/snippetpbdcloth/SnippetPBDCloth.cpp index 9ce4c84c7..2dadca7a1 100644 --- a/physx/snippets/snippetpbdcloth/SnippetPBDCloth.cpp +++ b/physx/snippets/snippetpbdcloth/SnippetPBDCloth.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbdcloth/SnippetPBDClothRender.cpp b/physx/snippets/snippetpbdcloth/SnippetPBDClothRender.cpp index 8e34cbae5..0f6a1d2aa 100644 --- a/physx/snippets/snippetpbdcloth/SnippetPBDClothRender.cpp +++ b/physx/snippets/snippetpbdcloth/SnippetPBDClothRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbdinflatable/SnippetPBDInflatable.cpp b/physx/snippets/snippetpbdinflatable/SnippetPBDInflatable.cpp index c7aeecf7d..68b87d328 100644 --- a/physx/snippets/snippetpbdinflatable/SnippetPBDInflatable.cpp +++ b/physx/snippets/snippetpbdinflatable/SnippetPBDInflatable.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbdinflatable/SnippetPBDInflatableRender.cpp b/physx/snippets/snippetpbdinflatable/SnippetPBDInflatableRender.cpp index ac6e2206b..a46211dcd 100644 --- a/physx/snippets/snippetpbdinflatable/SnippetPBDInflatableRender.cpp +++ b/physx/snippets/snippetpbdinflatable/SnippetPBDInflatableRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbf/SnippetPBF.cpp b/physx/snippets/snippetpbf/SnippetPBF.cpp index 6ab08e107..e7a0915e5 100644 --- a/physx/snippets/snippetpbf/SnippetPBF.cpp +++ b/physx/snippets/snippetpbf/SnippetPBF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbf/SnippetPBFRender.cpp b/physx/snippets/snippetpbf/SnippetPBFRender.cpp index a1d8c5705..75ccc7b4f 100644 --- a/physx/snippets/snippetpbf/SnippetPBFRender.cpp +++ b/physx/snippets/snippetpbf/SnippetPBFRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMat.cpp b/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMat.cpp index 5aedd3dc8..68027df88 100644 --- a/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMat.cpp +++ b/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMat.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMatRender.cpp b/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMatRender.cpp index f7690ac42..ade5b67ce 100644 --- a/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMatRender.cpp +++ b/physx/snippets/snippetpbfmultimat/SnippetPBFMultiMatRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQuery.cpp b/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQuery.cpp index c8b12bf7f..81baf7729 100644 --- a/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQuery.cpp +++ b/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQueryRender.cpp b/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQueryRender.cpp index ce19b8f76..3142c15b6 100644 --- a/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQueryRender.cpp +++ b/physx/snippets/snippetpointdistancequery/SnippetPointDistanceQueryRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetprunerserialization/SnippetPrunerSerialization.cpp b/physx/snippets/snippetprunerserialization/SnippetPrunerSerialization.cpp index 40ddf04f3..5778163e6 100644 --- a/physx/snippets/snippetprunerserialization/SnippetPrunerSerialization.cpp +++ b/physx/snippets/snippetprunerserialization/SnippetPrunerSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueries.cpp b/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueries.cpp index 2930e1744..95d5ea4ef 100644 --- a/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueries.cpp +++ b/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueries.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueriesRender.cpp b/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueriesRender.cpp index 4e5d4bba3..544ffb67f 100644 --- a/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueriesRender.cpp +++ b/physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueriesRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompound.cpp b/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompound.cpp index f7b9ab27f..70884393b 100644 --- a/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompound.cpp +++ b/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompound.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompoundRender.cpp b/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompoundRender.cpp index cc5e2e8ef..2a1439760 100644 --- a/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompoundRender.cpp +++ b/physx/snippets/snippetquerysystemcustomcompound/SnippetQuerySystemCustomCompoundRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrackjoint/SnippetRackJoint.cpp b/physx/snippets/snippetrackjoint/SnippetRackJoint.cpp index 9798617ee..6a27e9564 100644 --- a/physx/snippets/snippetrackjoint/SnippetRackJoint.cpp +++ b/physx/snippets/snippetrackjoint/SnippetRackJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrackjoint/SnippetRackJointRender.cpp b/physx/snippets/snippetrackjoint/SnippetRackJointRender.cpp index d62b0fac2..ebe52fbee 100644 --- a/physx/snippets/snippetrackjoint/SnippetRackJointRender.cpp +++ b/physx/snippets/snippetrackjoint/SnippetRackJointRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetCamera.cpp b/physx/snippets/snippetrender/SnippetCamera.cpp index 990ee44f4..c54c45c95 100644 --- a/physx/snippets/snippetrender/SnippetCamera.cpp +++ b/physx/snippets/snippetrender/SnippetCamera.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetCamera.h b/physx/snippets/snippetrender/SnippetCamera.h index c3054c40d..45b175629 100644 --- a/physx/snippets/snippetrender/SnippetCamera.h +++ b/physx/snippets/snippetrender/SnippetCamera.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetFontData.h b/physx/snippets/snippetrender/SnippetFontData.h index 76c770513..bc4d052c5 100644 --- a/physx/snippets/snippetrender/SnippetFontData.h +++ b/physx/snippets/snippetrender/SnippetFontData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetFontRenderer.cpp b/physx/snippets/snippetrender/SnippetFontRenderer.cpp index 5cd52b892..dc56d1065 100644 --- a/physx/snippets/snippetrender/SnippetFontRenderer.cpp +++ b/physx/snippets/snippetrender/SnippetFontRenderer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetFontRenderer.h b/physx/snippets/snippetrender/SnippetFontRenderer.h index c02a55427..e28e2563c 100644 --- a/physx/snippets/snippetrender/SnippetFontRenderer.h +++ b/physx/snippets/snippetrender/SnippetFontRenderer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetrender/SnippetRender.cpp b/physx/snippets/snippetrender/SnippetRender.cpp index 7e1d141ad..057576864 100644 --- a/physx/snippets/snippetrender/SnippetRender.cpp +++ b/physx/snippets/snippetrender/SnippetRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -121,7 +121,7 @@ static void releaseVertexBuffer() static void renderSoftBodyGeometry(const PxTetrahedronMesh& mesh, const PxArray& deformedPositionsInvMass) { - const int tetFaces[4][3] = { {0,2,1}, {0,1,3}, {1,3,2}, {1,2,3} }; + const int tetFaces[4][3] = { {0,2,1}, {0,1,3}, {0,3,2}, {1,2,3} }; //Get the deformed vertices //const PxVec3* vertices = mesh.getVertices(); @@ -350,7 +350,7 @@ static void renderGeometry(const PxGeometry& geom) case PxGeometryType::eTETRAHEDRONMESH: { - const int tetFaces[4][3] = { {0,2,1}, {0,1,3}, {1,3,2}, {1,2,3} }; + const int tetFaces[4][3] = { {0,2,1}, {0,1,3}, {0,3,2}, {1,2,3} }; const PxTetrahedronMeshGeometry& tetGeom = static_cast(geom); diff --git a/physx/snippets/snippetrender/SnippetRender.h b/physx/snippets/snippetrender/SnippetRender.h index ee1d90b2a..5f59005ad 100644 --- a/physx/snippets/snippetrender/SnippetRender.h +++ b/physx/snippets/snippetrender/SnippetRender.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsdf/MeshGenerator.h b/physx/snippets/snippetsdf/MeshGenerator.h index 1504e3a21..c4f6b0e7a 100644 --- a/physx/snippets/snippetsdf/MeshGenerator.h +++ b/physx/snippets/snippetsdf/MeshGenerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsdf/SnippetSDF.cpp b/physx/snippets/snippetsdf/SnippetSDF.cpp index b0e18245c..814468755 100644 --- a/physx/snippets/snippetsdf/SnippetSDF.cpp +++ b/physx/snippets/snippetsdf/SnippetSDF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsdf/SnippetSDFRender.cpp b/physx/snippets/snippetsdf/SnippetSDFRender.cpp index 788180e7e..c675f2eb6 100644 --- a/physx/snippets/snippetsdf/SnippetSDFRender.cpp +++ b/physx/snippets/snippetsdf/SnippetSDFRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetserialization/SnippetSerialization.cpp b/physx/snippets/snippetserialization/SnippetSerialization.cpp index 11bd65bdc..179df3d96 100644 --- a/physx/snippets/snippetserialization/SnippetSerialization.cpp +++ b/physx/snippets/snippetserialization/SnippetSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetserialization/SnippetSerializationRender.cpp b/physx/snippets/snippetserialization/SnippetSerializationRender.cpp index cc895d608..8a2424695 100644 --- a/physx/snippets/snippetserialization/SnippetSerializationRender.cpp +++ b/physx/snippets/snippetserialization/SnippetSerializationRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbody/MeshGenerator.h b/physx/snippets/snippetsoftbody/MeshGenerator.h index 69dc1b075..016ded73e 100644 --- a/physx/snippets/snippetsoftbody/MeshGenerator.h +++ b/physx/snippets/snippetsoftbody/MeshGenerator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbody/SnippetSoftBody.cpp b/physx/snippets/snippetsoftbody/SnippetSoftBody.cpp index c8ab3f775..c44282e29 100644 --- a/physx/snippets/snippetsoftbody/SnippetSoftBody.cpp +++ b/physx/snippets/snippetsoftbody/SnippetSoftBody.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbody/SnippetSoftBody.h b/physx/snippets/snippetsoftbody/SnippetSoftBody.h index b45c9c84e..2e336faed 100644 --- a/physx/snippets/snippetsoftbody/SnippetSoftBody.h +++ b/physx/snippets/snippetsoftbody/SnippetSoftBody.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbody/SnippetSoftBodyRender.cpp b/physx/snippets/snippetsoftbody/SnippetSoftBodyRender.cpp index 09c0636d1..20cf664fc 100644 --- a/physx/snippets/snippetsoftbody/SnippetSoftBodyRender.cpp +++ b/physx/snippets/snippetsoftbody/SnippetSoftBodyRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachment.cpp b/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachment.cpp index ab97e221f..baf4424c3 100644 --- a/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachment.cpp +++ b/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachment.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachmentRender.cpp b/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachmentRender.cpp index a9fc1d523..4a8a7d199 100644 --- a/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachmentRender.cpp +++ b/physx/snippets/snippetsoftbodyattachment/SnippetSoftBodyAttachmentRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetspatialtendon/SnippetSpatialTendon.cpp b/physx/snippets/snippetspatialtendon/SnippetSpatialTendon.cpp index 15be8ecd2..72a1c3fc5 100644 --- a/physx/snippets/snippetspatialtendon/SnippetSpatialTendon.cpp +++ b/physx/snippets/snippetspatialtendon/SnippetSpatialTendon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetspatialtendon/SnippetSpatialTendonRender.cpp b/physx/snippets/snippetspatialtendon/SnippetSpatialTendonRender.cpp index 91b6687a4..c6c1d7350 100644 --- a/physx/snippets/snippetspatialtendon/SnippetSpatialTendonRender.cpp +++ b/physx/snippets/snippetspatialtendon/SnippetSpatialTendonRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResults.cpp b/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResults.cpp index 7c260acb6..dcf38edb3 100644 --- a/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResults.cpp +++ b/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResults.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResultsRender.cpp b/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResultsRender.cpp index 0422497e0..d2c262ae9 100644 --- a/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResultsRender.cpp +++ b/physx/snippets/snippetsplitfetchresults/SnippetSplitFetchResultsRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsplitsim/SnippetSplitSim.cpp b/physx/snippets/snippetsplitsim/SnippetSplitSim.cpp index e7b382487..dceab09e3 100644 --- a/physx/snippets/snippetsplitsim/SnippetSplitSim.cpp +++ b/physx/snippets/snippetsplitsim/SnippetSplitSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetsplitsim/SnippetSplitSimRender.cpp b/physx/snippets/snippetsplitsim/SnippetSplitSimRender.cpp index afbc7d11d..c7f0e1e9a 100644 --- a/physx/snippets/snippetsplitsim/SnippetSplitSimRender.cpp +++ b/physx/snippets/snippetsplitsim/SnippetSplitSimRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphase.cpp b/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphase.cpp index d8c47238a..fc4c7ce4e 100644 --- a/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphase.cpp +++ b/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphase.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphaseRender.cpp b/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphaseRender.cpp index d289ce7a6..26134b662 100644 --- a/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphaseRender.cpp +++ b/physx/snippets/snippetstandalonebroadphase/SnippetStandaloneBroadphaseRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVH.cpp b/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVH.cpp index 7c20d52a2..bf459fd73 100644 --- a/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVH.cpp +++ b/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVH.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVHRender.cpp b/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVHRender.cpp index 56748bc13..0dc1cf6b5 100644 --- a/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVHRender.cpp +++ b/physx/snippets/snippetstandalonebvh/SnippetStandaloneBVHRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystem.cpp b/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystem.cpp index dd435eb30..441ffbf4a 100644 --- a/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystem.cpp +++ b/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystem.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystemRender.cpp b/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystemRender.cpp index 53c5607fd..a5652e110 100644 --- a/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystemRender.cpp +++ b/physx/snippets/snippetstandalonequerysystem/SnippetStandaloneQuerySystemRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetstepper/SnippetStepper.cpp b/physx/snippets/snippetstepper/SnippetStepper.cpp index 91d1977e1..dbc7d499a 100644 --- a/physx/snippets/snippetstepper/SnippetStepper.cpp +++ b/physx/snippets/snippetstepper/SnippetStepper.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippettolerancescale/SnippetToleranceScale.cpp b/physx/snippets/snippettolerancescale/SnippetToleranceScale.cpp index bc6c761fb..5d3dbc02a 100644 --- a/physx/snippets/snippettolerancescale/SnippetToleranceScale.cpp +++ b/physx/snippets/snippettolerancescale/SnippetToleranceScale.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippettrianglemeshcreate/SnippetTriangleMeshCreate.cpp b/physx/snippets/snippettrianglemeshcreate/SnippetTriangleMeshCreate.cpp index 8368cb549..870c6f2c7 100644 --- a/physx/snippets/snippettrianglemeshcreate/SnippetTriangleMeshCreate.cpp +++ b/physx/snippets/snippettrianglemeshcreate/SnippetTriangleMeshCreate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippettriggers/SnippetTriggers.cpp b/physx/snippets/snippettriggers/SnippetTriggers.cpp index 353cb2357..0936eebd8 100644 --- a/physx/snippets/snippettriggers/SnippetTriggers.cpp +++ b/physx/snippets/snippettriggers/SnippetTriggers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippettriggers/SnippetTriggersRender.cpp b/physx/snippets/snippettriggers/SnippetTriggersRender.cpp index f93e2d46a..3fb6923a7 100644 --- a/physx/snippets/snippettriggers/SnippetTriggersRender.cpp +++ b/physx/snippets/snippettriggers/SnippetTriggersRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetutils/SnippetImmUtils.cpp b/physx/snippets/snippetutils/SnippetImmUtils.cpp index 868bdd7ca..285edee28 100644 --- a/physx/snippets/snippetutils/SnippetImmUtils.cpp +++ b/physx/snippets/snippetutils/SnippetImmUtils.cpp @@ -22,6 +22,6 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "SnippetImmUtils.h" diff --git a/physx/snippets/snippetutils/SnippetImmUtils.h b/physx/snippets/snippetutils/SnippetImmUtils.h index 2af795bcb..75cdb299c 100644 --- a/physx/snippets/snippetutils/SnippetImmUtils.h +++ b/physx/snippets/snippetutils/SnippetImmUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxPhysXConfig.h" #include "foundation/PxArray.h" diff --git a/physx/snippets/snippetutils/SnippetUtils.cpp b/physx/snippets/snippetutils/SnippetUtils.cpp index 61e1f2603..acb0617d1 100644 --- a/physx/snippets/snippetutils/SnippetUtils.cpp +++ b/physx/snippets/snippetutils/SnippetUtils.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "SnippetUtils.h" diff --git a/physx/snippets/snippetutils/SnippetUtils.h b/physx/snippets/snippetutils/SnippetUtils.h index eada2a46c..664c7ef99 100644 --- a/physx/snippets/snippetutils/SnippetUtils.h +++ b/physx/snippets/snippetutils/SnippetUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/Px.h" #include "foundation/PxSimpleTypes.h" diff --git a/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.cpp b/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.cpp index ed90bb2e4..6814c2d7d 100644 --- a/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.cpp +++ b/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.h b/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.h index cd0be9204..d758a48a2 100644 --- a/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.h +++ b/physx/snippets/snippetvehicle2common/SnippetVehicleHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/base/Base.cpp b/physx/snippets/snippetvehicle2common/base/Base.cpp index 71637efb0..1f47a2479 100644 --- a/physx/snippets/snippetvehicle2common/base/Base.cpp +++ b/physx/snippets/snippetvehicle2common/base/Base.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/base/Base.h b/physx/snippets/snippetvehicle2common/base/Base.h index 2ec851c2e..c29192209 100644 --- a/physx/snippets/snippetvehicle2common/base/Base.h +++ b/physx/snippets/snippetvehicle2common/base/Base.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.cpp b/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.cpp index 47206767b..57851804c 100644 --- a/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.cpp +++ b/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.h b/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.h index c3282a562..2a46a9ef6 100644 --- a/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.h +++ b/physx/snippets/snippetvehicle2common/directdrivetrain/DirectDrivetrain.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.cpp b/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.cpp index 09af0c60b..d6d922792 100644 --- a/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.cpp +++ b/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.h b/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.h index 5b39caada..393f27081 100644 --- a/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.h +++ b/physx/snippets/snippetvehicle2common/enginedrivetrain/EngineDrivetrain.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.cpp b/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.cpp index 526ef5fbc..f6f05780c 100644 --- a/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.cpp +++ b/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.h b/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.h index a5f4f5aaf..a519beb5c 100644 --- a/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.h +++ b/physx/snippets/snippetvehicle2common/physxintegration/PhysXIntegration.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.cpp b/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.cpp index c288ccb9d..65c517af3 100644 --- a/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.cpp +++ b/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.h b/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.h index 409c6a032..d5a5a2fbc 100644 --- a/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.h +++ b/physx/snippets/snippetvehicle2common/serialization/BaseSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.cpp b/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.cpp index 12fb9c3cf..844235e33 100644 --- a/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.cpp +++ b/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.h b/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.h index 6e8556b96..fdb6c72ca 100644 --- a/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.h +++ b/physx/snippets/snippetvehicle2common/serialization/DirectDrivetrainSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.cpp b/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.cpp index 0dae22c16..444365b17 100644 --- a/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.cpp +++ b/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.h b/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.h index aac60864a..029c49933 100644 --- a/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.h +++ b/physx/snippets/snippetvehicle2common/serialization/EngineDrivetrainSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.cpp b/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.cpp index 7277d396a..8381d3600 100644 --- a/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.cpp +++ b/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.h b/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.h index b56711e27..32f84ebd6 100644 --- a/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.h +++ b/physx/snippets/snippetvehicle2common/serialization/SerializationCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2customization/CustomSuspension.cpp b/physx/snippets/snippetvehicle2customization/CustomSuspension.cpp index 7e59051a1..7c399549d 100644 --- a/physx/snippets/snippetvehicle2customization/CustomSuspension.cpp +++ b/physx/snippets/snippetvehicle2customization/CustomSuspension.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2customization/CustomSuspension.h b/physx/snippets/snippetvehicle2customization/CustomSuspension.h index dcb014205..5e6f546ed 100644 --- a/physx/snippets/snippetvehicle2customization/CustomSuspension.h +++ b/physx/snippets/snippetvehicle2customization/CustomSuspension.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2customization/SnippetVehicleCustomization.cpp b/physx/snippets/snippetvehicle2customization/SnippetVehicleCustomization.cpp index 41b50aa7c..e44ec30c6 100644 --- a/physx/snippets/snippetvehicle2customization/SnippetVehicleCustomization.cpp +++ b/physx/snippets/snippetvehicle2customization/SnippetVehicleCustomization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2customization/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2customization/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2customization/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2customization/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2directdrive/SnippetVehicleDirectDrive.cpp b/physx/snippets/snippetvehicle2directdrive/SnippetVehicleDirectDrive.cpp index 1003cc052..37d61b5fd 100644 --- a/physx/snippets/snippetvehicle2directdrive/SnippetVehicleDirectDrive.cpp +++ b/physx/snippets/snippetvehicle2directdrive/SnippetVehicleDirectDrive.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2directdrive/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2directdrive/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2directdrive/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2directdrive/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleFourWheelDrive.cpp b/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleFourWheelDrive.cpp index 26175a11f..32c6dcba9 100644 --- a/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleFourWheelDrive.cpp +++ b/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleFourWheelDrive.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2fourwheeldrive/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2multithreading/SnippetVehicleMultithreading.cpp b/physx/snippets/snippetvehicle2multithreading/SnippetVehicleMultithreading.cpp index 86e9b3ed5..52682870a 100644 --- a/physx/snippets/snippetvehicle2multithreading/SnippetVehicleMultithreading.cpp +++ b/physx/snippets/snippetvehicle2multithreading/SnippetVehicleMultithreading.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2multithreading/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2multithreading/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2multithreading/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2multithreading/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleTankDrive.cpp b/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleTankDrive.cpp index fb4af9e37..2462dcf3a 100644 --- a/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleTankDrive.cpp +++ b/physx/snippets/snippetvehicle2tankdrive/SnippetVehicleTankDrive.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2truck/SnippetVehicleRender.cpp b/physx/snippets/snippetvehicle2truck/SnippetVehicleRender.cpp index 708b29751..89c1da598 100644 --- a/physx/snippets/snippetvehicle2truck/SnippetVehicleRender.cpp +++ b/physx/snippets/snippetvehicle2truck/SnippetVehicleRender.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/snippets/snippetvehicle2truck/SnippetVehicleTruck.cpp b/physx/snippets/snippetvehicle2truck/SnippetVehicleTruck.cpp index d24868ffa..c9d45fcfc 100644 --- a/physx/snippets/snippetvehicle2truck/SnippetVehicleTruck.cpp +++ b/physx/snippets/snippetvehicle2truck/SnippetVehicleTruck.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/include/windows/CmWindowsLoadLibrary.h b/physx/source/common/include/windows/CmWindowsLoadLibrary.h index 2fa1a2daf..60780483a 100644 --- a/physx/source/common/include/windows/CmWindowsLoadLibrary.h +++ b/physx/source/common/include/windows/CmWindowsLoadLibrary.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/include/windows/CmWindowsModuleUpdateLoader.h b/physx/source/common/include/windows/CmWindowsModuleUpdateLoader.h index 154531b6b..86641abd0 100644 --- a/physx/source/common/include/windows/CmWindowsModuleUpdateLoader.h +++ b/physx/source/common/include/windows/CmWindowsModuleUpdateLoader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmBlockArray.h b/physx/source/common/src/CmBlockArray.h index 43a9f4d18..491a713ed 100644 --- a/physx/source/common/src/CmBlockArray.h +++ b/physx/source/common/src/CmBlockArray.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmCollection.cpp b/physx/source/common/src/CmCollection.cpp index 1eaee9422..fd2f947ec 100644 --- a/physx/source/common/src/CmCollection.cpp +++ b/physx/source/common/src/CmCollection.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmCollection.h b/physx/source/common/src/CmCollection.h index ef5d5303b..4cadc9ad3 100644 --- a/physx/source/common/src/CmCollection.h +++ b/physx/source/common/src/CmCollection.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmConeLimitHelper.h b/physx/source/common/src/CmConeLimitHelper.h index 75ba5eb5e..994924621 100644 --- a/physx/source/common/src/CmConeLimitHelper.h +++ b/physx/source/common/src/CmConeLimitHelper.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmFlushPool.h b/physx/source/common/src/CmFlushPool.h index 1bc513136..1a2e91e06 100644 --- a/physx/source/common/src/CmFlushPool.h +++ b/physx/source/common/src/CmFlushPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmIDPool.h b/physx/source/common/src/CmIDPool.h index f2a9c3d59..1efe42f28 100644 --- a/physx/source/common/src/CmIDPool.h +++ b/physx/source/common/src/CmIDPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmMatrix34.h b/physx/source/common/src/CmMatrix34.h index 76e6c8cce..5e61ab4a3 100644 --- a/physx/source/common/src/CmMatrix34.h +++ b/physx/source/common/src/CmMatrix34.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmPool.h b/physx/source/common/src/CmPool.h index 786a04ca0..425fd74b8 100644 --- a/physx/source/common/src/CmPool.h +++ b/physx/source/common/src/CmPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmPreallocatingPool.h b/physx/source/common/src/CmPreallocatingPool.h index c27511d53..76a0aac69 100644 --- a/physx/source/common/src/CmPreallocatingPool.h +++ b/physx/source/common/src/CmPreallocatingPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmPriorityQueue.h b/physx/source/common/src/CmPriorityQueue.h index 3a98c28b2..9c0a3ff9c 100644 --- a/physx/source/common/src/CmPriorityQueue.h +++ b/physx/source/common/src/CmPriorityQueue.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmPtrTable.cpp b/physx/source/common/src/CmPtrTable.cpp index f8f656d30..78b6b5edb 100644 --- a/physx/source/common/src/CmPtrTable.cpp +++ b/physx/source/common/src/CmPtrTable.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmPtrTable.h b/physx/source/common/src/CmPtrTable.h index a608f69a0..96f1f81bf 100644 --- a/physx/source/common/src/CmPtrTable.h +++ b/physx/source/common/src/CmPtrTable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmRadixSort.cpp b/physx/source/common/src/CmRadixSort.cpp index 43a24fe85..60c96c809 100644 --- a/physx/source/common/src/CmRadixSort.cpp +++ b/physx/source/common/src/CmRadixSort.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmRadixSort.h b/physx/source/common/src/CmRadixSort.h index 0278d3b36..a54a2c8f0 100644 --- a/physx/source/common/src/CmRadixSort.h +++ b/physx/source/common/src/CmRadixSort.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmRandom.h b/physx/source/common/src/CmRandom.h index 15bb7c12f..2db051c30 100644 --- a/physx/source/common/src/CmRandom.h +++ b/physx/source/common/src/CmRandom.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmRefCountable.h b/physx/source/common/src/CmRefCountable.h index ff5e09a4f..755fe5a5e 100644 --- a/physx/source/common/src/CmRefCountable.h +++ b/physx/source/common/src/CmRefCountable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmRenderBuffer.h b/physx/source/common/src/CmRenderBuffer.h index 966ee29b8..9a07a646a 100644 --- a/physx/source/common/src/CmRenderBuffer.h +++ b/physx/source/common/src/CmRenderBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmScaling.h b/physx/source/common/src/CmScaling.h index 9a2de2b86..8ddae5a65 100644 --- a/physx/source/common/src/CmScaling.h +++ b/physx/source/common/src/CmScaling.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmSerialize.cpp b/physx/source/common/src/CmSerialize.cpp index c0738c2a6..dbf1756f9 100644 --- a/physx/source/common/src/CmSerialize.cpp +++ b/physx/source/common/src/CmSerialize.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmSerialize.h b/physx/source/common/src/CmSerialize.h index c4111d6d5..2e4731c19 100644 --- a/physx/source/common/src/CmSerialize.h +++ b/physx/source/common/src/CmSerialize.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmSpatialVector.h b/physx/source/common/src/CmSpatialVector.h index 357e08b90..fc7f5a917 100644 --- a/physx/source/common/src/CmSpatialVector.h +++ b/physx/source/common/src/CmSpatialVector.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmTask.h b/physx/source/common/src/CmTask.h index 900254166..d09e2afad 100644 --- a/physx/source/common/src/CmTask.h +++ b/physx/source/common/src/CmTask.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmTransformUtils.h b/physx/source/common/src/CmTransformUtils.h index 16dbb28f1..7d9df2bcd 100644 --- a/physx/source/common/src/CmTransformUtils.h +++ b/physx/source/common/src/CmTransformUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmUtils.h b/physx/source/common/src/CmUtils.h index ccce43888..25ed0f199 100644 --- a/physx/source/common/src/CmUtils.h +++ b/physx/source/common/src/CmUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmVisualization.cpp b/physx/source/common/src/CmVisualization.cpp index f79643a70..b52b41545 100644 --- a/physx/source/common/src/CmVisualization.cpp +++ b/physx/source/common/src/CmVisualization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/CmVisualization.h b/physx/source/common/src/CmVisualization.h index b96c24e43..e556cf7c3 100644 --- a/physx/source/common/src/CmVisualization.h +++ b/physx/source/common/src/CmVisualization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/windows/CmWindowsDelayLoadHook.cpp b/physx/source/common/src/windows/CmWindowsDelayLoadHook.cpp index fd0ca8466..4765663cf 100644 --- a/physx/source/common/src/windows/CmWindowsDelayLoadHook.cpp +++ b/physx/source/common/src/windows/CmWindowsDelayLoadHook.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/common/src/windows/CmWindowsModuleUpdateLoader.cpp b/physx/source/common/src/windows/CmWindowsModuleUpdateLoader.cpp index fe1b3502a..c92aedff5 100644 --- a/physx/source/common/src/windows/CmWindowsModuleUpdateLoader.cpp +++ b/physx/source/common/src/windows/CmWindowsModuleUpdateLoader.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/compiler/cmake/CMakeLists.txt b/physx/source/compiler/cmake/CMakeLists.txt index e14cb0b77..665561506 100644 --- a/physx/source/compiler/cmake/CMakeLists.txt +++ b/physx/source/compiler/cmake/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. cmake_minimum_required(VERSION 3.7) diff --git a/physx/source/compiler/cmake/FastXml.cmake b/physx/source/compiler/cmake/FastXml.cmake index 5c8b9ada0..bf5801e64 100644 --- a/physx/source/compiler/cmake/FastXml.cmake +++ b/physx/source/compiler/cmake/FastXml.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build FastXml common diff --git a/physx/source/compiler/cmake/LowLevel.cmake b/physx/source/compiler/cmake/LowLevel.cmake index e55b4ef13..88a2f07b2 100644 --- a/physx/source/compiler/cmake/LowLevel.cmake +++ b/physx/source/compiler/cmake/LowLevel.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevel common diff --git a/physx/source/compiler/cmake/LowLevelAABB.cmake b/physx/source/compiler/cmake/LowLevelAABB.cmake index 5a21fafc5..377dbac52 100644 --- a/physx/source/compiler/cmake/LowLevelAABB.cmake +++ b/physx/source/compiler/cmake/LowLevelAABB.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelAABB common diff --git a/physx/source/compiler/cmake/LowLevelDynamics.cmake b/physx/source/compiler/cmake/LowLevelDynamics.cmake index 21f17c7c4..1a2625d6c 100644 --- a/physx/source/compiler/cmake/LowLevelDynamics.cmake +++ b/physx/source/compiler/cmake/LowLevelDynamics.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelDynamics common diff --git a/physx/source/compiler/cmake/PhysX.cmake b/physx/source/compiler/cmake/PhysX.cmake index 3c15125af..f7069c39b 100644 --- a/physx/source/compiler/cmake/PhysX.cmake +++ b/physx/source/compiler/cmake/PhysX.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysX (PROJECT not SOLUTION) common diff --git a/physx/source/compiler/cmake/PhysXCharacterKinematic.cmake b/physx/source/compiler/cmake/PhysXCharacterKinematic.cmake index 9e7c86c8c..23ea4ab47 100644 --- a/physx/source/compiler/cmake/PhysXCharacterKinematic.cmake +++ b/physx/source/compiler/cmake/PhysXCharacterKinematic.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCharacterKinematic common diff --git a/physx/source/compiler/cmake/PhysXCommon.cmake b/physx/source/compiler/cmake/PhysXCommon.cmake index 82a0f166d..248fa22f5 100644 --- a/physx/source/compiler/cmake/PhysXCommon.cmake +++ b/physx/source/compiler/cmake/PhysXCommon.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCommon common diff --git a/physx/source/compiler/cmake/PhysXCooking.cmake b/physx/source/compiler/cmake/PhysXCooking.cmake index 1126edf3f..41d49c751 100644 --- a/physx/source/compiler/cmake/PhysXCooking.cmake +++ b/physx/source/compiler/cmake/PhysXCooking.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCooking common diff --git a/physx/source/compiler/cmake/PhysXExtensions.cmake b/physx/source/compiler/cmake/PhysXExtensions.cmake index 77d919e9a..df33098f6 100644 --- a/physx/source/compiler/cmake/PhysXExtensions.cmake +++ b/physx/source/compiler/cmake/PhysXExtensions.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXExtensions common diff --git a/physx/source/compiler/cmake/PhysXFoundation.cmake b/physx/source/compiler/cmake/PhysXFoundation.cmake index d99842690..aa64c4bf2 100644 --- a/physx/source/compiler/cmake/PhysXFoundation.cmake +++ b/physx/source/compiler/cmake/PhysXFoundation.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXFoundation common diff --git a/physx/source/compiler/cmake/PhysXPvdSDK.cmake b/physx/source/compiler/cmake/PhysXPvdSDK.cmake index 7bc7de48a..5838950b1 100644 --- a/physx/source/compiler/cmake/PhysXPvdSDK.cmake +++ b/physx/source/compiler/cmake/PhysXPvdSDK.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXPvdSDK common diff --git a/physx/source/compiler/cmake/PhysXTask.cmake b/physx/source/compiler/cmake/PhysXTask.cmake index d4e6b2635..53f458172 100644 --- a/physx/source/compiler/cmake/PhysXTask.cmake +++ b/physx/source/compiler/cmake/PhysXTask.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXTask common diff --git a/physx/source/compiler/cmake/PhysXVehicle.cmake b/physx/source/compiler/cmake/PhysXVehicle.cmake index 422e3c718..38212d80a 100644 --- a/physx/source/compiler/cmake/PhysXVehicle.cmake +++ b/physx/source/compiler/cmake/PhysXVehicle.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle common diff --git a/physx/source/compiler/cmake/PhysXVehicle2.cmake b/physx/source/compiler/cmake/PhysXVehicle2.cmake index 912516d19..2ba24cf4f 100644 --- a/physx/source/compiler/cmake/PhysXVehicle2.cmake +++ b/physx/source/compiler/cmake/PhysXVehicle2.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle2 common diff --git a/physx/source/compiler/cmake/SceneQuery.cmake b/physx/source/compiler/cmake/SceneQuery.cmake index e20582762..e4d0eb224 100644 --- a/physx/source/compiler/cmake/SceneQuery.cmake +++ b/physx/source/compiler/cmake/SceneQuery.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SceneQuery common diff --git a/physx/source/compiler/cmake/SimulationController.cmake b/physx/source/compiler/cmake/SimulationController.cmake index 373cb85e8..b1ff286f5 100644 --- a/physx/source/compiler/cmake/SimulationController.cmake +++ b/physx/source/compiler/cmake/SimulationController.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SimulationController common diff --git a/physx/source/compiler/cmake/linux/CMakeLists.txt b/physx/source/compiler/cmake/linux/CMakeLists.txt index 48d8e463c..b0a509a35 100644 --- a/physx/source/compiler/cmake/linux/CMakeLists.txt +++ b/physx/source/compiler/cmake/linux/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE) diff --git a/physx/source/compiler/cmake/linux/FastXml.cmake b/physx/source/compiler/cmake/linux/FastXml.cmake index a4d6c48cd..e3ae633e8 100644 --- a/physx/source/compiler/cmake/linux/FastXml.cmake +++ b/physx/source/compiler/cmake/linux/FastXml.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build FastXml diff --git a/physx/source/compiler/cmake/linux/LowLevel.cmake b/physx/source/compiler/cmake/linux/LowLevel.cmake index b47548145..898113ff9 100644 --- a/physx/source/compiler/cmake/linux/LowLevel.cmake +++ b/physx/source/compiler/cmake/linux/LowLevel.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevel diff --git a/physx/source/compiler/cmake/linux/LowLevelAABB.cmake b/physx/source/compiler/cmake/linux/LowLevelAABB.cmake index b665a66a5..286fd23d1 100644 --- a/physx/source/compiler/cmake/linux/LowLevelAABB.cmake +++ b/physx/source/compiler/cmake/linux/LowLevelAABB.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelAABB diff --git a/physx/source/compiler/cmake/linux/LowLevelDynamics.cmake b/physx/source/compiler/cmake/linux/LowLevelDynamics.cmake index 8ba3fc38e..813e3ced4 100644 --- a/physx/source/compiler/cmake/linux/LowLevelDynamics.cmake +++ b/physx/source/compiler/cmake/linux/LowLevelDynamics.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelDynamics diff --git a/physx/source/compiler/cmake/linux/PhysX.cmake b/physx/source/compiler/cmake/linux/PhysX.cmake index b0f7540c2..fba10f54a 100644 --- a/physx/source/compiler/cmake/linux/PhysX.cmake +++ b/physx/source/compiler/cmake/linux/PhysX.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysX (PROJECT not SOLUTION) diff --git a/physx/source/compiler/cmake/linux/PhysXCharacterKinematic.cmake b/physx/source/compiler/cmake/linux/PhysXCharacterKinematic.cmake index 809b65be5..420b95dd3 100644 --- a/physx/source/compiler/cmake/linux/PhysXCharacterKinematic.cmake +++ b/physx/source/compiler/cmake/linux/PhysXCharacterKinematic.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCharacterKinematic diff --git a/physx/source/compiler/cmake/linux/PhysXCommon.cmake b/physx/source/compiler/cmake/linux/PhysXCommon.cmake index 0ccfaca2c..afa12b743 100644 --- a/physx/source/compiler/cmake/linux/PhysXCommon.cmake +++ b/physx/source/compiler/cmake/linux/PhysXCommon.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCommon diff --git a/physx/source/compiler/cmake/linux/PhysXCooking.cmake b/physx/source/compiler/cmake/linux/PhysXCooking.cmake index 9c5be0160..1b4e0522c 100644 --- a/physx/source/compiler/cmake/linux/PhysXCooking.cmake +++ b/physx/source/compiler/cmake/linux/PhysXCooking.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCooking diff --git a/physx/source/compiler/cmake/linux/PhysXExtensions.cmake b/physx/source/compiler/cmake/linux/PhysXExtensions.cmake index 8c9685a5d..7dd39bb7f 100644 --- a/physx/source/compiler/cmake/linux/PhysXExtensions.cmake +++ b/physx/source/compiler/cmake/linux/PhysXExtensions.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXExtensions diff --git a/physx/source/compiler/cmake/linux/PhysXFoundation.cmake b/physx/source/compiler/cmake/linux/PhysXFoundation.cmake index 0aef12965..202c07c54 100644 --- a/physx/source/compiler/cmake/linux/PhysXFoundation.cmake +++ b/physx/source/compiler/cmake/linux/PhysXFoundation.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXFoundation diff --git a/physx/source/compiler/cmake/linux/PhysXPvdSDK.cmake b/physx/source/compiler/cmake/linux/PhysXPvdSDK.cmake index 8d4b0beda..ed7c074a3 100644 --- a/physx/source/compiler/cmake/linux/PhysXPvdSDK.cmake +++ b/physx/source/compiler/cmake/linux/PhysXPvdSDK.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXPvdSDK diff --git a/physx/source/compiler/cmake/linux/PhysXTask.cmake b/physx/source/compiler/cmake/linux/PhysXTask.cmake index b617c4ddc..0819646ac 100644 --- a/physx/source/compiler/cmake/linux/PhysXTask.cmake +++ b/physx/source/compiler/cmake/linux/PhysXTask.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXTask diff --git a/physx/source/compiler/cmake/linux/PhysXVehicle.cmake b/physx/source/compiler/cmake/linux/PhysXVehicle.cmake index 75fd80c42..5f29697a9 100644 --- a/physx/source/compiler/cmake/linux/PhysXVehicle.cmake +++ b/physx/source/compiler/cmake/linux/PhysXVehicle.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle diff --git a/physx/source/compiler/cmake/linux/PhysXVehicle2.cmake b/physx/source/compiler/cmake/linux/PhysXVehicle2.cmake index e34c08d09..a20e9b33d 100644 --- a/physx/source/compiler/cmake/linux/PhysXVehicle2.cmake +++ b/physx/source/compiler/cmake/linux/PhysXVehicle2.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle2 diff --git a/physx/source/compiler/cmake/linux/SceneQuery.cmake b/physx/source/compiler/cmake/linux/SceneQuery.cmake index aa96081a2..d284d4829 100644 --- a/physx/source/compiler/cmake/linux/SceneQuery.cmake +++ b/physx/source/compiler/cmake/linux/SceneQuery.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SceneQuery diff --git a/physx/source/compiler/cmake/linux/SimulationController.cmake b/physx/source/compiler/cmake/linux/SimulationController.cmake index b747c210b..20feb488d 100644 --- a/physx/source/compiler/cmake/linux/SimulationController.cmake +++ b/physx/source/compiler/cmake/linux/SimulationController.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SimulationController diff --git a/physx/source/compiler/cmake/windows/CMakeLists.txt b/physx/source/compiler/cmake/windows/CMakeLists.txt index 1237689d1..7124e8448 100644 --- a/physx/source/compiler/cmake/windows/CMakeLists.txt +++ b/physx/source/compiler/cmake/windows/CMakeLists.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. OPTION(PX_COPY_EXTERNAL_DLL "Copy external dlls into SDK bin directory" OFF) OPTION(PX_FLOAT_POINT_PRECISE_MATH "Float point precise math" OFF) diff --git a/physx/source/compiler/cmake/windows/FastXml.cmake b/physx/source/compiler/cmake/windows/FastXml.cmake index 0ab67f53a..3cee3e1dd 100644 --- a/physx/source/compiler/cmake/windows/FastXml.cmake +++ b/physx/source/compiler/cmake/windows/FastXml.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build FastXml diff --git a/physx/source/compiler/cmake/windows/LowLevel.cmake b/physx/source/compiler/cmake/windows/LowLevel.cmake index d64bd2d53..632eb9089 100644 --- a/physx/source/compiler/cmake/windows/LowLevel.cmake +++ b/physx/source/compiler/cmake/windows/LowLevel.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevel diff --git a/physx/source/compiler/cmake/windows/LowLevelAABB.cmake b/physx/source/compiler/cmake/windows/LowLevelAABB.cmake index 6b81641ce..523835636 100644 --- a/physx/source/compiler/cmake/windows/LowLevelAABB.cmake +++ b/physx/source/compiler/cmake/windows/LowLevelAABB.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelAABB diff --git a/physx/source/compiler/cmake/windows/LowLevelDynamics.cmake b/physx/source/compiler/cmake/windows/LowLevelDynamics.cmake index 6c7aa4cbd..4508c72e5 100644 --- a/physx/source/compiler/cmake/windows/LowLevelDynamics.cmake +++ b/physx/source/compiler/cmake/windows/LowLevelDynamics.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build LowLevelDynamics diff --git a/physx/source/compiler/cmake/windows/PhysX.cmake b/physx/source/compiler/cmake/windows/PhysX.cmake index 62f7237e0..855e2f839 100644 --- a/physx/source/compiler/cmake/windows/PhysX.cmake +++ b/physx/source/compiler/cmake/windows/PhysX.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysX (PROJECT not SOLUTION) diff --git a/physx/source/compiler/cmake/windows/PhysXCharacterKinematic.cmake b/physx/source/compiler/cmake/windows/PhysXCharacterKinematic.cmake index fb9f29426..37ee55b9c 100644 --- a/physx/source/compiler/cmake/windows/PhysXCharacterKinematic.cmake +++ b/physx/source/compiler/cmake/windows/PhysXCharacterKinematic.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCharacterKinematic diff --git a/physx/source/compiler/cmake/windows/PhysXCommon.cmake b/physx/source/compiler/cmake/windows/PhysXCommon.cmake index 0a2ff500a..7b5695795 100644 --- a/physx/source/compiler/cmake/windows/PhysXCommon.cmake +++ b/physx/source/compiler/cmake/windows/PhysXCommon.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCommon diff --git a/physx/source/compiler/cmake/windows/PhysXCooking.cmake b/physx/source/compiler/cmake/windows/PhysXCooking.cmake index c75397355..35c4695a1 100644 --- a/physx/source/compiler/cmake/windows/PhysXCooking.cmake +++ b/physx/source/compiler/cmake/windows/PhysXCooking.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXCooking diff --git a/physx/source/compiler/cmake/windows/PhysXExtensions.cmake b/physx/source/compiler/cmake/windows/PhysXExtensions.cmake index 29b245917..a8a96607d 100644 --- a/physx/source/compiler/cmake/windows/PhysXExtensions.cmake +++ b/physx/source/compiler/cmake/windows/PhysXExtensions.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXExtensions diff --git a/physx/source/compiler/cmake/windows/PhysXFoundation.cmake b/physx/source/compiler/cmake/windows/PhysXFoundation.cmake index 820048bcf..5ac09df20 100644 --- a/physx/source/compiler/cmake/windows/PhysXFoundation.cmake +++ b/physx/source/compiler/cmake/windows/PhysXFoundation.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXFoundation diff --git a/physx/source/compiler/cmake/windows/PhysXPvdSDK.cmake b/physx/source/compiler/cmake/windows/PhysXPvdSDK.cmake index e24f4a2d7..623229f5a 100644 --- a/physx/source/compiler/cmake/windows/PhysXPvdSDK.cmake +++ b/physx/source/compiler/cmake/windows/PhysXPvdSDK.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXPvdSDK diff --git a/physx/source/compiler/cmake/windows/PhysXTask.cmake b/physx/source/compiler/cmake/windows/PhysXTask.cmake index ec98202c2..229c9bd01 100644 --- a/physx/source/compiler/cmake/windows/PhysXTask.cmake +++ b/physx/source/compiler/cmake/windows/PhysXTask.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXTask diff --git a/physx/source/compiler/cmake/windows/PhysXVehicle.cmake b/physx/source/compiler/cmake/windows/PhysXVehicle.cmake index d17323d96..d7f583e3b 100644 --- a/physx/source/compiler/cmake/windows/PhysXVehicle.cmake +++ b/physx/source/compiler/cmake/windows/PhysXVehicle.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle diff --git a/physx/source/compiler/cmake/windows/PhysXVehicle2.cmake b/physx/source/compiler/cmake/windows/PhysXVehicle2.cmake index f18d63d17..dbab06b94 100644 --- a/physx/source/compiler/cmake/windows/PhysXVehicle2.cmake +++ b/physx/source/compiler/cmake/windows/PhysXVehicle2.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build PhysXVehicle2 diff --git a/physx/source/compiler/cmake/windows/SceneQuery.cmake b/physx/source/compiler/cmake/windows/SceneQuery.cmake index d5774a918..edfa674a7 100644 --- a/physx/source/compiler/cmake/windows/SceneQuery.cmake +++ b/physx/source/compiler/cmake/windows/SceneQuery.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SceneQuery diff --git a/physx/source/compiler/cmake/windows/SimulationController.cmake b/physx/source/compiler/cmake/windows/SimulationController.cmake index 0ec0d2ca0..5dc1dc472 100644 --- a/physx/source/compiler/cmake/windows/SimulationController.cmake +++ b/physx/source/compiler/cmake/windows/SimulationController.cmake @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # # Build SimulationController diff --git a/physx/source/compiler/resource_x64/resource.h b/physx/source/compiler/resource_x64/resource.h index 97d26e2fa..d2ef3023b 100644 --- a/physx/source/compiler/resource_x64/resource.h +++ b/physx/source/compiler/resource_x64/resource.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/compiler/resource_x86/PhysX.rc b/physx/source/compiler/resource_x86/PhysX.rc deleted file mode 100644 index 82943af29..000000000 --- a/physx/source/compiler/resource_x86/PhysX.rc +++ /dev/null @@ -1,91 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" - - - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// 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 ""windows.h""\r\r\r\r\0" -END - -3 TEXTINCLUDE -BEGIN - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 5,1,1,0 - PRODUCTVERSION 5,1,1,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "NVIDIA Corporation" - VALUE "FileDescription", "PhysX 32bit Dynamic Link Library" - VALUE "FileVersion", "5.1.1.0" - VALUE "InternalName", "PhysX_32" - VALUE "LegalCopyright", "Copyright (C) 2021 NVIDIA Corporation" - VALUE "OriginalFilename", "PhysX_32.dll" - VALUE "ProductName", "PhysX" - VALUE "ProductVersion", "5.1.1.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - diff --git a/physx/source/compiler/resource_x86/PhysXCommon.rc b/physx/source/compiler/resource_x86/PhysXCommon.rc deleted file mode 100644 index ae6e942a8..000000000 --- a/physx/source/compiler/resource_x86/PhysXCommon.rc +++ /dev/null @@ -1,92 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" - - - - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// 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 ""windows.h""\r\r\r\r\0" -END - -3 TEXTINCLUDE -BEGIN - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 5,1,1,0 - PRODUCTVERSION 5,1,1,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "NVIDIA Corporation" - VALUE "FileDescription", "PhysXCommon 32bit Dynamic Link Library" - VALUE "FileVersion", "5.1.1.0" - VALUE "InternalName", "PhysXCommon_32" - VALUE "LegalCopyright", "Copyright (C) 2021 NVIDIA Corporation" - VALUE "OriginalFilename", "PhysXCommon_32.dll" - VALUE "ProductName", "PhysX" - VALUE "ProductVersion", "5.1.1.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - diff --git a/physx/source/compiler/resource_x86/PhysXCooking.rc b/physx/source/compiler/resource_x86/PhysXCooking.rc deleted file mode 100644 index 847d0b81d..000000000 --- a/physx/source/compiler/resource_x86/PhysXCooking.rc +++ /dev/null @@ -1,91 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" - - - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// 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 ""windows.h""\r\r\r\0" -END - -3 TEXTINCLUDE -BEGIN - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 5,1,1,0 - PRODUCTVERSION 5,1,1,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "NVIDIA Corporation" - VALUE "FileDescription", "PhysXCooking 32bit Dynamic Link Library" - VALUE "FileVersion", "5.1.1.0" - VALUE "InternalName", "PhysXCooking_32" - VALUE "LegalCopyright", "Copyright (C) 2021 NVIDIA Corporation" - VALUE "OriginalFilename", "PhysXCooking_32.dll" - VALUE "ProductName", "PhysX" - VALUE "ProductVersion", "5.1.1.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - diff --git a/physx/source/compiler/resource_x86/PhysXFoundation.rc b/physx/source/compiler/resource_x86/PhysXFoundation.rc deleted file mode 100644 index 2186976716fa942faa9494f968704bdd03cd8723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 zcmdUy+fLg+5QgVEPvM%IqE-+BsNxcGKvhE$;UuCGQUv7CsHubEL@iREz3n%>U4@9smAyD2L+7l?>%UCNh?YyDwAb+RQ~VlRFvlRg`yJo(!ZXA@_v& zDPxzp38U_t@%F&G$Cq*&$|E!fl0(KJ&pl>BRz^^E4V}NV_dvdg53N!wP2cQMp6Ak# zK$_B$l6;i9bmUsf%$9hsNmV{G6Y#u}3udakTe&JbdzbTxYUar$mZrVh$2Vj7#_ANG zs0W(Zd&Bc1_7<^FJyB-9z@3i4X0LxYUbTB-k7v(IP9sIb3=dgEybKH3M}tQ+Lo#ec zbRuHz$y;I^^5rru;LYY;B>O9(9?dgnNZxqzCXqp1xSdM{1li09$dVR0R77eABvrYT z=T9zg?an4VuEA@ET{ZUaBeBX{jky-%r9tGGyoblpf;Q_Tr)X}Y%O`f0{-c~-osBN9 zb6CGFV{=rfGM-Y)b5Pl9buGM=ys3xkZS_vhWcxbVtNE^~yS^;f0AFsYBex(wg+K+0SsRp`NXJf<{<5#@jJw+MHS)R?FmAU{1Lj z-)d)t4AFgyD{fw6Re`F?YLdc}Q!?>re&V6(@)8 zB*(m*;MFtk6S<$~zN2*GCT@60;t4}>^EJhbAf|KFKq%7x$5)u~sK*z_*Y;e9kv3`T!v~$#m#?m}Frq10XTRYJb zl%dgCyHpRm)Z<_0Z}&#e2{gOwn9M`xk5hWqqxo&Cud_5gCN0;<>q$K^+K!g|yxHcC zv3YwNsz@5(m63_qBlas22l#dR99fNJaz%TJqB-XapsQd`sn?BveXfVbNVRi#un~+= zw~aRrK*fk_d#^N*K4#Ypq)c~=z)PjP6h-b#cc@B#Co4l6Z%&@Qxoee4BDD!8tpyRj zjkC_;Uu(LpLAHleoY<4Y>glv}qgMX7B0F2`nf)65tosMZ-l*M}{ZrL$Wz*kDx>L!X kElwlXi|F^i{+DW(xc struct Comparer { - const PxArray& points; - const PxU32 dimension; + const T* points; + PxU32 dimension; - Comparer(const PxArray& points_, const PxU32 dimension_) : points(points_), dimension(dimension_) {} + Comparer(const T* points_, const PxU32 dimension_) : points(points_), dimension(dimension_) {} bool operator()(const PxI32& a, const PxI32& b) const { @@ -108,6 +108,9 @@ namespace Gu template static void mapDuplicatePoints(const PxArray& points, PxArray& result, S duplicateDistanceManhattanMetric = static_cast(1e-6)) { + result.reserve(points.size()); + result.forceSize_Unsafe(points.size()); + PxArray indexer; indexer.reserve(points.size()); indexer.forceSize_Unsafe(points.size()); @@ -117,23 +120,26 @@ namespace Gu result[i] = i; } - PxSort(indexer.begin(), indexer.size(), Comparer(points, 0)); + Comparer comparer(points.begin(), 0); + PxSort(indexer.begin(), indexer.size(), comparer); PxArray mergeRanges; mergeRanges.pushBack(Range(0, points.size())); splitRanges(mergeRanges, indexer, points, 0, duplicateDistanceManhattanMetric); + comparer.dimension = 1; for (PxU32 i = 0; i < mergeRanges.size(); ++i) { const Range& r = mergeRanges[i]; - PxSort(indexer.begin() + r.start, r.Length(), Comparer(points, 1)); + PxSort(indexer.begin() + r.start, r.Length(), comparer); } splitRanges(mergeRanges, indexer, points, 1, duplicateDistanceManhattanMetric); + comparer.dimension = 2; for (PxU32 i = 0; i < mergeRanges.size(); ++i) { const Range& r = mergeRanges[i]; - PxSort(indexer.begin() + r.start, r.Length(), Comparer(points, 2)); + PxSort(indexer.begin() + r.start, r.Length(), comparer); } splitRanges(mergeRanges, indexer, points, 2, duplicateDistanceManhattanMetric); diff --git a/physx/source/geomutils/src/common/GuMeshCleaner.cpp b/physx/source/geomutils/src/common/GuMeshCleaner.cpp index c1480e71d..2e70338bf 100644 --- a/physx/source/geomutils/src/common/GuMeshCleaner.cpp +++ b/physx/source/geomutils/src/common/GuMeshCleaner.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuMeshCleaner.h b/physx/source/geomutils/src/common/GuMeshCleaner.h index b91666c11..35f630c6e 100644 --- a/physx/source/geomutils/src/common/GuMeshCleaner.h +++ b/physx/source/geomutils/src/common/GuMeshCleaner.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuQuantizer.cpp b/physx/source/geomutils/src/common/GuQuantizer.cpp index 1f7132697..f47d5e090 100644 --- a/physx/source/geomutils/src/common/GuQuantizer.cpp +++ b/physx/source/geomutils/src/common/GuQuantizer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuQuantizer.h b/physx/source/geomutils/src/common/GuQuantizer.h index 7b195ad98..a3f2cd894 100644 --- a/physx/source/geomutils/src/common/GuQuantizer.h +++ b/physx/source/geomutils/src/common/GuQuantizer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuSeparatingAxes.cpp b/physx/source/geomutils/src/common/GuSeparatingAxes.cpp index 95546d2eb..5b6bb0b70 100644 --- a/physx/source/geomutils/src/common/GuSeparatingAxes.cpp +++ b/physx/source/geomutils/src/common/GuSeparatingAxes.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuSeparatingAxes.h b/physx/source/geomutils/src/common/GuSeparatingAxes.h index 090b5fac2..7d4a8c5d0 100644 --- a/physx/source/geomutils/src/common/GuSeparatingAxes.h +++ b/physx/source/geomutils/src/common/GuSeparatingAxes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuVertexReducer.cpp b/physx/source/geomutils/src/common/GuVertexReducer.cpp index 58204b6c8..1e136c767 100644 --- a/physx/source/geomutils/src/common/GuVertexReducer.cpp +++ b/physx/source/geomutils/src/common/GuVertexReducer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/common/GuVertexReducer.h b/physx/source/geomutils/src/common/GuVertexReducer.h index eb1f53957..248aa397c 100644 --- a/physx/source/geomutils/src/common/GuVertexReducer.h +++ b/physx/source/geomutils/src/common/GuVertexReducer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactBoxBox.cpp b/physx/source/geomutils/src/contact/GuContactBoxBox.cpp index 140c4e1b3..288dd5543 100644 --- a/physx/source/geomutils/src/contact/GuContactBoxBox.cpp +++ b/physx/source/geomutils/src/contact/GuContactBoxBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactCapsuleBox.cpp b/physx/source/geomutils/src/contact/GuContactCapsuleBox.cpp index 7311f26f2..f7b5c6b5a 100644 --- a/physx/source/geomutils/src/contact/GuContactCapsuleBox.cpp +++ b/physx/source/geomutils/src/contact/GuContactCapsuleBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactCapsuleCapsule.cpp b/physx/source/geomutils/src/contact/GuContactCapsuleCapsule.cpp index c39eefaf4..a0a69fc7d 100644 --- a/physx/source/geomutils/src/contact/GuContactCapsuleCapsule.cpp +++ b/physx/source/geomutils/src/contact/GuContactCapsuleCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactCapsuleConvex.cpp b/physx/source/geomutils/src/contact/GuContactCapsuleConvex.cpp index 647f59fae..8760e619c 100644 --- a/physx/source/geomutils/src/contact/GuContactCapsuleConvex.cpp +++ b/physx/source/geomutils/src/contact/GuContactCapsuleConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactCapsuleMesh.cpp b/physx/source/geomutils/src/contact/GuContactCapsuleMesh.cpp index c744d6978..678a23081 100644 --- a/physx/source/geomutils/src/contact/GuContactCapsuleMesh.cpp +++ b/physx/source/geomutils/src/contact/GuContactCapsuleMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactConvexConvex.cpp b/physx/source/geomutils/src/contact/GuContactConvexConvex.cpp index c1116a4ca..5842792d7 100644 --- a/physx/source/geomutils/src/contact/GuContactConvexConvex.cpp +++ b/physx/source/geomutils/src/contact/GuContactConvexConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactConvexMesh.cpp b/physx/source/geomutils/src/contact/GuContactConvexMesh.cpp index a646b018a..68fde71bc 100644 --- a/physx/source/geomutils/src/contact/GuContactConvexMesh.cpp +++ b/physx/source/geomutils/src/contact/GuContactConvexMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactCustomGeometry.cpp b/physx/source/geomutils/src/contact/GuContactCustomGeometry.cpp index def6fd88f..bbb4fc96e 100644 --- a/physx/source/geomutils/src/contact/GuContactCustomGeometry.cpp +++ b/physx/source/geomutils/src/contact/GuContactCustomGeometry.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactMethodImpl.h b/physx/source/geomutils/src/contact/GuContactMethodImpl.h index 73a8190df..521da5e82 100644 --- a/physx/source/geomutils/src/contact/GuContactMethodImpl.h +++ b/physx/source/geomutils/src/contact/GuContactMethodImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactPlaneBox.cpp b/physx/source/geomutils/src/contact/GuContactPlaneBox.cpp index d0bb4f3d3..b07f75ae6 100644 --- a/physx/source/geomutils/src/contact/GuContactPlaneBox.cpp +++ b/physx/source/geomutils/src/contact/GuContactPlaneBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactPlaneCapsule.cpp b/physx/source/geomutils/src/contact/GuContactPlaneCapsule.cpp index 17a7bd1a0..4190698e9 100644 --- a/physx/source/geomutils/src/contact/GuContactPlaneCapsule.cpp +++ b/physx/source/geomutils/src/contact/GuContactPlaneCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactPlaneConvex.cpp b/physx/source/geomutils/src/contact/GuContactPlaneConvex.cpp index d8776dd31..6db77907d 100644 --- a/physx/source/geomutils/src/contact/GuContactPlaneConvex.cpp +++ b/physx/source/geomutils/src/contact/GuContactPlaneConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactPolygonPolygon.cpp b/physx/source/geomutils/src/contact/GuContactPolygonPolygon.cpp index a8f33f380..6490a15b3 100644 --- a/physx/source/geomutils/src/contact/GuContactPolygonPolygon.cpp +++ b/physx/source/geomutils/src/contact/GuContactPolygonPolygon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactPolygonPolygon.h b/physx/source/geomutils/src/contact/GuContactPolygonPolygon.h index 1c215db84..97655c158 100644 --- a/physx/source/geomutils/src/contact/GuContactPolygonPolygon.h +++ b/physx/source/geomutils/src/contact/GuContactPolygonPolygon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactSphereBox.cpp b/physx/source/geomutils/src/contact/GuContactSphereBox.cpp index 1743b3035..1918c16c6 100644 --- a/physx/source/geomutils/src/contact/GuContactSphereBox.cpp +++ b/physx/source/geomutils/src/contact/GuContactSphereBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactSphereCapsule.cpp b/physx/source/geomutils/src/contact/GuContactSphereCapsule.cpp index c69804a5f..bf974df95 100644 --- a/physx/source/geomutils/src/contact/GuContactSphereCapsule.cpp +++ b/physx/source/geomutils/src/contact/GuContactSphereCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactSphereMesh.cpp b/physx/source/geomutils/src/contact/GuContactSphereMesh.cpp index bd3857035..b5e8f8b9c 100644 --- a/physx/source/geomutils/src/contact/GuContactSphereMesh.cpp +++ b/physx/source/geomutils/src/contact/GuContactSphereMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactSpherePlane.cpp b/physx/source/geomutils/src/contact/GuContactSpherePlane.cpp index 0b2fd3c35..51dfea2d9 100644 --- a/physx/source/geomutils/src/contact/GuContactSpherePlane.cpp +++ b/physx/source/geomutils/src/contact/GuContactSpherePlane.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuContactSphereSphere.cpp b/physx/source/geomutils/src/contact/GuContactSphereSphere.cpp index efe11a948..22557c18d 100644 --- a/physx/source/geomutils/src/contact/GuContactSphereSphere.cpp +++ b/physx/source/geomutils/src/contact/GuContactSphereSphere.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuFeatureCode.cpp b/physx/source/geomutils/src/contact/GuFeatureCode.cpp index b77c7fbae..66ff2c5cc 100644 --- a/physx/source/geomutils/src/contact/GuFeatureCode.cpp +++ b/physx/source/geomutils/src/contact/GuFeatureCode.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/contact/GuFeatureCode.h b/physx/source/geomutils/src/contact/GuFeatureCode.h index ff5979cc4..09bb62e01 100644 --- a/physx/source/geomutils/src/contact/GuFeatureCode.h +++ b/physx/source/geomutils/src/contact/GuFeatureCode.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuBigConvexData.cpp b/physx/source/geomutils/src/convex/GuBigConvexData.cpp index c557450ac..2f765afa8 100644 --- a/physx/source/geomutils/src/convex/GuBigConvexData.cpp +++ b/physx/source/geomutils/src/convex/GuBigConvexData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuBigConvexData.h b/physx/source/geomutils/src/convex/GuBigConvexData.h index 958ddc125..14017e5e8 100644 --- a/physx/source/geomutils/src/convex/GuBigConvexData.h +++ b/physx/source/geomutils/src/convex/GuBigConvexData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuBigConvexData2.h b/physx/source/geomutils/src/convex/GuBigConvexData2.h index 3e6bd9173..98c927b84 100644 --- a/physx/source/geomutils/src/convex/GuBigConvexData2.h +++ b/physx/source/geomutils/src/convex/GuBigConvexData2.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexEdgeFlags.h b/physx/source/geomutils/src/convex/GuConvexEdgeFlags.h index 974d50add..e0bf8c759 100644 --- a/physx/source/geomutils/src/convex/GuConvexEdgeFlags.h +++ b/physx/source/geomutils/src/convex/GuConvexEdgeFlags.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexHelper.cpp b/physx/source/geomutils/src/convex/GuConvexHelper.cpp index 52a41121d..39e7c514f 100644 --- a/physx/source/geomutils/src/convex/GuConvexHelper.cpp +++ b/physx/source/geomutils/src/convex/GuConvexHelper.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexHelper.h b/physx/source/geomutils/src/convex/GuConvexHelper.h index 1e0f55248..2333ca25f 100644 --- a/physx/source/geomutils/src/convex/GuConvexHelper.h +++ b/physx/source/geomutils/src/convex/GuConvexHelper.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexMesh.cpp b/physx/source/geomutils/src/convex/GuConvexMesh.cpp index ec5647ae3..48f6b7e34 100644 --- a/physx/source/geomutils/src/convex/GuConvexMesh.cpp +++ b/physx/source/geomutils/src/convex/GuConvexMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexMesh.h b/physx/source/geomutils/src/convex/GuConvexMesh.h index ee69c87dc..a3504b6bc 100644 --- a/physx/source/geomutils/src/convex/GuConvexMesh.h +++ b/physx/source/geomutils/src/convex/GuConvexMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexMeshData.h b/physx/source/geomutils/src/convex/GuConvexMeshData.h index 68ee5f8b6..388a03b6c 100644 --- a/physx/source/geomutils/src/convex/GuConvexMeshData.h +++ b/physx/source/geomutils/src/convex/GuConvexMeshData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexSupportTable.cpp b/physx/source/geomutils/src/convex/GuConvexSupportTable.cpp index 1a39bc73c..325ced8db 100644 --- a/physx/source/geomutils/src/convex/GuConvexSupportTable.cpp +++ b/physx/source/geomutils/src/convex/GuConvexSupportTable.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexSupportTable.h b/physx/source/geomutils/src/convex/GuConvexSupportTable.h index d02834380..5bcb1092f 100644 --- a/physx/source/geomutils/src/convex/GuConvexSupportTable.h +++ b/physx/source/geomutils/src/convex/GuConvexSupportTable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexUtilsInternal.cpp b/physx/source/geomutils/src/convex/GuConvexUtilsInternal.cpp index d551f419e..241a62518 100644 --- a/physx/source/geomutils/src/convex/GuConvexUtilsInternal.cpp +++ b/physx/source/geomutils/src/convex/GuConvexUtilsInternal.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuConvexUtilsInternal.h b/physx/source/geomutils/src/convex/GuConvexUtilsInternal.h index eb6c9377c..4beadf5d3 100644 --- a/physx/source/geomutils/src/convex/GuConvexUtilsInternal.h +++ b/physx/source/geomutils/src/convex/GuConvexUtilsInternal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuCubeIndex.h b/physx/source/geomutils/src/convex/GuCubeIndex.h index 5ee4d5160..4b4428456 100644 --- a/physx/source/geomutils/src/convex/GuCubeIndex.h +++ b/physx/source/geomutils/src/convex/GuCubeIndex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuHillClimbing.cpp b/physx/source/geomutils/src/convex/GuHillClimbing.cpp index 8c164673e..e7eee38df 100644 --- a/physx/source/geomutils/src/convex/GuHillClimbing.cpp +++ b/physx/source/geomutils/src/convex/GuHillClimbing.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuHillClimbing.h b/physx/source/geomutils/src/convex/GuHillClimbing.h index e77c93c5e..ea0e8c656 100644 --- a/physx/source/geomutils/src/convex/GuHillClimbing.h +++ b/physx/source/geomutils/src/convex/GuHillClimbing.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuShapeConvex.cpp b/physx/source/geomutils/src/convex/GuShapeConvex.cpp index 2b7db9c21..ef3b583b6 100644 --- a/physx/source/geomutils/src/convex/GuShapeConvex.cpp +++ b/physx/source/geomutils/src/convex/GuShapeConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/convex/GuShapeConvex.h b/physx/source/geomutils/src/convex/GuShapeConvex.h index 18ad93f3a..dd925570a 100644 --- a/physx/source/geomutils/src/convex/GuShapeConvex.h +++ b/physx/source/geomutils/src/convex/GuShapeConvex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingBVH.cpp b/physx/source/geomutils/src/cooking/GuCookingBVH.cpp index 1422099da..315e57f94 100644 --- a/physx/source/geomutils/src/cooking/GuCookingBVH.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingBVH.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.cpp b/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.cpp index 521c81cdd..437308314 100644 --- a/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.h b/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.h index 224a74de6..3ef4463cd 100644 --- a/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.h +++ b/physx/source/geomutils/src/cooking/GuCookingBigConvexDataBuilder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.cpp index 6d74d885b..54081069b 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.h b/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.h index 98fc9e762..c2fe080e9 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.h +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullBuilder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.cpp index 492520192..8471cc76d 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.h b/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.h index 1d2181c0d..8d4ec0bda 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.h +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullLib.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.cpp index bfe7f80e5..cfd45a9cc 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.h b/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.h index e1b84f744..50b54043f 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.h +++ b/physx/source/geomutils/src/cooking/GuCookingConvexHullUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexMesh.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexMesh.cpp index 32e2cde42..1ebae13c9 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexMesh.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.cpp index 249a9f317..cfef7b9a7 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.h b/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.h index 03704218f..bc1ad8c51 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.h +++ b/physx/source/geomutils/src/cooking/GuCookingConvexMeshBuilder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.cpp b/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.cpp index 9de451022..be2e610b0 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.h b/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.h index e267b8578..dab7bc946 100644 --- a/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.h +++ b/physx/source/geomutils/src/cooking/GuCookingConvexPolygonsBuilder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingGrbTriangleMesh.h b/physx/source/geomutils/src/cooking/GuCookingGrbTriangleMesh.h index 2826c3b5f..699a1903f 100644 --- a/physx/source/geomutils/src/cooking/GuCookingGrbTriangleMesh.h +++ b/physx/source/geomutils/src/cooking/GuCookingGrbTriangleMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingHF.cpp b/physx/source/geomutils/src/cooking/GuCookingHF.cpp index b7f685a88..6a2c94e87 100644 --- a/physx/source/geomutils/src/cooking/GuCookingHF.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingHF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.cpp b/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.cpp index c7aee41f0..1b1630fc0 100644 --- a/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.h b/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.h index 3259ee549..2bce1fe9d 100644 --- a/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.h +++ b/physx/source/geomutils/src/cooking/GuCookingQuickHullConvexHullLib.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.cpp b/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.cpp index 25d68a59c..dd1fe2260 100644 --- a/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #define USE_GJK_VIRTUAL diff --git a/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.h b/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.h index 0841ecd50..786d093da 100644 --- a/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.h +++ b/physx/source/geomutils/src/cooking/GuCookingTetrahedronMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef GU_COOKING_TETRAHEDRON_MESH_H #define GU_COOKING_TETRAHEDRON_MESH_H diff --git a/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.cpp b/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.cpp index 603891667..b6ea9bb52 100644 --- a/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.h b/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.h index f91c4c83b..21646768c 100644 --- a/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.h +++ b/physx/source/geomutils/src/cooking/GuCookingTriangleMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.cpp b/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.cpp index a4214d6e8..e71f74cab 100644 --- a/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.cpp +++ b/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.h b/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.h index 67f6be6b7..bfb97e190 100644 --- a/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.h +++ b/physx/source/geomutils/src/cooking/GuCookingVolumeIntegration.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuRTreeCooking.cpp b/physx/source/geomutils/src/cooking/GuRTreeCooking.cpp index 9c925d4a1..404a745e0 100644 --- a/physx/source/geomutils/src/cooking/GuRTreeCooking.cpp +++ b/physx/source/geomutils/src/cooking/GuRTreeCooking.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/cooking/GuRTreeCooking.h b/physx/source/geomutils/src/cooking/GuRTreeCooking.h index 1a186e3cb..3e1905eeb 100644 --- a/physx/source/geomutils/src/cooking/GuRTreeCooking.h +++ b/physx/source/geomutils/src/cooking/GuRTreeCooking.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointBox.cpp b/physx/source/geomutils/src/distance/GuDistancePointBox.cpp index 3a97f7a46..57d3b91c9 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointBox.cpp +++ b/physx/source/geomutils/src/distance/GuDistancePointBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointBox.h b/physx/source/geomutils/src/distance/GuDistancePointBox.h index 5913f9f2a..0b839ccee 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointBox.h +++ b/physx/source/geomutils/src/distance/GuDistancePointBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointSegment.h b/physx/source/geomutils/src/distance/GuDistancePointSegment.h index 2add9351a..0cb962d4d 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointSegment.h +++ b/physx/source/geomutils/src/distance/GuDistancePointSegment.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.cpp b/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.cpp index 697846290..71a245838 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.cpp +++ b/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.h b/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.h index 1ff7ca8bb..c341b694c 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.h +++ b/physx/source/geomutils/src/distance/GuDistancePointTetrahedron.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointTriangle.cpp b/physx/source/geomutils/src/distance/GuDistancePointTriangle.cpp index 653c7a1d6..2761d4c78 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointTriangle.cpp +++ b/physx/source/geomutils/src/distance/GuDistancePointTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointTriangle.h b/physx/source/geomutils/src/distance/GuDistancePointTriangle.h index fcb630f60..8dd312354 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointTriangle.h +++ b/physx/source/geomutils/src/distance/GuDistancePointTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistancePointTriangleSIMD.h b/physx/source/geomutils/src/distance/GuDistancePointTriangleSIMD.h index 1eb9c365b..77645b0b9 100644 --- a/physx/source/geomutils/src/distance/GuDistancePointTriangleSIMD.h +++ b/physx/source/geomutils/src/distance/GuDistancePointTriangleSIMD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentBox.cpp b/physx/source/geomutils/src/distance/GuDistanceSegmentBox.cpp index eb6283039..e19352177 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentBox.cpp +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentSegment.cpp b/physx/source/geomutils/src/distance/GuDistanceSegmentSegment.cpp index 0339cd60f..940cd6e91 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentSegment.cpp +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentSegment.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentSegmentSIMD.h b/physx/source/geomutils/src/distance/GuDistanceSegmentSegmentSIMD.h index 7ac06c85e..3c68e3f91 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentSegmentSIMD.h +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentSegmentSIMD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.cpp b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.cpp index 0bfee50d0..7203652bc 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.cpp +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.h b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.h index 000f397c4..ff2e57eee 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.h +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangleSIMD.h b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangleSIMD.h index 195764dc9..94b2a9502 100644 --- a/physx/source/geomutils/src/distance/GuDistanceSegmentTriangleSIMD.h +++ b/physx/source/geomutils/src/distance/GuDistanceSegmentTriangleSIMD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuEPA.cpp b/physx/source/geomutils/src/gjk/GuEPA.cpp index b460de0aa..bdcae5f56 100644 --- a/physx/source/geomutils/src/gjk/GuEPA.cpp +++ b/physx/source/geomutils/src/gjk/GuEPA.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuEPA.h b/physx/source/geomutils/src/gjk/GuEPA.h index e30fa0657..0f71a51f3 100644 --- a/physx/source/geomutils/src/gjk/GuEPA.h +++ b/physx/source/geomutils/src/gjk/GuEPA.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuEPAFacet.h b/physx/source/geomutils/src/gjk/GuEPAFacet.h index 9019e3b42..121e5f282 100644 --- a/physx/source/geomutils/src/gjk/GuEPAFacet.h +++ b/physx/source/geomutils/src/gjk/GuEPAFacet.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJK.h b/physx/source/geomutils/src/gjk/GuGJK.h index 5bf12f203..c0ad41b2a 100644 --- a/physx/source/geomutils/src/gjk/GuGJK.h +++ b/physx/source/geomutils/src/gjk/GuGJK.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKPenetration.h b/physx/source/geomutils/src/gjk/GuGJKPenetration.h index d7b6aaa62..5e73d4614 100644 --- a/physx/source/geomutils/src/gjk/GuGJKPenetration.h +++ b/physx/source/geomutils/src/gjk/GuGJKPenetration.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKRaycast.h b/physx/source/geomutils/src/gjk/GuGJKRaycast.h index b70f89994..1ef136ab8 100644 --- a/physx/source/geomutils/src/gjk/GuGJKRaycast.h +++ b/physx/source/geomutils/src/gjk/GuGJKRaycast.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKSimplex.cpp b/physx/source/geomutils/src/gjk/GuGJKSimplex.cpp index fbef869bd..a9b750e9c 100644 --- a/physx/source/geomutils/src/gjk/GuGJKSimplex.cpp +++ b/physx/source/geomutils/src/gjk/GuGJKSimplex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKSimplex.h b/physx/source/geomutils/src/gjk/GuGJKSimplex.h index acc000230..0e513ac0b 100644 --- a/physx/source/geomutils/src/gjk/GuGJKSimplex.h +++ b/physx/source/geomutils/src/gjk/GuGJKSimplex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKTest.cpp b/physx/source/geomutils/src/gjk/GuGJKTest.cpp index 88e0140fd..61f087382 100644 --- a/physx/source/geomutils/src/gjk/GuGJKTest.cpp +++ b/physx/source/geomutils/src/gjk/GuGJKTest.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKTest.h b/physx/source/geomutils/src/gjk/GuGJKTest.h index 922df7a02..619e92bf0 100644 --- a/physx/source/geomutils/src/gjk/GuGJKTest.h +++ b/physx/source/geomutils/src/gjk/GuGJKTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKType.h b/physx/source/geomutils/src/gjk/GuGJKType.h index 5b77b7263..7699f19ea 100644 --- a/physx/source/geomutils/src/gjk/GuGJKType.h +++ b/physx/source/geomutils/src/gjk/GuGJKType.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuGJKUtil.h b/physx/source/geomutils/src/gjk/GuGJKUtil.h index bba5cac2b..6f6aa433c 100644 --- a/physx/source/geomutils/src/gjk/GuGJKUtil.h +++ b/physx/source/geomutils/src/gjk/GuGJKUtil.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecBox.h b/physx/source/geomutils/src/gjk/GuVecBox.h index f185fdc79..447ae17e9 100644 --- a/physx/source/geomutils/src/gjk/GuVecBox.h +++ b/physx/source/geomutils/src/gjk/GuVecBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecCapsule.h b/physx/source/geomutils/src/gjk/GuVecCapsule.h index 1fbdd91a9..16b1818b7 100644 --- a/physx/source/geomutils/src/gjk/GuVecCapsule.h +++ b/physx/source/geomutils/src/gjk/GuVecCapsule.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecConvex.h b/physx/source/geomutils/src/gjk/GuVecConvex.h index bab5058e9..d530218b5 100644 --- a/physx/source/geomutils/src/gjk/GuVecConvex.h +++ b/physx/source/geomutils/src/gjk/GuVecConvex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecConvexHull.h b/physx/source/geomutils/src/gjk/GuVecConvexHull.h index bf2ea888c..730860c8b 100644 --- a/physx/source/geomutils/src/gjk/GuVecConvexHull.h +++ b/physx/source/geomutils/src/gjk/GuVecConvexHull.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecConvexHullNoScale.h b/physx/source/geomutils/src/gjk/GuVecConvexHullNoScale.h index 9a7d872bd..8356d78c1 100644 --- a/physx/source/geomutils/src/gjk/GuVecConvexHullNoScale.h +++ b/physx/source/geomutils/src/gjk/GuVecConvexHullNoScale.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecPlane.h b/physx/source/geomutils/src/gjk/GuVecPlane.h index a47c8b68c..a0795627b 100644 --- a/physx/source/geomutils/src/gjk/GuVecPlane.h +++ b/physx/source/geomutils/src/gjk/GuVecPlane.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecSphere.h b/physx/source/geomutils/src/gjk/GuVecSphere.h index 0aff668ea..e117151bf 100644 --- a/physx/source/geomutils/src/gjk/GuVecSphere.h +++ b/physx/source/geomutils/src/gjk/GuVecSphere.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecTetrahedron.h b/physx/source/geomutils/src/gjk/GuVecTetrahedron.h index d5cbd5c6e..f3a867708 100644 --- a/physx/source/geomutils/src/gjk/GuVecTetrahedron.h +++ b/physx/source/geomutils/src/gjk/GuVecTetrahedron.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/gjk/GuVecTriangle.h b/physx/source/geomutils/src/gjk/GuVecTriangle.h index c40e98d45..9e44fdb14 100644 --- a/physx/source/geomutils/src/gjk/GuVecTriangle.h +++ b/physx/source/geomutils/src/gjk/GuVecTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuEntityReport.h b/physx/source/geomutils/src/hf/GuEntityReport.h index 1081cb9e0..ac7332a38 100644 --- a/physx/source/geomutils/src/hf/GuEntityReport.h +++ b/physx/source/geomutils/src/hf/GuEntityReport.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuHeightField.cpp b/physx/source/geomutils/src/hf/GuHeightField.cpp index a38376686..dcd7b5ad8 100644 --- a/physx/source/geomutils/src/hf/GuHeightField.cpp +++ b/physx/source/geomutils/src/hf/GuHeightField.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuHeightField.h b/physx/source/geomutils/src/hf/GuHeightField.h index cbbd366bc..67cbf2124 100644 --- a/physx/source/geomutils/src/hf/GuHeightField.h +++ b/physx/source/geomutils/src/hf/GuHeightField.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuHeightFieldData.h b/physx/source/geomutils/src/hf/GuHeightFieldData.h index d19803ded..50091d188 100644 --- a/physx/source/geomutils/src/hf/GuHeightFieldData.h +++ b/physx/source/geomutils/src/hf/GuHeightFieldData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuHeightFieldUtil.cpp b/physx/source/geomutils/src/hf/GuHeightFieldUtil.cpp index 41b338e84..9f8022ed6 100644 --- a/physx/source/geomutils/src/hf/GuHeightFieldUtil.cpp +++ b/physx/source/geomutils/src/hf/GuHeightFieldUtil.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuHeightFieldUtil.h b/physx/source/geomutils/src/hf/GuHeightFieldUtil.h index 7fb07333a..050c150dc 100644 --- a/physx/source/geomutils/src/hf/GuHeightFieldUtil.h +++ b/physx/source/geomutils/src/hf/GuHeightFieldUtil.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuOverlapTestsHF.cpp b/physx/source/geomutils/src/hf/GuOverlapTestsHF.cpp index 0c5d3132e..877d5c52a 100644 --- a/physx/source/geomutils/src/hf/GuOverlapTestsHF.cpp +++ b/physx/source/geomutils/src/hf/GuOverlapTestsHF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/hf/GuSweepsHF.cpp b/physx/source/geomutils/src/hf/GuSweepsHF.cpp index c04f7fcd7..28c2e2064 100644 --- a/physx/source/geomutils/src/hf/GuSweepsHF.cpp +++ b/physx/source/geomutils/src/hf/GuSweepsHF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionBoxBox.cpp b/physx/source/geomutils/src/intersection/GuIntersectionBoxBox.cpp index 00cda1bcc..412bfa27d 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionBoxBox.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionBoxBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.cpp b/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.cpp index 32611a2ce..69b6af466 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.h b/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.h index 4f0ea1063..395128e76 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionCapsuleTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.cpp b/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.cpp index cf70c708e..105d62db9 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.h b/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.h index 6ac18f016..3b056a225 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionEdgeEdge.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRay.h b/physx/source/geomutils/src/intersection/GuIntersectionRay.h index ada333a63..777d90490 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRay.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRay.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayBox.cpp b/physx/source/geomutils/src/intersection/GuIntersectionRayBox.cpp index 54bb62575..32e236dbb 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayBox.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayBox.h b/physx/source/geomutils/src/intersection/GuIntersectionRayBox.h index 4dc40632e..29f147612 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayBox.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayBoxSIMD.h b/physx/source/geomutils/src/intersection/GuIntersectionRayBoxSIMD.h index 8a4917ff7..7e157815d 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayBoxSIMD.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayBoxSIMD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.cpp b/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.cpp index 64b1ce251..18295d2d6 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.h b/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.h index 4165aded2..8fd0b9e2f 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayCapsule.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayPlane.h b/physx/source/geomutils/src/intersection/GuIntersectionRayPlane.h index f754dceef..445e616bd 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayPlane.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayPlane.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.cpp b/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.cpp index 05f1ff94f..26d589834 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.h b/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.h index 7c9e80f26..363877019 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRaySphere.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionRayTriangle.h b/physx/source/geomutils/src/intersection/GuIntersectionRayTriangle.h index 5ec0e2bf4..51c00c3d5 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionRayTriangle.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionRayTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.cpp b/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.cpp index f84c245cf..5b8ffe624 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.h b/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.h index ee48b0e05..d0b5ffc7f 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.h +++ b/physx/source/geomutils/src/intersection/GuIntersectionSphereBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionTetrahedronBox.cpp b/physx/source/geomutils/src/intersection/GuIntersectionTetrahedronBox.cpp index 1f74dda8b..dd7b89aa0 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionTetrahedronBox.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionTetrahedronBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionTriangleBox.cpp b/physx/source/geomutils/src/intersection/GuIntersectionTriangleBox.cpp index ef04dc730..ede356afa 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionTriangleBox.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionTriangleBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/intersection/GuIntersectionTriangleTriangle.cpp b/physx/source/geomutils/src/intersection/GuIntersectionTriangleTriangle.cpp index f92cf63be..b139b8446 100644 --- a/physx/source/geomutils/src/intersection/GuIntersectionTriangleTriangle.cpp +++ b/physx/source/geomutils/src/intersection/GuIntersectionTriangleTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV32.cpp b/physx/source/geomutils/src/mesh/GuBV32.cpp index 7a2457af6..47beda275 100644 --- a/physx/source/geomutils/src/mesh/GuBV32.cpp +++ b/physx/source/geomutils/src/mesh/GuBV32.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV32.h b/physx/source/geomutils/src/mesh/GuBV32.h index 17a7ce607..214be381f 100644 --- a/physx/source/geomutils/src/mesh/GuBV32.h +++ b/physx/source/geomutils/src/mesh/GuBV32.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV32Build.cpp b/physx/source/geomutils/src/mesh/GuBV32Build.cpp index 75898812c..9d3dbbca6 100644 --- a/physx/source/geomutils/src/mesh/GuBV32Build.cpp +++ b/physx/source/geomutils/src/mesh/GuBV32Build.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV32Build.h b/physx/source/geomutils/src/mesh/GuBV32Build.h index e7199ac7e..6ac9a7cb5 100644 --- a/physx/source/geomutils/src/mesh/GuBV32Build.h +++ b/physx/source/geomutils/src/mesh/GuBV32Build.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4.cpp b/physx/source/geomutils/src/mesh/GuBV4.cpp index f3116c12c..df526760b 100644 --- a/physx/source/geomutils/src/mesh/GuBV4.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4.h b/physx/source/geomutils/src/mesh/GuBV4.h index 240160924..a2156df40 100644 --- a/physx/source/geomutils/src/mesh/GuBV4.h +++ b/physx/source/geomutils/src/mesh/GuBV4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4Build.cpp b/physx/source/geomutils/src/mesh/GuBV4Build.cpp index ab1549801..bfa68b82d 100644 --- a/physx/source/geomutils/src/mesh/GuBV4Build.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4Build.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4Build.h b/physx/source/geomutils/src/mesh/GuBV4Build.h index 9412f07be..99a49dd17 100644 --- a/physx/source/geomutils/src/mesh/GuBV4Build.h +++ b/physx/source/geomutils/src/mesh/GuBV4Build.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4Settings.h b/physx/source/geomutils/src/mesh/GuBV4Settings.h index a52a18df6..b263528fb 100644 --- a/physx/source/geomutils/src/mesh/GuBV4Settings.h +++ b/physx/source/geomutils/src/mesh/GuBV4Settings.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_AABBAABBSweepTest.h b/physx/source/geomutils/src/mesh/GuBV4_AABBAABBSweepTest.h index ce4c7127e..1360479ea 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_AABBAABBSweepTest.h +++ b/physx/source/geomutils/src/mesh/GuBV4_AABBAABBSweepTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_AABBSweep.cpp b/physx/source/geomutils/src/mesh/GuBV4_AABBSweep.cpp index 8a7c25046..831c73fde 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_AABBSweep.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_AABBSweep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_BoxBoxOverlapTest.h b/physx/source/geomutils/src/mesh/GuBV4_BoxBoxOverlapTest.h index 397ffcfb5..bcaa03551 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_BoxBoxOverlapTest.h +++ b/physx/source/geomutils/src/mesh/GuBV4_BoxBoxOverlapTest.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap.cpp b/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap.cpp index e6c144b4b..a034acac2 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap_Internal.h b/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap_Internal.h index d8d76d6f3..44f99adff 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap_Internal.h +++ b/physx/source/geomutils/src/mesh/GuBV4_BoxOverlap_Internal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Internal.h b/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Internal.h index 32aab3f0d..c386596ff 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Internal.h +++ b/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Internal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Params.h b/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Params.h index b3eb8b044..88f188316 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Params.h +++ b/physx/source/geomutils/src/mesh/GuBV4_BoxSweep_Params.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep.cpp b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep.cpp index 269354745..316e15cb4 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweepAA.cpp b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweepAA.cpp index 4a7ace33d..9075905d6 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweepAA.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweepAA.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep_Internal.h b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep_Internal.h index b5e9cb84c..a30851d4d 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep_Internal.h +++ b/physx/source/geomutils/src/mesh/GuBV4_CapsuleSweep_Internal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Common.h b/physx/source/geomutils/src/mesh/GuBV4_Common.h index 8a8d62d94..6a249ace0 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Common.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Common.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Internal.h b/physx/source/geomutils/src/mesh/GuBV4_Internal.h index f1b6d550d..6c037929a 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Internal.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Internal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_MeshMeshOverlap.cpp b/physx/source/geomutils/src/mesh/GuBV4_MeshMeshOverlap.cpp index ff9774e5a..e6f7d8fc9 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_MeshMeshOverlap.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_MeshMeshOverlap.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_OBBSweep.cpp b/physx/source/geomutils/src/mesh/GuBV4_OBBSweep.cpp index 903417d92..3b1db57a6 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_OBBSweep.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_OBBSweep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_OBBOBB.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_OBBOBB.h index 36a10e878..3b9f7c25f 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_OBBOBB.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_OBBOBB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB.h index c764aa083..cd33fabf1 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB_Inflated.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB_Inflated.h index f1d80f549..bfa2fff27 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB_Inflated.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SegmentAABB_Inflated.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SphereAABB.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SphereAABB.h index 9139f2b86..0cfd76cc5 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SphereAABB.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamNoOrder_SphereAABB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_OBBOBB.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_OBBOBB.h index 443a25de7..c5d633688 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_OBBOBB.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_OBBOBB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB.h index c2dbeb418..1660543ff 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB_Inflated.h b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB_Inflated.h index 45c23131a..a844292d8 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB_Inflated.h +++ b/physx/source/geomutils/src/mesh/GuBV4_ProcessStreamOrdered_SegmentAABB_Inflated.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Raycast.cpp b/physx/source/geomutils/src/mesh/GuBV4_Raycast.cpp index 1bdfefb48..5639966b7 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Raycast.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_Raycast.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Slabs.h b/physx/source/geomutils/src/mesh/GuBV4_Slabs.h index 9469b21e3..bb5725fcf 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Slabs.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Slabs.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaNoOrder.h b/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaNoOrder.h index 08f32e915..4ab1894b7 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaNoOrder.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaNoOrder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaOrdered.h b/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaOrdered.h index 6496fe110..7f4d6470f 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaOrdered.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Slabs_KajiyaOrdered.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledNoOrder.h b/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledNoOrder.h index e61a7f3a2..d4b3a3d55 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledNoOrder.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledNoOrder.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledOrdered.h b/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledOrdered.h index ebb3b85d8..9d021a75e 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledOrdered.h +++ b/physx/source/geomutils/src/mesh/GuBV4_Slabs_SwizzledOrdered.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_SphereOverlap.cpp b/physx/source/geomutils/src/mesh/GuBV4_SphereOverlap.cpp index 38f14365e..c75cdb2a8 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_SphereOverlap.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_SphereOverlap.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBV4_SphereSweep.cpp b/physx/source/geomutils/src/mesh/GuBV4_SphereSweep.cpp index bddb0f75d..ec10e39a2 100644 --- a/physx/source/geomutils/src/mesh/GuBV4_SphereSweep.cpp +++ b/physx/source/geomutils/src/mesh/GuBV4_SphereSweep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuBVConstants.h b/physx/source/geomutils/src/mesh/GuBVConstants.h index b0c974c43..642b8b1b9 100644 --- a/physx/source/geomutils/src/mesh/GuBVConstants.h +++ b/physx/source/geomutils/src/mesh/GuBVConstants.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuMeshData.h b/physx/source/geomutils/src/mesh/GuMeshData.h index 9de4d366b..866d5328f 100644 --- a/physx/source/geomutils/src/mesh/GuMeshData.h +++ b/physx/source/geomutils/src/mesh/GuMeshData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuMeshQuery.cpp b/physx/source/geomutils/src/mesh/GuMeshQuery.cpp index 33c03e6f4..b0e2e386d 100644 --- a/physx/source/geomutils/src/mesh/GuMeshQuery.cpp +++ b/physx/source/geomutils/src/mesh/GuMeshQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuMidphaseBV4.cpp b/physx/source/geomutils/src/mesh/GuMidphaseBV4.cpp index f85a328cc..c74ba7873 100644 --- a/physx/source/geomutils/src/mesh/GuMidphaseBV4.cpp +++ b/physx/source/geomutils/src/mesh/GuMidphaseBV4.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuMidphaseInterface.h b/physx/source/geomutils/src/mesh/GuMidphaseInterface.h index ff533daff..5c0091ffb 100644 --- a/physx/source/geomutils/src/mesh/GuMidphaseInterface.h +++ b/physx/source/geomutils/src/mesh/GuMidphaseInterface.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuMidphaseRTree.cpp b/physx/source/geomutils/src/mesh/GuMidphaseRTree.cpp index 2e5c8e24a..43467413e 100644 --- a/physx/source/geomutils/src/mesh/GuMidphaseRTree.cpp +++ b/physx/source/geomutils/src/mesh/GuMidphaseRTree.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuOverlapTestsMesh.cpp b/physx/source/geomutils/src/mesh/GuOverlapTestsMesh.cpp index 14dee1c02..3dd88d0a5 100644 --- a/physx/source/geomutils/src/mesh/GuOverlapTestsMesh.cpp +++ b/physx/source/geomutils/src/mesh/GuOverlapTestsMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuRTree.cpp b/physx/source/geomutils/src/mesh/GuRTree.cpp index 5724a387a..97b9a7ee2 100644 --- a/physx/source/geomutils/src/mesh/GuRTree.cpp +++ b/physx/source/geomutils/src/mesh/GuRTree.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuRTree.h b/physx/source/geomutils/src/mesh/GuRTree.h index 73c39c9d5..4f4f21589 100644 --- a/physx/source/geomutils/src/mesh/GuRTree.h +++ b/physx/source/geomutils/src/mesh/GuRTree.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuRTreeQueries.cpp b/physx/source/geomutils/src/mesh/GuRTreeQueries.cpp index 3f114fb43..9788262af 100644 --- a/physx/source/geomutils/src/mesh/GuRTreeQueries.cpp +++ b/physx/source/geomutils/src/mesh/GuRTreeQueries.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuSweepConvexTri.h b/physx/source/geomutils/src/mesh/GuSweepConvexTri.h index a914c5c43..f0c3889f1 100644 --- a/physx/source/geomutils/src/mesh/GuSweepConvexTri.h +++ b/physx/source/geomutils/src/mesh/GuSweepConvexTri.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuSweepMesh.h b/physx/source/geomutils/src/mesh/GuSweepMesh.h index 6cb3e5ee3..15e5f631d 100644 --- a/physx/source/geomutils/src/mesh/GuSweepMesh.h +++ b/physx/source/geomutils/src/mesh/GuSweepMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuSweepsMesh.cpp b/physx/source/geomutils/src/mesh/GuSweepsMesh.cpp index 61151198c..1e30679fb 100644 --- a/physx/source/geomutils/src/mesh/GuSweepsMesh.cpp +++ b/physx/source/geomutils/src/mesh/GuSweepsMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTetrahedron.h b/physx/source/geomutils/src/mesh/GuTetrahedron.h index 3afd4d195..28a3304e8 100644 --- a/physx/source/geomutils/src/mesh/GuTetrahedron.h +++ b/physx/source/geomutils/src/mesh/GuTetrahedron.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTetrahedronMesh.cpp b/physx/source/geomutils/src/mesh/GuTetrahedronMesh.cpp index 8e7dd0dd1..28b939a1d 100644 --- a/physx/source/geomutils/src/mesh/GuTetrahedronMesh.cpp +++ b/physx/source/geomutils/src/mesh/GuTetrahedronMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTetrahedronMesh.h b/physx/source/geomutils/src/mesh/GuTetrahedronMesh.h index 8f0173b55..3ce4377ae 100644 --- a/physx/source/geomutils/src/mesh/GuTetrahedronMesh.h +++ b/physx/source/geomutils/src/mesh/GuTetrahedronMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangle.h b/physx/source/geomutils/src/mesh/GuTriangle.h index c2127dd03..e2b6c31fe 100644 --- a/physx/source/geomutils/src/mesh/GuTriangle.h +++ b/physx/source/geomutils/src/mesh/GuTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleCache.h b/physx/source/geomutils/src/mesh/GuTriangleCache.h index 39f1c22d2..a892ba9fb 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleCache.h +++ b/physx/source/geomutils/src/mesh/GuTriangleCache.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMesh.cpp b/physx/source/geomutils/src/mesh/GuTriangleMesh.cpp index c673d997f..30ef518e4 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMesh.cpp +++ b/physx/source/geomutils/src/mesh/GuTriangleMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMesh.h b/physx/source/geomutils/src/mesh/GuTriangleMesh.h index 30ae53c4d..a075db5b0 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMesh.h +++ b/physx/source/geomutils/src/mesh/GuTriangleMesh.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.cpp b/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.cpp index b8c519288..f272c22e2 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.cpp +++ b/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.h b/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.h index c6528e239..ab8e5c98f 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.h +++ b/physx/source/geomutils/src/mesh/GuTriangleMeshBV4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.cpp b/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.cpp index b037eab0e..e9600d091 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.cpp +++ b/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.h b/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.h index 04f07d01e..6870a2330 100644 --- a/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.h +++ b/physx/source/geomutils/src/mesh/GuTriangleMeshRTree.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactBoxBox.cpp b/physx/source/geomutils/src/pcm/GuPCMContactBoxBox.cpp index eb10d05fc..9390ee589 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactBoxBox.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactBoxBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactBoxConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactBoxConvex.cpp index 6c9646c58..3550ec46c 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactBoxConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactBoxConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleBox.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleBox.cpp index 178eecc15..9e2c2328a 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleBox.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleCapsule.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleCapsule.cpp index eaccf1add..fcb0797d0 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleCapsule.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleConvex.cpp index 745c08a6b..295d57289 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleHeightField.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleHeightField.cpp index c126eec9f..2db16d330 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleHeightField.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleHeightField.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleMesh.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleMesh.cpp index 73a26a142..db7317221 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCapsuleMesh.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCapsuleMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.cpp b/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.cpp index 284d86767..8aec8c996 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.h b/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.h index d8588e5de..09aadad0e 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.h +++ b/physx/source/geomutils/src/pcm/GuPCMContactConvexCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactConvexConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactConvexConvex.cpp index 1fbf8a2d8..46f90bd31 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactConvexConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactConvexConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactConvexHeightField.cpp b/physx/source/geomutils/src/pcm/GuPCMContactConvexHeightField.cpp index 23574dcf9..559b6eda9 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactConvexHeightField.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactConvexHeightField.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactConvexMesh.cpp b/physx/source/geomutils/src/pcm/GuPCMContactConvexMesh.cpp index ca06ab0c6..0e1157231 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactConvexMesh.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactConvexMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactCustomGeometry.cpp b/physx/source/geomutils/src/pcm/GuPCMContactCustomGeometry.cpp index 1844f710e..8cc80aee1 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactCustomGeometry.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactCustomGeometry.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactGen.h b/physx/source/geomutils/src/pcm/GuPCMContactGen.h index f1584d317..fb8ebc67e 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactGen.h +++ b/physx/source/geomutils/src/pcm/GuPCMContactGen.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactGenBoxConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactGenBoxConvex.cpp index 13cf8e36c..eca4442b5 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactGenBoxConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactGenBoxConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactGenSphereCapsule.cpp b/physx/source/geomutils/src/pcm/GuPCMContactGenSphereCapsule.cpp index 83b1ad84f..6d84b65b6 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactGenSphereCapsule.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactGenSphereCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.cpp b/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.cpp index 8233d600d..a0d05a91c 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.h b/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.h index f645be42e..3d2ab6245 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.h +++ b/physx/source/geomutils/src/pcm/GuPCMContactGenUtil.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactMeshCallback.h b/physx/source/geomutils/src/pcm/GuPCMContactMeshCallback.h index 6fa092b29..8fb316268 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactMeshCallback.h +++ b/physx/source/geomutils/src/pcm/GuPCMContactMeshCallback.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactPlaneBox.cpp b/physx/source/geomutils/src/pcm/GuPCMContactPlaneBox.cpp index d06ad0445..600bab35d 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactPlaneBox.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactPlaneBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactPlaneCapsule.cpp b/physx/source/geomutils/src/pcm/GuPCMContactPlaneCapsule.cpp index 988b3b9cd..07418b3c2 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactPlaneCapsule.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactPlaneCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactPlaneConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactPlaneConvex.cpp index 10ec255db..92f23d08a 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactPlaneConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactPlaneConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereBox.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereBox.cpp index 028d04fcf..2ecfcb5ef 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereBox.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereCapsule.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereCapsule.cpp index 43ce052ca..de7cc1a11 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereCapsule.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereConvex.cpp index bd3b0a8e6..ce26d9e46 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereHeightField.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereHeightField.cpp index 80613d10b..2221cee4d 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereHeightField.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereHeightField.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereMesh.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereMesh.cpp index 87e31fb94..10057b04e 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereMesh.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereMesh.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSpherePlane.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSpherePlane.cpp index 0687c2c6a..092e7fae0 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSpherePlane.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSpherePlane.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMContactSphereSphere.cpp b/physx/source/geomutils/src/pcm/GuPCMContactSphereSphere.cpp index fd0c8d60d..d250c8357 100644 --- a/physx/source/geomutils/src/pcm/GuPCMContactSphereSphere.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMContactSphereSphere.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMShapeConvex.cpp b/physx/source/geomutils/src/pcm/GuPCMShapeConvex.cpp index a35d1b2cd..33002c729 100644 --- a/physx/source/geomutils/src/pcm/GuPCMShapeConvex.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMShapeConvex.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMShapeConvex.h b/physx/source/geomutils/src/pcm/GuPCMShapeConvex.h index 43080e96c..630ea489c 100644 --- a/physx/source/geomutils/src/pcm/GuPCMShapeConvex.h +++ b/physx/source/geomutils/src/pcm/GuPCMShapeConvex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.cpp b/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.cpp index 526e10c54..6347872e1 100644 --- a/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.cpp +++ b/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.h b/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.h index d438b1d90..996ba579e 100644 --- a/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.h +++ b/physx/source/geomutils/src/pcm/GuPCMTriangleContactGen.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPersistentContactManifold.cpp b/physx/source/geomutils/src/pcm/GuPersistentContactManifold.cpp index d0fe12a56..499ef4776 100644 --- a/physx/source/geomutils/src/pcm/GuPersistentContactManifold.cpp +++ b/physx/source/geomutils/src/pcm/GuPersistentContactManifold.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/pcm/GuPersistentContactManifold.h b/physx/source/geomutils/src/pcm/GuPersistentContactManifold.h index 8d5228bf7..86f33a55a 100644 --- a/physx/source/geomutils/src/pcm/GuPersistentContactManifold.h +++ b/physx/source/geomutils/src/pcm/GuPersistentContactManifold.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxBox.cpp b/physx/source/geomutils/src/sweep/GuSweepBoxBox.cpp index 8831cce59..d9e0fd6b1 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxBox.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepBoxBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxBox.h b/physx/source/geomutils/src/sweep/GuSweepBoxBox.h index 56bd0e217..9857866ba 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxBox.h +++ b/physx/source/geomutils/src/sweep/GuSweepBoxBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxSphere.cpp b/physx/source/geomutils/src/sweep/GuSweepBoxSphere.cpp index a7de89af4..5c7e732a4 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxSphere.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepBoxSphere.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxSphere.h b/physx/source/geomutils/src/sweep/GuSweepBoxSphere.h index b4d5e69c7..1ea36404d 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxSphere.h +++ b/physx/source/geomutils/src/sweep/GuSweepBoxSphere.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.cpp b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.cpp index b1324db2c..c2ebe9069 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.h b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.h index 0ce2c9426..9ac343c3b 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.h +++ b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_FeatureBased.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.cpp b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.cpp index a5cc75d5d..196e17ed7 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.h b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.h index 6332fcd95..30aa56823 100644 --- a/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.h +++ b/physx/source/geomutils/src/sweep/GuSweepBoxTriangle_SAT.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.cpp b/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.cpp index 10cbeaa0c..f7daac978 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.h b/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.h index 736ea124a..cdfffdc4f 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.h +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.cpp b/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.cpp index aa2cbfc85..da50dba68 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.h b/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.h index af2e1aa2b..d36292fb9 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.h +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleCapsule.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.cpp b/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.cpp index 11a966411..6ea892336 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.h b/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.h index b25087a1c..61b247664 100644 --- a/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.h +++ b/physx/source/geomutils/src/sweep/GuSweepCapsuleTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.cpp b/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.cpp index 0b867b64e..a0e9f49c0 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.h b/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.h index 5fd204d66..ff84248cd 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.h +++ b/physx/source/geomutils/src/sweep/GuSweepSphereCapsule.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereSphere.cpp b/physx/source/geomutils/src/sweep/GuSweepSphereSphere.cpp index 97f03b47c..ab4cd90e5 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereSphere.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepSphereSphere.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereSphere.h b/physx/source/geomutils/src/sweep/GuSweepSphereSphere.h index 9cd930b20..360d9fc81 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereSphere.h +++ b/physx/source/geomutils/src/sweep/GuSweepSphereSphere.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.cpp b/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.cpp index c3d0a1f9b..e137a6eac 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.h b/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.h index 176452a58..4a24118da 100644 --- a/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.h +++ b/physx/source/geomutils/src/sweep/GuSweepSphereTriangle.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.cpp b/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.cpp index d09abc6f8..8939c1d76 100644 --- a/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.cpp +++ b/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.h b/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.h index 63c9ac8af..d5eb5c96e 100644 --- a/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.h +++ b/physx/source/geomutils/src/sweep/GuSweepTriangleUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/immediatemode/src/NpImmediateMode.cpp b/physx/source/immediatemode/src/NpImmediateMode.cpp index 17837580d..df38b39ae 100644 --- a/physx/source/immediatemode/src/NpImmediateMode.cpp +++ b/physx/source/immediatemode/src/NpImmediateMode.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsFEMClothMaterialCore.h b/physx/source/lowlevel/api/include/PxsFEMClothMaterialCore.h index 330bb2aea..81c833276 100644 --- a/physx/source/lowlevel/api/include/PxsFEMClothMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsFEMClothMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsFEMSoftBodyMaterialCore.h b/physx/source/lowlevel/api/include/PxsFEMSoftBodyMaterialCore.h index b5928e6f8..0908a3045 100644 --- a/physx/source/lowlevel/api/include/PxsFEMSoftBodyMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsFEMSoftBodyMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsFLIPMaterialCore.h b/physx/source/lowlevel/api/include/PxsFLIPMaterialCore.h index a0016ef38..c4d255500 100644 --- a/physx/source/lowlevel/api/include/PxsFLIPMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsFLIPMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsMPMMaterialCore.h b/physx/source/lowlevel/api/include/PxsMPMMaterialCore.h index d35cc9b5c..3a65b1ce0 100644 --- a/physx/source/lowlevel/api/include/PxsMPMMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsMPMMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsMaterialCore.h b/physx/source/lowlevel/api/include/PxsMaterialCore.h index 3388c6860..007bf4380 100644 --- a/physx/source/lowlevel/api/include/PxsMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsMaterialManager.h b/physx/source/lowlevel/api/include/PxsMaterialManager.h index cc09133f0..4c5f65288 100644 --- a/physx/source/lowlevel/api/include/PxsMaterialManager.h +++ b/physx/source/lowlevel/api/include/PxsMaterialManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsMaterialShared.h b/physx/source/lowlevel/api/include/PxsMaterialShared.h index 91bd0326c..dec932e52 100644 --- a/physx/source/lowlevel/api/include/PxsMaterialShared.h +++ b/physx/source/lowlevel/api/include/PxsMaterialShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxsPBDMaterialCore.h b/physx/source/lowlevel/api/include/PxsPBDMaterialCore.h index 27be76f8f..e4881ebfc 100644 --- a/physx/source/lowlevel/api/include/PxsPBDMaterialCore.h +++ b/physx/source/lowlevel/api/include/PxsPBDMaterialCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvConfig.h b/physx/source/lowlevel/api/include/PxvConfig.h index ec795540f..227373ce2 100644 --- a/physx/source/lowlevel/api/include/PxvConfig.h +++ b/physx/source/lowlevel/api/include/PxvConfig.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvDynamics.h b/physx/source/lowlevel/api/include/PxvDynamics.h index bc0650cf5..866075e9d 100644 --- a/physx/source/lowlevel/api/include/PxvDynamics.h +++ b/physx/source/lowlevel/api/include/PxvDynamics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvGeometry.h b/physx/source/lowlevel/api/include/PxvGeometry.h index 2ddc76ebf..8d3e9f958 100644 --- a/physx/source/lowlevel/api/include/PxvGeometry.h +++ b/physx/source/lowlevel/api/include/PxvGeometry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvGlobals.h b/physx/source/lowlevel/api/include/PxvGlobals.h index 62075eceb..d3f32f436 100644 --- a/physx/source/lowlevel/api/include/PxvGlobals.h +++ b/physx/source/lowlevel/api/include/PxvGlobals.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvManager.h b/physx/source/lowlevel/api/include/PxvManager.h index 2b2f05768..4c0ef497d 100644 --- a/physx/source/lowlevel/api/include/PxvManager.h +++ b/physx/source/lowlevel/api/include/PxvManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/include/PxvSimStats.h b/physx/source/lowlevel/api/include/PxvSimStats.h index a9a76b602..2d5e49216 100644 --- a/physx/source/lowlevel/api/include/PxvSimStats.h +++ b/physx/source/lowlevel/api/include/PxvSimStats.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/api/src/px_globals.cpp b/physx/source/lowlevel/api/src/px_globals.cpp index f9c3f490c..2c6904cc7 100644 --- a/physx/source/lowlevel/api/src/px_globals.cpp +++ b/physx/source/lowlevel/api/src/px_globals.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/collision/PxcContactMethodImpl.h b/physx/source/lowlevel/common/include/collision/PxcContactMethodImpl.h index 6bd0abc8e..f82a4a847 100644 --- a/physx/source/lowlevel/common/include/collision/PxcContactMethodImpl.h +++ b/physx/source/lowlevel/common/include/collision/PxcContactMethodImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcConstraintBlockStream.h b/physx/source/lowlevel/common/include/pipeline/PxcConstraintBlockStream.h index b02b6992e..0fa250761 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcConstraintBlockStream.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcConstraintBlockStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcContactCache.h b/physx/source/lowlevel/common/include/pipeline/PxcContactCache.h index 6fb2adb07..26b3c044c 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcContactCache.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcContactCache.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcMaterialMethodImpl.h b/physx/source/lowlevel/common/include/pipeline/PxcMaterialMethodImpl.h index 522312e83..08b6b8a84 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcMaterialMethodImpl.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcMaterialMethodImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpBatch.h b/physx/source/lowlevel/common/include/pipeline/PxcNpBatch.h index bfdde529b..8b35f08aa 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpBatch.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpBatch.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpCache.h b/physx/source/lowlevel/common/include/pipeline/PxcNpCache.h index c7447f86c..5cd0d9d87 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpCache.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpCache.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpCacheStreamPair.h b/physx/source/lowlevel/common/include/pipeline/PxcNpCacheStreamPair.h index c42bd3935..a40a2edf4 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpCacheStreamPair.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpCacheStreamPair.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpContactPrepShared.h b/physx/source/lowlevel/common/include/pipeline/PxcNpContactPrepShared.h index 1e3603ca6..09fc9b323 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpContactPrepShared.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpContactPrepShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpMemBlockPool.h b/physx/source/lowlevel/common/include/pipeline/PxcNpMemBlockPool.h index 9058277a8..869e76094 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpMemBlockPool.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpMemBlockPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpThreadContext.h b/physx/source/lowlevel/common/include/pipeline/PxcNpThreadContext.h index dcb689885..c0d81042e 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpThreadContext.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpThreadContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/pipeline/PxcNpWorkUnit.h b/physx/source/lowlevel/common/include/pipeline/PxcNpWorkUnit.h index 01165a54a..fdefc2442 100644 --- a/physx/source/lowlevel/common/include/pipeline/PxcNpWorkUnit.h +++ b/physx/source/lowlevel/common/include/pipeline/PxcNpWorkUnit.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/utils/PxcScratchAllocator.h b/physx/source/lowlevel/common/include/utils/PxcScratchAllocator.h index f33c7872c..968c3e655 100644 --- a/physx/source/lowlevel/common/include/utils/PxcScratchAllocator.h +++ b/physx/source/lowlevel/common/include/utils/PxcScratchAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/include/utils/PxcThreadCoherentCache.h b/physx/source/lowlevel/common/include/utils/PxcThreadCoherentCache.h index 9f22d0df3..16a354fc5 100644 --- a/physx/source/lowlevel/common/include/utils/PxcThreadCoherentCache.h +++ b/physx/source/lowlevel/common/include/utils/PxcThreadCoherentCache.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcContactCache.cpp b/physx/source/lowlevel/common/src/pipeline/PxcContactCache.cpp index 2da8c4f26..68921df35 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcContactCache.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcContactCache.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcContactMethodImpl.cpp b/physx/source/lowlevel/common/src/pipeline/PxcContactMethodImpl.cpp index 5b1ed857f..48cf76e41 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcContactMethodImpl.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcContactMethodImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcMaterialMethodImpl.cpp b/physx/source/lowlevel/common/src/pipeline/PxcMaterialMethodImpl.cpp index 13cb47b7f..6a0174fe4 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcMaterialMethodImpl.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcMaterialMethodImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcNpBatch.cpp b/physx/source/lowlevel/common/src/pipeline/PxcNpBatch.cpp index 31932da04..bb6a10305 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcNpBatch.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcNpBatch.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcNpCacheStreamPair.cpp b/physx/source/lowlevel/common/src/pipeline/PxcNpCacheStreamPair.cpp index 867deb303..7f8c8765a 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcNpCacheStreamPair.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcNpCacheStreamPair.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcNpContactPrepShared.cpp b/physx/source/lowlevel/common/src/pipeline/PxcNpContactPrepShared.cpp index 6e9d717d3..8b50d7aee 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcNpContactPrepShared.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcNpContactPrepShared.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcNpMemBlockPool.cpp b/physx/source/lowlevel/common/src/pipeline/PxcNpMemBlockPool.cpp index d240faf62..a43dab3f2 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcNpMemBlockPool.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcNpMemBlockPool.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/common/src/pipeline/PxcNpThreadContext.cpp b/physx/source/lowlevel/common/src/pipeline/PxcNpThreadContext.cpp index d4ff0924b..442026227 100644 --- a/physx/source/lowlevel/common/src/pipeline/PxcNpThreadContext.cpp +++ b/physx/source/lowlevel/common/src/pipeline/PxcNpThreadContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsCCD.h b/physx/source/lowlevel/software/include/PxsCCD.h index 881c10b87..5b750de70 100644 --- a/physx/source/lowlevel/software/include/PxsCCD.h +++ b/physx/source/lowlevel/software/include/PxsCCD.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsContactManager.h b/physx/source/lowlevel/software/include/PxsContactManager.h index 0b7d84cda..070f2952e 100644 --- a/physx/source/lowlevel/software/include/PxsContactManager.h +++ b/physx/source/lowlevel/software/include/PxsContactManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsContactManagerState.h b/physx/source/lowlevel/software/include/PxsContactManagerState.h index 490a4a0fb..5bbad066c 100644 --- a/physx/source/lowlevel/software/include/PxsContactManagerState.h +++ b/physx/source/lowlevel/software/include/PxsContactManagerState.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsContext.h b/physx/source/lowlevel/software/include/PxsContext.h index f3c87f884..ea33e7b26 100644 --- a/physx/source/lowlevel/software/include/PxsContext.h +++ b/physx/source/lowlevel/software/include/PxsContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsDefaultMemoryManager.h b/physx/source/lowlevel/software/include/PxsDefaultMemoryManager.h index d3079cd13..6655ad8fe 100644 --- a/physx/source/lowlevel/software/include/PxsDefaultMemoryManager.h +++ b/physx/source/lowlevel/software/include/PxsDefaultMemoryManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsHeapMemoryAllocator.h b/physx/source/lowlevel/software/include/PxsHeapMemoryAllocator.h index 9b1896794..7306dfe0e 100644 --- a/physx/source/lowlevel/software/include/PxsHeapMemoryAllocator.h +++ b/physx/source/lowlevel/software/include/PxsHeapMemoryAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsIncrementalConstraintPartitioning.h b/physx/source/lowlevel/software/include/PxsIncrementalConstraintPartitioning.h index c8aa27c36..66fd3f5bd 100644 --- a/physx/source/lowlevel/software/include/PxsIncrementalConstraintPartitioning.h +++ b/physx/source/lowlevel/software/include/PxsIncrementalConstraintPartitioning.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsIslandManagerTypes.h b/physx/source/lowlevel/software/include/PxsIslandManagerTypes.h index 942be7163..812b12e1b 100644 --- a/physx/source/lowlevel/software/include/PxsIslandManagerTypes.h +++ b/physx/source/lowlevel/software/include/PxsIslandManagerTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsIslandSim.h b/physx/source/lowlevel/software/include/PxsIslandSim.h index 4a387486e..d722e1ca6 100644 --- a/physx/source/lowlevel/software/include/PxsIslandSim.h +++ b/physx/source/lowlevel/software/include/PxsIslandSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsKernelWrangler.h b/physx/source/lowlevel/software/include/PxsKernelWrangler.h index f49c6e264..59277889e 100644 --- a/physx/source/lowlevel/software/include/PxsKernelWrangler.h +++ b/physx/source/lowlevel/software/include/PxsKernelWrangler.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsMaterialCombiner.h b/physx/source/lowlevel/software/include/PxsMaterialCombiner.h index 6de4f666e..f7b12efa4 100644 --- a/physx/source/lowlevel/software/include/PxsMaterialCombiner.h +++ b/physx/source/lowlevel/software/include/PxsMaterialCombiner.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsMemoryManager.h b/physx/source/lowlevel/software/include/PxsMemoryManager.h index 0266b2c23..ce371264a 100644 --- a/physx/source/lowlevel/software/include/PxsMemoryManager.h +++ b/physx/source/lowlevel/software/include/PxsMemoryManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsNphaseCommon.h b/physx/source/lowlevel/software/include/PxsNphaseCommon.h index 43fac2335..1893a8271 100644 --- a/physx/source/lowlevel/software/include/PxsNphaseCommon.h +++ b/physx/source/lowlevel/software/include/PxsNphaseCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsNphaseImplementationContext.h b/physx/source/lowlevel/software/include/PxsNphaseImplementationContext.h index ea7df4d74..8f4673a6e 100644 --- a/physx/source/lowlevel/software/include/PxsNphaseImplementationContext.h +++ b/physx/source/lowlevel/software/include/PxsNphaseImplementationContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsRigidBody.h b/physx/source/lowlevel/software/include/PxsRigidBody.h index 344d182ae..78b20da47 100644 --- a/physx/source/lowlevel/software/include/PxsRigidBody.h +++ b/physx/source/lowlevel/software/include/PxsRigidBody.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsShapeSim.h b/physx/source/lowlevel/software/include/PxsShapeSim.h index b84bc7528..8ac56003e 100644 --- a/physx/source/lowlevel/software/include/PxsShapeSim.h +++ b/physx/source/lowlevel/software/include/PxsShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsSimpleIslandManager.h b/physx/source/lowlevel/software/include/PxsSimpleIslandManager.h index 4c5b7689d..4bb65f903 100644 --- a/physx/source/lowlevel/software/include/PxsSimpleIslandManager.h +++ b/physx/source/lowlevel/software/include/PxsSimpleIslandManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsSimulationController.h b/physx/source/lowlevel/software/include/PxsSimulationController.h index c2f4e3718..670e7a97d 100644 --- a/physx/source/lowlevel/software/include/PxsSimulationController.h +++ b/physx/source/lowlevel/software/include/PxsSimulationController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxsTransformCache.h b/physx/source/lowlevel/software/include/PxsTransformCache.h index 9df2c0277..5af57ada8 100644 --- a/physx/source/lowlevel/software/include/PxsTransformCache.h +++ b/physx/source/lowlevel/software/include/PxsTransformCache.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/include/PxvNphaseImplementationContext.h b/physx/source/lowlevel/software/include/PxvNphaseImplementationContext.h index fcde46c33..dc5402a81 100644 --- a/physx/source/lowlevel/software/include/PxvNphaseImplementationContext.h +++ b/physx/source/lowlevel/software/include/PxvNphaseImplementationContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsCCD.cpp b/physx/source/lowlevel/software/src/PxsCCD.cpp index 517652581..359d8c052 100644 --- a/physx/source/lowlevel/software/src/PxsCCD.cpp +++ b/physx/source/lowlevel/software/src/PxsCCD.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsContactManager.cpp b/physx/source/lowlevel/software/src/PxsContactManager.cpp index e34d56114..9321a2f07 100644 --- a/physx/source/lowlevel/software/src/PxsContactManager.cpp +++ b/physx/source/lowlevel/software/src/PxsContactManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsContext.cpp b/physx/source/lowlevel/software/src/PxsContext.cpp index 42d586f34..c081bc3e9 100644 --- a/physx/source/lowlevel/software/src/PxsContext.cpp +++ b/physx/source/lowlevel/software/src/PxsContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsDefaultMemoryManager.cpp b/physx/source/lowlevel/software/src/PxsDefaultMemoryManager.cpp index 368b3196a..cef140925 100644 --- a/physx/source/lowlevel/software/src/PxsDefaultMemoryManager.cpp +++ b/physx/source/lowlevel/software/src/PxsDefaultMemoryManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsIslandSim.cpp b/physx/source/lowlevel/software/src/PxsIslandSim.cpp index fd330a7c0..25e738bd4 100644 --- a/physx/source/lowlevel/software/src/PxsIslandSim.cpp +++ b/physx/source/lowlevel/software/src/PxsIslandSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsNphaseImplementationContext.cpp b/physx/source/lowlevel/software/src/PxsNphaseImplementationContext.cpp index 287e52ad2..adfdd58e3 100644 --- a/physx/source/lowlevel/software/src/PxsNphaseImplementationContext.cpp +++ b/physx/source/lowlevel/software/src/PxsNphaseImplementationContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevel/software/src/PxsSimpleIslandManager.cpp b/physx/source/lowlevel/software/src/PxsSimpleIslandManager.cpp index 90d73edca..6beaa6050 100644 --- a/physx/source/lowlevel/software/src/PxsSimpleIslandManager.cpp +++ b/physx/source/lowlevel/software/src/PxsSimpleIslandManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpAABBManager.h b/physx/source/lowlevelaabb/include/BpAABBManager.h index cc70fe8ce..18e4a1a92 100644 --- a/physx/source/lowlevelaabb/include/BpAABBManager.h +++ b/physx/source/lowlevelaabb/include/BpAABBManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpAABBManagerBase.h b/physx/source/lowlevelaabb/include/BpAABBManagerBase.h index 37b68d6c4..b3cb0c556 100644 --- a/physx/source/lowlevelaabb/include/BpAABBManagerBase.h +++ b/physx/source/lowlevelaabb/include/BpAABBManagerBase.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpAABBManagerTasks.h b/physx/source/lowlevelaabb/include/BpAABBManagerTasks.h index ca3182d87..9f6888dfd 100644 --- a/physx/source/lowlevelaabb/include/BpAABBManagerTasks.h +++ b/physx/source/lowlevelaabb/include/BpAABBManagerTasks.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpBroadPhase.h b/physx/source/lowlevelaabb/include/BpBroadPhase.h index a89790bfc..35478aa9c 100644 --- a/physx/source/lowlevelaabb/include/BpBroadPhase.h +++ b/physx/source/lowlevelaabb/include/BpBroadPhase.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpBroadPhaseUpdate.h b/physx/source/lowlevelaabb/include/BpBroadPhaseUpdate.h index 0094f9c96..9406e6882 100644 --- a/physx/source/lowlevelaabb/include/BpBroadPhaseUpdate.h +++ b/physx/source/lowlevelaabb/include/BpBroadPhaseUpdate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpFiltering.h b/physx/source/lowlevelaabb/include/BpFiltering.h index 115032bb9..33dd33ec2 100644 --- a/physx/source/lowlevelaabb/include/BpFiltering.h +++ b/physx/source/lowlevelaabb/include/BpFiltering.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/include/BpVolumeData.h b/physx/source/lowlevelaabb/include/BpVolumeData.h index 2cc504827..34ada33a9 100644 --- a/physx/source/lowlevelaabb/include/BpVolumeData.h +++ b/physx/source/lowlevelaabb/include/BpVolumeData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpAABBManager.cpp b/physx/source/lowlevelaabb/src/BpAABBManager.cpp index aadd4c190..38dc571ed 100644 --- a/physx/source/lowlevelaabb/src/BpAABBManager.cpp +++ b/physx/source/lowlevelaabb/src/BpAABBManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpAABBManagerBase.cpp b/physx/source/lowlevelaabb/src/BpAABBManagerBase.cpp index abb79f6c9..cd899bc53 100644 --- a/physx/source/lowlevelaabb/src/BpAABBManagerBase.cpp +++ b/physx/source/lowlevelaabb/src/BpAABBManagerBase.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhase.cpp b/physx/source/lowlevelaabb/src/BpBroadPhase.cpp index 629611235..7c905ad66 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhase.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhase.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp index 75933805b..f0a697b57 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseABP.h b/physx/source/lowlevelaabb/src/BpBroadPhaseABP.h index 1dda9d81b..5a77b9fd9 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseABP.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseABP.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseIntegerAABB.h b/physx/source/lowlevelaabb/src/BpBroadPhaseIntegerAABB.h index 639b25f9e..ad65597db 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseIntegerAABB.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseIntegerAABB.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.cpp index 8b32c39ae..d80ead686 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.h b/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.h index 0f73bb927..65e6a37a8 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseMBP.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseMBPCommon.h b/physx/source/lowlevelaabb/src/BpBroadPhaseMBPCommon.h index 0abd9ba35..c7ad4c461 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseMBPCommon.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseMBPCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseSap.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseSap.cpp index 692f11040..89bf37e1e 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseSap.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseSap.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseSap.h b/physx/source/lowlevelaabb/src/BpBroadPhaseSap.h index a1b468629..06f8d3649 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseSap.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseSap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.cpp index b09a32c2b..a5f2eb96f 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.h b/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.h index e230511ca..4ebce4834 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseSapAux.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseShared.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseShared.cpp index eb53dabbf..6aba7bffb 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseShared.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseShared.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseShared.h b/physx/source/lowlevelaabb/src/BpBroadPhaseShared.h index eb284207a..7c2144467 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseShared.h +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpBroadPhaseUpdate.cpp b/physx/source/lowlevelaabb/src/BpBroadPhaseUpdate.cpp index 9b8a0233a..7e1f04aef 100644 --- a/physx/source/lowlevelaabb/src/BpBroadPhaseUpdate.cpp +++ b/physx/source/lowlevelaabb/src/BpBroadPhaseUpdate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowlevelaabb/src/BpFiltering.cpp b/physx/source/lowlevelaabb/src/BpFiltering.cpp index 842839c29..f97826780 100644 --- a/physx/source/lowlevelaabb/src/BpFiltering.cpp +++ b/physx/source/lowlevelaabb/src/BpFiltering.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyArticulationCore.h b/physx/source/lowleveldynamics/include/DyArticulationCore.h index d7f40fc55..6385fc279 100644 --- a/physx/source/lowleveldynamics/include/DyArticulationCore.h +++ b/physx/source/lowleveldynamics/include/DyArticulationCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyArticulationJointCore.h b/physx/source/lowleveldynamics/include/DyArticulationJointCore.h index e08bab568..bd9224699 100644 --- a/physx/source/lowleveldynamics/include/DyArticulationJointCore.h +++ b/physx/source/lowleveldynamics/include/DyArticulationJointCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyArticulationTendon.h b/physx/source/lowleveldynamics/include/DyArticulationTendon.h index dca15b220..1483fd522 100644 --- a/physx/source/lowleveldynamics/include/DyArticulationTendon.h +++ b/physx/source/lowleveldynamics/include/DyArticulationTendon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyConstraint.h b/physx/source/lowleveldynamics/include/DyConstraint.h index 51103ffc1..7a8a4eab3 100644 --- a/physx/source/lowleveldynamics/include/DyConstraint.h +++ b/physx/source/lowleveldynamics/include/DyConstraint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyConstraintWriteBack.h b/physx/source/lowleveldynamics/include/DyConstraintWriteBack.h index 3c4089574..75f6b9e87 100644 --- a/physx/source/lowleveldynamics/include/DyConstraintWriteBack.h +++ b/physx/source/lowleveldynamics/include/DyConstraintWriteBack.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyContext.h b/physx/source/lowleveldynamics/include/DyContext.h index d9793687d..78c2672e7 100644 --- a/physx/source/lowleveldynamics/include/DyContext.h +++ b/physx/source/lowleveldynamics/include/DyContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyFEMCloth.h b/physx/source/lowleveldynamics/include/DyFEMCloth.h index 81949cce8..ce07f4295 100644 --- a/physx/source/lowleveldynamics/include/DyFEMCloth.h +++ b/physx/source/lowleveldynamics/include/DyFEMCloth.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PXD_FEMCLOTH_H diff --git a/physx/source/lowleveldynamics/include/DyFEMClothCore.h b/physx/source/lowleveldynamics/include/DyFEMClothCore.h index f8bdcfcec..1caf713a3 100644 --- a/physx/source/lowleveldynamics/include/DyFEMClothCore.h +++ b/physx/source/lowleveldynamics/include/DyFEMClothCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PXDV_FEMCLOTH_CORE_H #define PXDV_FEMCLOTH_CORE_H diff --git a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulation.h b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulation.h index f02b7f3b5..97f3f8bc7 100644 --- a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulation.h +++ b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulation.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationJointData.h b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationJointData.h index 0868c8a08..6d83e5a7b 100644 --- a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationJointData.h +++ b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationJointData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationUtils.h b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationUtils.h index cbdb971a7..9ede67c07 100644 --- a/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationUtils.h +++ b/physx/source/lowleveldynamics/include/DyFeatherstoneArticulationUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyHairSystem.h b/physx/source/lowleveldynamics/include/DyHairSystem.h index 2c6585a7c..601c6afba 100644 --- a/physx/source/lowleveldynamics/include/DyHairSystem.h +++ b/physx/source/lowleveldynamics/include/DyHairSystem.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_HAIR_SYSTEM_H #define DY_HAIR_SYSTEM_H diff --git a/physx/source/lowleveldynamics/include/DyHairSystemCore.h b/physx/source/lowleveldynamics/include/DyHairSystemCore.h index 919acf472..a2cea2d8f 100644 --- a/physx/source/lowleveldynamics/include/DyHairSystemCore.h +++ b/physx/source/lowleveldynamics/include/DyHairSystemCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_HAIR_SYSTEM_CORE_H #define DY_HAIR_SYSTEM_CORE_H diff --git a/physx/source/lowleveldynamics/include/DyParticleSystem.h b/physx/source/lowleveldynamics/include/DyParticleSystem.h index d9e29bfcd..2747281ce 100644 --- a/physx/source/lowleveldynamics/include/DyParticleSystem.h +++ b/physx/source/lowleveldynamics/include/DyParticleSystem.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PXD_PARTICLESYSTEM_H diff --git a/physx/source/lowleveldynamics/include/DyParticleSystemCore.h b/physx/source/lowleveldynamics/include/DyParticleSystemCore.h index c61050dcb..c9a00b3be 100644 --- a/physx/source/lowleveldynamics/include/DyParticleSystemCore.h +++ b/physx/source/lowleveldynamics/include/DyParticleSystemCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_PARTICLESYSTEM_CORE_H #define DY_PARTICLESYSTEM_CORE_H diff --git a/physx/source/lowleveldynamics/include/DySleepingConfigulation.h b/physx/source/lowleveldynamics/include/DySleepingConfigulation.h index 26acf7468..9b136a593 100644 --- a/physx/source/lowleveldynamics/include/DySleepingConfigulation.h +++ b/physx/source/lowleveldynamics/include/DySleepingConfigulation.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DySoftBody.h b/physx/source/lowleveldynamics/include/DySoftBody.h index 7a949226c..63ed917d9 100644 --- a/physx/source/lowleveldynamics/include/DySoftBody.h +++ b/physx/source/lowleveldynamics/include/DySoftBody.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_SOFTBODY_H #define DY_SOFTBODY_H diff --git a/physx/source/lowleveldynamics/include/DySoftBodyCore.h b/physx/source/lowleveldynamics/include/DySoftBodyCore.h index cdad2b98e..be4dbe0ba 100644 --- a/physx/source/lowleveldynamics/include/DySoftBodyCore.h +++ b/physx/source/lowleveldynamics/include/DySoftBodyCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_SOFTBODY_CORE_H #define DY_SOFTBODY_CORE_H diff --git a/physx/source/lowleveldynamics/include/DyThresholdTable.h b/physx/source/lowleveldynamics/include/DyThresholdTable.h index 6801c6aad..d64e55e4f 100644 --- a/physx/source/lowleveldynamics/include/DyThresholdTable.h +++ b/physx/source/lowleveldynamics/include/DyThresholdTable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/include/DyVArticulation.h b/physx/source/lowleveldynamics/include/DyVArticulation.h index d794ce253..7d4891e32 100644 --- a/physx/source/lowleveldynamics/include/DyVArticulation.h +++ b/physx/source/lowleveldynamics/include/DyVArticulation.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyArticulationContactPrep.cpp b/physx/source/lowleveldynamics/src/DyArticulationContactPrep.cpp index 6fbd0e893..bb90bd2da 100644 --- a/physx/source/lowleveldynamics/src/DyArticulationContactPrep.cpp +++ b/physx/source/lowleveldynamics/src/DyArticulationContactPrep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyArticulationContactPrep.h b/physx/source/lowleveldynamics/src/DyArticulationContactPrep.h index d21930048..3324896d8 100644 --- a/physx/source/lowleveldynamics/src/DyArticulationContactPrep.h +++ b/physx/source/lowleveldynamics/src/DyArticulationContactPrep.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyArticulationContactPrepPF.cpp b/physx/source/lowleveldynamics/src/DyArticulationContactPrepPF.cpp index e48cecb02..d640a2e1e 100644 --- a/physx/source/lowleveldynamics/src/DyArticulationContactPrepPF.cpp +++ b/physx/source/lowleveldynamics/src/DyArticulationContactPrepPF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyArticulationPImpl.h b/physx/source/lowleveldynamics/src/DyArticulationPImpl.h index e8d0caad2..4213f5662 100644 --- a/physx/source/lowleveldynamics/src/DyArticulationPImpl.h +++ b/physx/source/lowleveldynamics/src/DyArticulationPImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyArticulationUtils.h b/physx/source/lowleveldynamics/src/DyArticulationUtils.h index ab382e3be..66db78f24 100644 --- a/physx/source/lowleveldynamics/src/DyArticulationUtils.h +++ b/physx/source/lowleveldynamics/src/DyArticulationUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyBodyCoreIntegrator.h b/physx/source/lowleveldynamics/src/DyBodyCoreIntegrator.h index 0f234b74c..a128a79bd 100644 --- a/physx/source/lowleveldynamics/src/DyBodyCoreIntegrator.h +++ b/physx/source/lowleveldynamics/src/DyBodyCoreIntegrator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyConstraintPartition.cpp b/physx/source/lowleveldynamics/src/DyConstraintPartition.cpp index af030bb68..ed77fdc5a 100644 --- a/physx/source/lowleveldynamics/src/DyConstraintPartition.cpp +++ b/physx/source/lowleveldynamics/src/DyConstraintPartition.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "DyConstraintPartition.h" #include "DyArticulationUtils.h" diff --git a/physx/source/lowleveldynamics/src/DyConstraintPartition.h b/physx/source/lowleveldynamics/src/DyConstraintPartition.h index 4beb27634..12f21889e 100644 --- a/physx/source/lowleveldynamics/src/DyConstraintPartition.h +++ b/physx/source/lowleveldynamics/src/DyConstraintPartition.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyConstraintPrep.h b/physx/source/lowleveldynamics/src/DyConstraintPrep.h index b9c543d58..5c6498c43 100644 --- a/physx/source/lowleveldynamics/src/DyConstraintPrep.h +++ b/physx/source/lowleveldynamics/src/DyConstraintPrep.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyConstraintSetup.cpp b/physx/source/lowleveldynamics/src/DyConstraintSetup.cpp index f836716af..395f2d5e1 100644 --- a/physx/source/lowleveldynamics/src/DyConstraintSetup.cpp +++ b/physx/source/lowleveldynamics/src/DyConstraintSetup.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyConstraintSetupBlock.cpp b/physx/source/lowleveldynamics/src/DyConstraintSetupBlock.cpp index 7853e0a73..b01d9bcf6 100644 --- a/physx/source/lowleveldynamics/src/DyConstraintSetupBlock.cpp +++ b/physx/source/lowleveldynamics/src/DyConstraintSetupBlock.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrep.cpp b/physx/source/lowleveldynamics/src/DyContactPrep.cpp index 46b319ac1..eff20bdb0 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrep.cpp +++ b/physx/source/lowleveldynamics/src/DyContactPrep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrep.h b/physx/source/lowleveldynamics/src/DyContactPrep.h index aad43aa07..c9a3e7924 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrep.h +++ b/physx/source/lowleveldynamics/src/DyContactPrep.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrep4.cpp b/physx/source/lowleveldynamics/src/DyContactPrep4.cpp index 5a6c76857..acddb7206 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrep4.cpp +++ b/physx/source/lowleveldynamics/src/DyContactPrep4.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrep4PF.cpp b/physx/source/lowleveldynamics/src/DyContactPrep4PF.cpp index d28442adb..55bcbb0f4 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrep4PF.cpp +++ b/physx/source/lowleveldynamics/src/DyContactPrep4PF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrepPF.cpp b/physx/source/lowleveldynamics/src/DyContactPrepPF.cpp index 0ece459d0..1f1c984aa 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrepPF.cpp +++ b/physx/source/lowleveldynamics/src/DyContactPrepPF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactPrepShared.h b/physx/source/lowleveldynamics/src/DyContactPrepShared.h index 3e2107217..570a6f57e 100644 --- a/physx/source/lowleveldynamics/src/DyContactPrepShared.h +++ b/physx/source/lowleveldynamics/src/DyContactPrepShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyContactReduction.h b/physx/source/lowleveldynamics/src/DyContactReduction.h index 0b17f94d6..e162f8f3c 100644 --- a/physx/source/lowleveldynamics/src/DyContactReduction.h +++ b/physx/source/lowleveldynamics/src/DyContactReduction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyCorrelationBuffer.h b/physx/source/lowleveldynamics/src/DyCorrelationBuffer.h index 0371c347c..8b61cebfd 100644 --- a/physx/source/lowleveldynamics/src/DyCorrelationBuffer.h +++ b/physx/source/lowleveldynamics/src/DyCorrelationBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyDynamics.cpp b/physx/source/lowleveldynamics/src/DyDynamics.cpp index e7b7dad0d..34515c73d 100644 --- a/physx/source/lowleveldynamics/src/DyDynamics.cpp +++ b/physx/source/lowleveldynamics/src/DyDynamics.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyDynamics.h b/physx/source/lowleveldynamics/src/DyDynamics.h index 175ec4fba..6bde0250f 100644 --- a/physx/source/lowleveldynamics/src/DyDynamics.h +++ b/physx/source/lowleveldynamics/src/DyDynamics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFeatherstoneArticulation.cpp b/physx/source/lowleveldynamics/src/DyFeatherstoneArticulation.cpp index 06df354c2..0e376a053 100644 --- a/physx/source/lowleveldynamics/src/DyFeatherstoneArticulation.cpp +++ b/physx/source/lowleveldynamics/src/DyFeatherstoneArticulation.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFeatherstoneArticulationLink.h b/physx/source/lowleveldynamics/src/DyFeatherstoneArticulationLink.h index 78324b8c4..157a68e61 100644 --- a/physx/source/lowleveldynamics/src/DyFeatherstoneArticulationLink.h +++ b/physx/source/lowleveldynamics/src/DyFeatherstoneArticulationLink.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFeatherstoneForwardDynamic.cpp b/physx/source/lowleveldynamics/src/DyFeatherstoneForwardDynamic.cpp index 4e6001249..47424dca8 100644 --- a/physx/source/lowleveldynamics/src/DyFeatherstoneForwardDynamic.cpp +++ b/physx/source/lowleveldynamics/src/DyFeatherstoneForwardDynamic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFeatherstoneInverseDynamic.cpp b/physx/source/lowleveldynamics/src/DyFeatherstoneInverseDynamic.cpp index eb00aa0c6..335151652 100644 --- a/physx/source/lowleveldynamics/src/DyFeatherstoneInverseDynamic.cpp +++ b/physx/source/lowleveldynamics/src/DyFeatherstoneInverseDynamic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFrictionCorrelation.cpp b/physx/source/lowleveldynamics/src/DyFrictionCorrelation.cpp index 9221a6ec2..1adee2910 100644 --- a/physx/source/lowleveldynamics/src/DyFrictionCorrelation.cpp +++ b/physx/source/lowleveldynamics/src/DyFrictionCorrelation.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFrictionPatch.h b/physx/source/lowleveldynamics/src/DyFrictionPatch.h index 5647e1e60..1e2150856 100644 --- a/physx/source/lowleveldynamics/src/DyFrictionPatch.h +++ b/physx/source/lowleveldynamics/src/DyFrictionPatch.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyFrictionPatchStreamPair.h b/physx/source/lowleveldynamics/src/DyFrictionPatchStreamPair.h index aefc55c52..6a2dd1e6f 100644 --- a/physx/source/lowleveldynamics/src/DyFrictionPatchStreamPair.h +++ b/physx/source/lowleveldynamics/src/DyFrictionPatchStreamPair.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyRigidBodyToSolverBody.cpp b/physx/source/lowleveldynamics/src/DyRigidBodyToSolverBody.cpp index ebcae76cb..67d260904 100644 --- a/physx/source/lowleveldynamics/src/DyRigidBodyToSolverBody.cpp +++ b/physx/source/lowleveldynamics/src/DyRigidBodyToSolverBody.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverBody.h b/physx/source/lowleveldynamics/src/DySolverBody.h index 74389da12..c6065c42d 100644 --- a/physx/source/lowleveldynamics/src/DySolverBody.h +++ b/physx/source/lowleveldynamics/src/DySolverBody.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef DY_SOLVER_BODY_H #define DY_SOLVER_BODY_H diff --git a/physx/source/lowleveldynamics/src/DySolverConstraint1D.h b/physx/source/lowleveldynamics/src/DySolverConstraint1D.h index 72a985747..9de03f742 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraint1D.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraint1D.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraint1D4.h b/physx/source/lowleveldynamics/src/DySolverConstraint1D4.h index 687de524a..779c35a98 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraint1D4.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraint1D4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraint1DStep.h b/physx/source/lowleveldynamics/src/DySolverConstraint1DStep.h index 1e46074cc..bf418ed48 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraint1DStep.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraint1DStep.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraintDesc.h b/physx/source/lowleveldynamics/src/DySolverConstraintDesc.h index fadd2be79..9c055d362 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraintDesc.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraintDesc.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraintExtShared.h b/physx/source/lowleveldynamics/src/DySolverConstraintExtShared.h index de0a159b6..8b6aa668c 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraintExtShared.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraintExtShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraintTypes.h b/physx/source/lowleveldynamics/src/DySolverConstraintTypes.h index 7981d7b42..3b14ebd85 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraintTypes.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraintTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraints.cpp b/physx/source/lowleveldynamics/src/DySolverConstraints.cpp index c0b794a74..f59b41fbe 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraints.cpp +++ b/physx/source/lowleveldynamics/src/DySolverConstraints.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraintsBlock.cpp b/physx/source/lowleveldynamics/src/DySolverConstraintsBlock.cpp index bd27b26ed..dc1e3a8fd 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraintsBlock.cpp +++ b/physx/source/lowleveldynamics/src/DySolverConstraintsBlock.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverConstraintsShared.h b/physx/source/lowleveldynamics/src/DySolverConstraintsShared.h index 6538ce263..2efb4b7bf 100644 --- a/physx/source/lowleveldynamics/src/DySolverConstraintsShared.h +++ b/physx/source/lowleveldynamics/src/DySolverConstraintsShared.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverContact.h b/physx/source/lowleveldynamics/src/DySolverContact.h index 5a10b214c..266a44bc9 100644 --- a/physx/source/lowleveldynamics/src/DySolverContact.h +++ b/physx/source/lowleveldynamics/src/DySolverContact.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverContact4.h b/physx/source/lowleveldynamics/src/DySolverContact4.h index 16cba1058..ad5a7474f 100644 --- a/physx/source/lowleveldynamics/src/DySolverContact4.h +++ b/physx/source/lowleveldynamics/src/DySolverContact4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverContactPF.h b/physx/source/lowleveldynamics/src/DySolverContactPF.h index aee74e14b..87dd15e8a 100644 --- a/physx/source/lowleveldynamics/src/DySolverContactPF.h +++ b/physx/source/lowleveldynamics/src/DySolverContactPF.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverContactPF4.h b/physx/source/lowleveldynamics/src/DySolverContactPF4.h index 7d61f8cd2..c60f6773e 100644 --- a/physx/source/lowleveldynamics/src/DySolverContactPF4.h +++ b/physx/source/lowleveldynamics/src/DySolverContactPF4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverContext.h b/physx/source/lowleveldynamics/src/DySolverContext.h index b3b528d3c..b222f1350 100644 --- a/physx/source/lowleveldynamics/src/DySolverContext.h +++ b/physx/source/lowleveldynamics/src/DySolverContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverControl.cpp b/physx/source/lowleveldynamics/src/DySolverControl.cpp index 992c2c18b..58d055ddc 100644 --- a/physx/source/lowleveldynamics/src/DySolverControl.cpp +++ b/physx/source/lowleveldynamics/src/DySolverControl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverControl.h b/physx/source/lowleveldynamics/src/DySolverControl.h index c54261242..7172a5af3 100644 --- a/physx/source/lowleveldynamics/src/DySolverControl.h +++ b/physx/source/lowleveldynamics/src/DySolverControl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverControlPF.cpp b/physx/source/lowleveldynamics/src/DySolverControlPF.cpp index aa5e12bdd..747c49990 100644 --- a/physx/source/lowleveldynamics/src/DySolverControlPF.cpp +++ b/physx/source/lowleveldynamics/src/DySolverControlPF.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverControlPF.h b/physx/source/lowleveldynamics/src/DySolverControlPF.h index 87c3e84d4..13a04b21b 100644 --- a/physx/source/lowleveldynamics/src/DySolverControlPF.h +++ b/physx/source/lowleveldynamics/src/DySolverControlPF.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverCore.h b/physx/source/lowleveldynamics/src/DySolverCore.h index 81d380e6c..b91ea9f67 100644 --- a/physx/source/lowleveldynamics/src/DySolverCore.h +++ b/physx/source/lowleveldynamics/src/DySolverCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverExt.h b/physx/source/lowleveldynamics/src/DySolverExt.h index d79b6ca1a..dc438c412 100644 --- a/physx/source/lowleveldynamics/src/DySolverExt.h +++ b/physx/source/lowleveldynamics/src/DySolverExt.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverPFConstraints.cpp b/physx/source/lowleveldynamics/src/DySolverPFConstraints.cpp index ca3ee172d..d4aa8a8cd 100644 --- a/physx/source/lowleveldynamics/src/DySolverPFConstraints.cpp +++ b/physx/source/lowleveldynamics/src/DySolverPFConstraints.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySolverPFConstraintsBlock.cpp b/physx/source/lowleveldynamics/src/DySolverPFConstraintsBlock.cpp index c0b01df6b..97ff38f15 100644 --- a/physx/source/lowleveldynamics/src/DySolverPFConstraintsBlock.cpp +++ b/physx/source/lowleveldynamics/src/DySolverPFConstraintsBlock.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DySpatial.h b/physx/source/lowleveldynamics/src/DySpatial.h index 7667af2e5..ce628e706 100644 --- a/physx/source/lowleveldynamics/src/DySpatial.h +++ b/physx/source/lowleveldynamics/src/DySpatial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyTGSContactPrep.cpp b/physx/source/lowleveldynamics/src/DyTGSContactPrep.cpp index b9c1ba714..67d4dc4ab 100644 --- a/physx/source/lowleveldynamics/src/DyTGSContactPrep.cpp +++ b/physx/source/lowleveldynamics/src/DyTGSContactPrep.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyTGSContactPrep.h b/physx/source/lowleveldynamics/src/DyTGSContactPrep.h index 89a3cdad5..d1573f2d3 100644 --- a/physx/source/lowleveldynamics/src/DyTGSContactPrep.h +++ b/physx/source/lowleveldynamics/src/DyTGSContactPrep.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyTGSContactPrepBlock.cpp b/physx/source/lowleveldynamics/src/DyTGSContactPrepBlock.cpp index a46d9503f..1cd0eb35f 100644 --- a/physx/source/lowleveldynamics/src/DyTGSContactPrepBlock.cpp +++ b/physx/source/lowleveldynamics/src/DyTGSContactPrepBlock.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyTGSDynamics.cpp b/physx/source/lowleveldynamics/src/DyTGSDynamics.cpp index 0228a0054..b0474000e 100644 --- a/physx/source/lowleveldynamics/src/DyTGSDynamics.cpp +++ b/physx/source/lowleveldynamics/src/DyTGSDynamics.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyTGSDynamics.h b/physx/source/lowleveldynamics/src/DyTGSDynamics.h index 64e986673..8dfeb723e 100644 --- a/physx/source/lowleveldynamics/src/DyTGSDynamics.h +++ b/physx/source/lowleveldynamics/src/DyTGSDynamics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyThreadContext.cpp b/physx/source/lowleveldynamics/src/DyThreadContext.cpp index f8c9cc95e..1e476ec35 100644 --- a/physx/source/lowleveldynamics/src/DyThreadContext.cpp +++ b/physx/source/lowleveldynamics/src/DyThreadContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyThreadContext.h b/physx/source/lowleveldynamics/src/DyThreadContext.h index 648212838..1c6e64389 100644 --- a/physx/source/lowleveldynamics/src/DyThreadContext.h +++ b/physx/source/lowleveldynamics/src/DyThreadContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/lowleveldynamics/src/DyThresholdTable.cpp b/physx/source/lowleveldynamics/src/DyThresholdTable.cpp index 03a0f6590..d8e04c953 100644 --- a/physx/source/lowleveldynamics/src/DyThresholdTable.cpp +++ b/physx/source/lowleveldynamics/src/DyThresholdTable.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpActor.cpp b/physx/source/physx/src/NpActor.cpp index bab108534..4da463ec2 100644 --- a/physx/source/physx/src/NpActor.cpp +++ b/physx/source/physx/src/NpActor.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpActor.h b/physx/source/physx/src/NpActor.h index aa59fcd4e..c6f115f49 100644 --- a/physx/source/physx/src/NpActor.h +++ b/physx/source/physx/src/NpActor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpActorTemplate.h b/physx/source/physx/src/NpActorTemplate.h index 5393c7b6c..a1a8e829f 100644 --- a/physx/source/physx/src/NpActorTemplate.h +++ b/physx/source/physx/src/NpActorTemplate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpAggregate.cpp b/physx/source/physx/src/NpAggregate.cpp index 71f2c9a3f..2bb1b8968 100644 --- a/physx/source/physx/src/NpAggregate.cpp +++ b/physx/source/physx/src/NpAggregate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpAggregate.h b/physx/source/physx/src/NpAggregate.h index b376d0882..d7dfc0dd1 100644 --- a/physx/source/physx/src/NpAggregate.h +++ b/physx/source/physx/src/NpAggregate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationJointReducedCoordinate.cpp b/physx/source/physx/src/NpArticulationJointReducedCoordinate.cpp index e58d627dd..134732957 100644 --- a/physx/source/physx/src/NpArticulationJointReducedCoordinate.cpp +++ b/physx/source/physx/src/NpArticulationJointReducedCoordinate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationJointReducedCoordinate.h b/physx/source/physx/src/NpArticulationJointReducedCoordinate.h index 61c6e9500..ea7ca7ed7 100644 --- a/physx/source/physx/src/NpArticulationJointReducedCoordinate.h +++ b/physx/source/physx/src/NpArticulationJointReducedCoordinate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationLink.cpp b/physx/source/physx/src/NpArticulationLink.cpp index 8fda1a5fd..33ee35807 100644 --- a/physx/source/physx/src/NpArticulationLink.cpp +++ b/physx/source/physx/src/NpArticulationLink.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationLink.h b/physx/source/physx/src/NpArticulationLink.h index 04cfc62b3..1a6bcaf98 100644 --- a/physx/source/physx/src/NpArticulationLink.h +++ b/physx/source/physx/src/NpArticulationLink.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationReducedCoordinate.cpp b/physx/source/physx/src/NpArticulationReducedCoordinate.cpp index e4cd6ae3d..53b5ceb5f 100644 --- a/physx/source/physx/src/NpArticulationReducedCoordinate.cpp +++ b/physx/source/physx/src/NpArticulationReducedCoordinate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationReducedCoordinate.h b/physx/source/physx/src/NpArticulationReducedCoordinate.h index eb9a1dc26..756e84b75 100644 --- a/physx/source/physx/src/NpArticulationReducedCoordinate.h +++ b/physx/source/physx/src/NpArticulationReducedCoordinate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationSensor.cpp b/physx/source/physx/src/NpArticulationSensor.cpp index d7c866b77..404320006 100644 --- a/physx/source/physx/src/NpArticulationSensor.cpp +++ b/physx/source/physx/src/NpArticulationSensor.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationSensor.h b/physx/source/physx/src/NpArticulationSensor.h index 3eaa3dbfd..101bc4118 100644 --- a/physx/source/physx/src/NpArticulationSensor.h +++ b/physx/source/physx/src/NpArticulationSensor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationTendon.cpp b/physx/source/physx/src/NpArticulationTendon.cpp index 22e9544a2..260b6e755 100644 --- a/physx/source/physx/src/NpArticulationTendon.cpp +++ b/physx/source/physx/src/NpArticulationTendon.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpArticulationTendon.h b/physx/source/physx/src/NpArticulationTendon.h index 9844366a5..8601f9d57 100644 --- a/physx/source/physx/src/NpArticulationTendon.h +++ b/physx/source/physx/src/NpArticulationTendon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpBase.h b/physx/source/physx/src/NpBase.h index 9d750461a..5cdd20737 100644 --- a/physx/source/physx/src/NpBase.h +++ b/physx/source/physx/src/NpBase.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpBounds.cpp b/physx/source/physx/src/NpBounds.cpp index 52b23c5b1..d83efb2bd 100644 --- a/physx/source/physx/src/NpBounds.cpp +++ b/physx/source/physx/src/NpBounds.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpBounds.h b/physx/source/physx/src/NpBounds.h index 3276b2c70..f614cdd9e 100644 --- a/physx/source/physx/src/NpBounds.h +++ b/physx/source/physx/src/NpBounds.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpCheck.cpp b/physx/source/physx/src/NpCheck.cpp index 8714c204e..a10a077df 100644 --- a/physx/source/physx/src/NpCheck.cpp +++ b/physx/source/physx/src/NpCheck.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpCheck.h b/physx/source/physx/src/NpCheck.h index 7d3e4ce8d..c47486d02 100644 --- a/physx/source/physx/src/NpCheck.h +++ b/physx/source/physx/src/NpCheck.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpConnector.h b/physx/source/physx/src/NpConnector.h index b9830c414..d5f861eac 100644 --- a/physx/source/physx/src/NpConnector.h +++ b/physx/source/physx/src/NpConnector.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpConstraint.cpp b/physx/source/physx/src/NpConstraint.cpp index f934ee1a5..694367ce5 100644 --- a/physx/source/physx/src/NpConstraint.cpp +++ b/physx/source/physx/src/NpConstraint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpConstraint.h b/physx/source/physx/src/NpConstraint.h index a4406c8b3..1a92c88e4 100644 --- a/physx/source/physx/src/NpConstraint.h +++ b/physx/source/physx/src/NpConstraint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpDebugViz.cpp b/physx/source/physx/src/NpDebugViz.cpp index d76db7c98..35c0f5137 100644 --- a/physx/source/physx/src/NpDebugViz.cpp +++ b/physx/source/physx/src/NpDebugViz.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpDebugViz.h b/physx/source/physx/src/NpDebugViz.h index c8ef41bbe..c04ea99d1 100644 --- a/physx/source/physx/src/NpDebugViz.h +++ b/physx/source/physx/src/NpDebugViz.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMCloth.cpp b/physx/source/physx/src/NpFEMCloth.cpp index fbbba9cf7..f2c0cbcf4 100644 --- a/physx/source/physx/src/NpFEMCloth.cpp +++ b/physx/source/physx/src/NpFEMCloth.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMCloth.h b/physx/source/physx/src/NpFEMCloth.h index 565d7c43b..120b11d74 100644 --- a/physx/source/physx/src/NpFEMCloth.h +++ b/physx/source/physx/src/NpFEMCloth.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMClothMaterial.cpp b/physx/source/physx/src/NpFEMClothMaterial.cpp index d59ed4c6a..1cabf5814 100644 --- a/physx/source/physx/src/NpFEMClothMaterial.cpp +++ b/physx/source/physx/src/NpFEMClothMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMClothMaterial.h b/physx/source/physx/src/NpFEMClothMaterial.h index 42c62da5e..0d54e84e7 100644 --- a/physx/source/physx/src/NpFEMClothMaterial.h +++ b/physx/source/physx/src/NpFEMClothMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMSoftBodyMaterial.cpp b/physx/source/physx/src/NpFEMSoftBodyMaterial.cpp index 1a1cd3668..0cb3ee1f9 100644 --- a/physx/source/physx/src/NpFEMSoftBodyMaterial.cpp +++ b/physx/source/physx/src/NpFEMSoftBodyMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFEMSoftBodyMaterial.h b/physx/source/physx/src/NpFEMSoftBodyMaterial.h index f4d0e6dbc..d90ad9d93 100644 --- a/physx/source/physx/src/NpFEMSoftBodyMaterial.h +++ b/physx/source/physx/src/NpFEMSoftBodyMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFLIPMaterial.cpp b/physx/source/physx/src/NpFLIPMaterial.cpp index 8ff82fde2..dd86742a6 100644 --- a/physx/source/physx/src/NpFLIPMaterial.cpp +++ b/physx/source/physx/src/NpFLIPMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFLIPMaterial.h b/physx/source/physx/src/NpFLIPMaterial.h index ba471d54d..54b81ae2e 100644 --- a/physx/source/physx/src/NpFLIPMaterial.h +++ b/physx/source/physx/src/NpFLIPMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFactory.cpp b/physx/source/physx/src/NpFactory.cpp index 8e121cc35..f91f4bd73 100644 --- a/physx/source/physx/src/NpFactory.cpp +++ b/physx/source/physx/src/NpFactory.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpFactory.h b/physx/source/physx/src/NpFactory.h index 04d8cecfa..dc22130a7 100644 --- a/physx/source/physx/src/NpFactory.h +++ b/physx/source/physx/src/NpFactory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpHairSystem.cpp b/physx/source/physx/src/NpHairSystem.cpp index 7f134a775..72146135e 100644 --- a/physx/source/physx/src/NpHairSystem.cpp +++ b/physx/source/physx/src/NpHairSystem.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/physx/src/NpHairSystem.h b/physx/source/physx/src/NpHairSystem.h index 6ea0fc9e4..cd5c84e24 100644 --- a/physx/source/physx/src/NpHairSystem.h +++ b/physx/source/physx/src/NpHairSystem.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef NP_HAIR_SYSTEM_H #define NP_HAIR_SYSTEM_H diff --git a/physx/source/physx/src/NpMPMMaterial.cpp b/physx/source/physx/src/NpMPMMaterial.cpp index 4879c6ed4..366af88a9 100644 --- a/physx/source/physx/src/NpMPMMaterial.cpp +++ b/physx/source/physx/src/NpMPMMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpMPMMaterial.h b/physx/source/physx/src/NpMPMMaterial.h index cde0a0901..b007810f3 100644 --- a/physx/source/physx/src/NpMPMMaterial.h +++ b/physx/source/physx/src/NpMPMMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpMaterial.cpp b/physx/source/physx/src/NpMaterial.cpp index aa94162ff..7995e411c 100644 --- a/physx/source/physx/src/NpMaterial.cpp +++ b/physx/source/physx/src/NpMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpMaterial.h b/physx/source/physx/src/NpMaterial.h index 2764b2254..9ab223b55 100644 --- a/physx/source/physx/src/NpMaterial.h +++ b/physx/source/physx/src/NpMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpMaterialManager.h b/physx/source/physx/src/NpMaterialManager.h index 3fccdee33..63c8acd86 100644 --- a/physx/source/physx/src/NpMaterialManager.h +++ b/physx/source/physx/src/NpMaterialManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpMetaData.cpp b/physx/source/physx/src/NpMetaData.cpp index 8dc17e643..b42c4ad7c 100644 --- a/physx/source/physx/src/NpMetaData.cpp +++ b/physx/source/physx/src/NpMetaData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPBDMaterial.cpp b/physx/source/physx/src/NpPBDMaterial.cpp index 11a6d630b..136063148 100644 --- a/physx/source/physx/src/NpPBDMaterial.cpp +++ b/physx/source/physx/src/NpPBDMaterial.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPBDMaterial.h b/physx/source/physx/src/NpPBDMaterial.h index d1d25f421..5d53c47ca 100644 --- a/physx/source/physx/src/NpPBDMaterial.h +++ b/physx/source/physx/src/NpPBDMaterial.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpParticleSystem.cpp b/physx/source/physx/src/NpParticleSystem.cpp index 5cf987e6d..51a63f696 100644 --- a/physx/source/physx/src/NpParticleSystem.cpp +++ b/physx/source/physx/src/NpParticleSystem.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpParticleSystem.h b/physx/source/physx/src/NpParticleSystem.h index 633b364c0..55f59932f 100644 --- a/physx/source/physx/src/NpParticleSystem.h +++ b/physx/source/physx/src/NpParticleSystem.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPhysics.cpp b/physx/source/physx/src/NpPhysics.cpp index b3c20ce87..8c7ef78a7 100644 --- a/physx/source/physx/src/NpPhysics.cpp +++ b/physx/source/physx/src/NpPhysics.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPhysics.h b/physx/source/physx/src/NpPhysics.h index cf451b10c..1e6bc0ae2 100644 --- a/physx/source/physx/src/NpPhysics.h +++ b/physx/source/physx/src/NpPhysics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPhysicsInsertionCallback.h b/physx/source/physx/src/NpPhysicsInsertionCallback.h index 7a255d6dc..4069b25d5 100644 --- a/physx/source/physx/src/NpPhysicsInsertionCallback.h +++ b/physx/source/physx/src/NpPhysicsInsertionCallback.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPruningStructure.cpp b/physx/source/physx/src/NpPruningStructure.cpp index d025b410e..10970d553 100644 --- a/physx/source/physx/src/NpPruningStructure.cpp +++ b/physx/source/physx/src/NpPruningStructure.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPruningStructure.h b/physx/source/physx/src/NpPruningStructure.h index ff8e8cfdf..b842c04ca 100644 --- a/physx/source/physx/src/NpPruningStructure.h +++ b/physx/source/physx/src/NpPruningStructure.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPtrTableStorageManager.h b/physx/source/physx/src/NpPtrTableStorageManager.h index 826929a82..41f532ede 100644 --- a/physx/source/physx/src/NpPtrTableStorageManager.h +++ b/physx/source/physx/src/NpPtrTableStorageManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPvdSceneClient.cpp b/physx/source/physx/src/NpPvdSceneClient.cpp index 0124044f6..0b3a54657 100644 --- a/physx/source/physx/src/NpPvdSceneClient.cpp +++ b/physx/source/physx/src/NpPvdSceneClient.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPvdSceneClient.h b/physx/source/physx/src/NpPvdSceneClient.h index db0377bcb..fa08e294a 100644 --- a/physx/source/physx/src/NpPvdSceneClient.h +++ b/physx/source/physx/src/NpPvdSceneClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPvdSceneQueryCollector.cpp b/physx/source/physx/src/NpPvdSceneQueryCollector.cpp index 7a384ddc8..243e0cdd3 100644 --- a/physx/source/physx/src/NpPvdSceneQueryCollector.cpp +++ b/physx/source/physx/src/NpPvdSceneQueryCollector.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpPvdSceneQueryCollector.h b/physx/source/physx/src/NpPvdSceneQueryCollector.h index 78139e8e5..50f3a4794 100644 --- a/physx/source/physx/src/NpPvdSceneQueryCollector.h +++ b/physx/source/physx/src/NpPvdSceneQueryCollector.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidActorTemplate.h b/physx/source/physx/src/NpRigidActorTemplate.h index cbb6513f3..2060f5e4d 100644 --- a/physx/source/physx/src/NpRigidActorTemplate.h +++ b/physx/source/physx/src/NpRigidActorTemplate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidActorTemplateInternal.h b/physx/source/physx/src/NpRigidActorTemplateInternal.h index fae579511..e2f4aa475 100644 --- a/physx/source/physx/src/NpRigidActorTemplateInternal.h +++ b/physx/source/physx/src/NpRigidActorTemplateInternal.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidBodyTemplate.h b/physx/source/physx/src/NpRigidBodyTemplate.h index af3fe5e2b..9cc7d4c4c 100644 --- a/physx/source/physx/src/NpRigidBodyTemplate.h +++ b/physx/source/physx/src/NpRigidBodyTemplate.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidDynamic.cpp b/physx/source/physx/src/NpRigidDynamic.cpp index 8a7b78154..f5c2ffebe 100644 --- a/physx/source/physx/src/NpRigidDynamic.cpp +++ b/physx/source/physx/src/NpRigidDynamic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidDynamic.h b/physx/source/physx/src/NpRigidDynamic.h index 214566f38..2d5695c28 100644 --- a/physx/source/physx/src/NpRigidDynamic.h +++ b/physx/source/physx/src/NpRigidDynamic.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidStatic.cpp b/physx/source/physx/src/NpRigidStatic.cpp index decdfb16c..40b30f0e6 100644 --- a/physx/source/physx/src/NpRigidStatic.cpp +++ b/physx/source/physx/src/NpRigidStatic.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpRigidStatic.h b/physx/source/physx/src/NpRigidStatic.h index 3d8db8379..26f12d9ea 100644 --- a/physx/source/physx/src/NpRigidStatic.h +++ b/physx/source/physx/src/NpRigidStatic.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpScene.cpp b/physx/source/physx/src/NpScene.cpp index 58f9f3125..d6bb5cfa0 100644 --- a/physx/source/physx/src/NpScene.cpp +++ b/physx/source/physx/src/NpScene.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpScene.h b/physx/source/physx/src/NpScene.h index 08c9eb7fe..e5871dc01 100644 --- a/physx/source/physx/src/NpScene.h +++ b/physx/source/physx/src/NpScene.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSceneAccessor.h b/physx/source/physx/src/NpSceneAccessor.h index d0ede93c0..3a4fd9436 100644 --- a/physx/source/physx/src/NpSceneAccessor.h +++ b/physx/source/physx/src/NpSceneAccessor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSceneFetchResults.cpp b/physx/source/physx/src/NpSceneFetchResults.cpp index 21f68446b..0ba46c58c 100644 --- a/physx/source/physx/src/NpSceneFetchResults.cpp +++ b/physx/source/physx/src/NpSceneFetchResults.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -364,7 +364,7 @@ bool NpScene::fetchResults(bool block, PxU32* errorState) } // send contacts info - omniPvdSampler->streamSceneContacts(this); + omniPvdSampler->streamSceneContacts(*this); //end frame omniPvdSampler->sampleScene(this); diff --git a/physx/source/physx/src/NpSceneQueries.cpp b/physx/source/physx/src/NpSceneQueries.cpp index d1a614363..68881572b 100644 --- a/physx/source/physx/src/NpSceneQueries.cpp +++ b/physx/source/physx/src/NpSceneQueries.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSceneQueries.h b/physx/source/physx/src/NpSceneQueries.h index 6a3ba2d58..f3fd3410e 100644 --- a/physx/source/physx/src/NpSceneQueries.h +++ b/physx/source/physx/src/NpSceneQueries.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSerializerAdapter.cpp b/physx/source/physx/src/NpSerializerAdapter.cpp index 6f125dda5..b1d42bdbc 100644 --- a/physx/source/physx/src/NpSerializerAdapter.cpp +++ b/physx/source/physx/src/NpSerializerAdapter.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpShape.cpp b/physx/source/physx/src/NpShape.cpp index a2065bd13..a6c6a24a0 100644 --- a/physx/source/physx/src/NpShape.cpp +++ b/physx/source/physx/src/NpShape.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpShape.h b/physx/source/physx/src/NpShape.h index 13f978ce9..28bf9ef1b 100644 --- a/physx/source/physx/src/NpShape.h +++ b/physx/source/physx/src/NpShape.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpShapeManager.cpp b/physx/source/physx/src/NpShapeManager.cpp index cafed6530..7445ae9bb 100644 --- a/physx/source/physx/src/NpShapeManager.cpp +++ b/physx/source/physx/src/NpShapeManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpShapeManager.h b/physx/source/physx/src/NpShapeManager.h index ff9f519a3..08cd39c3d 100644 --- a/physx/source/physx/src/NpShapeManager.h +++ b/physx/source/physx/src/NpShapeManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSoftBody.cpp b/physx/source/physx/src/NpSoftBody.cpp index b262ca359..06364ea83 100644 --- a/physx/source/physx/src/NpSoftBody.cpp +++ b/physx/source/physx/src/NpSoftBody.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/NpSoftBody.h b/physx/source/physx/src/NpSoftBody.h index 8a82cd3fe..f97f7a776 100644 --- a/physx/source/physx/src/NpSoftBody.h +++ b/physx/source/physx/src/NpSoftBody.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdMetaDataBindingData.h b/physx/source/physx/src/PvdMetaDataBindingData.h index d07b40464..ca26d36ac 100644 --- a/physx/source/physx/src/PvdMetaDataBindingData.h +++ b/physx/source/physx/src/PvdMetaDataBindingData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdMetaDataPvdBinding.cpp b/physx/source/physx/src/PvdMetaDataPvdBinding.cpp index 4a0cc2771..bb21c4277 100644 --- a/physx/source/physx/src/PvdMetaDataPvdBinding.cpp +++ b/physx/source/physx/src/PvdMetaDataPvdBinding.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdMetaDataPvdBinding.h b/physx/source/physx/src/PvdMetaDataPvdBinding.h index e95b9e050..dcb4342c3 100644 --- a/physx/source/physx/src/PvdMetaDataPvdBinding.h +++ b/physx/source/physx/src/PvdMetaDataPvdBinding.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdPhysicsClient.cpp b/physx/source/physx/src/PvdPhysicsClient.cpp index c023bf1ed..fd032fc6a 100644 --- a/physx/source/physx/src/PvdPhysicsClient.cpp +++ b/physx/source/physx/src/PvdPhysicsClient.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdPhysicsClient.h b/physx/source/physx/src/PvdPhysicsClient.h index 490513ee3..bf56aef48 100644 --- a/physx/source/physx/src/PvdPhysicsClient.h +++ b/physx/source/physx/src/PvdPhysicsClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/PvdTypeNames.h b/physx/source/physx/src/PvdTypeNames.h index 044873f6d..1f3b10505 100644 --- a/physx/source/physx/src/PvdTypeNames.h +++ b/physx/source/physx/src/PvdTypeNames.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef PVD_TYPE_NAMES_H diff --git a/physx/source/physx/src/device/PhysXIndicator.h b/physx/source/physx/src/device/PhysXIndicator.h index 69272f5ac..9702c9003 100644 --- a/physx/source/physx/src/device/PhysXIndicator.h +++ b/physx/source/physx/src/device/PhysXIndicator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/device/linux/PhysXIndicatorLinux.cpp b/physx/source/physx/src/device/linux/PhysXIndicatorLinux.cpp index 664ad6234..07925fe56 100644 --- a/physx/source/physx/src/device/linux/PhysXIndicatorLinux.cpp +++ b/physx/source/physx/src/device/linux/PhysXIndicatorLinux.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/device/nvPhysXtoDrv.h b/physx/source/physx/src/device/nvPhysXtoDrv.h index 56a5e6650..639f1b82b 100644 --- a/physx/source/physx/src/device/nvPhysXtoDrv.h +++ b/physx/source/physx/src/device/nvPhysXtoDrv.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/device/windows/PhysXIndicatorWindows.cpp b/physx/source/physx/src/device/windows/PhysXIndicatorWindows.cpp index e91bdabdf..ffa4a31ba 100644 --- a/physx/source/physx/src/device/windows/PhysXIndicatorWindows.cpp +++ b/physx/source/physx/src/device/windows/PhysXIndicatorWindows.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/gpu/PxGpu.cpp b/physx/source/physx/src/gpu/PxGpu.cpp index d00bf0d60..309275eee 100644 --- a/physx/source/physx/src/gpu/PxGpu.cpp +++ b/physx/source/physx/src/gpu/PxGpu.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxPhysXConfig.h" diff --git a/physx/source/physx/src/gpu/PxPhysXGpuModuleLoader.cpp b/physx/source/physx/src/gpu/PxPhysXGpuModuleLoader.cpp index 806309874..5731efa1f 100644 --- a/physx/source/physx/src/gpu/PxPhysXGpuModuleLoader.cpp +++ b/physx/source/physx/src/gpu/PxPhysXGpuModuleLoader.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxPhysXConfig.h" diff --git a/physx/source/physx/src/omnipvd/NpOmniPvd.cpp b/physx/source/physx/src/omnipvd/NpOmniPvd.cpp index 4505e335b..6df425ac4 100644 --- a/physx/source/physx/src/omnipvd/NpOmniPvd.cpp +++ b/physx/source/physx/src/omnipvd/NpOmniPvd.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/omnipvd/NpOmniPvd.h b/physx/source/physx/src/omnipvd/NpOmniPvd.h index 348a0e6e4..d83405ccd 100644 --- a/physx/source/physx/src/omnipvd/NpOmniPvd.h +++ b/physx/source/physx/src/omnipvd/NpOmniPvd.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.cpp b/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.cpp index b797e00f5..f8885d598 100644 --- a/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.cpp +++ b/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.h b/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.h index bb0f12501..7e2d3d5a1 100644 --- a/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.h +++ b/physx/source/physx/src/omnipvd/OmniPvdChunkAlloc.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/omnipvd/OmniPvdPxSampler.cpp b/physx/source/physx/src/omnipvd/OmniPvdPxSampler.cpp index 677127c58..49d2c011b 100644 --- a/physx/source/physx/src/omnipvd/OmniPvdPxSampler.cpp +++ b/physx/source/physx/src/omnipvd/OmniPvdPxSampler.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -742,14 +742,13 @@ void streamTriMeshGeometry(const physx::PxGeometry& g) OMNI_PVD_SET(geomtrianglemesh, triangleMesh, g, mesh); } -void OmniPvdPxSampler::streamSceneContacts(physx::NpScene* scene) +void OmniPvdPxSampler::streamSceneContacts(physx::NpScene& scene) { if (!isSampling()) return; PxsContactManagerOutputIterator outputIter; Sc::ContactIterator contactIter; - scene->getScScene().initContactsIterator(contactIter, outputIter); + scene.getScScene().initContactsIterator(contactIter, outputIter); Sc::ContactIterator::Pair* pair; - Sc::Contact* contact; PxU32 pairCount = 0; PxArray pairsActors; PxArray pairsContactCounts; @@ -759,15 +758,19 @@ void OmniPvdPxSampler::streamSceneContacts(physx::NpScene* scene) PxArray pairsContactShapes; PxArray pairsContactFacesIndices; - Sc::Interaction* interaction = contactIter.getCurrentInteraction(); while ((pair = contactIter.getNextPair()) != NULL) { - ++pairCount; - pairsActors.pushBack(interaction->getActorSim0().getPxActor()); - pairsActors.pushBack(interaction->getActorSim1().getPxActor()); PxU32 pairContactCount = 0; + Sc::Contact* contact = NULL; + bool firstContact = true; while ((contact = pair->getNextContact()) != NULL) { + if (firstContact) { + pairsActors.pushBack(pair->getActor0()); + pairsActors.pushBack(pair->getActor1()); + ++pairCount; + firstContact = false; + } ++pairContactCount; pairsContactPoints.pushBack(contact->point); pairsContactNormals.pushBack(contact->normal); @@ -777,31 +780,36 @@ void OmniPvdPxSampler::streamSceneContacts(physx::NpScene* scene) pairsContactFacesIndices.pushBack(contact->faceIndex0); pairsContactFacesIndices.pushBack(contact->faceIndex1); } - pairsContactCounts.pushBack(pairContactCount); - interaction = contactIter.getCurrentInteraction(); + if (pairContactCount) + { + pairsContactCounts.pushBack(pairContactCount); + } } - OMNI_PVD_SET(scene, pairCount, *scene, pairCount); + + if (pairCount == 0) return; + + OMNI_PVD_SET(scene, pairCount, scene, pairCount); PxU32 actorsSize = pairsActors.size() * sizeof(PxActor*); PxActor** actors = actorsSize ? &pairsActors[0] : NULL; - OMNI_PVD_SETB(scene, pairsActors, *scene, actors, actorsSize); + OMNI_PVD_SETB(scene, pairsActors, scene, actors, actorsSize); PxU32 contactCountsSize = pairsContactCounts.size() * sizeof(PxU32); PxU32* contactCounts = contactCountsSize ? &pairsContactCounts[0] : NULL; - OMNI_PVD_SETB(scene, pairsContactCounts, *scene, contactCounts, contactCountsSize); + OMNI_PVD_SETB(scene, pairsContactCounts, scene, contactCounts, contactCountsSize); PxU32 contactPointsSize = pairsContactPoints.size() * sizeof(PxVec3); PxReal* contactPoints = contactPointsSize ? &pairsContactPoints[0].x : NULL; - OMNI_PVD_SETB(scene, pairsContactPoints, *scene, contactPoints, contactPointsSize); + OMNI_PVD_SETB(scene, pairsContactPoints, scene, contactPoints, contactPointsSize); PxU32 contactNormalsSize = pairsContactNormals.size() * sizeof(PxVec3); PxReal* contactNormals = contactNormalsSize ? &pairsContactNormals[0].x : NULL; - OMNI_PVD_SETB(scene, pairsContactNormals, *scene, contactNormals, contactNormalsSize); + OMNI_PVD_SETB(scene, pairsContactNormals, scene, contactNormals, contactNormalsSize); PxU32 contactSeparationsSize = pairsContactSeparations.size() * sizeof(PxReal); PxReal* contactSeparations = contactSeparationsSize ? &pairsContactSeparations[0] : NULL; - OMNI_PVD_SETB(scene, pairsContactSeparations, *scene, contactSeparations, contactSeparationsSize); + OMNI_PVD_SETB(scene, pairsContactSeparations, scene, contactSeparations, contactSeparationsSize); PxU32 contactShapesSize = pairsContactShapes.size() * sizeof(PxShape*); PxShape** contactShapes = contactShapesSize ? &pairsContactShapes[0] : NULL; - OMNI_PVD_SETB(scene, pairsContactShapes, *scene, contactShapes, contactShapesSize); + OMNI_PVD_SETB(scene, pairsContactShapes, scene, contactShapes, contactShapesSize); PxU32 contactFacesIndicesSize = pairsContactFacesIndices.size() * sizeof(PxU32); PxU32* contactFacesIndices = contactFacesIndicesSize ? &pairsContactFacesIndices[0] : NULL; - OMNI_PVD_SETB(scene, pairsContactFacesIndices, *scene, contactFacesIndices, contactFacesIndicesSize); + OMNI_PVD_SETB(scene, pairsContactFacesIndices, scene, contactFacesIndices, contactFacesIndicesSize); } OmniPvdPxSampler::OmniPvdPxSampler() diff --git a/physx/source/physx/src/omnipvd/OmniPvdPxSampler.h b/physx/source/physx/src/omnipvd/OmniPvdPxSampler.h index 0f1e5847e..25c219bb7 100644 --- a/physx/source/physx/src/omnipvd/OmniPvdPxSampler.h +++ b/physx/source/physx/src/omnipvd/OmniPvdPxSampler.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -124,7 +124,7 @@ class OmniPvdPxSampler : public physx::PxUserAllocated void setOmniPvdWriter(OmniPvdWriter* omniPvdWriter); // writes all contacts to the stream - void streamSceneContacts(physx::NpScene* scene); + void streamSceneContacts(physx::NpScene& scene); // call at the end of a simulation step: void sampleScene(physx::NpScene* scene); diff --git a/physx/source/physx/src/omnipvd/OmniPvdTypes.h b/physx/source/physx/src/omnipvd/OmniPvdTypes.h index 8b8826ba4..0106faaa8 100644 --- a/physx/source/physx/src/omnipvd/OmniPvdTypes.h +++ b/physx/source/physx/src/omnipvd/OmniPvdTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physx/src/windows/NpWindowsDelayLoadHook.cpp b/physx/source/physx/src/windows/NpWindowsDelayLoadHook.cpp index 20e576010..935db0fb5 100644 --- a/physx/source/physx/src/windows/NpWindowsDelayLoadHook.cpp +++ b/physx/source/physx/src/windows/NpWindowsDelayLoadHook.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctBoxController.cpp b/physx/source/physxcharacterkinematic/src/CctBoxController.cpp index c3faa5de8..872f6ed51 100644 --- a/physx/source/physxcharacterkinematic/src/CctBoxController.cpp +++ b/physx/source/physxcharacterkinematic/src/CctBoxController.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctBoxController.h b/physx/source/physxcharacterkinematic/src/CctBoxController.h index adb230674..bfd77cbe0 100644 --- a/physx/source/physxcharacterkinematic/src/CctBoxController.h +++ b/physx/source/physxcharacterkinematic/src/CctBoxController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCapsuleController.cpp b/physx/source/physxcharacterkinematic/src/CctCapsuleController.cpp index 954592b25..944a01be9 100644 --- a/physx/source/physxcharacterkinematic/src/CctCapsuleController.cpp +++ b/physx/source/physxcharacterkinematic/src/CctCapsuleController.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCapsuleController.h b/physx/source/physxcharacterkinematic/src/CctCapsuleController.h index 103258833..c8f20c7cc 100644 --- a/physx/source/physxcharacterkinematic/src/CctCapsuleController.h +++ b/physx/source/physxcharacterkinematic/src/CctCapsuleController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCharacterController.cpp b/physx/source/physxcharacterkinematic/src/CctCharacterController.cpp index 7553b27b1..ebc972ad9 100644 --- a/physx/source/physxcharacterkinematic/src/CctCharacterController.cpp +++ b/physx/source/physxcharacterkinematic/src/CctCharacterController.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCharacterController.h b/physx/source/physxcharacterkinematic/src/CctCharacterController.h index 0cc346765..17e769a98 100644 --- a/physx/source/physxcharacterkinematic/src/CctCharacterController.h +++ b/physx/source/physxcharacterkinematic/src/CctCharacterController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCharacterControllerCallbacks.cpp b/physx/source/physxcharacterkinematic/src/CctCharacterControllerCallbacks.cpp index 8a14164ca..6e2eef651 100644 --- a/physx/source/physxcharacterkinematic/src/CctCharacterControllerCallbacks.cpp +++ b/physx/source/physxcharacterkinematic/src/CctCharacterControllerCallbacks.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.cpp b/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.cpp index f48947fe8..86b6777e5 100644 --- a/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.cpp +++ b/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.h b/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.h index af15ddf39..6e469cca5 100644 --- a/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.h +++ b/physx/source/physxcharacterkinematic/src/CctCharacterControllerManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctController.cpp b/physx/source/physxcharacterkinematic/src/CctController.cpp index 5adda1c24..9174a977e 100644 --- a/physx/source/physxcharacterkinematic/src/CctController.cpp +++ b/physx/source/physxcharacterkinematic/src/CctController.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctController.h b/physx/source/physxcharacterkinematic/src/CctController.h index a83ff718e..72114fd53 100644 --- a/physx/source/physxcharacterkinematic/src/CctController.h +++ b/physx/source/physxcharacterkinematic/src/CctController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctInternalStructs.h b/physx/source/physxcharacterkinematic/src/CctInternalStructs.h index 15d8e00c9..706db9c0a 100644 --- a/physx/source/physxcharacterkinematic/src/CctInternalStructs.h +++ b/physx/source/physxcharacterkinematic/src/CctInternalStructs.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctObstacleContext.cpp b/physx/source/physxcharacterkinematic/src/CctObstacleContext.cpp index f4d670371..9ae34b681 100644 --- a/physx/source/physxcharacterkinematic/src/CctObstacleContext.cpp +++ b/physx/source/physxcharacterkinematic/src/CctObstacleContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctObstacleContext.h b/physx/source/physxcharacterkinematic/src/CctObstacleContext.h index 15bf15dc1..8db5ddecb 100644 --- a/physx/source/physxcharacterkinematic/src/CctObstacleContext.h +++ b/physx/source/physxcharacterkinematic/src/CctObstacleContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptBox.cpp b/physx/source/physxcharacterkinematic/src/CctSweptBox.cpp index b3e9539d8..55c82b6ea 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptBox.cpp +++ b/physx/source/physxcharacterkinematic/src/CctSweptBox.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptBox.h b/physx/source/physxcharacterkinematic/src/CctSweptBox.h index ae35d9150..e88a65b46 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptBox.h +++ b/physx/source/physxcharacterkinematic/src/CctSweptBox.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptCapsule.cpp b/physx/source/physxcharacterkinematic/src/CctSweptCapsule.cpp index afcef5dde..84c5b72ee 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptCapsule.cpp +++ b/physx/source/physxcharacterkinematic/src/CctSweptCapsule.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptCapsule.h b/physx/source/physxcharacterkinematic/src/CctSweptCapsule.h index 60f7a2eb0..7034a62b7 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptCapsule.h +++ b/physx/source/physxcharacterkinematic/src/CctSweptCapsule.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptVolume.cpp b/physx/source/physxcharacterkinematic/src/CctSweptVolume.cpp index 274f6bc41..7d106b109 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptVolume.cpp +++ b/physx/source/physxcharacterkinematic/src/CctSweptVolume.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctSweptVolume.h b/physx/source/physxcharacterkinematic/src/CctSweptVolume.h index a68bf7d07..4fe9894f2 100644 --- a/physx/source/physxcharacterkinematic/src/CctSweptVolume.h +++ b/physx/source/physxcharacterkinematic/src/CctSweptVolume.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcharacterkinematic/src/CctUtils.h b/physx/source/physxcharacterkinematic/src/CctUtils.h index a61c81cee..cee5a3c90 100644 --- a/physx/source/physxcharacterkinematic/src/CctUtils.h +++ b/physx/source/physxcharacterkinematic/src/CctUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcooking/src/Cooking.cpp b/physx/source/physxcooking/src/Cooking.cpp index a53b78160..e1fc7ae77 100644 --- a/physx/source/physxcooking/src/Cooking.cpp +++ b/physx/source/physxcooking/src/Cooking.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcooking/src/Cooking.h b/physx/source/physxcooking/src/Cooking.h index 999358445..fef1f4d44 100644 --- a/physx/source/physxcooking/src/Cooking.h +++ b/physx/source/physxcooking/src/Cooking.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxcooking/src/windows/WindowsCookingDelayLoadHook.cpp b/physx/source/physxcooking/src/windows/WindowsCookingDelayLoadHook.cpp index dde16e22a..0421aa4c2 100644 --- a/physx/source/physxcooking/src/windows/WindowsCookingDelayLoadHook.cpp +++ b/physx/source/physxcooking/src/windows/WindowsCookingDelayLoadHook.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtBroadPhase.cpp b/physx/source/physxextensions/src/ExtBroadPhase.cpp index 5bd215710..6d01e8e1e 100644 --- a/physx/source/physxextensions/src/ExtBroadPhase.cpp +++ b/physx/source/physxextensions/src/ExtBroadPhase.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtCollection.cpp b/physx/source/physxextensions/src/ExtCollection.cpp index 47c257eed..28e9f71a9 100644 --- a/physx/source/physxextensions/src/ExtCollection.cpp +++ b/physx/source/physxextensions/src/ExtCollection.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtConstraintHelper.h b/physx/source/physxextensions/src/ExtConstraintHelper.h index 7e7859480..084338550 100644 --- a/physx/source/physxextensions/src/ExtConstraintHelper.h +++ b/physx/source/physxextensions/src/ExtConstraintHelper.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtContactJoint.cpp b/physx/source/physxextensions/src/ExtContactJoint.cpp index c358b2230..ec6dc6b71 100644 --- a/physx/source/physxextensions/src/ExtContactJoint.cpp +++ b/physx/source/physxextensions/src/ExtContactJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtContactJoint.h b/physx/source/physxextensions/src/ExtContactJoint.h index 9bf13285d..338d386c8 100644 --- a/physx/source/physxextensions/src/ExtContactJoint.h +++ b/physx/source/physxextensions/src/ExtContactJoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtConvexMeshExt.cpp b/physx/source/physxextensions/src/ExtConvexMeshExt.cpp index 74e935b6b..f1a1ce9bd 100644 --- a/physx/source/physxextensions/src/ExtConvexMeshExt.cpp +++ b/physx/source/physxextensions/src/ExtConvexMeshExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtCpuWorkerThread.cpp b/physx/source/physxextensions/src/ExtCpuWorkerThread.cpp index 23ec277e7..4f4c41931 100644 --- a/physx/source/physxextensions/src/ExtCpuWorkerThread.cpp +++ b/physx/source/physxextensions/src/ExtCpuWorkerThread.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtCpuWorkerThread.h b/physx/source/physxextensions/src/ExtCpuWorkerThread.h index fe17a2832..fceded211 100644 --- a/physx/source/physxextensions/src/ExtCpuWorkerThread.h +++ b/physx/source/physxextensions/src/ExtCpuWorkerThread.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtCustomGeometryExt.cpp b/physx/source/physxextensions/src/ExtCustomGeometryExt.cpp index 51a7c98fa..40c4f62f2 100644 --- a/physx/source/physxextensions/src/ExtCustomGeometryExt.cpp +++ b/physx/source/physxextensions/src/ExtCustomGeometryExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtCustomSceneQuerySystem.cpp b/physx/source/physxextensions/src/ExtCustomSceneQuerySystem.cpp index 22974b3a8..215ecf5be 100644 --- a/physx/source/physxextensions/src/ExtCustomSceneQuerySystem.cpp +++ b/physx/source/physxextensions/src/ExtCustomSceneQuerySystem.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtD6Joint.cpp b/physx/source/physxextensions/src/ExtD6Joint.cpp index 8903512ca..eecc990c6 100644 --- a/physx/source/physxextensions/src/ExtD6Joint.cpp +++ b/physx/source/physxextensions/src/ExtD6Joint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -994,7 +994,7 @@ static PxU32 D6JointSolverPrep(Px1DConstraint* constraints, else { if(driving & (1<& samples); @@ -359,6 +361,8 @@ namespace physx PxArray excessList; Cm::BasicRandom rnd; + bool gridResolutionValid = false; + //Output PxArray result; @@ -439,7 +443,7 @@ namespace physx virtual const PxArray& getSampleBarycentrics() const { return barycentricCoordinates; } - virtual void setSamplingRadius(PxReal samplingRadius) { poissonSamplerShared.setSamplingRadius(samplingRadius); } + virtual bool setSamplingRadius(PxReal samplingRadius) { return poissonSamplerShared.setSamplingRadius(samplingRadius); } virtual void addSamples(const PxArray& samples) { poissonSamplerShared.addSamples(samples); } @@ -495,7 +499,7 @@ namespace physx virtual void addSamplesInBox(const PxBounds3& axisAlignedBox, const PxQuat& boxOrientation, bool createVolumeSamples); - virtual void setSamplingRadius(PxReal samplingRadius) { poissonSamplerShared.setSamplingRadius(samplingRadius); } + virtual bool setSamplingRadius(PxReal samplingRadius) { return poissonSamplerShared.setSamplingRadius(samplingRadius); } virtual void addSamples(const PxArray& samples) { poissonSamplerShared.addSamples(samples); } @@ -679,22 +683,41 @@ namespace physx return 0; } - void PoissonSamplerShared::setSamplingRadius(PxReal r) + bool PoissonSamplerShared::setSamplingRadius(PxReal r) { if (r != currentSamplingRadius) { currentSamplingRadius = r; - rebuildSparseGrid(); + return rebuildSparseGrid(); } + return gridResolutionValid; } - void PoissonSamplerShared::rebuildSparseGrid() + bool PoissonSamplerShared::rebuildSparseGrid() { const PxReal dimension = 3.0f; cellSize = (currentSamplingRadius / PxSqrt(dimension)) * 0.9999f; - resolution = Int3(PxMax(1, PxI32(ceilf(size.x / cellSize))), PxMax(1, PxI32(ceilf(size.y / cellSize))), PxMax(1, PxI32(ceilf(size.z / cellSize)))); - PxI32 numCells = resolution.x * resolution.y * resolution.z; + const PxF64 cellsX = PxF64(size.x) / PxF64(cellSize); + const PxF64 cellsY = PxF64(size.y) / PxF64(cellSize); + const PxF64 cellsZ = PxF64(size.z) / PxF64(cellSize); + + resolution = Int3(PxMax(1, PxI32(ceil(cellsX))), PxMax(1, PxI32(ceil(cellsY))), PxMax(1, PxI32(ceil(cellsZ)))); + + const PxF64 numCellsDbl = PxF64(resolution.x) * PxF64(resolution.y) * PxI64(resolution.z); + if (numCellsDbl >= (1u << 31) || + cellsX >= (1u << 31) || + cellsY >= (1u << 31) || + cellsZ >= (1u << 31)) + { + gridResolutionValid = false; + PxGetFoundation().error(physx::PxErrorCode::eINVALID_PARAMETER, PX_FL, "Internal grid resolution of sampler too high. Either a smaller mesh or a bigger radius must be used."); + return false; + } + + gridResolutionValid = true; + + PxU32 numCells = PxU32(resolution.x * resolution.y * resolution.z); occupiedCellBits.clear(); occupiedCellBits.resize((numCells + 32 - 1) / 32, 0); @@ -721,6 +744,8 @@ namespace physx excessList.resize(cumulativeSum); for (PxU32 i = 0; i < result.size(); ++i) postAddPointToSparseGrid(result[i], i); + + return true; } bool PoissonSamplerShared::postAddPointToSparseGrid(const PxVec3& p, PxI32 pointIndex) @@ -1380,11 +1405,16 @@ namespace physx //Use for triangle meshes //https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf - void PxSamplingExt::poissonSample(const PxSimpleTriangleMesh& mesh, PxReal r, PxArray& result, PxReal rVolume, PxArray* triangleIds, PxArray* barycentricCoordinates, + bool PxSamplingExt::poissonSample(const PxSimpleTriangleMesh& mesh, PxReal r, PxArray& result, PxReal rVolume, PxArray* triangleIds, PxArray* barycentricCoordinates, const PxBounds3* axisAlignedBox, const PxQuat* boxOrientation, PxU32 maxNumSamples, PxU32 numSampleAttemptsAroundPoint) { TriangleMeshPoissonSampler sampler(reinterpret_cast(mesh.triangles.data), mesh.triangles.count, reinterpret_cast(mesh.points.data), mesh.points.count, r, numSampleAttemptsAroundPoint, maxNumSamples); + if (!sampler.poissonSamplerShared.gridResolutionValid) + { + return false; + } + PxVec3 center = 0.5f*(sampler.max + sampler.poissonSamplerShared.min); PxReal boundingSphereRadius = 1.001f * (sampler.max - sampler.poissonSamplerShared.min).magnitude() * 0.5f; @@ -1414,9 +1444,11 @@ namespace physx *triangleIds = sampler.getSampleTriangleIds(); if (barycentricCoordinates) *barycentricCoordinates = sampler.getSampleBarycentrics(); + + return true; } - void PxSamplingExt::poissonSample(const PxGeometry& geometry, const PxTransform& transform, const PxBounds3& worldBounds, PxReal r, PxArray& result, PxReal rVolume, + bool PxSamplingExt::poissonSample(const PxGeometry& geometry, const PxTransform& transform, const PxBounds3& worldBounds, PxReal r, PxArray& result, PxReal rVolume, const PxBounds3* axisAlignedBox, const PxQuat* boxOrientation, PxU32 maxNumSamples, PxU32 numSampleAttemptsAroundPoint) { PxVec3 center = worldBounds.getCenter(); @@ -1424,6 +1456,9 @@ namespace physx ShapePoissonSampler sampler(geometry, transform, worldBounds, r, numSampleAttemptsAroundPoint, maxNumSamples); PxReal boundingSphereRadius = 1.001f * worldBounds.getExtents().magnitude(); + if (!sampler.poissonSamplerShared.gridResolutionValid) + return false; + if (axisAlignedBox == NULL || boxOrientation == NULL) { sampler.addSamplesInSphere(center, worldBounds.getExtents().magnitude() * 1.001f, false); @@ -1446,5 +1481,6 @@ namespace physx } result = sampler.getSamples(); + return true; } } diff --git a/physx/source/physxextensions/src/ExtSceneQueryExt.cpp b/physx/source/physxextensions/src/ExtSceneQueryExt.cpp index 022e47c36..7485e8c67 100644 --- a/physx/source/physxextensions/src/ExtSceneQueryExt.cpp +++ b/physx/source/physxextensions/src/ExtSceneQueryExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSceneQuerySystem.cpp b/physx/source/physxextensions/src/ExtSceneQuerySystem.cpp index 08e08d1f2..72dabdabd 100644 --- a/physx/source/physxextensions/src/ExtSceneQuerySystem.cpp +++ b/physx/source/physxextensions/src/ExtSceneQuerySystem.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSerialization.h b/physx/source/physxextensions/src/ExtSerialization.h index c0817550c..ddd26ad7d 100644 --- a/physx/source/physxextensions/src/ExtSerialization.h +++ b/physx/source/physxextensions/src/ExtSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSharedQueueEntryPool.h b/physx/source/physxextensions/src/ExtSharedQueueEntryPool.h index 1002bfbdd..6abf4516e 100644 --- a/physx/source/physxextensions/src/ExtSharedQueueEntryPool.h +++ b/physx/source/physxextensions/src/ExtSharedQueueEntryPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSimpleFactory.cpp b/physx/source/physxextensions/src/ExtSimpleFactory.cpp index 9e31ef51f..6743e66d5 100644 --- a/physx/source/physxextensions/src/ExtSimpleFactory.cpp +++ b/physx/source/physxextensions/src/ExtSimpleFactory.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSmoothNormals.cpp b/physx/source/physxextensions/src/ExtSmoothNormals.cpp index 9b18bb04f..6f861662a 100644 --- a/physx/source/physxextensions/src/ExtSmoothNormals.cpp +++ b/physx/source/physxextensions/src/ExtSmoothNormals.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSoftBodyExt.cpp b/physx/source/physxextensions/src/ExtSoftBodyExt.cpp index 2f9196669..713ee0d76 100644 --- a/physx/source/physxextensions/src/ExtSoftBodyExt.cpp +++ b/physx/source/physxextensions/src/ExtSoftBodyExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSphericalJoint.cpp b/physx/source/physxextensions/src/ExtSphericalJoint.cpp index 0b9547514..13b603223 100644 --- a/physx/source/physxextensions/src/ExtSphericalJoint.cpp +++ b/physx/source/physxextensions/src/ExtSphericalJoint.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSphericalJoint.h b/physx/source/physxextensions/src/ExtSphericalJoint.h index 41c15f052..389cd41c8 100644 --- a/physx/source/physxextensions/src/ExtSphericalJoint.h +++ b/physx/source/physxextensions/src/ExtSphericalJoint.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSqManager.cpp b/physx/source/physxextensions/src/ExtSqManager.cpp index 10604b5a8..c26544568 100644 --- a/physx/source/physxextensions/src/ExtSqManager.cpp +++ b/physx/source/physxextensions/src/ExtSqManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSqManager.h b/physx/source/physxextensions/src/ExtSqManager.h index 21f045b68..83408dd86 100644 --- a/physx/source/physxextensions/src/ExtSqManager.h +++ b/physx/source/physxextensions/src/ExtSqManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSqQuery.cpp b/physx/source/physxextensions/src/ExtSqQuery.cpp index 75d4c4344..b383fbf8b 100644 --- a/physx/source/physxextensions/src/ExtSqQuery.cpp +++ b/physx/source/physxextensions/src/ExtSqQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtSqQuery.h b/physx/source/physxextensions/src/ExtSqQuery.h index c8f1e92ca..1272a5d46 100644 --- a/physx/source/physxextensions/src/ExtSqQuery.h +++ b/physx/source/physxextensions/src/ExtSqQuery.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtTaskQueueHelper.h b/physx/source/physxextensions/src/ExtTaskQueueHelper.h index c420de732..15968541a 100644 --- a/physx/source/physxextensions/src/ExtTaskQueueHelper.h +++ b/physx/source/physxextensions/src/ExtTaskQueueHelper.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtTetMakerExt.cpp b/physx/source/physxextensions/src/ExtTetMakerExt.cpp index cda74f02c..a2ca89401 100644 --- a/physx/source/physxextensions/src/ExtTetMakerExt.cpp +++ b/physx/source/physxextensions/src/ExtTetMakerExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtTetrahedronMeshExt.cpp b/physx/source/physxextensions/src/ExtTetrahedronMeshExt.cpp index 3b0961f07..70ae14560 100644 --- a/physx/source/physxextensions/src/ExtTetrahedronMeshExt.cpp +++ b/physx/source/physxextensions/src/ExtTetrahedronMeshExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/ExtTriangleMeshExt.cpp b/physx/source/physxextensions/src/ExtTriangleMeshExt.cpp index 2995ecf31..02e787151 100644 --- a/physx/source/physxextensions/src/ExtTriangleMeshExt.cpp +++ b/physx/source/physxextensions/src/ExtTriangleMeshExt.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.cpp b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.cpp index 36bf91127..16593f632 100644 --- a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.cpp +++ b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.h b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.h index 333ccfe4c..d3ae58fbf 100644 --- a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.h +++ b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsSampler.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsTypes.h b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsTypes.h index 68ae18dd7..bae41126d 100644 --- a/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsTypes.h +++ b/physx/source/physxextensions/src/omnipvd/OmniPvdPxExtensionsTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Binary/SnBinaryDeserialization.cpp b/physx/source/physxextensions/src/serialization/Binary/SnBinaryDeserialization.cpp index 7eed5294a..cc078a814 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnBinaryDeserialization.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnBinaryDeserialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Binary/SnBinarySerialization.cpp b/physx/source/physxextensions/src/serialization/Binary/SnBinarySerialization.cpp index c958fae3a..97aa320e1 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnBinarySerialization.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnBinarySerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX.cpp index 1889928c0..b0b5a3ea2 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. /* - get rid of STL diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX.h index 9da14dd5c..ced90d859 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_H #define SN_CONVX_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.cpp index a0985a877..c98b29495 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "SnConvX.h" #include "SnConvX_Align.h" diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.h index f8a6a15c1..f552ed86c 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Align.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_ALIGN_H #define SN_CONVX_ALIGN_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Common.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Common.h index 2c1a7ff8c..9c1abab75 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Common.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Common.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_COMMON_H #define SN_CONVX_COMMON_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Convert.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Convert.cpp index 605981838..08145ffbd 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Convert.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Convert.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxErrorCallback.h" #include "extensions/PxDefaultStreams.h" diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Error.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Error.cpp index a76333eb7..bed82fc34 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Error.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Error.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxErrorCallback.h" #include "foundation/PxString.h" diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.cpp index c4ff9960b..892f55787 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxIO.h" #include "foundation/PxMemory.h" diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.h index 4a73964b3..e1081c1fc 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_MetaData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_METADATA_H #define SN_CONVX_METADATA_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.cpp index 3755b71c1..2e600465b 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxIO.h" #include "foundation/PxErrorCallback.h" diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.h index 0be581863..dfbf4ba29 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Output.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_OUTPUT_H #define SN_CONVX_OUTPUT_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.cpp b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.cpp index 1631c4720..e154aa72b 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "SnConvX.h" #include diff --git a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.h b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.h index f00639a30..e0ca9cd2e 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnConvX_Union.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SN_CONVX_UNION_H #define SN_CONVX_UNION_H diff --git a/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.cpp b/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.cpp index 5d331ffc5..80f87b17a 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.cpp +++ b/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.h b/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.h index c06cba91f..472beaf35 100644 --- a/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.h +++ b/physx/source/physxextensions/src/serialization/Binary/SnSerializationContext.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/File/SnFile.h b/physx/source/physxextensions/src/serialization/File/SnFile.h index 4bc7621ac..9fdb8e010 100644 --- a/physx/source/physxextensions/src/serialization/File/SnFile.h +++ b/physx/source/physxextensions/src/serialization/File/SnFile.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/SnSerialUtils.cpp b/physx/source/physxextensions/src/serialization/SnSerialUtils.cpp index 3be6265b8..721fac74d 100644 --- a/physx/source/physxextensions/src/serialization/SnSerialUtils.cpp +++ b/physx/source/physxextensions/src/serialization/SnSerialUtils.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/SnSerialUtils.h b/physx/source/physxextensions/src/serialization/SnSerialUtils.h index 2cb19ab6c..da70cba4a 100644 --- a/physx/source/physxextensions/src/serialization/SnSerialUtils.h +++ b/physx/source/physxextensions/src/serialization/SnSerialUtils.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/SnSerialization.cpp b/physx/source/physxextensions/src/serialization/SnSerialization.cpp index 9ae2bafc5..078b84c53 100644 --- a/physx/source/physxextensions/src/serialization/SnSerialization.cpp +++ b/physx/source/physxextensions/src/serialization/SnSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/SnSerializationRegistry.cpp b/physx/source/physxextensions/src/serialization/SnSerializationRegistry.cpp index 8eb07ceaa..e7de77f18 100644 --- a/physx/source/physxextensions/src/serialization/SnSerializationRegistry.cpp +++ b/physx/source/physxextensions/src/serialization/SnSerializationRegistry.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/SnSerializationRegistry.h b/physx/source/physxextensions/src/serialization/SnSerializationRegistry.h index 47cc28cab..6dc301d6a 100644 --- a/physx/source/physxextensions/src/serialization/SnSerializationRegistry.h +++ b/physx/source/physxextensions/src/serialization/SnSerializationRegistry.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.cpp b/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.cpp index 98548a4f4..d5db23a7d 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.cpp +++ b/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #include "PxMetaDataObjects.h" diff --git a/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.h b/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.h index b8b81f597..5531ca08c 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnJointRepXSerializer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef SN_JOINT_REPX_SERIALIZER_H diff --git a/physx/source/physxextensions/src/serialization/Xml/SnPxStreamOperators.h b/physx/source/physxextensions/src/serialization/Xml/SnPxStreamOperators.h index 546287541..c8db760a9 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnPxStreamOperators.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnPxStreamOperators.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepX1_0Defaults.h b/physx/source/physxextensions/src/serialization/Xml/SnRepX1_0Defaults.h index 06c1b877a..490736224 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepX1_0Defaults.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepX1_0Defaults.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepX3_1Defaults.h b/physx/source/physxextensions/src/serialization/Xml/SnRepX3_1Defaults.h index b43b9a3f0..a78a29cc2 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepX3_1Defaults.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepX3_1Defaults.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepX3_2Defaults.h b/physx/source/physxextensions/src/serialization/Xml/SnRepX3_2Defaults.h index 2f172eebe..7f662be54 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepX3_2Defaults.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepX3_2Defaults.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXCollection.h b/physx/source/physxextensions/src/serialization/Xml/SnRepXCollection.h index 8a1c1290d..2d521ba9b 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXCollection.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXCollection.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.cpp b/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.cpp index cf5d50f22..b4a451afa 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.cpp +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.h b/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.h index f24d4d556..e28217afa 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXCoreSerializer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef SN_REPX_CORE_SERIALIZER_H diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXSerializerImpl.h b/physx/source/physxextensions/src/serialization/Xml/SnRepXSerializerImpl.h index 9bcada78b..4c29ced8d 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXSerializerImpl.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXSerializerImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.cpp b/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.cpp index 60da014b5..d1348e471 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.cpp +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.h b/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.h index d2e3861b8..9b9bcde72 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnRepXUpgrader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnSimpleXmlWriter.h b/physx/source/physxextensions/src/serialization/Xml/SnSimpleXmlWriter.h index 294e94782..bfa1a95ed 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnSimpleXmlWriter.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnSimpleXmlWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlDeserializer.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlDeserializer.h index 702080400..a9eafd851 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlDeserializer.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlDeserializer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlImpl.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlImpl.h index 203d5d419..a15fe54f1 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlImpl.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryAllocator.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryAllocator.h index 9ce2b57ca..a05db28cf 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryAllocator.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryAllocator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPool.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPool.h index 9dbfcd78c..9d360e17e 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPool.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPoolStreams.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPoolStreams.h index 035b2814e..b55e42c69 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPoolStreams.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlMemoryPoolStreams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlReader.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlReader.h index e1992092f..0149f27c6 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlReader.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlReader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlSerialization.cpp b/physx/source/physxextensions/src/serialization/Xml/SnXmlSerialization.cpp index 1f7a9473e..a5344a13b 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlSerialization.cpp +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #include "SnXmlImpl.h" diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlSerializer.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlSerializer.h index 558e10973..86f70f16f 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlSerializer.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlSerializer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlSimpleXmlWriter.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlSimpleXmlWriter.h index b768a7898..31e8afc21 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlSimpleXmlWriter.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlSimpleXmlWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlStringToType.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlStringToType.h index 97d3c8f4d..de140d6c6 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlStringToType.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlStringToType.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorReader.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorReader.h index d2d1ab606..55de5e146 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorReader.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorReader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorWriter.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorWriter.h index b0eb609f2..643f1ad87 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorWriter.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlVisitorWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/serialization/Xml/SnXmlWriter.h b/physx/source/physxextensions/src/serialization/Xml/SnXmlWriter.h index 1cf838861..b6a0cf15c 100644 --- a/physx/source/physxextensions/src/serialization/Xml/SnXmlWriter.h +++ b/physx/source/physxextensions/src/serialization/Xml/SnXmlWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/tet/ExtBVH.cpp b/physx/source/physxextensions/src/tet/ExtBVH.cpp index 6bc70eae1..4607ae126 100644 --- a/physx/source/physxextensions/src/tet/ExtBVH.cpp +++ b/physx/source/physxextensions/src/tet/ExtBVH.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtBVH.h" #include "ExtUtilities.h" diff --git a/physx/source/physxextensions/src/tet/ExtBVH.h b/physx/source/physxextensions/src/tet/ExtBVH.h index 57779652f..1dfe891f6 100644 --- a/physx/source/physxextensions/src/tet/ExtBVH.h +++ b/physx/source/physxextensions/src/tet/ExtBVH.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_BVH_H diff --git a/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.cpp b/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.cpp index 155bf06e9..672967bd0 100644 --- a/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.cpp +++ b/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtDelaunayBoundaryInserter.h" #include "ExtTetSplitting.h" @@ -1179,8 +1179,6 @@ namespace Ext //PX_ASSERT(!(result & PxTriangleMeshAnalysisResult::eMESH_IS_INVALID)); PxArray map; - map.reserve(points.size()); - map.forceSize_Unsafe(points.size()); MeshAnalyzer::mapDuplicatePoints(points, map); for (PxI32 i = 0; i < PxI32(points.size()); ++i) { @@ -1901,6 +1899,9 @@ namespace Ext void generateVoxelTetmesh(const PxBoundedData& inputPointsOrig, const PxBoundedData& inputTets, PxU32 numVoxelsX, PxU32 numVoxelsY, PxU32 numVoxelsZ, PxArray& voxelPoints, PxArray& voxelTets, PxI32* intputPointToOutputTetIndex, const PxU32* anchorNodeIndices) { + if (inputTets.count == 0) + return; //No input, so there is no basis for creating an output + PxU32 xy = numVoxelsX * numVoxelsY; PxVec3 origMin, origMax; @@ -2295,8 +2296,6 @@ namespace Ext PxArray map; - map.reserve(normalizedPoints.size()); - map.forceSize_Unsafe(normalizedPoints.size()); MeshAnalyzer::mapDuplicatePoints(normalizedPoints, map); PxArray mappedTriangles; mappedTriangles.reserve(triangles.count); diff --git a/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.h b/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.h index c8567b753..afc5e8884 100644 --- a/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.h +++ b/physx/source/physxextensions/src/tet/ExtDelaunayBoundaryInserter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_DELAUNAY_BOUNDARY_INSERTER_H #define EXT_DELAUNAY_BOUNDARY_INSERTER_H diff --git a/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.cpp b/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.cpp index 5a2a9d27b..cdecc07f8 100644 --- a/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.cpp +++ b/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtDelaunayTetrahedralizer.h" #include "foundation/PxSort.h" diff --git a/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.h b/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.h index d319d6a10..50246fa91 100644 --- a/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.h +++ b/physx/source/physxextensions/src/tet/ExtDelaunayTetrahedralizer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_DELAUNAY_TETRAHEDRALIZER_H #define EXT_DELAUNAY_TETRAHEDRALIZER_H diff --git a/physx/source/physxextensions/src/tet/ExtFastWindingNumber.cpp b/physx/source/physxextensions/src/tet/ExtFastWindingNumber.cpp index 42d82f7ac..d678fff4a 100644 --- a/physx/source/physxextensions/src/tet/ExtFastWindingNumber.cpp +++ b/physx/source/physxextensions/src/tet/ExtFastWindingNumber.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtFastWindingNumber.h" #include "foundation/PxSort.h" diff --git a/physx/source/physxextensions/src/tet/ExtFastWindingNumber.h b/physx/source/physxextensions/src/tet/ExtFastWindingNumber.h index 3beafa5a2..688c55954 100644 --- a/physx/source/physxextensions/src/tet/ExtFastWindingNumber.h +++ b/physx/source/physxextensions/src/tet/ExtFastWindingNumber.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_FAST_WINDING_NUMBER_H #define EXT_FAST_WINDING_NUMBER_H diff --git a/physx/source/physxextensions/src/tet/ExtInsideTester.cpp b/physx/source/physxextensions/src/tet/ExtInsideTester.cpp index a7c156758..99996b608 100644 --- a/physx/source/physxextensions/src/tet/ExtInsideTester.cpp +++ b/physx/source/physxextensions/src/tet/ExtInsideTester.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtInsideTester.h" diff --git a/physx/source/physxextensions/src/tet/ExtInsideTester.h b/physx/source/physxextensions/src/tet/ExtInsideTester.h index 87af749e1..be6a78fb7 100644 --- a/physx/source/physxextensions/src/tet/ExtInsideTester.h +++ b/physx/source/physxextensions/src/tet/ExtInsideTester.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/tet/ExtMarchingCubesTable.h b/physx/source/physxextensions/src/tet/ExtMarchingCubesTable.h index c7c9f4e58..07ea4de83 100644 --- a/physx/source/physxextensions/src/tet/ExtMarchingCubesTable.h +++ b/physx/source/physxextensions/src/tet/ExtMarchingCubesTable.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_MARCHING_CUBES_TABLE_H #define EXT_MARCHING_CUBES_TABLE_H diff --git a/physx/source/physxextensions/src/tet/ExtMeshSimplificator.cpp b/physx/source/physxextensions/src/tet/ExtMeshSimplificator.cpp index 7e1b3de42..930db6738 100644 --- a/physx/source/physxextensions/src/tet/ExtMeshSimplificator.cpp +++ b/physx/source/physxextensions/src/tet/ExtMeshSimplificator.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtMeshSimplificator.h" #include "foundation/PxSort.h" diff --git a/physx/source/physxextensions/src/tet/ExtMeshSimplificator.h b/physx/source/physxextensions/src/tet/ExtMeshSimplificator.h index c24d63684..c397c400f 100644 --- a/physx/source/physxextensions/src/tet/ExtMeshSimplificator.h +++ b/physx/source/physxextensions/src/tet/ExtMeshSimplificator.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_MESH_SIMPLIFICATOR_H #define EXT_MESH_SIMPLIFICATOR_H diff --git a/physx/source/physxextensions/src/tet/ExtMultiList.h b/physx/source/physxextensions/src/tet/ExtMultiList.h index 726bd54c7..c990fd717 100644 --- a/physx/source/physxextensions/src/tet/ExtMultiList.h +++ b/physx/source/physxextensions/src/tet/ExtMultiList.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.cpp b/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.cpp index ede3c52d8..264e5201d 100644 --- a/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.cpp +++ b/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtOctreeTetrahedralizer.h" diff --git a/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.h b/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.h index 1a2866c83..3d5efd2a6 100644 --- a/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.h +++ b/physx/source/physxextensions/src/tet/ExtOctreeTetrahedralizer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxextensions/src/tet/ExtQuadric.h b/physx/source/physxextensions/src/tet/ExtQuadric.h index 8bfc4912d..b8fa18439 100644 --- a/physx/source/physxextensions/src/tet/ExtQuadric.h +++ b/physx/source/physxextensions/src/tet/ExtQuadric.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_QUADRIC_H #define EXT_QUADRIC_H diff --git a/physx/source/physxextensions/src/tet/ExtRandomAccessHeap.h b/physx/source/physxextensions/src/tet/ExtRandomAccessHeap.h index 3d755808a..5eadb3454 100644 --- a/physx/source/physxextensions/src/tet/ExtRandomAccessHeap.h +++ b/physx/source/physxextensions/src/tet/ExtRandomAccessHeap.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_RANDOM_ACCESS_HEAP_H #define EXT_RANDOM_ACCESS_HEAP_H diff --git a/physx/source/physxextensions/src/tet/ExtRemesher.cpp b/physx/source/physxextensions/src/tet/ExtRemesher.cpp index d2baef21a..269ab7512 100644 --- a/physx/source/physxextensions/src/tet/ExtRemesher.cpp +++ b/physx/source/physxextensions/src/tet/ExtRemesher.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtRemesher.h" #include "ExtBVH.h" diff --git a/physx/source/physxextensions/src/tet/ExtRemesher.h b/physx/source/physxextensions/src/tet/ExtRemesher.h index 2a8d3bc39..a42206eb1 100644 --- a/physx/source/physxextensions/src/tet/ExtRemesher.h +++ b/physx/source/physxextensions/src/tet/ExtRemesher.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_REMESHER_H diff --git a/physx/source/physxextensions/src/tet/ExtTetSplitting.cpp b/physx/source/physxextensions/src/tet/ExtTetSplitting.cpp index 44f746bf1..82d39a9ad 100644 --- a/physx/source/physxextensions/src/tet/ExtTetSplitting.cpp +++ b/physx/source/physxextensions/src/tet/ExtTetSplitting.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtTetSplitting.h" #include "ExtUtilities.h" diff --git a/physx/source/physxextensions/src/tet/ExtTetSplitting.h b/physx/source/physxextensions/src/tet/ExtTetSplitting.h index 4afb01347..3b23bb7fe 100644 --- a/physx/source/physxextensions/src/tet/ExtTetSplitting.h +++ b/physx/source/physxextensions/src/tet/ExtTetSplitting.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_TET_SPLITTING_H #define EXT_TET_SPLITTING_H diff --git a/physx/source/physxextensions/src/tet/ExtTetUnionFind.cpp b/physx/source/physxextensions/src/tet/ExtTetUnionFind.cpp index 51c0dc25b..29114ea1e 100644 --- a/physx/source/physxextensions/src/tet/ExtTetUnionFind.cpp +++ b/physx/source/physxextensions/src/tet/ExtTetUnionFind.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtTetUnionFind.h" diff --git a/physx/source/physxextensions/src/tet/ExtTetUnionFind.h b/physx/source/physxextensions/src/tet/ExtTetUnionFind.h index c5fd30b2d..0de935c25 100644 --- a/physx/source/physxextensions/src/tet/ExtTetUnionFind.h +++ b/physx/source/physxextensions/src/tet/ExtTetUnionFind.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef UNION_FIND_H #define UNION_FIND_H diff --git a/physx/source/physxextensions/src/tet/ExtUtilities.cpp b/physx/source/physxextensions/src/tet/ExtUtilities.cpp index 4d6b8c854..cca0a79c6 100644 --- a/physx/source/physxextensions/src/tet/ExtUtilities.cpp +++ b/physx/source/physxextensions/src/tet/ExtUtilities.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxAssert.h" #include "ExtUtilities.h" diff --git a/physx/source/physxextensions/src/tet/ExtUtilities.h b/physx/source/physxextensions/src/tet/ExtUtilities.h index 0306bd363..8ebf70dca 100644 --- a/physx/source/physxextensions/src/tet/ExtUtilities.h +++ b/physx/source/physxextensions/src/tet/ExtUtilities.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_TET_CPU_BVH_H #define EXT_TET_CPU_BVH_H diff --git a/physx/source/physxextensions/src/tet/ExtVec3.h b/physx/source/physxextensions/src/tet/ExtVec3.h index f2b8bd31f..9331afc26 100644 --- a/physx/source/physxextensions/src/tet/ExtVec3.h +++ b/physx/source/physxextensions/src/tet/ExtVec3.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef EXT_VEC3_H #define EXT_VEC3_H diff --git a/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.cpp b/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.cpp index aecd2d63b..836d052a7 100644 --- a/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.cpp +++ b/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ExtVoxelTetrahedralizer.h" diff --git a/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.h b/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.h index de4e11fac..cfb2a168d 100644 --- a/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.h +++ b/physx/source/physxextensions/src/tet/ExtVoxelTetrahedralizer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxgpu/include/PxPhysXGpu.h b/physx/source/physxgpu/include/PxPhysXGpu.h index 147c3c6a9..4d4ea0ac6 100644 --- a/physx/source/physxgpu/include/PxPhysXGpu.h +++ b/physx/source/physxgpu/include/PxPhysXGpu.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PvdMetaDataDefineProperties.h b/physx/source/physxmetadata/core/include/PvdMetaDataDefineProperties.h index 7c7439432..77325f24f 100644 --- a/physx/source/physxmetadata/core/include/PvdMetaDataDefineProperties.h +++ b/physx/source/physxmetadata/core/include/PvdMetaDataDefineProperties.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PvdMetaDataExtensions.h b/physx/source/physxmetadata/core/include/PvdMetaDataExtensions.h index 4e3499a07..41ba345b2 100644 --- a/physx/source/physxmetadata/core/include/PvdMetaDataExtensions.h +++ b/physx/source/physxmetadata/core/include/PvdMetaDataExtensions.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PvdMetaDataPropertyVisitor.h b/physx/source/physxmetadata/core/include/PvdMetaDataPropertyVisitor.h index 40711f12d..3c732608a 100644 --- a/physx/source/physxmetadata/core/include/PvdMetaDataPropertyVisitor.h +++ b/physx/source/physxmetadata/core/include/PvdMetaDataPropertyVisitor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjectNames.h b/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjectNames.h index 5277ca8fc..b5ecb4ce4 100644 --- a/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjectNames.h +++ b/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjectNames.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjects.h b/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjects.h index 14549f55c..801952652 100644 --- a/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjects.h +++ b/physx/source/physxmetadata/core/include/PxAutoGeneratedMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PxMetaDataCompare.h b/physx/source/physxmetadata/core/include/PxMetaDataCompare.h index e084d7549..79da9ef98 100644 --- a/physx/source/physxmetadata/core/include/PxMetaDataCompare.h +++ b/physx/source/physxmetadata/core/include/PxMetaDataCompare.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PxMetaDataCppPrefix.h b/physx/source/physxmetadata/core/include/PxMetaDataCppPrefix.h index 8019b9fc6..6ecdcfc9f 100644 --- a/physx/source/physxmetadata/core/include/PxMetaDataCppPrefix.h +++ b/physx/source/physxmetadata/core/include/PxMetaDataCppPrefix.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/PxMetaDataObjects.h b/physx/source/physxmetadata/core/include/PxMetaDataObjects.h index 77bbebd18..7a44519f4 100644 --- a/physx/source/physxmetadata/core/include/PxMetaDataObjects.h +++ b/physx/source/physxmetadata/core/include/PxMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/include/RepXMetaDataPropertyVisitor.h b/physx/source/physxmetadata/core/include/RepXMetaDataPropertyVisitor.h index 535224a4e..abff6bb79 100644 --- a/physx/source/physxmetadata/core/include/RepXMetaDataPropertyVisitor.h +++ b/physx/source/physxmetadata/core/include/RepXMetaDataPropertyVisitor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/src/PxAutoGeneratedMetaDataObjects.cpp b/physx/source/physxmetadata/core/src/PxAutoGeneratedMetaDataObjects.cpp index c6b6e0c9d..74a91b0b1 100644 --- a/physx/source/physxmetadata/core/src/PxAutoGeneratedMetaDataObjects.cpp +++ b/physx/source/physxmetadata/core/src/PxAutoGeneratedMetaDataObjects.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/core/src/PxMetaDataObjects.cpp b/physx/source/physxmetadata/core/src/PxMetaDataObjects.cpp index 98b095d41..e309119ba 100644 --- a/physx/source/physxmetadata/core/src/PxMetaDataObjects.cpp +++ b/physx/source/physxmetadata/core/src/PxMetaDataObjects.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjectNames.h b/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjectNames.h index 2d4c00d64..394903434 100644 --- a/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjectNames.h +++ b/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjectNames.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjects.h b/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjects.h index 381b2541b..3d2b8bbe3 100644 --- a/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjects.h +++ b/physx/source/physxmetadata/extensions/include/PxExtensionAutoGeneratedMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/extensions/include/PxExtensionMetaDataObjects.h b/physx/source/physxmetadata/extensions/include/PxExtensionMetaDataObjects.h index 6218d906b..6b86f0f80 100644 --- a/physx/source/physxmetadata/extensions/include/PxExtensionMetaDataObjects.h +++ b/physx/source/physxmetadata/extensions/include/PxExtensionMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxmetadata/extensions/src/PxExtensionAutoGeneratedMetaDataObjects.cpp b/physx/source/physxmetadata/extensions/src/PxExtensionAutoGeneratedMetaDataObjects.cpp index 515f98658..d1c185cf1 100644 --- a/physx/source/physxmetadata/extensions/src/PxExtensionAutoGeneratedMetaDataObjects.cpp +++ b/physx/source/physxmetadata/extensions/src/PxExtensionAutoGeneratedMetaDataObjects.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleComponents.cpp b/physx/source/physxvehicle/src/PxVehicleComponents.cpp index cf50ff307..a116fc11f 100644 --- a/physx/source/physxvehicle/src/PxVehicleComponents.cpp +++ b/physx/source/physxvehicle/src/PxVehicleComponents.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleDrive.cpp b/physx/source/physxvehicle/src/PxVehicleDrive.cpp index 87bb70446..a0bc4f1f2 100644 --- a/physx/source/physxvehicle/src/PxVehicleDrive.cpp +++ b/physx/source/physxvehicle/src/PxVehicleDrive.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleDrive4W.cpp b/physx/source/physxvehicle/src/PxVehicleDrive4W.cpp index d2df9b25f..f2cdb9c10 100644 --- a/physx/source/physxvehicle/src/PxVehicleDrive4W.cpp +++ b/physx/source/physxvehicle/src/PxVehicleDrive4W.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleDriveNW.cpp b/physx/source/physxvehicle/src/PxVehicleDriveNW.cpp index 1d7e2f4bc..0d6082892 100644 --- a/physx/source/physxvehicle/src/PxVehicleDriveNW.cpp +++ b/physx/source/physxvehicle/src/PxVehicleDriveNW.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleDriveTank.cpp b/physx/source/physxvehicle/src/PxVehicleDriveTank.cpp index 8cdb28b33..7a252f590 100644 --- a/physx/source/physxvehicle/src/PxVehicleDriveTank.cpp +++ b/physx/source/physxvehicle/src/PxVehicleDriveTank.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleLinearMath.h b/physx/source/physxvehicle/src/PxVehicleLinearMath.h index c5e6b98b2..a06b5e41f 100644 --- a/physx/source/physxvehicle/src/PxVehicleLinearMath.h +++ b/physx/source/physxvehicle/src/PxVehicleLinearMath.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleMetaData.cpp b/physx/source/physxvehicle/src/PxVehicleMetaData.cpp index 28ae32608..49c8bdf11 100644 --- a/physx/source/physxvehicle/src/PxVehicleMetaData.cpp +++ b/physx/source/physxvehicle/src/PxVehicleMetaData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleNoDrive.cpp b/physx/source/physxvehicle/src/PxVehicleNoDrive.cpp index 6544234be..a1a6219e5 100644 --- a/physx/source/physxvehicle/src/PxVehicleNoDrive.cpp +++ b/physx/source/physxvehicle/src/PxVehicleNoDrive.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSDK.cpp b/physx/source/physxvehicle/src/PxVehicleSDK.cpp index 37b737da1..f74afc481 100644 --- a/physx/source/physxvehicle/src/PxVehicleSDK.cpp +++ b/physx/source/physxvehicle/src/PxVehicleSDK.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSerialization.cpp b/physx/source/physxvehicle/src/PxVehicleSerialization.cpp index 153325cd3..7abbd4fd9 100644 --- a/physx/source/physxvehicle/src/PxVehicleSerialization.cpp +++ b/physx/source/physxvehicle/src/PxVehicleSerialization.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSerialization.h b/physx/source/physxvehicle/src/PxVehicleSerialization.h index 4e6c5042d..046045ed7 100644 --- a/physx/source/physxvehicle/src/PxVehicleSerialization.h +++ b/physx/source/physxvehicle/src/PxVehicleSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSuspLimitConstraintShader.h b/physx/source/physxvehicle/src/PxVehicleSuspLimitConstraintShader.h index 1ebbfb936..761be6891 100644 --- a/physx/source/physxvehicle/src/PxVehicleSuspLimitConstraintShader.h +++ b/physx/source/physxvehicle/src/PxVehicleSuspLimitConstraintShader.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.cpp b/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.cpp index a292cbd6c..af1e4418a 100644 --- a/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.cpp +++ b/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.h b/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.h index 22c3a9903..38d6a8fe6 100644 --- a/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.h +++ b/physx/source/physxvehicle/src/PxVehicleSuspWheelTire4.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleTireFriction.cpp b/physx/source/physxvehicle/src/PxVehicleTireFriction.cpp index e01b51b49..2a2b6d808 100644 --- a/physx/source/physxvehicle/src/PxVehicleTireFriction.cpp +++ b/physx/source/physxvehicle/src/PxVehicleTireFriction.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleUpdate.cpp b/physx/source/physxvehicle/src/PxVehicleUpdate.cpp index ac72a8c21..a8a536ab9 100644 --- a/physx/source/physxvehicle/src/PxVehicleUpdate.cpp +++ b/physx/source/physxvehicle/src/PxVehicleUpdate.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/PxVehicleWheels.cpp b/physx/source/physxvehicle/src/PxVehicleWheels.cpp index 947ea959e..a7538e791 100644 --- a/physx/source/physxvehicle/src/PxVehicleWheels.cpp +++ b/physx/source/physxvehicle/src/PxVehicleWheels.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/VehicleUtilControl.cpp b/physx/source/physxvehicle/src/VehicleUtilControl.cpp index af6b81077..6c17529c5 100644 --- a/physx/source/physxvehicle/src/VehicleUtilControl.cpp +++ b/physx/source/physxvehicle/src/VehicleUtilControl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/VehicleUtilSetup.cpp b/physx/source/physxvehicle/src/VehicleUtilSetup.cpp index 26d4ac8be..e157837ec 100644 --- a/physx/source/physxvehicle/src/VehicleUtilSetup.cpp +++ b/physx/source/physxvehicle/src/VehicleUtilSetup.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/VehicleUtilTelemetry.cpp b/physx/source/physxvehicle/src/VehicleUtilTelemetry.cpp index 87e1b2791..c5ef1b29b 100644 --- a/physx/source/physxvehicle/src/VehicleUtilTelemetry.cpp +++ b/physx/source/physxvehicle/src/VehicleUtilTelemetry.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjectNames.h b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjectNames.h index c78e72fa0..ed5e73dd3 100644 --- a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjectNames.h +++ b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjectNames.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjects.h b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjects.h index aae0283c4..4950fcae6 100644 --- a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjects.h +++ b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleAutoGeneratedMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleMetaDataObjects.h b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleMetaDataObjects.h index 8af6de293..4beb1e9e9 100644 --- a/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleMetaDataObjects.h +++ b/physx/source/physxvehicle/src/physxmetadata/include/PxVehicleMetaDataObjects.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleAutoGeneratedMetaDataObjects.cpp b/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleAutoGeneratedMetaDataObjects.cpp index df6d1ae7a..577dcfcaf 100644 --- a/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleAutoGeneratedMetaDataObjects.cpp +++ b/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleAutoGeneratedMetaDataObjects.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleMetaDataObjects.cpp b/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleMetaDataObjects.cpp index ce615bf6f..4fdfdaaab 100644 --- a/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleMetaDataObjects.cpp +++ b/physx/source/physxvehicle/src/physxmetadata/src/PxVehicleMetaDataObjects.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/commands/VhCommandHelpers.cpp b/physx/source/physxvehicle2/src/commands/VhCommandHelpers.cpp index 3ab3f68ab..432dfe935 100644 --- a/physx/source/physxvehicle2/src/commands/VhCommandHelpers.cpp +++ b/physx/source/physxvehicle2/src/commands/VhCommandHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainFunctions.cpp b/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainFunctions.cpp index 81ac7e46b..50bedc6d9 100644 --- a/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainFunctions.cpp +++ b/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainHelpers.cpp b/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainHelpers.cpp index db4f0744c..38287b2fc 100644 --- a/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainHelpers.cpp +++ b/physx/source/physxvehicle2/src/drivetrain/VhDrivetrainHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxActor/VhPhysXActorFunctions.cpp b/physx/source/physxvehicle2/src/physxActor/VhPhysXActorFunctions.cpp index cb813c131..0d87cf24b 100644 --- a/physx/source/physxvehicle2/src/physxActor/VhPhysXActorFunctions.cpp +++ b/physx/source/physxvehicle2/src/physxActor/VhPhysXActorFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxActor/VhPhysXActorHelpers.cpp b/physx/source/physxvehicle2/src/physxActor/VhPhysXActorHelpers.cpp index 7f8b9d8c9..b63053eea 100644 --- a/physx/source/physxvehicle2/src/physxActor/VhPhysXActorHelpers.cpp +++ b/physx/source/physxvehicle2/src/physxActor/VhPhysXActorHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintFunctions.cpp b/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintFunctions.cpp index e42d38f7c..64199c3b8 100644 --- a/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintFunctions.cpp +++ b/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintHelpers.cpp b/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintHelpers.cpp index 52e65644b..9dd633bbb 100644 --- a/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintHelpers.cpp +++ b/physx/source/physxvehicle2/src/physxConstraints/VhPhysXConstraintHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryFunctions.cpp b/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryFunctions.cpp index 2744bb9ca..d4fcf1fb7 100644 --- a/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryFunctions.cpp +++ b/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryHelpers.cpp b/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryHelpers.cpp index debcad89a..1ebdfe940 100644 --- a/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryHelpers.cpp +++ b/physx/source/physxvehicle2/src/physxRoadGeometry/VhPhysXRoadGeometryHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdAttributeHandles.h b/physx/source/physxvehicle2/src/pvd/VhPvdAttributeHandles.h index da4e3691a..52703c8ca 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdAttributeHandles.h +++ b/physx/source/physxvehicle2/src/pvd/VhPvdAttributeHandles.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdFunctions.cpp b/physx/source/physxvehicle2/src/pvd/VhPvdFunctions.cpp index d2566aaf9..c2b74144d 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdFunctions.cpp +++ b/physx/source/physxvehicle2/src/pvd/VhPvdFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdHelpers.cpp b/physx/source/physxvehicle2/src/pvd/VhPvdHelpers.cpp index 901c0b8b5..7180504e4 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdHelpers.cpp +++ b/physx/source/physxvehicle2/src/pvd/VhPvdHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdObjectHandles.h b/physx/source/physxvehicle2/src/pvd/VhPvdObjectHandles.h index 18cfe277a..cfc984884 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdObjectHandles.h +++ b/physx/source/physxvehicle2/src/pvd/VhPvdObjectHandles.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdWriter.cpp b/physx/source/physxvehicle2/src/pvd/VhPvdWriter.cpp index 24ee68ea5..2f3214dbc 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdWriter.cpp +++ b/physx/source/physxvehicle2/src/pvd/VhPvdWriter.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/pvd/VhPvdWriter.h b/physx/source/physxvehicle2/src/pvd/VhPvdWriter.h index 0e3555840..b998edc07 100644 --- a/physx/source/physxvehicle2/src/pvd/VhPvdWriter.h +++ b/physx/source/physxvehicle2/src/pvd/VhPvdWriter.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/rigidBody/VhRigidBodyFunctions.cpp b/physx/source/physxvehicle2/src/rigidBody/VhRigidBodyFunctions.cpp index 351199faf..ef614db25 100644 --- a/physx/source/physxvehicle2/src/rigidBody/VhRigidBodyFunctions.cpp +++ b/physx/source/physxvehicle2/src/rigidBody/VhRigidBodyFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/steering/VhSteeringFunctions.cpp b/physx/source/physxvehicle2/src/steering/VhSteeringFunctions.cpp index 4af31de54..5d6faee8c 100644 --- a/physx/source/physxvehicle2/src/steering/VhSteeringFunctions.cpp +++ b/physx/source/physxvehicle2/src/steering/VhSteeringFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/suspension/VhSuspensionFunctions.cpp b/physx/source/physxvehicle2/src/suspension/VhSuspensionFunctions.cpp index 33d8d4a38..f9732ec0b 100644 --- a/physx/source/physxvehicle2/src/suspension/VhSuspensionFunctions.cpp +++ b/physx/source/physxvehicle2/src/suspension/VhSuspensionFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/suspension/VhSuspensionHelpers.cpp b/physx/source/physxvehicle2/src/suspension/VhSuspensionHelpers.cpp index 57048be13..930cf8593 100644 --- a/physx/source/physxvehicle2/src/suspension/VhSuspensionHelpers.cpp +++ b/physx/source/physxvehicle2/src/suspension/VhSuspensionHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/tire/VhTireFunctions.cpp b/physx/source/physxvehicle2/src/tire/VhTireFunctions.cpp index 90f5c32a4..f2a5ae3b4 100644 --- a/physx/source/physxvehicle2/src/tire/VhTireFunctions.cpp +++ b/physx/source/physxvehicle2/src/tire/VhTireFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/tire/VhTireHelpers.cpp b/physx/source/physxvehicle2/src/tire/VhTireHelpers.cpp index 01332c8cc..3f77183fe 100644 --- a/physx/source/physxvehicle2/src/tire/VhTireHelpers.cpp +++ b/physx/source/physxvehicle2/src/tire/VhTireHelpers.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/physxvehicle2/src/wheel/VhWheelFunctions.cpp b/physx/source/physxvehicle2/src/wheel/VhWheelFunctions.cpp index 722297b69..651f3d165 100644 --- a/physx/source/physxvehicle2/src/wheel/VhWheelFunctions.cpp +++ b/physx/source/physxvehicle2/src/wheel/VhWheelFunctions.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/include/PsPvd.h b/physx/source/pvd/include/PsPvd.h index 3cf96ecdd..6f2a0509c 100644 --- a/physx/source/pvd/include/PsPvd.h +++ b/physx/source/pvd/include/PsPvd.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/include/PxProfileAllocatorWrapper.h b/physx/source/pvd/include/PxProfileAllocatorWrapper.h index 4b7fc7229..e26181b04 100644 --- a/physx/source/pvd/include/PxProfileAllocatorWrapper.h +++ b/physx/source/pvd/include/PxProfileAllocatorWrapper.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/include/PxPvdClient.h b/physx/source/pvd/include/PxPvdClient.h index 9219db8fc..e71b1243b 100644 --- a/physx/source/pvd/include/PxPvdClient.h +++ b/physx/source/pvd/include/PxPvdClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/include/PxPvdDataStream.h b/physx/source/pvd/include/PxPvdDataStream.h index 5967e8e04..2aa4dabe2 100644 --- a/physx/source/pvd/include/PxPvdDataStream.h +++ b/physx/source/pvd/include/PxPvdDataStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_DATA_STREAM_H #define PX_PVD_DATA_STREAM_H diff --git a/physx/source/pvd/include/PxPvdDataStreamHelpers.h b/physx/source/pvd/include/PxPvdDataStreamHelpers.h index 3487c7ef4..b11ac32eb 100644 --- a/physx/source/pvd/include/PxPvdDataStreamHelpers.h +++ b/physx/source/pvd/include/PxPvdDataStreamHelpers.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_DATA_STREAM_HELPERS_H #define PX_PVD_DATA_STREAM_HELPERS_H diff --git a/physx/source/pvd/include/PxPvdErrorCodes.h b/physx/source/pvd/include/PxPvdErrorCodes.h index 7648ada2f..6d7f706b6 100644 --- a/physx/source/pvd/include/PxPvdErrorCodes.h +++ b/physx/source/pvd/include/PxPvdErrorCodes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_ERROR_CODES_H #define PX_PVD_ERROR_CODES_H diff --git a/physx/source/pvd/include/PxPvdObjectModelBaseTypes.h b/physx/source/pvd/include/PxPvdObjectModelBaseTypes.h index 6b775914d..0c2479f86 100644 --- a/physx/source/pvd/include/PxPvdObjectModelBaseTypes.h +++ b/physx/source/pvd/include/PxPvdObjectModelBaseTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_OBJECT_MODEL_BASE_TYPES_H #define PX_PVD_OBJECT_MODEL_BASE_TYPES_H diff --git a/physx/source/pvd/include/PxPvdUserRenderer.h b/physx/source/pvd/include/PxPvdUserRenderer.h index a61df927d..ae390a199 100644 --- a/physx/source/pvd/include/PxPvdUserRenderer.h +++ b/physx/source/pvd/include/PxPvdUserRenderer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_USER_RENDERER_H #define PX_PVD_USER_RENDERER_H diff --git a/physx/source/pvd/src/PxProfileContextProvider.h b/physx/source/pvd/src/PxProfileContextProvider.h index cf40d7439..fdc841173 100644 --- a/physx/source/pvd/src/PxProfileContextProvider.h +++ b/physx/source/pvd/src/PxProfileContextProvider.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_CONTEXT_PROVIDER_H #define PX_PROFILE_CONTEXT_PROVIDER_H diff --git a/physx/source/pvd/src/PxProfileContextProviderImpl.h b/physx/source/pvd/src/PxProfileContextProviderImpl.h index a49709448..2272b9503 100644 --- a/physx/source/pvd/src/PxProfileContextProviderImpl.h +++ b/physx/source/pvd/src/PxProfileContextProviderImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_CONTEXT_PROVIDER_IMPL_H #define PX_PROFILE_CONTEXT_PROVIDER_IMPL_H diff --git a/physx/source/pvd/src/PxProfileDataBuffer.h b/physx/source/pvd/src/PxProfileDataBuffer.h index 2dbe84ea3..48a9877d3 100644 --- a/physx/source/pvd/src/PxProfileDataBuffer.h +++ b/physx/source/pvd/src/PxProfileDataBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileDataParsing.h b/physx/source/pvd/src/PxProfileDataParsing.h index bd0ab4284..c9bd2386a 100644 --- a/physx/source/pvd/src/PxProfileDataParsing.h +++ b/physx/source/pvd/src/PxProfileDataParsing.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileEventBuffer.h b/physx/source/pvd/src/PxProfileEventBuffer.h index 21a6c7062..735daa377 100644 --- a/physx/source/pvd/src/PxProfileEventBuffer.h +++ b/physx/source/pvd/src/PxProfileEventBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileEventBufferAtomic.h b/physx/source/pvd/src/PxProfileEventBufferAtomic.h index 4a3143338..71a6dce3c 100644 --- a/physx/source/pvd/src/PxProfileEventBufferAtomic.h +++ b/physx/source/pvd/src/PxProfileEventBufferAtomic.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileEventBufferClient.h b/physx/source/pvd/src/PxProfileEventBufferClient.h index 323a03e91..cb7512571 100644 --- a/physx/source/pvd/src/PxProfileEventBufferClient.h +++ b/physx/source/pvd/src/PxProfileEventBufferClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_BUFFER_CLIENT_H #define PX_PROFILE_EVENT_BUFFER_CLIENT_H diff --git a/physx/source/pvd/src/PxProfileEventBufferClientManager.h b/physx/source/pvd/src/PxProfileEventBufferClientManager.h index f4fedc417..b7b708748 100644 --- a/physx/source/pvd/src/PxProfileEventBufferClientManager.h +++ b/physx/source/pvd/src/PxProfileEventBufferClientManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_BUFFER_CLIENT_MANAGER_H #define PX_PROFILE_EVENT_BUFFER_CLIENT_MANAGER_H diff --git a/physx/source/pvd/src/PxProfileEventId.h b/physx/source/pvd/src/PxProfileEventId.h index 921cbf75e..ce8c1901c 100644 --- a/physx/source/pvd/src/PxProfileEventId.h +++ b/physx/source/pvd/src/PxProfileEventId.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_ID_H #define PX_PROFILE_EVENT_ID_H diff --git a/physx/source/pvd/src/PxProfileEventImpl.cpp b/physx/source/pvd/src/PxProfileEventImpl.cpp index 93b1899a7..037ffbb10 100644 --- a/physx/source/pvd/src/PxProfileEventImpl.cpp +++ b/physx/source/pvd/src/PxProfileEventImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxProfileEventBuffer.h" #include "PxProfileZoneImpl.h" diff --git a/physx/source/pvd/src/PxProfileEventMutex.h b/physx/source/pvd/src/PxProfileEventMutex.h index 384503251..580f063dc 100644 --- a/physx/source/pvd/src/PxProfileEventMutex.h +++ b/physx/source/pvd/src/PxProfileEventMutex.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_MUTEX_H #define PX_PROFILE_EVENT_MUTEX_H diff --git a/physx/source/pvd/src/PxProfileEventNames.h b/physx/source/pvd/src/PxProfileEventNames.h index 6177e5faa..808d5716b 100644 --- a/physx/source/pvd/src/PxProfileEventNames.h +++ b/physx/source/pvd/src/PxProfileEventNames.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_NAMES_H #define PX_PROFILE_EVENT_NAMES_H diff --git a/physx/source/pvd/src/PxProfileEventSender.h b/physx/source/pvd/src/PxProfileEventSender.h index ef286ad83..f546667a5 100644 --- a/physx/source/pvd/src/PxProfileEventSender.h +++ b/physx/source/pvd/src/PxProfileEventSender.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENT_SENDER_H #define PX_PROFILE_EVENT_SENDER_H diff --git a/physx/source/pvd/src/PxProfileEventSerialization.h b/physx/source/pvd/src/PxProfileEventSerialization.h index 234d6c574..703ad52cc 100644 --- a/physx/source/pvd/src/PxProfileEventSerialization.h +++ b/physx/source/pvd/src/PxProfileEventSerialization.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileEvents.h b/physx/source/pvd/src/PxProfileEvents.h index 0131b125e..eee550310 100644 --- a/physx/source/pvd/src/PxProfileEvents.h +++ b/physx/source/pvd/src/PxProfileEvents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_EVENTS_H #define PX_PROFILE_EVENTS_H diff --git a/physx/source/pvd/src/PxProfileMemory.h b/physx/source/pvd/src/PxProfileMemory.h index 571e88223..44f9a7cfe 100644 --- a/physx/source/pvd/src/PxProfileMemory.h +++ b/physx/source/pvd/src/PxProfileMemory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileMemoryBuffer.h b/physx/source/pvd/src/PxProfileMemoryBuffer.h index 9aa1bdf55..42db70589 100644 --- a/physx/source/pvd/src/PxProfileMemoryBuffer.h +++ b/physx/source/pvd/src/PxProfileMemoryBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileMemoryEventBuffer.h b/physx/source/pvd/src/PxProfileMemoryEventBuffer.h index 473aa442d..1390718a0 100644 --- a/physx/source/pvd/src/PxProfileMemoryEventBuffer.h +++ b/physx/source/pvd/src/PxProfileMemoryEventBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileMemoryEvents.h b/physx/source/pvd/src/PxProfileMemoryEvents.h index aa88a5eb3..26e846bc7 100644 --- a/physx/source/pvd/src/PxProfileMemoryEvents.h +++ b/physx/source/pvd/src/PxProfileMemoryEvents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileScopedEvent.h b/physx/source/pvd/src/PxProfileScopedEvent.h index 444f8958a..0f925443b 100644 --- a/physx/source/pvd/src/PxProfileScopedEvent.h +++ b/physx/source/pvd/src/PxProfileScopedEvent.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_SCOPED_EVENT_H #define PX_PROFILE_SCOPED_EVENT_H diff --git a/physx/source/pvd/src/PxProfileScopedMutexLock.h b/physx/source/pvd/src/PxProfileScopedMutexLock.h index 35acef6a2..2bf4844b3 100644 --- a/physx/source/pvd/src/PxProfileScopedMutexLock.h +++ b/physx/source/pvd/src/PxProfileScopedMutexLock.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileZoneImpl.h b/physx/source/pvd/src/PxProfileZoneImpl.h index 00527d7f7..b7322dec6 100644 --- a/physx/source/pvd/src/PxProfileZoneImpl.h +++ b/physx/source/pvd/src/PxProfileZoneImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxProfileZoneManager.h b/physx/source/pvd/src/PxProfileZoneManager.h index 3ca658e3e..5d6260d2d 100644 --- a/physx/source/pvd/src/PxProfileZoneManager.h +++ b/physx/source/pvd/src/PxProfileZoneManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PROFILE_ZONE_MANAGER_H #define PX_PROFILE_ZONE_MANAGER_H diff --git a/physx/source/pvd/src/PxProfileZoneManagerImpl.h b/physx/source/pvd/src/PxProfileZoneManagerImpl.h index ac1fe473c..a1f22d078 100644 --- a/physx/source/pvd/src/PxProfileZoneManagerImpl.h +++ b/physx/source/pvd/src/PxProfileZoneManagerImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvd.cpp b/physx/source/pvd/src/PxPvd.cpp index d957854cd..ea7e750a2 100644 --- a/physx/source/pvd/src/PxPvd.cpp +++ b/physx/source/pvd/src/PxPvd.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdBits.h b/physx/source/pvd/src/PxPvdBits.h index 30162194a..20940f40c 100644 --- a/physx/source/pvd/src/PxPvdBits.h +++ b/physx/source/pvd/src/PxPvdBits.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_BITS_H #define PX_PVD_BITS_H diff --git a/physx/source/pvd/src/PxPvdByteStreams.h b/physx/source/pvd/src/PxPvdByteStreams.h index 850cc931b..a5d6c5b12 100644 --- a/physx/source/pvd/src/PxPvdByteStreams.h +++ b/physx/source/pvd/src/PxPvdByteStreams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_BYTE_STREAMS_H #define PX_PVD_BYTE_STREAMS_H diff --git a/physx/source/pvd/src/PxPvdCommStreamEventSink.h b/physx/source/pvd/src/PxPvdCommStreamEventSink.h index bc8ed296a..4500dfa87 100644 --- a/physx/source/pvd/src/PxPvdCommStreamEventSink.h +++ b/physx/source/pvd/src/PxPvdCommStreamEventSink.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_COMM_STREAM_EVENT_SINK_H #define PX_PVD_COMM_STREAM_EVENT_SINK_H diff --git a/physx/source/pvd/src/PxPvdCommStreamEvents.h b/physx/source/pvd/src/PxPvdCommStreamEvents.h index b8f13cd06..bf29cefcc 100644 --- a/physx/source/pvd/src/PxPvdCommStreamEvents.h +++ b/physx/source/pvd/src/PxPvdCommStreamEvents.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_COMM_STREAM_EVENTS_H #define PX_PVD_COMM_STREAM_EVENTS_H diff --git a/physx/source/pvd/src/PxPvdCommStreamTypes.h b/physx/source/pvd/src/PxPvdCommStreamTypes.h index 83e2a11e4..4001c0e24 100644 --- a/physx/source/pvd/src/PxPvdCommStreamTypes.h +++ b/physx/source/pvd/src/PxPvdCommStreamTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_COMM_STREAM_TYPES_H #define PX_PVD_COMM_STREAM_TYPES_H diff --git a/physx/source/pvd/src/PxPvdDataStream.cpp b/physx/source/pvd/src/PxPvdDataStream.cpp index f20b6c0de..81d2e7f6c 100644 --- a/physx/source/pvd/src/PxPvdDataStream.cpp +++ b/physx/source/pvd/src/PxPvdDataStream.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxAssert.h" #include "PxPvdCommStreamEventSink.h" diff --git a/physx/source/pvd/src/PxPvdDefaultFileTransport.cpp b/physx/source/pvd/src/PxPvdDefaultFileTransport.cpp index dd62162da..fdacf7860 100644 --- a/physx/source/pvd/src/PxPvdDefaultFileTransport.cpp +++ b/physx/source/pvd/src/PxPvdDefaultFileTransport.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdDefaultFileTransport.h b/physx/source/pvd/src/PxPvdDefaultFileTransport.h index c905da36f..880da7923 100644 --- a/physx/source/pvd/src/PxPvdDefaultFileTransport.h +++ b/physx/source/pvd/src/PxPvdDefaultFileTransport.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdDefaultSocketTransport.cpp b/physx/source/pvd/src/PxPvdDefaultSocketTransport.cpp index c233befb3..c5ad90884 100644 --- a/physx/source/pvd/src/PxPvdDefaultSocketTransport.cpp +++ b/physx/source/pvd/src/PxPvdDefaultSocketTransport.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdDefaultSocketTransport.h b/physx/source/pvd/src/PxPvdDefaultSocketTransport.h index 677d7c3ff..09932a90c 100644 --- a/physx/source/pvd/src/PxPvdDefaultSocketTransport.h +++ b/physx/source/pvd/src/PxPvdDefaultSocketTransport.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdFoundation.h b/physx/source/pvd/src/PxPvdFoundation.h index a6cdc729e..f75c94cb3 100644 --- a/physx/source/pvd/src/PxPvdFoundation.h +++ b/physx/source/pvd/src/PxPvdFoundation.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_FOUNDATION_H #define PX_PVD_FOUNDATION_H diff --git a/physx/source/pvd/src/PxPvdImpl.cpp b/physx/source/pvd/src/PxPvdImpl.cpp index 5f5a823fb..a511989f0 100644 --- a/physx/source/pvd/src/PxPvdImpl.cpp +++ b/physx/source/pvd/src/PxPvdImpl.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdImpl.h b/physx/source/pvd/src/PxPvdImpl.h index 226f8d38f..2c9533854 100644 --- a/physx/source/pvd/src/PxPvdImpl.h +++ b/physx/source/pvd/src/PxPvdImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdInternalByteStreams.h b/physx/source/pvd/src/PxPvdInternalByteStreams.h index 99ff3fc53..35b045048 100644 --- a/physx/source/pvd/src/PxPvdInternalByteStreams.h +++ b/physx/source/pvd/src/PxPvdInternalByteStreams.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_INTERNAL_BYTE_STREAMS_H #define PX_PVD_INTERNAL_BYTE_STREAMS_H diff --git a/physx/source/pvd/src/PxPvdMarshalling.h b/physx/source/pvd/src/PxPvdMarshalling.h index c533553bb..0ef537379 100644 --- a/physx/source/pvd/src/PxPvdMarshalling.h +++ b/physx/source/pvd/src/PxPvdMarshalling.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_MARSHALLING_H #define PX_PVD_MARSHALLING_H diff --git a/physx/source/pvd/src/PxPvdMemClient.cpp b/physx/source/pvd/src/PxPvdMemClient.cpp index 20b819dd2..189235c6c 100644 --- a/physx/source/pvd/src/PxPvdMemClient.cpp +++ b/physx/source/pvd/src/PxPvdMemClient.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdMemClient.h b/physx/source/pvd/src/PxPvdMemClient.h index d6a730a8f..3f7e2c5ee 100644 --- a/physx/source/pvd/src/PxPvdMemClient.h +++ b/physx/source/pvd/src/PxPvdMemClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdObjectModelInternalTypeDefs.h b/physx/source/pvd/src/PxPvdObjectModelInternalTypeDefs.h index 79ac80dfb..3154e1756 100644 --- a/physx/source/pvd/src/PxPvdObjectModelInternalTypeDefs.h +++ b/physx/source/pvd/src/PxPvdObjectModelInternalTypeDefs.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #define THERE_IS_NO_INCLUDE_GUARD_HERE_FOR_A_REASON diff --git a/physx/source/pvd/src/PxPvdObjectModelInternalTypes.h b/physx/source/pvd/src/PxPvdObjectModelInternalTypes.h index 48ba5c30e..96bb844ae 100644 --- a/physx/source/pvd/src/PxPvdObjectModelInternalTypes.h +++ b/physx/source/pvd/src/PxPvdObjectModelInternalTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_OBJECT_MODEL_INTERNAL_TYPES_H #define PX_PVD_OBJECT_MODEL_INTERNAL_TYPES_H diff --git a/physx/source/pvd/src/PxPvdObjectModelMetaData.cpp b/physx/source/pvd/src/PxPvdObjectModelMetaData.cpp index d0d00b299..dd79a1958 100644 --- a/physx/source/pvd/src/PxPvdObjectModelMetaData.cpp +++ b/physx/source/pvd/src/PxPvdObjectModelMetaData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxPvdObjectModelInternalTypes.h" #include "PxPvdObjectModelMetaData.h" diff --git a/physx/source/pvd/src/PxPvdObjectModelMetaData.h b/physx/source/pvd/src/PxPvdObjectModelMetaData.h index dca3120a1..843fb7cf3 100644 --- a/physx/source/pvd/src/PxPvdObjectModelMetaData.h +++ b/physx/source/pvd/src/PxPvdObjectModelMetaData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_OBJECT_MODEL_METADATA_H #define PX_PVD_OBJECT_MODEL_METADATA_H diff --git a/physx/source/pvd/src/PxPvdObjectRegistrar.cpp b/physx/source/pvd/src/PxPvdObjectRegistrar.cpp index f92aade28..46615ed16 100644 --- a/physx/source/pvd/src/PxPvdObjectRegistrar.cpp +++ b/physx/source/pvd/src/PxPvdObjectRegistrar.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdObjectRegistrar.h b/physx/source/pvd/src/PxPvdObjectRegistrar.h index adf007c29..19c7c3105 100644 --- a/physx/source/pvd/src/PxPvdObjectRegistrar.h +++ b/physx/source/pvd/src/PxPvdObjectRegistrar.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdProfileZone.h b/physx/source/pvd/src/PxPvdProfileZone.h index 3eceb7052..8c9ea85e2 100644 --- a/physx/source/pvd/src/PxPvdProfileZone.h +++ b/physx/source/pvd/src/PxPvdProfileZone.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_PROFILE_ZONE_H #define PX_PVD_PROFILE_ZONE_H diff --git a/physx/source/pvd/src/PxPvdProfileZoneClient.cpp b/physx/source/pvd/src/PxPvdProfileZoneClient.cpp index 214cdeaba..984321364 100644 --- a/physx/source/pvd/src/PxPvdProfileZoneClient.cpp +++ b/physx/source/pvd/src/PxPvdProfileZoneClient.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdProfileZoneClient.h b/physx/source/pvd/src/PxPvdProfileZoneClient.h index 22e2256c7..499ba008d 100644 --- a/physx/source/pvd/src/PxPvdProfileZoneClient.h +++ b/physx/source/pvd/src/PxPvdProfileZoneClient.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/pvd/src/PxPvdUserRenderImpl.h b/physx/source/pvd/src/PxPvdUserRenderImpl.h index a7afab701..592ee40c3 100644 --- a/physx/source/pvd/src/PxPvdUserRenderImpl.h +++ b/physx/source/pvd/src/PxPvdUserRenderImpl.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PVD_USER_RENDER_IMPL_H #define PX_PVD_USER_RENDER_IMPL_H diff --git a/physx/source/pvd/src/PxPvdUserRenderTypes.h b/physx/source/pvd/src/PxPvdUserRenderTypes.h index 4ac42defe..da602de71 100644 --- a/physx/source/pvd/src/PxPvdUserRenderTypes.h +++ b/physx/source/pvd/src/PxPvdUserRenderTypes.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #define THERE_IS_NO_INCLUDE_GUARD_HERE_FOR_A_REASON #ifndef DECLARE_PVD_IMMEDIATE_RENDER_TYPE_NO_COMMA diff --git a/physx/source/pvd/src/PxPvdUserRenderer.cpp b/physx/source/pvd/src/PxPvdUserRenderer.cpp index f5fd5242a..0cf98116a 100644 --- a/physx/source/pvd/src/PxPvdUserRenderer.cpp +++ b/physx/source/pvd/src/PxPvdUserRenderer.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "PxPvdUserRenderImpl.h" #include "PxPvdInternalByteStreams.h" diff --git a/physx/source/scenequery/include/SqFactory.h b/physx/source/scenequery/include/SqFactory.h index 47dd94750..938f64a07 100644 --- a/physx/source/scenequery/include/SqFactory.h +++ b/physx/source/scenequery/include/SqFactory.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/include/SqManager.h b/physx/source/scenequery/include/SqManager.h index a594b4739..97d13b080 100644 --- a/physx/source/scenequery/include/SqManager.h +++ b/physx/source/scenequery/include/SqManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/include/SqPruner.h b/physx/source/scenequery/include/SqPruner.h index 941cce447..17222550b 100644 --- a/physx/source/scenequery/include/SqPruner.h +++ b/physx/source/scenequery/include/SqPruner.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/include/SqPrunerData.h b/physx/source/scenequery/include/SqPrunerData.h index 3bf516a80..eb112ed9d 100644 --- a/physx/source/scenequery/include/SqPrunerData.h +++ b/physx/source/scenequery/include/SqPrunerData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/include/SqQuery.h b/physx/source/scenequery/include/SqQuery.h index 41f7c972c..89fffdc70 100644 --- a/physx/source/scenequery/include/SqQuery.h +++ b/physx/source/scenequery/include/SqQuery.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/include/SqTypedef.h b/physx/source/scenequery/include/SqTypedef.h index e2f664b48..a0fc58ffa 100644 --- a/physx/source/scenequery/include/SqTypedef.h +++ b/physx/source/scenequery/include/SqTypedef.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqCompoundPruner.cpp b/physx/source/scenequery/src/SqCompoundPruner.cpp index 64e4b1f77..350508a13 100644 --- a/physx/source/scenequery/src/SqCompoundPruner.cpp +++ b/physx/source/scenequery/src/SqCompoundPruner.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqCompoundPruner.h b/physx/source/scenequery/src/SqCompoundPruner.h index 930108d49..8e130ae95 100644 --- a/physx/source/scenequery/src/SqCompoundPruner.h +++ b/physx/source/scenequery/src/SqCompoundPruner.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqCompoundPruningPool.cpp b/physx/source/scenequery/src/SqCompoundPruningPool.cpp index be7f4669d..bac3c6366 100644 --- a/physx/source/scenequery/src/SqCompoundPruningPool.cpp +++ b/physx/source/scenequery/src/SqCompoundPruningPool.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqCompoundPruningPool.h b/physx/source/scenequery/src/SqCompoundPruningPool.h index 6656b9246..83b9a6ecb 100644 --- a/physx/source/scenequery/src/SqCompoundPruningPool.h +++ b/physx/source/scenequery/src/SqCompoundPruningPool.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqFactory.cpp b/physx/source/scenequery/src/SqFactory.cpp index 35c02e123..b030bae5c 100644 --- a/physx/source/scenequery/src/SqFactory.cpp +++ b/physx/source/scenequery/src/SqFactory.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqManager.cpp b/physx/source/scenequery/src/SqManager.cpp index a46e3c58c..4f34cb034 100644 --- a/physx/source/scenequery/src/SqManager.cpp +++ b/physx/source/scenequery/src/SqManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/scenequery/src/SqQuery.cpp b/physx/source/scenequery/src/SqQuery.cpp index cd0f57d96..67bbdd54c 100644 --- a/physx/source/scenequery/src/SqQuery.cpp +++ b/physx/source/scenequery/src/SqQuery.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScActorCore.h b/physx/source/simulationcontroller/include/ScActorCore.h index df3742a7b..5f3202f64 100644 --- a/physx/source/simulationcontroller/include/ScActorCore.h +++ b/physx/source/simulationcontroller/include/ScActorCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationAttachmentCore.h b/physx/source/simulationcontroller/include/ScArticulationAttachmentCore.h index afb022adb..f98dc9108 100644 --- a/physx/source/simulationcontroller/include/ScArticulationAttachmentCore.h +++ b/physx/source/simulationcontroller/include/ScArticulationAttachmentCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationCore.h b/physx/source/simulationcontroller/include/ScArticulationCore.h index 41cf3ccfb..04a14df7c 100644 --- a/physx/source/simulationcontroller/include/ScArticulationCore.h +++ b/physx/source/simulationcontroller/include/ScArticulationCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationJointCore.h b/physx/source/simulationcontroller/include/ScArticulationJointCore.h index dbbdd49ea..8acec0de6 100644 --- a/physx/source/simulationcontroller/include/ScArticulationJointCore.h +++ b/physx/source/simulationcontroller/include/ScArticulationJointCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationSensor.h b/physx/source/simulationcontroller/include/ScArticulationSensor.h index ec5aa1fc8..9a37a7968 100644 --- a/physx/source/simulationcontroller/include/ScArticulationSensor.h +++ b/physx/source/simulationcontroller/include/ScArticulationSensor.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationTendonCore.h b/physx/source/simulationcontroller/include/ScArticulationTendonCore.h index f5bcc8f8f..7722edfd8 100644 --- a/physx/source/simulationcontroller/include/ScArticulationTendonCore.h +++ b/physx/source/simulationcontroller/include/ScArticulationTendonCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScArticulationTendonJointCore.h b/physx/source/simulationcontroller/include/ScArticulationTendonJointCore.h index d2060b9a0..a37a55cbd 100644 --- a/physx/source/simulationcontroller/include/ScArticulationTendonJointCore.h +++ b/physx/source/simulationcontroller/include/ScArticulationTendonJointCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScBodyCore.h b/physx/source/simulationcontroller/include/ScBodyCore.h index be604f24b..b23a44a81 100644 --- a/physx/source/simulationcontroller/include/ScBodyCore.h +++ b/physx/source/simulationcontroller/include/ScBodyCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScConstraintCore.h b/physx/source/simulationcontroller/include/ScConstraintCore.h index 3041c5215..a96432736 100644 --- a/physx/source/simulationcontroller/include/ScConstraintCore.h +++ b/physx/source/simulationcontroller/include/ScConstraintCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScFEMClothCore.h b/physx/source/simulationcontroller/include/ScFEMClothCore.h index a209348e5..98dc6d44f 100644 --- a/physx/source/simulationcontroller/include/ScFEMClothCore.h +++ b/physx/source/simulationcontroller/include/ScFEMClothCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScHairSystemCore.h b/physx/source/simulationcontroller/include/ScHairSystemCore.h index eaa3efa33..ab5c51dc8 100644 --- a/physx/source/simulationcontroller/include/ScHairSystemCore.h +++ b/physx/source/simulationcontroller/include/ScHairSystemCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_HAIR_SYSTEM_CORE_H #define SC_HAIR_SYSTEM_CORE_H diff --git a/physx/source/simulationcontroller/include/ScIterators.h b/physx/source/simulationcontroller/include/ScIterators.h index 5003adf04..cb52d83c5 100644 --- a/physx/source/simulationcontroller/include/ScIterators.h +++ b/physx/source/simulationcontroller/include/ScIterators.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -41,6 +41,7 @@ namespace Sc { class ShapeSimBase; class Interaction; + class ActorSim; struct Contact { @@ -70,8 +71,10 @@ namespace Sc { public: Pair() : mIter(NULL, NULL, NULL, 0, 0) {} - Pair(const void*& contactPatches, const void*& contactPoints, const PxU32 /*contactDataSize*/, const PxReal*& forces, PxU32 numContacts, PxU32 numPatches, ShapeSimBase& shape0, ShapeSimBase& shape1); + Pair(const void*& contactPatches, const void*& contactPoints, const PxU32 /*contactDataSize*/, const PxReal*& forces, PxU32 numContacts, PxU32 numPatches, ShapeSimBase& shape0, ShapeSimBase& shape1, ActorSim* actor0, ActorSim* actor1); Contact* getNextContact(); + PxActor* getActor0() { return mActor0; } + PxActor* getActor1() { return mActor1; } private: PxU32 mIndex; @@ -79,13 +82,19 @@ namespace Sc PxContactStreamIterator mIter; const PxReal* mForces; Contact mCurrentContact; + PxActor* mActor0; + PxActor* mActor1; }; ContactIterator() {} - explicit ContactIterator(Interaction** first, Interaction** last, PxsContactManagerOutputIterator& outputs): mCurrent(first), mLast(last), mOffset(0), mOutputs(&outputs) {} - Pair* getNextPair(); - Interaction* getCurrentInteraction() { return *mCurrent; } - + explicit ContactIterator(Interaction** first, Interaction** last, PxsContactManagerOutputIterator& outputs): mCurrent(first), mLast(last), mOffset(0), mOutputs(&outputs) + { + if (!mCurrent) + { + mLast = NULL; + } + } + Pair* getNextPair(); private: Interaction** mCurrent; Interaction** mLast; diff --git a/physx/source/simulationcontroller/include/ScParticleSystemCore.h b/physx/source/simulationcontroller/include/ScParticleSystemCore.h index eb9a3f0ac..f9c051781 100644 --- a/physx/source/simulationcontroller/include/ScParticleSystemCore.h +++ b/physx/source/simulationcontroller/include/ScParticleSystemCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScPhysics.h b/physx/source/simulationcontroller/include/ScPhysics.h index 79eedc52d..d755bdb1f 100644 --- a/physx/source/simulationcontroller/include/ScPhysics.h +++ b/physx/source/simulationcontroller/include/ScPhysics.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScRigidCore.h b/physx/source/simulationcontroller/include/ScRigidCore.h index a7c49dc02..731db150d 100644 --- a/physx/source/simulationcontroller/include/ScRigidCore.h +++ b/physx/source/simulationcontroller/include/ScRigidCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScScene.h b/physx/source/simulationcontroller/include/ScScene.h index 3488a92ed..4708319ae 100644 --- a/physx/source/simulationcontroller/include/ScScene.h +++ b/physx/source/simulationcontroller/include/ScScene.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScShapeCore.h b/physx/source/simulationcontroller/include/ScShapeCore.h index e73484b04..6eff5b4f2 100644 --- a/physx/source/simulationcontroller/include/ScShapeCore.h +++ b/physx/source/simulationcontroller/include/ScShapeCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScSoftBodyCore.h b/physx/source/simulationcontroller/include/ScSoftBodyCore.h index c940cafb9..d2c47f47a 100644 --- a/physx/source/simulationcontroller/include/ScSoftBodyCore.h +++ b/physx/source/simulationcontroller/include/ScSoftBodyCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScSqBoundsSync.h b/physx/source/simulationcontroller/include/ScSqBoundsSync.h index 285b1f2da..05eebf9f6 100644 --- a/physx/source/simulationcontroller/include/ScSqBoundsSync.h +++ b/physx/source/simulationcontroller/include/ScSqBoundsSync.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/include/ScStaticCore.h b/physx/source/simulationcontroller/include/ScStaticCore.h index 178e8c465..9804a33c4 100644 --- a/physx/source/simulationcontroller/include/ScStaticCore.h +++ b/physx/source/simulationcontroller/include/ScStaticCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScActorCore.cpp b/physx/source/simulationcontroller/src/ScActorCore.cpp index 1bbfbbb6a..ac063f347 100644 --- a/physx/source/simulationcontroller/src/ScActorCore.cpp +++ b/physx/source/simulationcontroller/src/ScActorCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScActorPair.h b/physx/source/simulationcontroller/src/ScActorPair.h index be9051477..886f652fc 100644 --- a/physx/source/simulationcontroller/src/ScActorPair.h +++ b/physx/source/simulationcontroller/src/ScActorPair.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScActorSim.cpp b/physx/source/simulationcontroller/src/ScActorSim.cpp index ba6dcd39e..8f6977cee 100644 --- a/physx/source/simulationcontroller/src/ScActorSim.cpp +++ b/physx/source/simulationcontroller/src/ScActorSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScActorSim.h b/physx/source/simulationcontroller/src/ScActorSim.h index a8028c8bf..7f113c0a2 100644 --- a/physx/source/simulationcontroller/src/ScActorSim.h +++ b/physx/source/simulationcontroller/src/ScActorSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationCore.cpp b/physx/source/simulationcontroller/src/ScArticulationCore.cpp index d7f781afa..67d7ccbc4 100644 --- a/physx/source/simulationcontroller/src/ScArticulationCore.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationJointCore.cpp b/physx/source/simulationcontroller/src/ScArticulationJointCore.cpp index 13df71ddf..f02cb7a02 100644 --- a/physx/source/simulationcontroller/src/ScArticulationJointCore.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationJointCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationJointSim.cpp b/physx/source/simulationcontroller/src/ScArticulationJointSim.cpp index 1721d3c97..141f41484 100644 --- a/physx/source/simulationcontroller/src/ScArticulationJointSim.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationJointSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationJointSim.h b/physx/source/simulationcontroller/src/ScArticulationJointSim.h index 24efc6bab..2569795b5 100644 --- a/physx/source/simulationcontroller/src/ScArticulationJointSim.h +++ b/physx/source/simulationcontroller/src/ScArticulationJointSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationSensorSim.cpp b/physx/source/simulationcontroller/src/ScArticulationSensorSim.cpp index f8ed94132..67adb00c6 100644 --- a/physx/source/simulationcontroller/src/ScArticulationSensorSim.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationSensorSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationSensorSim.h b/physx/source/simulationcontroller/src/ScArticulationSensorSim.h index c9c1653fb..576dec590 100644 --- a/physx/source/simulationcontroller/src/ScArticulationSensorSim.h +++ b/physx/source/simulationcontroller/src/ScArticulationSensorSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationSim.cpp b/physx/source/simulationcontroller/src/ScArticulationSim.cpp index a42d08fb6..dbe104787 100644 --- a/physx/source/simulationcontroller/src/ScArticulationSim.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationSim.h b/physx/source/simulationcontroller/src/ScArticulationSim.h index 079b429c5..1fa16dc70 100644 --- a/physx/source/simulationcontroller/src/ScArticulationSim.h +++ b/physx/source/simulationcontroller/src/ScArticulationSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationTendonCore.cpp b/physx/source/simulationcontroller/src/ScArticulationTendonCore.cpp index 94666cb6e..7e5df5f10 100644 --- a/physx/source/simulationcontroller/src/ScArticulationTendonCore.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationTendonCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationTendonJointCore.cpp b/physx/source/simulationcontroller/src/ScArticulationTendonJointCore.cpp index 7776b6a05..f38892c37 100644 --- a/physx/source/simulationcontroller/src/ScArticulationTendonJointCore.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationTendonJointCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationTendonSim.cpp b/physx/source/simulationcontroller/src/ScArticulationTendonSim.cpp index 4cf3e37f7..1113a0a44 100644 --- a/physx/source/simulationcontroller/src/ScArticulationTendonSim.cpp +++ b/physx/source/simulationcontroller/src/ScArticulationTendonSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScArticulationTendonSim.h b/physx/source/simulationcontroller/src/ScArticulationTendonSim.h index 274c442ae..31cd8e7b4 100644 --- a/physx/source/simulationcontroller/src/ScArticulationTendonSim.h +++ b/physx/source/simulationcontroller/src/ScArticulationTendonSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScBodyCore.cpp b/physx/source/simulationcontroller/src/ScBodyCore.cpp index 73e8b326a..8d3e55402 100644 --- a/physx/source/simulationcontroller/src/ScBodyCore.cpp +++ b/physx/source/simulationcontroller/src/ScBodyCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScBodySim.cpp b/physx/source/simulationcontroller/src/ScBodySim.cpp index a688e8762..d895d10fc 100644 --- a/physx/source/simulationcontroller/src/ScBodySim.cpp +++ b/physx/source/simulationcontroller/src/ScBodySim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScBodySim.h b/physx/source/simulationcontroller/src/ScBodySim.h index 7b47ea584..d00841002 100644 --- a/physx/source/simulationcontroller/src/ScBodySim.h +++ b/physx/source/simulationcontroller/src/ScBodySim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScCCD.cpp b/physx/source/simulationcontroller/src/ScCCD.cpp index 3f15d46ed..606559596 100644 --- a/physx/source/simulationcontroller/src/ScCCD.cpp +++ b/physx/source/simulationcontroller/src/ScCCD.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintCore.cpp b/physx/source/simulationcontroller/src/ScConstraintCore.cpp index 76200ddbd..b5294af8c 100644 --- a/physx/source/simulationcontroller/src/ScConstraintCore.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintGroupNode.cpp b/physx/source/simulationcontroller/src/ScConstraintGroupNode.cpp index ca11eb4bc..68598c22e 100644 --- a/physx/source/simulationcontroller/src/ScConstraintGroupNode.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintGroupNode.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintGroupNode.h b/physx/source/simulationcontroller/src/ScConstraintGroupNode.h index 235d37309..ba755a5c3 100644 --- a/physx/source/simulationcontroller/src/ScConstraintGroupNode.h +++ b/physx/source/simulationcontroller/src/ScConstraintGroupNode.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintInteraction.cpp b/physx/source/simulationcontroller/src/ScConstraintInteraction.cpp index 433614e1a..cf51bdf63 100644 --- a/physx/source/simulationcontroller/src/ScConstraintInteraction.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintInteraction.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintInteraction.h b/physx/source/simulationcontroller/src/ScConstraintInteraction.h index f5f4d9903..fcafc56db 100644 --- a/physx/source/simulationcontroller/src/ScConstraintInteraction.h +++ b/physx/source/simulationcontroller/src/ScConstraintInteraction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintProjectionManager.cpp b/physx/source/simulationcontroller/src/ScConstraintProjectionManager.cpp index f6598ee9a..c81d495c4 100644 --- a/physx/source/simulationcontroller/src/ScConstraintProjectionManager.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintProjectionManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintProjectionManager.h b/physx/source/simulationcontroller/src/ScConstraintProjectionManager.h index cf878e5a3..387a12714 100644 --- a/physx/source/simulationcontroller/src/ScConstraintProjectionManager.h +++ b/physx/source/simulationcontroller/src/ScConstraintProjectionManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintProjectionTree.cpp b/physx/source/simulationcontroller/src/ScConstraintProjectionTree.cpp index e6953fb25..4e3ebd272 100644 --- a/physx/source/simulationcontroller/src/ScConstraintProjectionTree.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintProjectionTree.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintProjectionTree.h b/physx/source/simulationcontroller/src/ScConstraintProjectionTree.h index 63eb4caa5..d592c052f 100644 --- a/physx/source/simulationcontroller/src/ScConstraintProjectionTree.h +++ b/physx/source/simulationcontroller/src/ScConstraintProjectionTree.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintSim.cpp b/physx/source/simulationcontroller/src/ScConstraintSim.cpp index 13ae56a61..cba1741b6 100644 --- a/physx/source/simulationcontroller/src/ScConstraintSim.cpp +++ b/physx/source/simulationcontroller/src/ScConstraintSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScConstraintSim.h b/physx/source/simulationcontroller/src/ScConstraintSim.h index 6e1c170c1..6f20e1ec5 100644 --- a/physx/source/simulationcontroller/src/ScConstraintSim.h +++ b/physx/source/simulationcontroller/src/ScConstraintSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScContactReportBuffer.h b/physx/source/simulationcontroller/src/ScContactReportBuffer.h index 2d61fdda4..7fea42058 100644 --- a/physx/source/simulationcontroller/src/ScContactReportBuffer.h +++ b/physx/source/simulationcontroller/src/ScContactReportBuffer.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScContactStream.h b/physx/source/simulationcontroller/src/ScContactStream.h index 3e703a5d3..e1887fc94 100644 --- a/physx/source/simulationcontroller/src/ScContactStream.h +++ b/physx/source/simulationcontroller/src/ScContactStream.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScElementInteractionMarker.cpp b/physx/source/simulationcontroller/src/ScElementInteractionMarker.cpp index 7edf48bbc..8752aa386 100644 --- a/physx/source/simulationcontroller/src/ScElementInteractionMarker.cpp +++ b/physx/source/simulationcontroller/src/ScElementInteractionMarker.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScElementInteractionMarker.h b/physx/source/simulationcontroller/src/ScElementInteractionMarker.h index 89799c508..ef1df77ca 100644 --- a/physx/source/simulationcontroller/src/ScElementInteractionMarker.h +++ b/physx/source/simulationcontroller/src/ScElementInteractionMarker.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScElementSim.cpp b/physx/source/simulationcontroller/src/ScElementSim.cpp index 09d2b83a6..34280bf7c 100644 --- a/physx/source/simulationcontroller/src/ScElementSim.cpp +++ b/physx/source/simulationcontroller/src/ScElementSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScElementSim.h b/physx/source/simulationcontroller/src/ScElementSim.h index ace157bfd..39ce0c306 100644 --- a/physx/source/simulationcontroller/src/ScElementSim.h +++ b/physx/source/simulationcontroller/src/ScElementSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScElementSimInteraction.h b/physx/source/simulationcontroller/src/ScElementSimInteraction.h index 1a548beec..2edb19057 100644 --- a/physx/source/simulationcontroller/src/ScElementSimInteraction.h +++ b/physx/source/simulationcontroller/src/ScElementSimInteraction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScFEMClothCore.cpp b/physx/source/simulationcontroller/src/ScFEMClothCore.cpp index 5455e3ffd..337c1bca6 100644 --- a/physx/source/simulationcontroller/src/ScFEMClothCore.cpp +++ b/physx/source/simulationcontroller/src/ScFEMClothCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScFEMClothShapeSim.cpp b/physx/source/simulationcontroller/src/ScFEMClothShapeSim.cpp index 0daeb2d5f..d0881266b 100644 --- a/physx/source/simulationcontroller/src/ScFEMClothShapeSim.cpp +++ b/physx/source/simulationcontroller/src/ScFEMClothShapeSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScFEMClothShapeSim.h b/physx/source/simulationcontroller/src/ScFEMClothShapeSim.h index b2a7f5d14..235537282 100644 --- a/physx/source/simulationcontroller/src/ScFEMClothShapeSim.h +++ b/physx/source/simulationcontroller/src/ScFEMClothShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PHYSICS_FEMCLOTH_SHAPE_SIM #define PX_PHYSICS_FEMCLOTH_SHAPE_SIM diff --git a/physx/source/simulationcontroller/src/ScFEMClothSim.cpp b/physx/source/simulationcontroller/src/ScFEMClothSim.cpp index 9a2835ba7..eff0c834f 100644 --- a/physx/source/simulationcontroller/src/ScFEMClothSim.cpp +++ b/physx/source/simulationcontroller/src/ScFEMClothSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScFEMClothSim.h b/physx/source/simulationcontroller/src/ScFEMClothSim.h index 6ed01e91f..c9636b1c3 100644 --- a/physx/source/simulationcontroller/src/ScFEMClothSim.h +++ b/physx/source/simulationcontroller/src/ScFEMClothSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef PX_PHYSICS_FEMCLOTH_SIM #define PX_PHYSICS_FEMCLOTH_SIM diff --git a/physx/source/simulationcontroller/src/ScHairSystemCore.cpp b/physx/source/simulationcontroller/src/ScHairSystemCore.cpp index c5fe4e941..6217b1ac9 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemCore.cpp +++ b/physx/source/simulationcontroller/src/ScHairSystemCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScHairSystemShapeCore.cpp b/physx/source/simulationcontroller/src/ScHairSystemShapeCore.cpp index 862f59864..9457dc50b 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemShapeCore.cpp +++ b/physx/source/simulationcontroller/src/ScHairSystemShapeCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScHairSystemShapeCore.h b/physx/source/simulationcontroller/src/ScHairSystemShapeCore.h index 0114a2314..02e70418b 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemShapeCore.h +++ b/physx/source/simulationcontroller/src/ScHairSystemShapeCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_HAIRSYSTEM_SHAPECORE_H #define SC_HAIRSYSTEM_SHAPECORE_H diff --git a/physx/source/simulationcontroller/src/ScHairSystemShapeSim.cpp b/physx/source/simulationcontroller/src/ScHairSystemShapeSim.cpp index bcfc677fc..feb896425 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemShapeSim.cpp +++ b/physx/source/simulationcontroller/src/ScHairSystemShapeSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScHairSystemShapeSim.h b/physx/source/simulationcontroller/src/ScHairSystemShapeSim.h index 7cb640cee..9577ba237 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemShapeSim.h +++ b/physx/source/simulationcontroller/src/ScHairSystemShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_HAIRSYSTEM_SHAPE_SIM_H #define SC_HAIRSYSTEM_SHAPE_SIM_H diff --git a/physx/source/simulationcontroller/src/ScHairSystemSim.cpp b/physx/source/simulationcontroller/src/ScHairSystemSim.cpp index 112ddd424..7625405ea 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemSim.cpp +++ b/physx/source/simulationcontroller/src/ScHairSystemSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScHairSystemSim.h b/physx/source/simulationcontroller/src/ScHairSystemSim.h index 838e6baed..98301fb2e 100644 --- a/physx/source/simulationcontroller/src/ScHairSystemSim.h +++ b/physx/source/simulationcontroller/src/ScHairSystemSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_HAIR_SYSTEM_SIM_H #define SC_HAIR_SYSTEM_SIM_H diff --git a/physx/source/simulationcontroller/src/ScInteraction.cpp b/physx/source/simulationcontroller/src/ScInteraction.cpp index 191e3fa84..caa138d0c 100644 --- a/physx/source/simulationcontroller/src/ScInteraction.cpp +++ b/physx/source/simulationcontroller/src/ScInteraction.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScInteraction.h b/physx/source/simulationcontroller/src/ScInteraction.h index d62268970..27a3165b9 100644 --- a/physx/source/simulationcontroller/src/ScInteraction.h +++ b/physx/source/simulationcontroller/src/ScInteraction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScInteractionFlags.h b/physx/source/simulationcontroller/src/ScInteractionFlags.h index 09f01649e..1d0034461 100644 --- a/physx/source/simulationcontroller/src/ScInteractionFlags.h +++ b/physx/source/simulationcontroller/src/ScInteractionFlags.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScIterators.cpp b/physx/source/simulationcontroller/src/ScIterators.cpp index 39eebe6e7..c2674c39c 100644 --- a/physx/source/simulationcontroller/src/ScIterators.cpp +++ b/physx/source/simulationcontroller/src/ScIterators.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -37,11 +37,13 @@ using namespace physx; /////////////////////////////////////////////////////////////////////////////// Sc::ContactIterator::Pair::Pair(const void*& contactPatches, const void*& contactPoints, PxU32 /*contactDataSize*/, const PxReal*& forces, PxU32 numContacts, PxU32 numPatches, - ShapeSimBase& shape0, ShapeSimBase& shape1) + ShapeSimBase& shape0, ShapeSimBase& shape1, ActorSim* actor0, ActorSim* actor1) : mIndex(0) , mNumContacts(numContacts) , mIter(reinterpret_cast(contactPatches), reinterpret_cast(contactPoints), reinterpret_cast(forces + numContacts), numPatches, numContacts) , mForces(forces) +, mActor0(actor0->getPxActor()) +, mActor1(actor1->getPxActor()) { mCurrentContact.shape0 = shape0.getPxShape(); mCurrentContact.shape1 = shape1.getPxShape(); @@ -50,6 +52,7 @@ Sc::ContactIterator::Pair::Pair(const void*& contactPatches, const void*& contac Sc::ContactIterator::Pair* Sc::ContactIterator::getNextPair() { + PX_ASSERT(mCurrent || (mCurrent == mLast)); if(mCurrent < mLast) { ShapeInteraction* si = static_cast(*mCurrent); @@ -68,7 +71,7 @@ Sc::ContactIterator::Pair* Sc::ContactIterator::getNextPair() else mOffset = nextOffset; - mCurrentPair = Pair(contactPatches, contactPoints, contactDataSize, forces, numContacts, numPatches, si->getShape0(), si->getShape1()); + mCurrentPair = Pair(contactPatches, contactPoints, contactDataSize, forces, numContacts, numPatches, si->getShape0(), si->getShape1(), &si->getActorSim0(), &si->getActorSim1()); return &mCurrentPair; } else diff --git a/physx/source/simulationcontroller/src/ScMetaData.cpp b/physx/source/simulationcontroller/src/ScMetaData.cpp index 9928501b1..a4c0fb365 100644 --- a/physx/source/simulationcontroller/src/ScMetaData.cpp +++ b/physx/source/simulationcontroller/src/ScMetaData.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScNPhaseCore.cpp b/physx/source/simulationcontroller/src/ScNPhaseCore.cpp index 030f29617..2bfbb856a 100644 --- a/physx/source/simulationcontroller/src/ScNPhaseCore.cpp +++ b/physx/source/simulationcontroller/src/ScNPhaseCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. @@ -698,6 +698,16 @@ void NPhaseCore::runOverlapFilters( PxU32 nbToProcess, const Bp::AABBOverlap* PX PX_ASSERT(e0); PX_ASSERT(e1); + + // PT: a bit of defensive coding added for OM-74224. In theory this should not be needed, as the broadphase is not + // supposed to return null pointers here. But there seems to be an issue somewhere, most probably in the GPU BP kernels, + // and this is an attempt at preventing a crash. We could/should remove this eventually. + if(!e0 || !e1) + { + PxGetFoundation().error(PxErrorCode::eINTERNAL_ERROR, PX_FL, "NPhaseCore::runOverlapFilters: found null elements!"); + continue; + } + PX_ASSERT(!findInteraction(e0, e1)); ShapeSimBase* s0 = static_cast(e0); diff --git a/physx/source/simulationcontroller/src/ScNPhaseCore.h b/physx/source/simulationcontroller/src/ScNPhaseCore.h index 7131110c4..e5272b26a 100644 --- a/physx/source/simulationcontroller/src/ScNPhaseCore.h +++ b/physx/source/simulationcontroller/src/ScNPhaseCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScObjectIDTracker.h b/physx/source/simulationcontroller/src/ScObjectIDTracker.h index db4f5dbe5..d57c82196 100644 --- a/physx/source/simulationcontroller/src/ScObjectIDTracker.h +++ b/physx/source/simulationcontroller/src/ScObjectIDTracker.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScParticleSystemCore.cpp b/physx/source/simulationcontroller/src/ScParticleSystemCore.cpp index 751b37dcd..6fe9596df 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemCore.cpp +++ b/physx/source/simulationcontroller/src/ScParticleSystemCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.cpp b/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.cpp index 08fb4684d..963b91683 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.cpp +++ b/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.h b/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.h index 286a55a5f..fa41bbcb6 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.h +++ b/physx/source/simulationcontroller/src/ScParticleSystemShapeCore.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_PARTICLESYSTEM_SHAPECORE_H #define SC_PARTICLESYSTEM_SHAPECORE_H diff --git a/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.cpp b/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.cpp index 80f11e2f9..3b1ae81f3 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.cpp +++ b/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.h b/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.h index c24ed8157..7212d58ac 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.h +++ b/physx/source/simulationcontroller/src/ScParticleSystemShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_PARTICLESYSTEM_SHAPE_SIM_H #define SC_PARTICLESYSTEM_SHAPE_SIM_H diff --git a/physx/source/simulationcontroller/src/ScParticleSystemSim.cpp b/physx/source/simulationcontroller/src/ScParticleSystemSim.cpp index a16664072..08baaebe8 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemSim.cpp +++ b/physx/source/simulationcontroller/src/ScParticleSystemSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScParticleSystemSim.h b/physx/source/simulationcontroller/src/ScParticleSystemSim.h index 48787aeaf..ace0669cf 100644 --- a/physx/source/simulationcontroller/src/ScParticleSystemSim.h +++ b/physx/source/simulationcontroller/src/ScParticleSystemSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_PARTICLESYSTEM_SIM_H #define SC_PARTICLESYSTEM_SIM_H diff --git a/physx/source/simulationcontroller/src/ScPhysics.cpp b/physx/source/simulationcontroller/src/ScPhysics.cpp index ec10ebdf3..7794d4729 100644 --- a/physx/source/simulationcontroller/src/ScPhysics.cpp +++ b/physx/source/simulationcontroller/src/ScPhysics.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScRigidCore.cpp b/physx/source/simulationcontroller/src/ScRigidCore.cpp index 93216bec6..66d9b4ec8 100644 --- a/physx/source/simulationcontroller/src/ScRigidCore.cpp +++ b/physx/source/simulationcontroller/src/ScRigidCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScRigidSim.cpp b/physx/source/simulationcontroller/src/ScRigidSim.cpp index 0ea1461d2..35d5ed315 100644 --- a/physx/source/simulationcontroller/src/ScRigidSim.cpp +++ b/physx/source/simulationcontroller/src/ScRigidSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScRigidSim.h b/physx/source/simulationcontroller/src/ScRigidSim.h index 0a2d9ca64..cd3e3a1a7 100644 --- a/physx/source/simulationcontroller/src/ScRigidSim.h +++ b/physx/source/simulationcontroller/src/ScRigidSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScScene.cpp b/physx/source/simulationcontroller/src/ScScene.cpp index e499d68c1..c09cd9922 100644 --- a/physx/source/simulationcontroller/src/ScScene.cpp +++ b/physx/source/simulationcontroller/src/ScScene.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeCore.cpp b/physx/source/simulationcontroller/src/ScShapeCore.cpp index 79f930a50..ede428e41 100644 --- a/physx/source/simulationcontroller/src/ScShapeCore.cpp +++ b/physx/source/simulationcontroller/src/ScShapeCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeInteraction.cpp b/physx/source/simulationcontroller/src/ScShapeInteraction.cpp index 37476aba7..350d19664 100644 --- a/physx/source/simulationcontroller/src/ScShapeInteraction.cpp +++ b/physx/source/simulationcontroller/src/ScShapeInteraction.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeInteraction.h b/physx/source/simulationcontroller/src/ScShapeInteraction.h index 32fb3d958..f64382965 100644 --- a/physx/source/simulationcontroller/src/ScShapeInteraction.h +++ b/physx/source/simulationcontroller/src/ScShapeInteraction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeSim.cpp b/physx/source/simulationcontroller/src/ScShapeSim.cpp index c7eb75983..088f38218 100644 --- a/physx/source/simulationcontroller/src/ScShapeSim.cpp +++ b/physx/source/simulationcontroller/src/ScShapeSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeSim.h b/physx/source/simulationcontroller/src/ScShapeSim.h index 7e9422ac1..87809a613 100644 --- a/physx/source/simulationcontroller/src/ScShapeSim.h +++ b/physx/source/simulationcontroller/src/ScShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScShapeSimBase.cpp b/physx/source/simulationcontroller/src/ScShapeSimBase.cpp index 62739ee24..c50342282 100644 --- a/physx/source/simulationcontroller/src/ScShapeSimBase.cpp +++ b/physx/source/simulationcontroller/src/ScShapeSimBase.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "ScShapeSimBase.h" #include "ScSqBoundsManager.h" diff --git a/physx/source/simulationcontroller/src/ScShapeSimBase.h b/physx/source/simulationcontroller/src/ScShapeSimBase.h index 0f91617e6..564e4593e 100644 --- a/physx/source/simulationcontroller/src/ScShapeSimBase.h +++ b/physx/source/simulationcontroller/src/ScShapeSimBase.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_SHAPESIM_BASE_H #define SC_SHAPESIM_BASE_H diff --git a/physx/source/simulationcontroller/src/ScSimStateData.h b/physx/source/simulationcontroller/src/ScSimStateData.h index 10fcf5eed..fb7bab3d3 100644 --- a/physx/source/simulationcontroller/src/ScSimStateData.h +++ b/physx/source/simulationcontroller/src/ScSimStateData.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSimStats.cpp b/physx/source/simulationcontroller/src/ScSimStats.cpp index da2e09555..5cdccf90f 100644 --- a/physx/source/simulationcontroller/src/ScSimStats.cpp +++ b/physx/source/simulationcontroller/src/ScSimStats.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSimStats.h b/physx/source/simulationcontroller/src/ScSimStats.h index b6c1f07a5..c7a96ba0c 100644 --- a/physx/source/simulationcontroller/src/ScSimStats.h +++ b/physx/source/simulationcontroller/src/ScSimStats.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSimulationController.cpp b/physx/source/simulationcontroller/src/ScSimulationController.cpp index fafe77925..4a6219bd9 100644 --- a/physx/source/simulationcontroller/src/ScSimulationController.cpp +++ b/physx/source/simulationcontroller/src/ScSimulationController.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSimulationController.h b/physx/source/simulationcontroller/src/ScSimulationController.h index 43fc7be1a..167c1da50 100644 --- a/physx/source/simulationcontroller/src/ScSimulationController.h +++ b/physx/source/simulationcontroller/src/ScSimulationController.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSoftBodyCore.cpp b/physx/source/simulationcontroller/src/ScSoftBodyCore.cpp index 088f735ff..9b4eefe4c 100644 --- a/physx/source/simulationcontroller/src/ScSoftBodyCore.cpp +++ b/physx/source/simulationcontroller/src/ScSoftBodyCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.cpp b/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.cpp index 87581f56b..974c1e5d1 100644 --- a/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.cpp +++ b/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.h b/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.h index e716eacf9..81f9c776d 100644 --- a/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.h +++ b/physx/source/simulationcontroller/src/ScSoftBodyShapeSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_SOFTBODY_SHAPE_SIM_H #define SC_SOFTBODY_SHAPE_SIM_H diff --git a/physx/source/simulationcontroller/src/ScSoftBodySim.cpp b/physx/source/simulationcontroller/src/ScSoftBodySim.cpp index 1522fc5f1..b3a6de8d1 100644 --- a/physx/source/simulationcontroller/src/ScSoftBodySim.cpp +++ b/physx/source/simulationcontroller/src/ScSoftBodySim.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "foundation/PxPreprocessor.h" diff --git a/physx/source/simulationcontroller/src/ScSoftBodySim.h b/physx/source/simulationcontroller/src/ScSoftBodySim.h index b14311736..330385270 100644 --- a/physx/source/simulationcontroller/src/ScSoftBodySim.h +++ b/physx/source/simulationcontroller/src/ScSoftBodySim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #ifndef SC_SOFTBODY_SIM_H #define SC_SOFTBODY_SIM_H diff --git a/physx/source/simulationcontroller/src/ScSqBoundsManager.cpp b/physx/source/simulationcontroller/src/ScSqBoundsManager.cpp index ddf9707dd..812f997e0 100644 --- a/physx/source/simulationcontroller/src/ScSqBoundsManager.cpp +++ b/physx/source/simulationcontroller/src/ScSqBoundsManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScSqBoundsManager.h b/physx/source/simulationcontroller/src/ScSqBoundsManager.h index 508568db2..e2762c2b5 100644 --- a/physx/source/simulationcontroller/src/ScSqBoundsManager.h +++ b/physx/source/simulationcontroller/src/ScSqBoundsManager.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScStaticCore.cpp b/physx/source/simulationcontroller/src/ScStaticCore.cpp index e2228406c..558979e45 100644 --- a/physx/source/simulationcontroller/src/ScStaticCore.cpp +++ b/physx/source/simulationcontroller/src/ScStaticCore.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScStaticSim.h b/physx/source/simulationcontroller/src/ScStaticSim.h index 94f31fb4d..8ed7c7f77 100644 --- a/physx/source/simulationcontroller/src/ScStaticSim.h +++ b/physx/source/simulationcontroller/src/ScStaticSim.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScTriggerInteraction.cpp b/physx/source/simulationcontroller/src/ScTriggerInteraction.cpp index 9e75d67c4..e178efd18 100644 --- a/physx/source/simulationcontroller/src/ScTriggerInteraction.cpp +++ b/physx/source/simulationcontroller/src/ScTriggerInteraction.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScTriggerInteraction.h b/physx/source/simulationcontroller/src/ScTriggerInteraction.h index a8cddd38d..5fde8fb24 100644 --- a/physx/source/simulationcontroller/src/ScTriggerInteraction.h +++ b/physx/source/simulationcontroller/src/ScTriggerInteraction.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/simulationcontroller/src/ScTriggerPairs.h b/physx/source/simulationcontroller/src/ScTriggerPairs.h index 23f256cde..94eac0ca3 100644 --- a/physx/source/simulationcontroller/src/ScTriggerPairs.h +++ b/physx/source/simulationcontroller/src/ScTriggerPairs.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. diff --git a/physx/source/task/src/TaskManager.cpp b/physx/source/task/src/TaskManager.cpp index ef5ba159f..76dee30ea 100644 --- a/physx/source/task/src/TaskManager.cpp +++ b/physx/source/task/src/TaskManager.cpp @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #include "task/PxTask.h" #include "foundation/PxErrors.h" diff --git a/physx/tools/physxmetadatagenerator/PxBoilerPlate.h b/physx/tools/physxmetadatagenerator/PxBoilerPlate.h index ec6628f97..750a064c4 100644 --- a/physx/tools/physxmetadatagenerator/PxBoilerPlate.h +++ b/physx/tools/physxmetadatagenerator/PxBoilerPlate.h @@ -22,4 +22,4 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. diff --git a/physx/tools/physxmetadatagenerator/PxExtensionsCommon.h b/physx/tools/physxmetadatagenerator/PxExtensionsCommon.h index 13a8cd193..fe2f11fcd 100644 --- a/physx/tools/physxmetadatagenerator/PxExtensionsCommon.h +++ b/physx/tools/physxmetadatagenerator/PxExtensionsCommon.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef PX_EXTENSIONS_COMMON_H diff --git a/physx/tools/physxmetadatagenerator/PxPhysicsWithExtensionsAPI.h b/physx/tools/physxmetadatagenerator/PxPhysicsWithExtensionsAPI.h index 4a616ec2b..8c335a6c5 100644 --- a/physx/tools/physxmetadatagenerator/PxPhysicsWithExtensionsAPI.h +++ b/physx/tools/physxmetadatagenerator/PxPhysicsWithExtensionsAPI.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef PX_PHYSICS_NXPHYSICSWITHEXTENSIONS_API diff --git a/physx/tools/physxmetadatagenerator/PxVehicleExtensionAPI.h b/physx/tools/physxmetadatagenerator/PxVehicleExtensionAPI.h index c65876cd8..e79dd2fbc 100644 --- a/physx/tools/physxmetadatagenerator/PxVehicleExtensionAPI.h +++ b/physx/tools/physxmetadatagenerator/PxVehicleExtensionAPI.h @@ -22,7 +22,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. // Copyright (c) 2001-2004 NovodeX AG. All rights reserved. #ifndef PX_PHYSICS_NXPHYSICSWITHVEHICLEEXTENSIONS_API diff --git a/physx/tools/physxmetadatagenerator/generateMetaData.bat b/physx/tools/physxmetadatagenerator/generateMetaData.bat index 1b3b36299..c7c07e577 100644 --- a/physx/tools/physxmetadatagenerator/generateMetaData.bat +++ b/physx/tools/physxmetadatagenerator/generateMetaData.bat @@ -22,7 +22,7 @@ :: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE :: OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. :: -:: Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +:: Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. @call :CLEAN_EXIT @echo off diff --git a/physx/tools/physxmetadatagenerator/generateMetaData.py b/physx/tools/physxmetadatagenerator/generateMetaData.py index e4ac3448d..6bb0cf4a6 100644 --- a/physx/tools/physxmetadatagenerator/generateMetaData.py +++ b/physx/tools/physxmetadatagenerator/generateMetaData.py @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. import argparse import os diff --git a/physx/tools/physxmetadatagenerator/generateMetaData.sh b/physx/tools/physxmetadatagenerator/generateMetaData.sh index 9894fe381..0ff9c14a8 100755 --- a/physx/tools/physxmetadatagenerator/generateMetaData.sh +++ b/physx/tools/physxmetadatagenerator/generateMetaData.sh @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #!/bin/bash +x diff --git a/physx/tools/physxmetadatagenerator/helper.sh b/physx/tools/physxmetadatagenerator/helper.sh index 90028fe7b..5aa2264d7 100755 --- a/physx/tools/physxmetadatagenerator/helper.sh +++ b/physx/tools/physxmetadatagenerator/helper.sh @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. #!/bin/bash diff --git a/physx/tools/physxmetadatagenerator/lib/__init__.py b/physx/tools/physxmetadatagenerator/lib/__init__.py index f9a8dcc91..930399c22 100644 --- a/physx/tools/physxmetadatagenerator/lib/__init__.py +++ b/physx/tools/physxmetadatagenerator/lib/__init__.py @@ -22,4 +22,4 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. \ No newline at end of file +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. \ No newline at end of file diff --git a/physx/tools/physxmetadatagenerator/lib/compare.py b/physx/tools/physxmetadatagenerator/lib/compare.py index 7bdfab5a8..89aa0f6d1 100644 --- a/physx/tools/physxmetadatagenerator/lib/compare.py +++ b/physx/tools/physxmetadatagenerator/lib/compare.py @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # general utility module diff --git a/physx/tools/physxmetadatagenerator/lib/utils.py b/physx/tools/physxmetadatagenerator/lib/utils.py index 266b3abb4..53896f809 100644 --- a/physx/tools/physxmetadatagenerator/lib/utils.py +++ b/physx/tools/physxmetadatagenerator/lib/utils.py @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. # general utility module diff --git a/physx/tools/physxmetadatagenerator/readme.txt b/physx/tools/physxmetadatagenerator/readme.txt index 1e3383637..c93fef987 100644 --- a/physx/tools/physxmetadatagenerator/readme.txt +++ b/physx/tools/physxmetadatagenerator/readme.txt @@ -22,7 +22,7 @@ ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## -## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved. +## Copyright (c) 2008-2023 NVIDIA Corporation. All rights reserved. If the Physx API is changed, the API level serialization meta data files need to be updated. This can be done by running: diff --git a/physx/version.txt b/physx/version.txt index 194bcfbdf..1e74033d6 100644 --- a/physx/version.txt +++ b/physx/version.txt @@ -1 +1 @@ -5.1.2.32190885 \ No newline at end of file +5.1.3.32494398 \ No newline at end of file