diff options
| author | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-09-15 15:41:57 -0500 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-09-15 15:41:57 -0500 |
| commit | d1c812f1162e5fdb13c215792725b2591d7428f5 (patch) | |
| tree | 407056c45c7e9320c48fca6a3697d81a061c4ea0 /APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp | |
| parent | PhysX 3.4, APEX 1.4 patch release @22121272 (diff) | |
| download | physx-3.4-d1c812f1162e5fdb13c215792725b2591d7428f5.tar.xz physx-3.4-d1c812f1162e5fdb13c215792725b2591d7428f5.zip | |
PhysX 3.4.1, APEX 1.4.1 Release @22845541v3.4.1
Diffstat (limited to 'APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp')
| -rw-r--r-- | APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp b/APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp index 63a06ca6..e0244425 100644 --- a/APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp +++ b/APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp @@ -34,7 +34,7 @@ using namespace physx; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SampleSceneController::SampleSceneController(CFirstPersonCamera* camera, ApexController& apex) - : mApex(apex), mCamera(camera) + : mApex(apex), mCamera(camera), mActor(NULL), mAsset(NULL) { } @@ -44,19 +44,22 @@ SampleSceneController::~SampleSceneController() void SampleSceneController::onSampleStart() { - // setup camera - DirectX::XMVECTORF32 lookAtPt = { 0, 2, 0, 0 }; - DirectX::XMVECTORF32 eyePt = { 0, 5, 10, 0 }; - mCamera->SetViewParams(eyePt, lookAtPt); - mCamera->SetRotateButtons(false, false, true, false); - mCamera->SetEnablePositionMovement(true); - - // spawn mesh emitter - mAsset = (nvidia::apex::ImpactEmitterAsset *)mApex.getApexSDK()->getNamedResourceProvider()->getResource(IMPACT_EMITTER_AUTHORING_TYPE_NAME, "testImpactEmitter"); - NvParameterized::Interface *defaultActorDesc = mAsset->getDefaultActorDesc(); - NvParameterized::setParamTransform(*defaultActorDesc, "InitialPose", PxTransform(PxIdentity)); - mActor = (ImpactEmitterActor *)mAsset->createApexActor(*defaultActorDesc, *(mApex.getApexScene())); - + PX_ASSERT_WITH_MESSAGE(mApex.getModuleParticles(), "Particle dll can't be found or ApexFramework was built withoud particles support"); + if (mApex.getModuleParticles()) + { + // setup camera + DirectX::XMVECTORF32 lookAtPt = {0, 2, 0, 0}; + DirectX::XMVECTORF32 eyePt = {0, 5, 10, 0}; + mCamera->SetViewParams(eyePt, lookAtPt); + mCamera->SetRotateButtons(false, false, true, false); + mCamera->SetEnablePositionMovement(true); + + // spawn mesh emitter + mAsset = (nvidia::apex::ImpactEmitterAsset *)mApex.getApexSDK()->getNamedResourceProvider()->getResource(IMPACT_EMITTER_AUTHORING_TYPE_NAME, "testImpactEmitter"); + NvParameterized::Interface *defaultActorDesc = mAsset->getDefaultActorDesc(); + NvParameterized::setParamTransform(*defaultActorDesc, "InitialPose", PxTransform(PxIdentity)); + mActor = (ImpactEmitterActor *)mAsset->createApexActor(*defaultActorDesc, *(mApex.getApexScene())); + } } @@ -65,7 +68,7 @@ void SampleSceneController::fire(float mouseX, float mouseY) PxVec3 eyePos, pickDir; mApex.getEyePoseAndPickDir(mouseX, mouseY, eyePos, pickDir); - if (pickDir.normalize() <= 0) + if (mApex.getModuleParticles() == NULL || pickDir.normalize() <= 0) { return; } @@ -83,7 +86,10 @@ void SampleSceneController::fire(float mouseX, float mouseY) uint32_t surfType = mAsset->querySetID("meshParticleEvent"); - mActor->registerImpact(rcBuffer.block.position, pickDir, rcBuffer.block.normal, surfType); + if (mActor) + { + mActor->registerImpact(rcBuffer.block.position, pickDir, rcBuffer.block.normal, surfType); + } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |