载入中...
搜索中...
未找到
eve::physics::Fluid类 参考

Interactive 2D particle fluid (double-density relaxation) in pixel space. Script-owned; independent of Box2D World. 更多...

#include <Fluid.h>

Public 成员函数

 Fluid (int capacity=512)
 
 ~Fluid ()
 
 Fluid (const Fluid &)=delete
 
Fluidoperator= (const Fluid &)=delete
 
void update (float dt)
 
void setGravity (float gx, float gy)
 
float getGravityX () const
 
float getGravityY () const
 
void setSmoothingRadius (float radius)
 Interaction / neighbor radius in pixels (default 18).
 
float getSmoothingRadius () const
 
void setRestDensity (float density)
 Target rest density for the relaxation solver (default 4).
 
float getRestDensity () const
 
void setPressureStiffness (float k)
 Pressure stiffness (default 0.5).
 
float getPressureStiffness () const
 
void setNearPressureStiffness (float k)
 Near-pressure (anti-clustering) stiffness (default 0.5).
 
float getNearPressureStiffness () const
 
void setViscosity (float viscosity)
 
float getViscosity () const
 
void setIterations (int iterations)
 Solver iterations per frame (default 3).
 
int getIterations () const
 
void setBounds (float x, float y, float w, float h)
 Axis-aligned container; particles bounce inside.
 
void clearBounds ()
 
int emit (float x, float y, int count, float vx=0.f, float vy=0.f)
 Spawn up to count particles at (x,y) with initial velocity. Returns number actually added.
 
void clear ()
 Clear all particles.
 
void interactAt (float x, float y, float radius, float strength)
 Mouse / pointer interaction: positive strength attracts, negative repels. Applied as acceleration within radius (pixels).
 
void setColor (float r, float g, float b, float a=1.f)
 
float getColorR () const
 
float getColorG () const
 
float getColorB () const
 
float getColorA () const
 
void setParticleSize (float size)
 Particle draw size in pixels (default 5).
 
float getParticleSize () const
 
void draw (graphics::Graphics *gfx)
 
int getCapacity () const
 
int getParticleCount () const
 
float getParticleX (int index) const
 
float getParticleY (int index) const
 
float getParticleVx (int index) const
 
float getParticleVy (int index) const
 
void destroy ()
 

详细描述

Interactive 2D particle fluid (double-density relaxation) in pixel space. Script-owned; independent of Box2D World.

在文件 Fluid.h17 行定义.

构造及析构函数说明

◆ Fluid() [1/2]

eve::physics::Fluid::Fluid ( int  capacity = 512)
explicit

在文件 Fluid.cpp15 行定义.

◆ ~Fluid()

eve::physics::Fluid::~Fluid ( )

在文件 Fluid.cpp20 行定义.

引用了 destroy().

◆ Fluid() [2/2]

eve::physics::Fluid::Fluid ( const Fluid )
delete

成员函数说明

◆ clear()

void eve::physics::Fluid::clear ( )

Clear all particles.

在文件 Fluid.cpp84 行定义.

◆ clearBounds()

void eve::physics::Fluid::clearBounds ( )

在文件 Fluid.cpp63 行定义.

被这些函数引用 setBounds().

◆ destroy()

void eve::physics::Fluid::destroy ( )

在文件 Fluid.cpp22 行定义.

被这些函数引用 ~Fluid().

◆ draw()

void eve::physics::Fluid::draw ( graphics::Graphics gfx)

在文件 Fluid.cpp329 行定义.

引用了 eve::graphics::Graphics::drawSolidRect(), p , 以及 s.

◆ emit()

int eve::physics::Fluid::emit ( float  x,
float  y,
int  count,
float  vx = 0.f,
float  vy = 0.f 
)

Spawn up to count particles at (x,y) with initial velocity. Returns number actually added.

在文件 Fluid.cpp65 行定义.

引用了 cx, cy, getParticleCount(), p, step, x , 以及 y.

◆ getCapacity()

int eve::physics::Fluid::getCapacity ( ) const
inline

在文件 Fluid.h85 行定义.

◆ getColorA()

float eve::physics::Fluid::getColorA ( ) const
inline

在文件 Fluid.h77 行定义.

◆ getColorB()

float eve::physics::Fluid::getColorB ( ) const
inline

在文件 Fluid.h76 行定义.

◆ getColorG()

float eve::physics::Fluid::getColorG ( ) const
inline

在文件 Fluid.h75 行定义.

◆ getColorR()

float eve::physics::Fluid::getColorR ( ) const
inline

在文件 Fluid.h74 行定义.

◆ getGravityX()

