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.
◆ clipAdvection()
|
noexcept |
Clip a local-cell advection displacement against thin solids.
- 参数
-
startLocal Cell-space start (cell units). deltaLocal Proposed displacement in cell units. bounds World bounds of the MAC domain. cellSize World size of one cell.
- 返回
- Clipped end position in cell space.
在文件 FogInteractor.cpp 第 191 行定义.
◆ isSolidWorld()
|
noexcept |
True when a world point lies inside any enabled solid.
在文件 FogInteractor.cpp 第 103 行定义.
被这些函数引用 applyToGrid().
◆ proxyAt()
| const FogSolidProxy & eve::graphics::fog::FogInteractor::proxyAt | ( | std::size_t | index | ) | const |
在文件 FogInteractor.cpp 第 53 行定义.
引用了 index.
◆ proxyCount()
|
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().
该类的文档由以下文件生成:
- src/modules/graphics/fog/FogInteractor.h
- src/modules/graphics/fog/FogInteractor.cpp