mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-06-19 12:29:07 +02:00
62 lines
1.8 KiB
C++
Executable file
62 lines
1.8 KiB
C++
Executable file
//
|
|
// CharacterGhostObject.h
|
|
// libraries/physics/src
|
|
//
|
|
// Created by Andrew Meadows 2016.08.26
|
|
// Copyright 2016 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
#ifndef hifi_CharacterGhostObject_h
|
|
#define hifi_CharacterGhostObject_h
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <btBulletDynamicsCommon.h>
|
|
#include <BulletCollision/CollisionDispatch/btGhostObject.h>
|
|
#include <stdint.h>
|
|
|
|
#include "CharacterSweepResult.h"
|
|
#include "CharacterRayResult.h"
|
|
|
|
class CharacterGhostShape;
|
|
|
|
class CharacterGhostObject : public btGhostObject {
|
|
public:
|
|
CharacterGhostObject() { }
|
|
~CharacterGhostObject();
|
|
|
|
void setCollisionGroupAndMask(int32_t group, int32_t mask);
|
|
void getCollisionGroupAndMask(int32_t& group, int32_t& mask) const;
|
|
|
|
void setRadiusAndHalfHeight(btScalar radius, btScalar halfHeight);
|
|
void setUpDirection(const btVector3& up);
|
|
|
|
void setCharacterShape(btConvexHullShape* shape);
|
|
|
|
void setCollisionWorld(btCollisionWorld* world);
|
|
|
|
bool rayTest(const btVector3& start,
|
|
const btVector3& end,
|
|
CharacterRayResult& result) const;
|
|
|
|
void refreshOverlappingPairCache();
|
|
|
|
protected:
|
|
void removeFromWorld();
|
|
void addToWorld();
|
|
|
|
protected:
|
|
btCollisionWorld* _world { nullptr }; // input, pointer to world
|
|
btScalar _halfHeight { 0.0f };
|
|
btScalar _radius { 0.0f };
|
|
btConvexHullShape* _characterShape { nullptr }; // input, shape of character
|
|
CharacterGhostShape* _ghostShape { nullptr }; // internal, shape whose Aabb is used for overlap cache
|
|
int32_t _collisionFilterGroup { 0 };
|
|
int32_t _collisionFilterMask { 0 };
|
|
bool _inWorld { false }; // internal, was added to world
|
|
};
|
|
|
|
#endif // hifi_CharacterGhostObject_h
|