aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp
diff options
context:
space:
mode:
authorsschirm <[email protected]>2016-12-23 14:20:36 +0100
committersschirm <[email protected]>2016-12-23 14:56:17 +0100
commitef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch)
tree710426e8daa605551ce3f34b581897011101c30f /APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp
parentInitial commit: (diff)
downloadphysx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz
physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp')
-rw-r--r--APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp177
1 files changed, 0 insertions, 177 deletions
diff --git a/APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp b/APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp
deleted file mode 100644
index 94d18a76..00000000
--- a/APEX_1.4/module/fieldsampler/src/FieldSamplerWrapper.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
- *
- * NVIDIA CORPORATION and its licensors retain all intellectual property
- * and proprietary rights in and to this software, related documentation
- * and any modifications thereto. Any use, reproduction, disclosure or
- * distribution of this software and related documentation without an express
- * license agreement from NVIDIA CORPORATION is strictly prohibited.
- */
-
-
-#include "ApexDefs.h"
-#include "Apex.h"
-#include "FieldSamplerWrapper.h"
-#include "FieldBoundaryWrapper.h"
-#include "FieldSamplerManager.h"
-#include "FieldSamplerSceneWrapper.h"
-
-
-namespace nvidia
-{
-namespace fieldsampler
-{
-
-
-FieldSamplerWrapper::FieldSamplerWrapper(ResourceList& list, FieldSamplerManager* manager, FieldSamplerIntl* fieldSampler, const FieldSamplerDescIntl& fieldSamplerDesc, FieldSamplerSceneWrapper* fieldSamplerSceneWrapper)
- : mManager(manager)
- , mFieldSampler(fieldSampler)
- , mFieldSamplerDesc(fieldSamplerDesc)
- , mFieldSamplerShapeChanged(false)
- , mSceneWrapper(fieldSamplerSceneWrapper)
- , mQueryRefCount(0)
- , mFieldBoundaryInfoArrayChanged(true)
- , mIsEnabled(false)
- , mIsEnabledLast(false)
-{
- list.add(*this);
-
- //set default shape weight to 1
- mFieldSamplerShape.weight = 1;
-}
-
-void FieldSamplerWrapper::release()
-{
- for (uint32_t i = 0; i < mFieldBoundaryInfoArray.size(); ++i)
- {
- FieldSamplerSceneWrapper::FieldBoundaryInfo* fieldBoundaryInfo = mFieldBoundaryInfoArray[i];
- mSceneWrapper->removeFieldBoundary(fieldBoundaryInfo);
- }
-
- delete this;
-}
-
-bool FieldSamplerWrapper::addFieldBoundary(FieldBoundaryWrapper* fieldBoundaryWrapper)
-{
- const FieldBoundaryDescIntl& fieldBoundaryDesc = fieldBoundaryWrapper->getInternalFieldBoundaryDesc();
-
- float weight;
- if (mManager->getFieldSamplerGroupsFiltering(fieldBoundaryDesc.boundaryFilterData, mFieldSamplerDesc.boundaryFilterData,weight))
- {
- FieldSamplerSceneWrapper::FieldBoundaryInfo* fieldBoundaryInfo =
- mSceneWrapper->addFieldBoundary(fieldBoundaryWrapper);
-
- mFieldBoundaryInfoArray.pushBack(fieldBoundaryInfo);
- mFieldBoundaryInfoArrayChanged = true;
- return true;
- }
- return false;
-}
-
-bool FieldSamplerWrapper::removeFieldBoundary(FieldBoundaryWrapper* fieldBoundaryWrapper)
-{
- for (uint32_t i = 0; i < mFieldBoundaryInfoArray.size(); ++i)
- {
- FieldSamplerSceneWrapper::FieldBoundaryInfo* fieldBoundaryInfo = mFieldBoundaryInfoArray[i];
- if (fieldBoundaryInfo->getFieldBoundaryWrapper() == fieldBoundaryWrapper)
- {
- mSceneWrapper->removeFieldBoundary(fieldBoundaryInfo);
-
- mFieldBoundaryInfoArray.replaceWithLast(i);
- mFieldBoundaryInfoArrayChanged = true;
- return true;
- }
- }
- return false;
-}
-
-void FieldSamplerWrapper::update()
-{
- mIsEnabledLast = mIsEnabled;
- mFieldSamplerShapeChanged = mFieldSampler->updateFieldSampler(mFieldSamplerShape, mIsEnabled);
- if (!mIsEnabledLast && mIsEnabled)
- {
- mFieldSamplerShapeChanged = true;
- }
- else if (!mIsEnabled)
- {
- mFieldSamplerShapeChanged = false;
- }
-}
-
-/******************************** CPU Version ********************************/
-
-FieldSamplerWrapperCPU::FieldSamplerWrapperCPU(ResourceList& list, FieldSamplerManager* manager, FieldSamplerIntl* fieldSampler, const FieldSamplerDescIntl& fieldSamplerDesc, FieldSamplerSceneWrapper* fieldSamplerSceneWrapper)
- : FieldSamplerWrapper(list, manager, fieldSampler, fieldSamplerDesc, fieldSamplerSceneWrapper)
-{
-}
-
-/******************************** GPU Version ********************************/
-#if APEX_CUDA_SUPPORT
-
-FieldSamplerWrapperGPU::FieldSamplerWrapperGPU(ResourceList& list, FieldSamplerManager* manager, FieldSamplerIntl* fieldSampler, const FieldSamplerDescIntl& fieldSamplerDesc, FieldSamplerSceneWrapper* fieldSamplerSceneWrapper)
- : FieldSamplerWrapperCPU(list, manager, fieldSampler, fieldSamplerDesc, fieldSamplerSceneWrapper)
- , mConstMemGroup(DYNAMIC_CAST(FieldSamplerSceneWrapperGPU*)(fieldSamplerSceneWrapper)->getConstStorage())
-{
-}
-
-void FieldSamplerWrapperGPU::update()
-{
- FieldSamplerWrapper::update();
- if (mFieldSamplerShapeChanged || mFieldBoundaryInfoArrayChanged)
- {
- APEX_CUDA_CONST_MEM_GROUP_SCOPE(mConstMemGroup);
-
- FieldSamplerParams params;
- if (mFieldSamplerParamsHandle.allocOrFetch(_storage_, params))
- {
- //only on alloc
- params.type = mFieldSamplerDesc.type;
- params.gridSupportType = mFieldSamplerDesc.gridSupportType;
- params.dragCoeff = mFieldSamplerDesc.dragCoeff;
-
- params.includeShape.fade = PxClamp(mFieldSamplerDesc.boundaryFadePercentage, 0.0f, 1.0f);
- }
-
- if (mFieldSamplerShapeChanged)
- {
- FieldSamplerIntl::CudaExecuteInfo executeInfo;
- mFieldSampler->getFieldSamplerCudaExecuteInfo(executeInfo);
-
- params.executeType = executeInfo.executeType;
- params.executeParamsHandle = executeInfo.executeParamsHandle;
-
- params.includeShape.type = mFieldSamplerShape.type;
- params.includeShape.dimensions = mFieldSamplerShape.dimensions;
- params.includeShape.worldToShape = mFieldSamplerShape.worldToShape;
- PX_ASSERT(mFieldSamplerShape.weight >= 0.0f && mFieldSamplerShape.weight <= 1.0f);
- params.includeShape.weight = PxClamp(mFieldSamplerShape.weight, 0.0f, 1.0f);
- }
-
- if (mFieldBoundaryInfoArrayChanged)
- {
- uint32_t shapeGroupCount = mFieldBoundaryInfoArray.size();
- if (params.excludeShapeGroupHandleArray.resize(_storage_, shapeGroupCount))
- {
- for (uint32_t shapeGroupIndex = 0; shapeGroupIndex < shapeGroupCount; ++shapeGroupIndex)
- {
- FieldSamplerSceneWrapperGPU::FieldBoundaryInfoGPU* fieldBoundaryInfo =
- static_cast<FieldSamplerSceneWrapperGPU::FieldBoundaryInfoGPU*>(mFieldBoundaryInfoArray[shapeGroupIndex]);
-
- InplaceHandle<FieldShapeGroupParams> elem = fieldBoundaryInfo->getShapeGroupParamsHandle();
- params.excludeShapeGroupHandleArray.updateElem(_storage_, elem, shapeGroupIndex);
- }
- }
-
- mFieldBoundaryInfoArrayChanged = false;
- }
-
- mFieldSamplerParamsHandle.update(_storage_, params);
- }
-}
-
-#endif
-
-}
-} // end namespace nvidia::apex
-