Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

BaseParticleEmitter Class Reference

Describes a physical region in space in which particles are randomly generated. More...

#include <baseParticleEmitter.h>

Inheritance diagram for BaseParticleEmitter:

ReferenceCount BoxEmitter DiscEmitter LineEmitter PointEmitter RectangleEmitter RingEmitter SphereSurfaceEmitter SphereVolumeEmitter TangentRingEmitter List of all members.

Public Types

enum  emissionType { ET_EXPLICIT, ET_RADIATE, ET_CUSTOM }

Public Member Functions

virtual ~BaseParticleEmitter (void)
 destructor

virtual BaseParticleEmitter * make_copy (void)=0
void generate (LPoint3f &pos, LVector3f &vel)
 parent generation function

void set_emission_type (emissionType et)
 emission type assignment

void set_amplitude (float a)
 amplitude assignment

void set_amplitude_spread (float as)
 amplitude spread assignment

void set_offset_force (const LVector3f &of)
 user-defined force

void set_explicit_launch_vector (const LVector3f &elv)
 assignment of explicit emission launch vector

void set_radiate_origin (const LPoint3f &ro)
 assignment of radiate emission origin point

emissionType get_emission_type (void) const
 emission type query

float get_amplitude (void) const
 amplitude query

float get_amplitude_spread (void) const
 amplitude spread query

LVector3f get_offset_force (void) const
 user-defined force

LVector3f get_explicit_launch_vector (void) const
 query for explicit emission launch vector

LPoint3f get_radiate_origin (void) const
 query for explicit emission launch vector

int get_ref_count () const
 Returns the current reference count.

int ref () const
 Explicitly increments the reference count.

int unref () const
 Explicitly decrements the reference count.

void test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus.


Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Protected Member Functions

 BaseParticleEmitter (void)
 constructor

 BaseParticleEmitter (const BaseParticleEmitter &copy)
 copy constructor


Protected Attributes

emissionType _emission_type
LVector3f _explicit_launch_vector
LPoint3f _radiate_origin
float _amplitude
float _amplitude_spread

Private Member Functions

virtual void assign_initial_position (LPoint3f &pos)=0
virtual void assign_initial_velocity (LVector3f &vel)=0

Private Attributes

LVector3f _offset_force

Detailed Description

Describes a physical region in space in which particles are randomly generated.

Definition at line 42 of file baseParticleEmitter.h.


Member Enumeration Documentation

enum BaseParticleEmitter::emissionType
 

Enumeration values:
ET_EXPLICIT 
ET_RADIATE 
ET_CUSTOM 

Definition at line 44 of file baseParticleEmitter.h.

Referenced by set_emission_type().


Constructor & Destructor Documentation

BaseParticleEmitter::~BaseParticleEmitter void   )  [virtual]
 

destructor

Definition at line 71 of file baseParticleEmitter.cxx.

References _explicit_launch_vector, _radiate_origin, ET_CUSTOM, ET_EXPLICIT, and ET_RADIATE.

BaseParticleEmitter::BaseParticleEmitter void   )  [protected]
 

constructor

Definition at line 35 of file baseParticleEmitter.cxx.

BaseParticleEmitter::BaseParticleEmitter const BaseParticleEmitter &  copy  )  [protected]
 

copy constructor

Definition at line 53 of file baseParticleEmitter.cxx.


Member Function Documentation

virtual void BaseParticleEmitter::assign_initial_position LPoint3f &  pos  )  [private, pure virtual]
 

Implemented in BoxEmitter, DiscEmitter, LineEmitter, PointEmitter, RectangleEmitter, RingEmitter, SphereSurfaceEmitter, SphereVolumeEmitter, and TangentRingEmitter.

virtual void BaseParticleEmitter::assign_initial_velocity LVector3f &  vel  )  [private, pure virtual]
 

Implemented in BoxEmitter, DiscEmitter, LineEmitter, PointEmitter, RectangleEmitter, RingEmitter, SphereSurfaceEmitter, SphereVolumeEmitter, and TangentRingEmitter.

void BaseParticleEmitter::generate LPoint3f &  pos,
LVector3f &  vel
 

parent generation function

Definition at line 83 of file baseParticleEmitter.cxx.

float BaseParticleEmitter::get_amplitude void   )  const [inline]
 

amplitude query

Definition at line 122 of file baseParticleEmitter.I.

References _offset_force, and INLINE.

float BaseParticleEmitter::get_amplitude_spread void   )  const [inline]
 

amplitude spread query

Definition at line 148 of file baseParticleEmitter.I.

