NxApexActor* ImpactEmitterAsset::createApexActor(const NxParameterized::Interface& parms, NxApexScene& apexScene)
{
	NX_WRITE_ZONE();
	if (!isValidForActorCreation(parms, apexScene))
	{
		return NULL;
	}

	NxApexActor* ret = 0;

	const char* className = parms.className();
	if (strcmp(className, ImpactEmitterActorParameters::staticClassName()) == 0)
	{
		EmitterScene* es = mModule->getEmitterScene(apexScene);
		ImpactEmitterActor* actor = PX_NEW(ImpactEmitterActor)(parms, *this, mEmitterActors, *es);
		if (!actor->isValid())
		{
			actor->destroy();
			return NULL;
		}

		ret = actor;
	}
	else
	{
		APEX_INVALID_OPERATION("%s is not a valid descriptor class, expecting %s", className, ImpactEmitterActorParameters::staticClassName());
	}

	return ret;
}
void ClothingScene::lockScene()
{
	mSceneLock.lock();

	if (mSceneRunning == 1)
	{
		APEX_INVALID_OPERATION("The scene is running while the scene write lock is being acquired!");
		PX_ALWAYS_ASSERT();
	}
}
NxApexAssetPreview* ImpactEmitterAsset::createApexAssetPreview(const NxParameterized::Interface& /*params*/, NxApexAssetPreviewScene* /*previewScene*/)
{
	NX_WRITE_ZONE();
	APEX_INVALID_OPERATION("Not yet implemented!");
	return NULL;
}
void ApexAssetAuthoring::setToolString(const char* /*toolString*/)
{
	PX_ALWAYS_ASSERT();
	APEX_INVALID_OPERATION("Not Implemented.");
}