类 | |
| struct | FragmentBodyConfig |
| Policy for dynamic fragment fixture creation and terrain settlement. 更多... | |
| struct | FragmentCollisionRect |
| One deterministic axis-aligned fixture produced from a fragment bitmap. 更多... | |
| struct | FragmentSettleReceipt |
| Receipt for one checked fragment-body settlement poll. 更多... | |
| class | PixelFragmentBody |
| Owning detached bitmap plus a non-owning, stale-safe dynamic body link. 更多... | |
| class | PixelTerrainCollisionCache |
| Incremental static collision projection of authoritative PixelWorld chunks. 更多... | |
| struct | PixelTerrainContact |
| Deterministic contact returned by an authoritative terrain probe or sweep. 更多... | |
| class | PixelWorldPhysics |
| Script-facing owner for PixelWorld-to-Box2D terrain projection. 更多... | |
| struct | TerrainCollisionContour |
| One simplified local-space boundary contour generated for a terrain Chunk. 更多... | |
| struct | TerrainCollisionSyncReceipt |
| Counters for one transactional dirty-Chunk terrain collision sync. 更多... | |
枚举 | |
| enum class | FragmentSettleDisposition : std::uint8_t { StillAwake , Rasterized } |
| Observable outcome of polling a fragment body for settlement. 更多... | |
函数 | |
| eve::Result< std::vector< TerrainCollisionContour > > | extractTerrainContours (const eve::pixelworld::PixelWorld &pixelWorld, int chunkX, int chunkY, std::uint32_t maximumVertices=4096) |
| Extract simplified binary Marching-Squares-equivalent boundary chains for one Chunk. | |
| eve::Result< PixelTerrainContact > | probeTerrainCircle (const eve::pixelworld::PixelWorld &pixelWorld, float centerX, float centerY, float radius, std::uint32_t maximumCells=4096) |
| Probe a circular character contact directly against authoritative solid material cells. | |
| eve::Result< PixelTerrainContact > | sweepTerrainCircle (const eve::pixelworld::PixelWorld &pixelWorld, float startX, float startY, float endX, float endY, float radius, std::uint32_t maximumCells=16384) |
| Sweep a circular character shape continuously through authoritative solid material cells. | |
| Module_IMPL (PixelWorldPhysics, new PixelWorldPhysics()) | |
枚举类型说明
◆ FragmentSettleDisposition
|
strong |
Observable outcome of polling a fragment body for settlement.
| 枚举值 | |
|---|---|
| StillAwake | |
| Rasterized | |
在文件 PixelWorldPhysics.h 第 36 行定义.
函数说明
◆ extractTerrainContours()
| EVENGINE_API_DOMAINS eve::Result< std::vector< TerrainCollisionContour > > eve::pixelworld_physics::extractTerrainContours | ( | const eve::pixelworld::PixelWorld & | pixelWorld, |
| int | chunkX, | ||
| int | chunkY, | ||
| std::uint32_t | maximumVertices = 4096 |
||
| ) |
Extract simplified binary Marching-Squares-equivalent boundary chains for one Chunk.
- 备注
- Solid occupancy is sampled through PixelWorld, including the one-cell neighbor halo, so shared Chunk borders do not emit internal collision edges. Output is deterministic and owning.
在文件 PixelWorldPhysics.cpp 第 118 行定义.
引用了 edges, eve::Diagnostic::error(), eve::pixelworld::PixelWorld::getCell(), eve::InvalidArgument, eve::pixelworld::PixelWorld::isSolidMaterial(), eve::pixelworld::kPixelChunkSize, eve::pixelworld::PixelCell::material, size, x , 以及 y.
被这些函数引用 eve::pixelworld_physics::PixelTerrainCollisionCache::sync().
◆ Module_IMPL()
| eve::pixelworld_physics::Module_IMPL | ( | PixelWorldPhysics | , |
| new | PixelWorldPhysics() | ||
| ) |
◆ probeTerrainCircle()
| EVENGINE_API_DOMAINS eve::Result< PixelTerrainContact > eve::pixelworld_physics::probeTerrainCircle | ( | const eve::pixelworld::PixelWorld & | pixelWorld, |
| float | centerX, | ||
| float | centerY, | ||
| float | radius, | ||
| std::uint32_t | maximumCells = 4096 |
||
| ) |
Probe a circular character contact directly against authoritative solid material cells.
- 参数
-
maximumCells Positive upper bound on candidate cells inspected.
在文件 PixelWorldPhysics.cpp 第 216 行定义.
引用了 best, bottom, depth, distance, dx, dy, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::pixelworld::PixelWorld::getCell(), height, eve::InvalidArgument, eve::pixelworld::PixelWorld::isSolidMaterial(), left, material, eve::pixelworld::PixelCell::material, eve::PreconditionViolation, probeTerrainCircle(), radius, right, eve::Result< T >::success(), top, width, x , 以及 y.
被这些函数引用 probeTerrainCircle() , 以及 sweepTerrainCircle().
◆ sweepTerrainCircle()
| EVENGINE_API_DOMAINS eve::Result< PixelTerrainContact > eve::pixelworld_physics::sweepTerrainCircle | ( | const eve::pixelworld::PixelWorld & | pixelWorld, |
| float | startX, | ||
| float | startY, | ||
| float | endX, | ||
| float | endY, | ||
| float | radius, | ||
| std::uint32_t | maximumCells = 16384 |
||
| ) |
Sweep a circular character shape continuously through authoritative solid material cells.
- 备注
- Uses an exact segment-vs-expanded-cell slab test and deterministic fraction/cell tie-breaks.
在文件 PixelWorldPhysics.cpp 第 277 行定义.
引用了 best, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::pixelworld_physics::PixelTerrainContact::fraction, eve::pixelworld::PixelWorld::getCell(), height, eve::InvalidArgument, eve::pixelworld::PixelWorld::isSolidMaterial(), material, eve::pixelworld::PixelCell::material, nx, ny, offsetX, offsetY, eve::PreconditionViolation, probeTerrainCircle(), radius, eve::Result< T >::success(), sweepTerrainCircle(), width, x , 以及 y.
被这些函数引用 sweepTerrainCircle().