TypeHandle ReferenceCount::get_class_type void   )  [inline, static, inherited]
 

Reimplemented in AnimBundle, AnimBundleNode, AnimChannel< SwitchType >, AnimChannelBase, AnimChannelFixed< SwitchType >, AnimChannelMatrixXfmTable, AnimChannelScalarTable, AnimControl, AnimGroup, MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, PartBundleNode, PartGroup, Character, CharacterJoint, CharacterJointBundle, CharacterSlider, ComputedVertices, CollisionEntry, CollisionHandler, CollisionHandlerEvent, CollisionHandlerFloor, CollisionHandlerPhysical, CollisionHandlerPusher, CollisionHandlerQueue, CollisionNode, CollisionPlane, CollisionPolygon, CollisionRay, CollisionSegment, CollisionSolid, CollisionSphere, CRGraphicsStateGuardian, CRSavedFrameBuffer, AnalogNode, ButtonNode, ClientAnalogDevice, ClientBase, ClientButtonDevice, ClientDevice, ClientDialDevice, ClientTrackerDevice, DialNode, MouseAndKeyboard, TrackerNode, VirtualMouse, DataNode, GraphicsChannel, GraphicsLayer, GraphicsPipe, GraphicsStateGuardian, GraphicsWindow, HardwareChannel, SavedFrameBuffer, CylindricalLens, FisheyeLens, ProjectionScreen, PSphereLens, DXGraphicsStateGuardian7, DXSavedFrameBuffer7, wdxGraphicsPipe7, wdxGraphicsWindow7, DXGraphicsStateGuardian8, DXSavedFrameBuffer8, wdxGraphicsPipe8, wdxGraphicsWindow8, EggAnimData, EggBin, EggBinMaker, EggComment, EggCoordinateSystem, EggCurve, EggData, EggExternalReference, EggFilenameNode, EggGroup, EggGroupNode, EggGroupUniquifier, EggMaterial, EggNamedObject, EggNameUniquifier, EggNode, EggNurbsCurve, EggNurbsSurface, EggObject, EggPoint, EggPolygon, EggPoolUniquifier, EggPrimitive, EggSAnimData, EggSurface, EggSwitchCondition, EggSwitchConditionDistance, EggTable, EggTexture, EggVertex, EggVertexPool, EggXfmAnimData, EggXfmSAnim, Event, EventStoreValueBase, EventStoreValue< Type >, RefCountProxy< Base >, RefCountObj< Base >, ThatThingie, ThisThingie, WhatAThingie, Thread, TypedReferenceCount, VirtualFile, VirtualFileComposite, VirtualFileSimple, WindowFramework, GLGraphicsStateGuardian, GLSavedFrameBuffer, glxGraphicsPipe, glxGraphicsStateGuardian, glxGraphicsWindow, dDrawable, Geom, GeomLine, GeomLinestrip, GeomPoint, GeomPolygon, GeomQuad, GeomSphere, GeomSprite, GeomTri, GeomTrifan, GeomTristrip, ImageBuffer, Lens, Material, MatrixLens, OrthographicLens, PerspectiveLens, PixelBuffer, Texture, GraphicsStateGuardianBase, Lerp, AutonomousLerp, LerpBlendType, EaseInBlendType, EaseOutBlendType, EaseInOutBlendType, NoBlendType, LerpFunctor, SimpleLerpFunctor< value >, SimpleQueryLerpFunctor< value >, MultiLerpFunctor, BoundingHexahedron, BoundingLine, BoundingSphere, BoundingVolume, FiniteBoundingVolume, GeometricBoundingVolume, OmniBoundingVolume, ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, ParametricCurve, PiecewiseCurve, RopeNode, AlphaTestAttrib, AmbientLight, BillboardEffect, Camera, ClipPlaneAttrib, ColorAttrib, ColorBlendAttrib, ColorScaleAttrib, ColorWriteAttrib, CompassEffect, CullBin, CullBinAttrib, CullBinBackToFront, CullBinFixed, CullBinFrontToBack, CullBinUnsorted, CullFaceAttrib, DecalEffect, DepthOffsetAttrib, DepthTestAttrib, DepthWriteAttrib, DirectionalLight, Fog, FogAttrib, GeomNode, LensNode, Light, LightAttrib, LightLensNode, LightNode, LODNode, MaterialAttrib, ModelNode, ModelRoot, NodePathComponent, PosLerpFunctor, HprLerpFunctor, ScaleLerpFunctor, ColorLerpFunctor, PosHprLerpFunctor, HprScaleLerpFunctor, PosHprScaleLerpFunctor, ColorScaleLerpFunctor, PandaNode, PlaneNode, PointLight, RenderAttrib, RenderEffect, RenderEffects, RenderModeAttrib, RenderState, SelectiveChildNode, SequenceNode, ShowBoundsEffect, Spotlight, SwitchNode, TexMatrixAttrib, TextureApplyAttrib, TextureAttrib, TransformState, EventStoreTransform, TransparencyAttrib, PGButton, PGEntry, PGItem, PGMouseWatcherBackground, PGMouseWatcherGroup, PGMouseWatcherParameter, PGMouseWatcherRegion, PGTop, PGWaitBar, ActorNode, AngularForce, AngularVectorForce, BaseForce, ForceNode, LinearCylinderVortexForce, LinearDistanceForce, LinearForce, LinearFrictionForce, LinearJitterForce, LinearNoiseForce, LinearRandomForce, LinearSinkForce, LinearSourceForce, LinearUserDefinedForce, LinearVectorForce, Physical, PhysicalNode, PhysicsObject, BamReaderParam, ButtonEventList, FactoryParam, Person, Parent, Child, TypedWritableReferenceCount, WritableParam, RIBGraphicsWindow, RIBGraphicsStateGuardian, CasterShader, OutlineShader, PlanarReflector, ProjtexShader, ProjtexShadower, Shader, FrustumShader, SpheretexHighlighter, SpheretexReflector, SpheretexShader, SpotlightShader, TextFont, TextNode, ButtonThrower, DriveInterface, MouseWatcher, MouseWatcherGroup, MouseWatcherRegion, Trackball, Transform2SG, VrpnAnalogDevice, VrpnButtonDevice, VrpnClient, VrpnDialDevice, VrpnTrackerDevice, wcrGraphicsWindow, wglGraphicsPipe, wglGraphicsStateGuardian, wglGraphicsWindow, WinGraphicsPipe, WinGraphicsWindow, AnimChannel< ACScalarSwitchType >, AnimChannel< ACMatrixSwitchType >, MovingPart< ACScalarSwitchType >, MovingPart< ACMatrixSwitchType >, SimpleLerpFunctor< LPoint3f >, SimpleLerpFunctor< LVecBase3f >, and SimpleLerpFunctor< LVecBase4f >.

