init
This commit is contained in:
commit
87bff164f1
416 files changed
+279512
No files matched your search
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
#include "rigid_world_toi.h"
|
||||
namespace noita::cpu {
|
||||
struct ContactListeners {
|
||||
std::function<void(WorldToi&,int)> begin,end;
|
||||
std::function<void(WorldToi&,int,const ContactManifold&)> pre_solve;
|
||||
std::function<void(WorldToi&,int,std::span<const ContactImpulse>)> post_solve;
|
||||
// Additional application/joint collision gate, applied with standard filters.
|
||||
std::function<bool(const WorldToi&,int,int)> allow_pair;
|
||||
};
|
||||
void find_contact_pairs(WorldToi&,const ContactListeners& = {});
|
||||
void evaluate_world_contact(WorldToi&,int,const ContactListeners& = {});
|
||||
void update_world_contacts(WorldToi&,const ContactListeners& = {});
|
||||
void destroy_world_contact(WorldToi&,int,const ContactListeners& = {});
|
||||
// Given a joint-free discrete island and matching per-island-body forces.
|
||||
// The caller supplies island traversal/order, dt ratio and original block switch.
|
||||
bool solve_contact_discrete_island(WorldToi&,const ToiIsland&,std::span<const BodyForces>,
|
||||
bool warm_start,double dt_ratio,bool block_solver,const ContactListeners& = {},bool synchronize=true);
|
||||
void solve_contact_toi_island(WorldToi&,const ToiIsland&,bool block_solver,const ContactListeners& = {});
|
||||
WorldToiHooks contact_world_hooks(bool block_solver,const ContactListeners& = {});
|
||||
}
|
||||
Reference in new issue
Block a user