aboutsummaryrefslogtreecommitdiff
path: root/APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp
diff options
context:
space:
mode:
authorSheikh Dawood Abdul Ajees <[email protected]>2017-09-15 15:41:57 -0500
committerSheikh Dawood Abdul Ajees <[email protected]>2017-09-15 15:41:57 -0500
commitd1c812f1162e5fdb13c215792725b2591d7428f5 (patch)
tree407056c45c7e9320c48fca6a3697d81a061c4ea0 /APEX_1.4/samples_v2/SampleParticlesImpactParticles/SampleSceneController.cpp
parentPhysX 3.4, APEX 1.4 patch release @22121272 (diff)
downloadphysx-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.cpp38
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);
+ }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////