Definition at line 66 of file referenceCount.h.

BaseParticleEmitter::emissionType BaseParticleEmitter::get_emission_type void   )  const [inline]
 

emission type query

Definition at line 44 of file baseParticleEmitter.I.

References _explicit_launch_vector, and INLINE.

LVector3f BaseParticleEmitter::get_explicit_launch_vector void   )  const [inline]
 

query for explicit emission launch vector

Definition at line 70 of file baseParticleEmitter.I.

References _radiate_origin, and INLINE.

LVector3f BaseParticleEmitter::get_offset_force void   )  const [inline]
 

user-defined force

Definition at line 174 of file baseParticleEmitter.I.

LPoint3f BaseParticleEmitter::get_radiate_origin void   )  const [inline]
 

query for explicit emission launch vector

Definition at line 96 of file baseParticleEmitter.I.

References _amplitude.

int ReferenceCount::get_ref_count  )  const [inline, inherited]
 

Returns the current reference count.

Definition at line 183 of file referenceCount.I.

Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture().

void ReferenceCount::init_type void   )  [inline, static, inherited]
 

Reimplemented in AnimBundle, AnimBundleNode, AnimChannel< SwitchType >, AnimChannelBase, AnimChannelFixed< SwitchType >, AnimChannelMatrixXfmTable, AnimChannelScalarTable, AnimControl, AnimGroup, MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, PartBundleNode, PartGroup, Character, CharacterJoint, CharacterJointBundle, CharacterSlider, ComputedVertices, CollisionEntry, CollisionHandler, CollisionHandlerEvent, CollisionHandlerFloor, CollisionHandlerPhysical, CollisionHandlerPusher, CollisionHandlerQueue, CollisionNode, CollisionPlane, CollisionPolygon, CollisionRay, CollisionSegment, CollisionSolid, CollisionSphere, CRGraphicsStateGuardian, CRSavedFrameBuffer, AnalogNode, ButtonNode, ClientAnalogDevice, ClientBase, ClientButtonDevice, ClientDevice, ClientDialDevice, ClientTrackerDevice, DialNode, MouseAndKeyboard, TrackerNode, VirtualMouse, DataNode, GraphicsChannel, GraphicsLayer, GraphicsPipe, GraphicsStateGuardian, GraphicsWindow, HardwareChannel, SavedFrameBuffer, CylindricalLens, FisheyeLens, ProjectionScreen, PSphereLens, DXGraphicsStateGuardian7, DXSavedFrameBuffer7, wdxGraphicsPipe7, wdxGraphicsWindow7, DXGraphicsStateGuardian8, DXSavedFrameBuffer8, wdxGraphicsPipe8, wdxGraphicsWindow8, EggAnimData, EggBin, EggBinMaker, EggComment, EggCoordinateSystem, EggCurve, EggData, EggExternalReference, EggFilenameNode, EggGroup, EggGroupNode, EggGroupUniquifier, EggMaterial, EggNamedObject, EggNameUniquifier, EggNode, EggNurbsCurve, EggNurbsSurface, EggObject, EggPoint, EggPolygon, EggPoolUniquifier, EggPrimitive, EggSAnimData, EggSurface, EggSwitchCondition, EggSwitchConditionDistance, EggTable, EggTexture, EggVertex, EggVertexPool, EggXfmAnimData, EggXfmSAnim, Event, EventStoreValueBase, RefCountProxy< Base >, RefCountObj< Base >, ThatThingie, ThisThingie, WhatAThingie, Thread, TypedReferenceCount, VirtualFile, VirtualFileComposite, VirtualFileSimple, WindowFramework, GLGraphicsStateGuardian, GLSavedFrameBuffer, glxGraphicsPipe, glxGraphicsStateGuardian, glxGraphicsWindow, dDrawable, Geom, GeomLine, GeomLinestrip, GeomPoint, GeomPolygon, GeomQuad, GeomSphere, GeomSprite, GeomTri, GeomTrifan, GeomTristrip, ImageBuffer, Lens, Material, MatrixLens, OrthographicLens, PerspectiveLens, PixelBuffer, Texture, GraphicsStateGuardianBase, Lerp, AutonomousLerp, LerpBlendType, EaseInBlendType, EaseOutBlendType, EaseInOutBlendType, NoBlendType, LerpFunctor, SimpleLerpFunctor< value >, SimpleQueryLerpFunctor< value >, MultiLerpFunctor, BoundingHexahedron, BoundingLine, BoundingSphere, BoundingVolume, FiniteBoundingVolume, GeometricBoundingVolume, OmniBoundingVolume, ClassicNurbsCurve, CubicCurveseg, HermiteCurve, NurbsPPCurve, ParametricCurve, PiecewiseCurve, RopeNode, AlphaTestAttrib, AmbientLight, BillboardEffect, Camera, ClipPlaneAttrib, ColorAttrib, ColorBlendAttrib, ColorScaleAttrib, ColorWriteAttrib, CompassEffect, CullBin, CullBinAttrib, CullBinBackToFront, CullBinFixed, CullBinFrontToBack, CullBinUnsorted, CullFaceAttrib, DecalEffect, DepthOffsetAttrib, DepthTestAttrib, DepthWriteAttrib, DirectionalLight, Fog, FogAttrib, GeomNode, LensNode, Light, LightAttrib, LightLensNode, LightNode, LODNode, MaterialAttrib, ModelNode, ModelRoot, NodePathComponent, PosLerpFunctor, HprLerpFunctor, ScaleLerpFunctor, ColorLerpFunctor, PosHprLerpFunctor, HprScaleLerpFunctor, PosHprScaleLerpFunctor, ColorScaleLerpFunctor, PandaNode, PlaneNode, PointLight, RenderAttrib, RenderEffect, RenderEffects, RenderModeAttrib, RenderState, SelectiveChildNode, SequenceNode, ShowBoundsEffect, Spotlight, SwitchNode, TexMatrixAttrib, TextureApplyAttrib, TextureAttrib, TransformState, EventStoreTransform, TransparencyAttrib, PGButton, PGEntry, PGItem, PGMouseWatcherBackground, PGMouseWatcherGroup, PGMouseWatcherParameter, PGMouseWatcherRegion, PGTop, PGWaitBar, ActorNode, AngularForce, AngularVectorForce, BaseForce, ForceNode, LinearCylinderVortexForce, LinearDistanceForce, LinearForce, LinearFrictionForce, LinearJitterForce, LinearNoiseForce, LinearRandomForce, LinearSinkForce, LinearSourceForce, LinearUserDefinedForce, LinearVectorForce, Physical, PhysicalNode, PhysicsObject, BamReaderParam, ButtonEventList, FactoryParam, Person, Parent, Child, TypedWritableReferenceCount, WritableParam, RIBGraphicsWindow, RIBGraphicsStateGuardian, CasterShader, OutlineShader, PlanarReflector, ProjtexShader, ProjtexShadower, Shader, FrustumShader, SpheretexHighlighter, SpheretexReflector, SpheretexShader, SpotlightShader, TextFont, TextNode, ButtonThrower, DriveInterface, MouseWatcher, MouseWatcherGroup, MouseWatcherRegion, Trackball, Transform2SG, VrpnAnalogDevice, VrpnButtonDevice, VrpnClient, VrpnDialDevice, VrpnTrackerDevice, wcrGraphicsWindow, wglGraphicsPipe, wglGraphicsStateGuardian, wglGraphicsWindow, WinGraphicsPipe, WinGraphicsWindow, AnimChannel< ACScalarSwitchType >, AnimChannel< ACMatrixSwitchType >, MovingPart< ACScalarSwitchType >, MovingPart< ACMatrixSwitchType >, SimpleLerpFunctor< LPoint3f >, SimpleLerpFunctor< LVecBase3f >, and SimpleLerpFunctor< LVecBase4f >.

