APEX Framework: EmitterAsset.h Source File

NVIDIA APEX

EmitterAsset.h
00001 /*
00002  * Copyright (c) 2008-2017, NVIDIA CORPORATION.  All rights reserved.
00003  *
00004  * NVIDIA CORPORATION and its licensors retain all intellectual property
00005  * and proprietary rights in and to this software, related documentation
00006  * and any modifications thereto.  Any use, reproduction, disclosure or
00007  * distribution of this software and related documentation without an express
00008  * license agreement from NVIDIA CORPORATION is strictly prohibited.
00009  */
00010 
00011 
00012 #ifndef EMITTER_ASSET_H
00013 #define EMITTER_ASSET_H
00014 
00015 #include "Apex.h"
00016 #include "EmitterGeoms.h"
00017 
00018 namespace nvidia
00019 {
00020 namespace apex
00021 {
00022 
00023 PX_PUSH_PACK_DEFAULT
00024 
00025 #define EMITTER_AUTHORING_TYPE_NAME "ApexEmitterAsset"
00026 
00027 class EmitterActor;
00028 class EmitterPreview;
00029 class EmitterLodParamDesc;
00030 
00032 class EmitterAsset : public Asset
00033 {
00034 protected:
00035     virtual ~EmitterAsset() {}
00036 
00037 public:
00038     
00040     virtual EmitterGeomExplicit*    isExplicitGeom() = 0;
00041 
00043     virtual const EmitterGeom*      getGeom() const = 0;
00044 
00046     virtual const char*             getInstancedObjectEffectsAssetName(void) const = 0;
00047     
00049     virtual const char*             getInstancedObjectSimulatorAssetName(void) const = 0;
00050     
00052     virtual const char*             getInstancedObjectSimulatorTypeName(void) const = 0;
00053 
00054     virtual const float &           getDensity() const = 0; 
00055     virtual const float &           getRate() const = 0;    
00056     virtual const PxVec3 &          getVelocityLow() const = 0; 
00057     virtual const PxVec3 &          getVelocityHigh() const = 0; 
00058     virtual const float &           getLifetimeLow() const = 0; 
00059     virtual const float &           getLifetimeHigh() const = 0; 
00060     
00062     virtual uint32_t                getMaxSamples() const = 0;
00063 
00068     virtual float                   getEmitDuration() const = 0;
00069 
00071     virtual const EmitterLodParamDesc& getLodParamDesc() const = 0;
00072 
00073 };
00074 
00076 class EmitterAssetAuthoring : public AssetAuthoring
00077 {
00078 protected:
00079     virtual ~EmitterAssetAuthoring() {}
00080 };
00081 
00082 
00083 PX_POP_PACK
00084 
00085 }
00086 } // end namespace nvidia
00087 
00088 #endif // EMITTER_ASSET_H

Generated on Fri Dec 15 2017 13:58:35
Copyright © 2012-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved.