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

TangentRingEmitter Class Reference

Describes a planar ring region in which tangent particles are generated, and particles fly off tangential to the ring. More...

#include <tangentRingEmitter.h>

Inheritance diagram for TangentRingEmitter:

BaseParticleEmitter ReferenceCount List of all members.

Public Types

enum  emissionType { ET_EXPLICIT, ET_RADIATE, ET_CUSTOM }

Public Member Functions

 TangentRingEmitter (void)
 constructor

 TangentRingEmitter (const TangentRingEmitter &copy)
 copy constructor

virtual ~TangentRingEmitter (void)
 destructor

virtual BaseParticleEmittermake_copy (void)
 child copier

void set_radius (float r)
float get_radius (void) const
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 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)
 Generates a location for a new particle.

virtual void assign_initial_velocity (LVector3f &vel)
 Generates a velocity for a new particle.


Private Attributes

float _radius
float _x
float _y

Detailed Description

Describes a planar ring region in which tangent particles are generated, and particles fly off tangential to the ring.

Definition at line 38 of file tangentRingEmitter.h.


Member Enumeration Documentation

enum BaseParticleEmitter::emissionType [inherited]
 

Enumeration values:
ET_EXPLICIT 
ET_RADIATE 
ET_CUSTOM 

Definition at line 44 of file baseParticleEmitter.h.

Referenced by BaseParticleEmitter::set_emission_type().


Constructor & Destructor Documentation

TangentRingEmitter::TangentRingEmitter void   ) 
 

constructor

Definition at line 33 of file tangentRingEmitter.cxx.

References _radius.

TangentRingEmitter::TangentRingEmitter const TangentRingEmitter &  copy  ) 
 

copy constructor

Definition at line 46 of file tangentRingEmitter.cxx.

TangentRingEmitter::~TangentRingEmitter void   )  [virtual]
 

destructor

Definition at line 60 of file tangentRingEmitter.cxx.

References _x, _y, NORMALIZED_RAND, and MathNumbers::pi_f.


Member Function Documentation

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

Generates a location for a new particle.

Implements BaseParticleEmitter.

Definition at line 85 of file tangentRingEmitter.cxx.

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

Generates a velocity for a new particle.

Implements BaseParticleEmitter.

Definition at line 103 of file tangentRingEmitter.cxx.

void BaseParticleEmitter::generate LPoint3f &  pos,
LVector3f &  vel
[inherited]
 

parent generation function

Definition at line 83 of file baseParticleEmitter.cxx.

float BaseParticleEmitter::get_amplitude void   )  const [inline, inherited]
 

amplitude query

Definition at line 122 of file baseParticleEmitter.I.

References BaseParticleEmitter::_offset_force, and INLINE.

float BaseParticleEmitter::get_amplitude_spread void   )  const [inline, inherited]
 

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, inherited]
 

emission type query

Definition at line 44 of file baseParticleEmitter.I.

References BaseParticleEmitter::_explicit_launch_vector, and INLINE.

LVector3f BaseParticleEmitter::get_explicit_launch_vector void   )  const [inline, inherited]
 

query for explicit emission launch vector

Definition at line 70 of file baseParticleEmitter.I.

References BaseParticleEmitter::_radiate_origin, and INLINE.

LVector3f BaseParticleEmitter::get_offset_force void   )  const [inline, inherited]
 

user-defined force

Definition at line 174 of file baseParticleEmitter.I.

LPoint3f BaseParticleEmitter::get_radiate_origin void   )  const [inline, inherited]
 

query for explicit emission launch vector

Definition at line 96 of file baseParticleEmitter.I.

References BaseParticleEmitter::_amplitude.

float TangentRingEmitter::get_radius void   )  const [inline]
 

Definition at line 40 of file tangentRingEmitter.I.

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().

BaseParticleEmitter * TangentRingEmitter::make_copy void   )  [virtual]
 

child copier

Implements BaseParticleEmitter.

Definition at line 72 of file tangentRingEmitter.cxx.

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, inherited]
 

amplitude assignment

Definition at line 109 of file baseParticleEmitter.I.

References BaseParticleEmitter::_amplitude_spread, and INLINE.

void BaseParticleEmitter::set_amplitude_spread float  as  )  [inline, inherited]
 

amplitude spread assignment

Definition at line 135 of file baseParticleEmitter.I.

References BaseParticleEmitter::_offset_force.

void BaseParticleEmitter::set_emission_type emissionType  et  )  [inline, inherited]
 

emission type assignment

Definition at line 31 of file baseParticleEmitter.I.

References BaseParticleEmitter::_emission_type, BaseParticleEmitter::emissionType, and INLINE.

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

assignment of explicit emission launch vector

Definition at line 57 of file baseParticleEmitter.I.

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

user-defined force

Definition at line 161 of file baseParticleEmitter.I.

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

assignment of radiate emission origin point

Definition at line 83 of file baseParticleEmitter.I.

References BaseParticleEmitter::_amplitude, and INLINE.

void TangentRingEmitter::set_radius float  r  )  [inline]
 

Definition at line 29 of file tangentRingEmitter.I.

References _radius, 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, inherited]
 

Definition at line 77 of file baseParticleEmitter.h.

Referenced by BaseParticleEmitter::get_radiate_origin(), and BaseParticleEmitter::set_radiate_origin().

float BaseParticleEmitter::_amplitude_spread [protected, inherited]
 

Definition at line 78 of file baseParticleEmitter.h.

Referenced by BaseParticleEmitter::set_amplitude().

emissionType BaseParticleEmitter::_emission_type [protected, inherited]
 

Definition at line 73 of file baseParticleEmitter.h.

Referenced by BaseParticleEmitter::set_emission_type().

LVector3f BaseParticleEmitter::_explicit_launch_vector [protected, inherited]
 

Definition at line 74 of file baseParticleEmitter.h.

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

LPoint3f BaseParticleEmitter::_radiate_origin [protected, inherited]
 

Definition at line 75 of file baseParticleEmitter.h.

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

float TangentRingEmitter::_radius [private]
 

Definition at line 40 of file tangentRingEmitter.h.

Referenced by set_radius(), and TangentRingEmitter().

float TangentRingEmitter::_x [private]
 

Definition at line 47 of file tangentRingEmitter.h.

Referenced by ~TangentRingEmitter().

float TangentRingEmitter::_y [private]
 

Definition at line 47 of file tangentRingEmitter.h.

Referenced by ~TangentRingEmitter().


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