Definition at line 69 of file referenceCount.h.

References INLINE.

Referenced by ConfigureFn(), and ThatThingie::get_class_type().

virtual BaseParticleEmitter* BaseParticleEmitter::make_copy void   )  [pure virtual]
 

Implemented in BoxEmitter, DiscEmitter, LineEmitter, PointEmitter, RectangleEmitter, RingEmitter, SphereSurfaceEmitter, SphereVolumeEmitter, and TangentRingEmitter.

int ReferenceCount::ref  )  const [inline, inherited]
 

Explicitly increments the reference count.

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 225 of file referenceCount.I.

Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering().

void BaseParticleEmitter::set_amplitude float  a  )  [inline]
 

amplitude assignment

Definition at line 109 of file baseParticleEmitter.I.

References _amplitude_spread, and INLINE.

void BaseParticleEmitter::set_amplitude_spread float  as  )  [inline]
 

amplitude spread assignment

Definition at line 135 of file baseParticleEmitter.I.

References _offset_force.

void BaseParticleEmitter::set_emission_type emissionType  et  )  [inline]
 

emission type assignment

Definition at line 31 of file baseParticleEmitter.I.

References _emission_type, emissionType, and INLINE.

void BaseParticleEmitter::set_explicit_launch_vector const LVector3f &  elv  )  [inline]
 