float eve::physics::Fluid::getGravityX ( ) const
inline

在文件 Fluid.h28 行定义.

◆ getGravityY()

float eve::physics::Fluid::getGravityY ( ) const
inline

在文件 Fluid.h29 行定义.

◆ getIterations()

int eve::physics::Fluid::getIterations ( ) const
inline

在文件 Fluid.h52 行定义.

◆ getNearPressureStiffness()

float eve::physics::Fluid::getNearPressureStiffness ( ) const
inline

在文件 Fluid.h45 行定义.

◆ getParticleCount()

int eve::physics::Fluid::getParticleCount ( ) const
inline

在文件 Fluid.h86 行定义.

被这些函数引用 emit() , 以及 update().

◆ getParticleSize()

float eve::physics::Fluid::getParticleSize ( ) const
inline

在文件 Fluid.h81 行定义.

◆ getParticleVx()

float eve::physics::Fluid::getParticleVx ( int  index) const

在文件 Fluid.cpp119 行定义.

◆ getParticleVy()

float eve::physics::Fluid::getParticleVy ( int  index) const

在文件 Fluid.cpp124 行定义.

◆ getParticleX()

float eve::physics::Fluid::getParticleX ( int  index) const

在文件 Fluid.cpp109 行定义.

引用了 x.

◆ getParticleY()

float eve::physics::Fluid::getParticleY ( int  index) const

在文件 Fluid.cpp114 行定义.

引用了 y.

◆ getPressureStiffness()

float eve::physics::Fluid::getPressureStiffness ( ) const
inline

在文件 Fluid.h41 行定义.

◆ getRestDensity()

float eve::physics::Fluid::getRestDensity ( ) const
inline

在文件 Fluid.h37 行定义.

◆ getSmoothingRadius()

float eve::physics::Fluid::getSmoothingRadius ( ) const
inline

在文件 Fluid.h33 行定义.

◆ getViscosity()

float eve::physics::Fluid::getViscosity ( ) const
inline

在文件 Fluid.h48 行定义.

◆ interactAt()

void eve::physics::Fluid::interactAt ( float  x,
float  y,
float  radius,
float  strength 
)

Mouse / pointer interaction: positive strength attracts, negative repels. Applied as acceleration within radius (pixels).

在文件 Fluid.cpp89 行定义.

引用了 x , 以及 y.

◆ operator=()

Fluid & eve::physics::Fluid::operator= ( const Fluid )
delete

◆ setBounds()

void eve::physics::Fluid::setBounds ( float  x,
float  y,
float  w,
float  h 
)

Axis-aligned container; particles bounce inside.

在文件 Fluid.cpp51 行定义.

引用了 clearBounds(), h, w, x , 以及 y.

◆ setColor()

void eve::physics::Fluid::setColor ( float  r,
float  g,
float  b,
float  a = 1.f 
)

在文件 Fluid.cpp96 行定义.

引用了 a , 以及 b.

◆ setGravity()

void eve::physics::Fluid::setGravity ( float  gx,
float  gy 
)

在文件 Fluid.cpp28 行定义.

◆ setIterations()

void eve::physics::Fluid::setIterations ( int  iterations)

Solver iterations per frame (default 3).

在文件 Fluid.cpp49 行定义.

引用了 iterations.

◆ setNearPressureStiffness()

void eve::physics::Fluid::setNearPressureStiffness ( float  k)

Near-pressure (anti-clustering) stiffness (default 0.5).

在文件 Fluid.cpp45 行定义.

◆ setParticleSize()

void eve::physics::Fluid::setParticleSize ( float  size)

Particle draw size in pixels (default 5).

在文件 Fluid.cpp103 行定义.

◆ setPressureStiffness()

void eve::physics::Fluid::setPressureStiffness ( float  k)

Pressure stiffness (default 0.5).

在文件 Fluid.cpp43 行定义.

◆ setRestDensity()

void eve::physics::Fluid::setRestDensity ( float  density)

Target rest density for the relaxation solver (default 4).

在文件 Fluid.cpp38 行定义.

◆ setSmoothingRadius()

void eve::physics::Fluid::setSmoothingRadius ( float  radius)

Interaction / neighbor radius in pixels (default 18).

在文件 Fluid.cpp33 行定义.

◆ setViscosity()

void eve::physics::Fluid::setViscosity ( float  viscosity)

在文件 Fluid.cpp47 行定义.

◆ update()

void eve::physics::Fluid::update ( float  dt)

在文件 Fluid.cpp266 行定义.

引用了 getParticleCount(), p, s , 以及 w.


该类的文档由以下文件生成: