24#ifndef _SkyX_VClouds_Lightning_H_
25#define _SkyX_VClouds_Lightning_H_
27#include "Prerequisites.h"
29namespace SkyX {
namespace VClouds{
51 Segment(
const Ogre::Vector3& a_,
const Ogre::Vector3& b_)
51 Segment(
const Ogre::Vector3& a_,
const Ogre::Vector3& b_) {
…}
75 Lightning(Ogre::SceneManager* sm, Ogre::SceneNode* sn,
const Ogre::Vector3& orig,
const Ogre::Vector3& dir,
const Ogre::Real& l,
76 const Ogre::uint32& d,
const Ogre::uint32& rec,
const Ogre::Real& tm,
const Ogre::Real& wm,
const Ogre::Vector2& b = Ogre::Vector2(0,1));
93 void update(Ogre::Real timeSinceLastFrame);
155 void _updateData(
const Ogre::Real& alpha,
const Ogre::Real& currentPos,
const Ogre::Real& parentTime);
const Ogre::Real & getIntensity() const
Get lightning intensity.
Ogre::Real mWidthMultiplier
Width multiplier.
const Ogre::Vector3 & getDirection() const
Get ray direction.
Ogre::SceneNode * getSceneNode() const
Get scene node.
Ogre::Real mTimeMultiplier
Global time multiplier.
void _updateData(const Ogre::Real &alpha, const Ogre::Real ¤tPos, const Ogre::Real &parentTime)
Update data.
Ogre::uint32 mRecursivity
Recursivity level.
const Ogre::Real & getLength() const
Get ray length.
void _updateRenderQueueGroup(const Ogre::uint8 &rqg)
Update render queue group.
Ogre::BillboardSet * mBillboardSet
Billboard set.
std::vector< Lightning * > mChildren
Children lightnings.
Ogre::Real mRealLength
Real ray length (total segments length amount)
Ogre::Real mLength
Ray length.
const bool & isFinished() const
Has the ray finished?
Ogre::Vector3 mDirection
Ray direction.
bool mCreated
Has been create() already called?
Ogre::Real mIntensity
Lightning intensity.
Ogre::SceneNode * mSceneNode
Scene node.
Ogre::uint32 mDivisions
Number of divisions.
std::vector< Segment > mSegments
Segments.
Ogre::Vector3 mTimeMultipliers
Per step time multipliers.
void update(Ogre::Real timeSinceLastFrame)
Update.
Ogre::BillboardSet * getBillboardSet() const
Get billboard set.
Ogre::Real mTime
Current elapsed time.
Ogre::Vector3 mOrigin
Ray origin.
bool mFinished
Has the ray finished?
Ogre::Vector2 mBounds
Ray bounds (for internal visual calculations)
Ogre::SceneManager * mSceneManager
Scene manager.
Ogre::Vector2 mAngleRange
Angle range (Little values -> Less derivations, bigger values -> More derivations)
Segment(const Ogre::Vector3 &a_, const Ogre::Vector3 &b_)
Constructor.
Ogre::Vector3 a
Segment start.
Ogre::Vector3 b
Segment end.
Segment()
Default constructor.