MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / set_camera_collision

Function set_camera_collision

ogsr_engine/xrGame/ActorCameraCollision.cpp:213–244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

211}
212
213void set_camera_collision(const Fvector& box_size, const Fmatrix& xform, CPhysicsElement* roote, CBoxGeom* box)
214{
215 ZoneScoped;
216
217 Fvector bs = box_size;
218 bs.z = box_size.z * 2.f;
219 bs.y = box_size.y * 1.5f;
220
221 box->set_size(bs);
222 Fmatrix m = Fidentity;
223 m.c.z -= box_size.z;
224 m.c.y -= box_size.y * 0.5f;
225 box->set_local_form_bt(m);
226 // CBoxGeom* character_collision_geom = smart_cast<CBoxGeom*>( roote->geometry( 1 ) );
227 CCylinderGeom* character_collision_geom = smart_cast<CCylinderGeom*>(roote->geometry(1));
228 VERIFY(character_collision_geom);
229 const Fvector character_collision_box_size =
230 Fvector().add(box_size, Fvector().set(camera_collision_character_skin_depth, camera_collision_character_skin_depth, camera_collision_character_skin_depth));
231 // character_collision_geom->set_size( character_collision_box_size );
232 character_collision_geom->set_radius(character_collision_box_size.x);
233 VERIFY(_valid(xform));
234 Fmatrix character_collision_geom_local_xform(Fmatrix().invert(xform));
235 Fvector shift_fv = Fvector().mul(xform.k, camera_collision_character_shift_z);
236 shift_fv.y = 0;
237 character_collision_geom_local_xform.transform_dir(shift_fv);
238
239 // character_collision_geom_local_xform.c.set( 0, -0.8f, 0 );
240 character_collision_geom_local_xform.c.set(Fvector().mul(character_collision_geom_local_xform.j, -camera_collision_character_gl_shift_y).add(Fvector().set(shift_fv)));
241 // character_collision_geom_local_xform.c.y =-0.8f;
242 character_collision_geom->set_local_form_bt(character_collision_geom_local_xform);
243 roote->SetTransform(xform /*, mh_clear*/);
244}
245
246bool do_collide_and_move(const Fmatrix& xform, CPhysicsShellHolder* l_actor, CPhysicsShell* shell, CPhysicsElement* roote)
247{

Callers 2

test_camera_boxFunction · 0.85
collide_cameraFunction · 0.85

Calls 11

set_sizeMethod · 0.80
set_local_form_btMethod · 0.80
_validFunction · 0.50
geometryMethod · 0.45
addMethod · 0.45
setMethod · 0.45
set_radiusMethod · 0.45
invertMethod · 0.45
mulMethod · 0.45
transform_dirMethod · 0.45
SetTransformMethod · 0.45

Tested by 1

test_camera_boxFunction · 0.68