assignment of explicit emission launch vector

Definition at line 57 of file baseParticleEmitter.I.

void BaseParticleEmitter::set_offset_force const LVector3f &  of  )  [inline]
 

user-defined force

Definition at line 161 of file baseParticleEmitter.I.

void BaseParticleEmitter::set_radiate_origin const LPoint3f &  ro  )  [inline]
 

assignment of radiate emission origin point

Definition at line 83 of file baseParticleEmitter.I.

References _amplitude, and INLINE.

void ReferenceCount::test_ref_count_integrity  )  const [inline, inherited]
 

Does some easy checks to make sure that the reference count isn't completely bogus.

Definition at line 328 of file referenceCount.I.

References INLINE.

Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount().

int ReferenceCount::unref  )  const [inline, inherited]
 

Explicitly decrements the reference count.

Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete().

User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.

This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

The return value is the new reference count.

Definition at line 293 of file referenceCount.I.

References INLINE.

Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds().


Member Data Documentation

float BaseParticleEmitter::_amplitude [protected]
 

Definition at line 77 of file baseParticleEmitter.h.

Referenced by get_radiate_origin(), and set_radiate_origin().

float BaseParticleEmitter::_amplitude_spread [protected]
 

Definition at line 78 of file baseParticleEmitter.h.

Referenced by set_amplitude().

emissionType BaseParticleEmitter::_emission_type [protected]
 

Definition at line 73 of file baseParticleEmitter.h.

Referenced by set_emission_type().

LVector3f BaseParticleEmitter::_explicit_launch_vector [protected]
 

Definition at line 74 of file baseParticleEmitter.h.

Referenced by get_emission_type(), and ~BaseParticleEmitter().

LVector3f BaseParticleEmitter::_offset_force [private]
 

Definition at line 85 of file baseParticleEmitter.h.

Referenced by get_amplitude(), and set_amplitude_spread().

LPoint3f BaseParticleEmitter::_radiate_origin [protected]
 

Definition at line 75 of file baseParticleEmitter.h.

Referenced by get_explicit_launch_vector(), and ~BaseParticleEmitter().


The documentation for this class was generated from the following files:
Generated on Fri May 2 00:47:38 2003 for Panda by doxygen1.3