载入中...
搜索中...
未找到
eve::pixelworld_physics 命名空间参考

类

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

enum class eve::pixelworld_physics::FragmentSettleDisposition : std::uint8_t
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.

参数
maximumCellsPositive 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().