载入中...
搜索中...
未找到
eve::graphics::fog::FogInteractor类 参考

Analytic solid proxies that carve fog and inject wake into the MAC field. 更多...

#include <FogInteractor.h>

Public 成员函数

Result< void > setProxies (std::vector< FogSolidProxy > proxies)
 Replace the proxy set atomically after validation.
 
std::size_t proxyCount () const noexcept
 
const FogSolidProxy & proxyAt (std::size_t index) const
 
bool isSolidWorld (const glm::vec3 &world) const noexcept
 True when a world point lies inside any enabled solid.
 
Result< void > applyToGrid (MacFluidGrid &grid, float dt) const
 Rasterize solids into the MAC solid mask, clear interior density, and inject wake / drag into face velocities.
 
glm::vec3 clipAdvection (const glm::vec3 &startLocal, const glm::vec3 &deltaLocal, const FogWorldBounds &bounds, const glm::vec3 &cellSize) const noexcept
 Clip a local-cell advection displacement against thin solids.
 

详细描述

Analytic solid proxies that carve fog and inject wake into the MAC field.

Sphere, capsule, and OBB proxies act as dynamic solid boundaries without a second fog material. Surface velocity drives windward / leeward / tangential drag; interiors clear concentration. Bounded grid traversal prevents thin proxies from being skipped in one advection step.

在文件 FogInteractor.h 第 24 行定义.

成员函数说明

◆ applyToGrid()

Result< void > eve::graphics::fog::FogInteractor::applyToGrid ( MacFluidGrid &  grid,
float  dt 
) const

Rasterize solids into the MAC solid mask, clear interior density, and inject wake / drag into face velocities.

在文件 FogInteractor.cpp 第 111 行定义.

引用了 bounds, cell, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), eve::InvalidArgument, isSolidWorld(), n, eve::Result< T >::success(), world, x, y , 以及 z.

被这些函数引用 eve::graphics::fog::MacFluidGrid::step().

◆ clipAdvection()

glm::vec3 eve::graphics::fog::FogInteractor::clipAdvection ( const glm::vec3 &  startLocal,
const glm::vec3 &  deltaLocal,
const FogWorldBounds &  bounds,
const glm::vec3 &  cellSize 
) const
noexcept

Clip a local-cell advection displacement against thin solids.

参数
startLocalCell-space start (cell units).
deltaLocalProposed displacement in cell units.
boundsWorld bounds of the MAC domain.
cellSizeWorld size of one cell.
返回
Clipped end position in cell space.

在文件 FogInteractor.cpp 第 191 行定义.

引用了 bounds, p, step, steps , 以及 world.

◆ isSolidWorld()

bool eve::graphics::fog::FogInteractor::isSolidWorld ( const glm::vec3 &  world) const
noexcept

True when a world point lies inside any enabled solid.

在文件 FogInteractor.cpp 第 103 行定义.

引用了 p , 以及 world.

被这些函数引用 applyToGrid().

◆ proxyAt()

const FogSolidProxy & eve::graphics::fog::FogInteractor::proxyAt ( std::size_t  index) const

在文件 FogInteractor.cpp 第 53 行定义.

引用了 index.

◆ proxyCount()

std::size_t eve::graphics::fog::FogInteractor::proxyCount ( ) const
inlinenoexcept

在文件 FogInteractor.h 第 29 行定义.

◆ setProxies()

Result< void > eve::graphics::fog::FogInteractor::setProxies ( std::vector< FogSolidProxy >  proxies)

Replace the proxy set atomically after validation.

在文件 FogInteractor.cpp 第 28 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, p , 以及 eve::Result< T >::success().


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