Fix warnings

This commit is contained in:
Daniel Chappuis 2021-11-18 16:52:11 +01:00
parent 08da70bfcd
commit b3d8b13214
16 changed files with 29 additions and 30 deletions

View File

@ -66,7 +66,6 @@ do not hesitate to take a look at the user manual.
- Issue in copy-constructors in Map and Set classes
- A lot of code warnings have been fixed
## Version 0.8.0 (May 31, 2020)
Note that this release contains some public API changes. Please read carefully the following changes before upgrading to this new version and

View File

@ -58,7 +58,7 @@ struct ContactManifoldInfo {
// -------------------- Methods -------------------- //
/// Constructor
ContactManifoldInfo(uint64 pairId) : nbPotentialContactPoints(0), pairId(pairId) {
ContactManifoldInfo(uint64 pairId) : nbPotentialContactPoints(0), potentialContactPointsIndices{0}, pairId(pairId) {
}

View File

@ -94,7 +94,7 @@ struct ContactPair {
/// Constructor
ContactPair(uint64 pairId, Entity body1Entity, Entity body2Entity, Entity collider1Entity,
Entity collider2Entity, uint32 contactPairIndex, bool collidingInPreviousFrame, bool isTrigger)
: pairId(pairId), nbPotentialContactManifolds(0), body1Entity(body1Entity), body2Entity(body2Entity),
: pairId(pairId), nbPotentialContactManifolds(0), potentialContactManifoldsIndices{0}, body1Entity(body1Entity), body2Entity(body2Entity),
collider1Entity(collider1Entity), collider2Entity(collider2Entity),
isAlreadyInIsland(false), contactPairIndex(contactPairIndex), contactManifoldsIndex(0), nbContactManifolds(0),
contactPointsIndex(0), nbToTalContactPoints(0), collidingInPreviousFrame(collidingInPreviousFrame), isTrigger(isTrigger) {

View File

@ -57,10 +57,10 @@ class HalfEdgeStructure {
Array<uint32> faceVertices; // Index of the vertices of the face
/// Constructor
Face(MemoryAllocator& allocator) : faceVertices(allocator) {}
Face(MemoryAllocator& allocator) : edgeIndex(0), faceVertices(allocator) {}
/// Constructor
Face(Array<uint32> vertices) : faceVertices(vertices) {}
Face(Array<uint32> vertices) : edgeIndex(0), faceVertices(vertices) {}
};
/// Vertex
@ -69,7 +69,7 @@ class HalfEdgeStructure {
uint32 edgeIndex; // Index of one edge emanting from this vertex
/// Constructor
Vertex(uint32 vertexCoordsIndex) : vertexPointIndex(vertexCoordsIndex) { }
Vertex(uint32 vertexCoordsIndex) : vertexPointIndex(vertexCoordsIndex), edgeIndex(0) { }
};
private:

View File

@ -241,7 +241,7 @@ class DynamicAABBTree {
void* getNodeDataPointer(int32 nodeID) const;
/// Report all shapes overlapping with all the shapes in the map in parameter
void reportAllShapesOverlappingWithShapes(const Array<int32>& nodesToTest, size_t startIndex,
void reportAllShapesOverlappingWithShapes(const Array<int32>& nodesToTest, uint32 startIndex,
size_t endIndex, Array<Pair<int32, int32>>& outOverlappingNodes) const;
/// Report all shapes overlapping with the AABB given in parameter.

View File

@ -55,10 +55,10 @@ class Deque {
// -------------------- Constants -------------------- //
/// Number of items in a chunk
const uint64 CHUNK_NB_ITEMS = 17;
const uint8 CHUNK_NB_ITEMS = 17;
/// First item index in a chunk
const uint64 CHUNK_FIRST_ITEM_INDEX = CHUNK_NB_ITEMS / 2;
const uint8 CHUNK_FIRST_ITEM_INDEX = CHUNK_NB_ITEMS / 2;
// -------------------- Attributes -------------------- //

View File

@ -276,7 +276,7 @@ class Map {
uint64* newBuckets = static_cast<uint64*>(mAllocator.allocate(capacity * sizeof(uint64)));
// Allocate memory for the entries
const uint64 nbAllocatedEntries = static_cast<uint64>(capacity * DEFAULT_LOAD_FACTOR);
const uint64 nbAllocatedEntries = static_cast<uint64>(static_cast<float>(capacity) * DEFAULT_LOAD_FACTOR);
assert(nbAllocatedEntries > 0);
Pair<K, V>* newEntries = static_cast<Pair<K, V>*>(mAllocator.allocate(nbAllocatedEntries * sizeof(Pair<K, V>)));
uint64* newNextEntries = static_cast<uint64*>(mAllocator.allocate(nbAllocatedEntries * sizeof(uint64)));

View File

@ -275,7 +275,7 @@ class Set {
uint64* newBuckets = static_cast<uint64*>(mAllocator.allocate(capacity * sizeof(uint64)));
// Allocate memory for the entries
const uint64 nbAllocatedEntries = static_cast<uint64>(capacity * DEFAULT_LOAD_FACTOR);
const uint64 nbAllocatedEntries = static_cast<uint64>(static_cast<float>(capacity) * DEFAULT_LOAD_FACTOR);
assert(nbAllocatedEntries > 0);
V* newEntries = static_cast<V*>(mAllocator.allocate(nbAllocatedEntries * sizeof(V)));
uint64* newNextEntries = static_cast<uint64*>(mAllocator.allocate(nbAllocatedEntries * sizeof(uint64)));

View File

@ -1005,8 +1005,8 @@ void RigidBody::resetOverlappingPairs() {
// Get the currently overlapping pairs for this collider
Array<uint64> overlappingPairs = mWorld.mCollidersComponents.getOverlappingPairs(colliderEntities[i]);
const uint32 nbOverlappingPairs = overlappingPairs.size();
for (uint32 j=0; j < nbOverlappingPairs; j++) {
const uint64 nbOverlappingPairs = overlappingPairs.size();
for (uint64 j=0; j < nbOverlappingPairs; j++) {
mWorld.mCollisionDetection.mOverlappingPairs.removePair(overlappingPairs[j]);
}

View File

@ -83,8 +83,8 @@ CollisionCallback::CallbackData::CallbackData(Array<reactphysics3d::ContactPair>
mWorld(world) {
// Filter the contact pairs to only keep the contact events (not the overlap/trigger events)
const uint32 nbContactPairs = mContactPairs->size();
for (uint32 i=0; i < nbContactPairs; i++) {
const uint64 nbContactPairs = mContactPairs->size();
for (uint64 i=0; i < nbContactPairs; i++) {
// If the contact pair contains contacts (and is therefore not an overlap/trigger event)
if (!(*mContactPairs)[i].isTrigger) {
@ -92,8 +92,8 @@ CollisionCallback::CallbackData::CallbackData(Array<reactphysics3d::ContactPair>
}
}
// Filter the lost contact pairs to only keep the contact events (not the overlap/trigger events)
const uint32 nbLostContactPairs = mLostContactPairs.size();
for (uint32 i=0; i < nbLostContactPairs; i++) {
const uint64 nbLostContactPairs = mLostContactPairs.size();
for (uint64 i=0; i < nbLostContactPairs; i++) {
// If the contact pair contains contacts (and is therefore not an overlap/trigger event)
if (!mLostContactPairs[i].isTrigger) {

View File

@ -44,7 +44,7 @@ void HalfEdgeStructure::init() {
Array<VerticesPair> currentFaceEdges(mAllocator, mFaces[0].faceVertices.size());
// For each face
const uint32 nbFaces = mFaces.size();
const uint32 nbFaces = static_cast<uint32>(mFaces.size());
for (uint32 f=0; f < nbFaces; f++) {
Face& face = mFaces[f];
@ -52,7 +52,7 @@ void HalfEdgeStructure::init() {
VerticesPair firstEdgeKey(0, 0);
// For each vertex of the face
const uint32 nbFaceVertices = face.faceVertices.size();
const uint32 nbFaceVertices = static_cast<uint32>(face.faceVertices.size());
for (uint32 v=0; v < nbFaceVertices; v++) {
uint32 v1Index = face.faceVertices[v];
uint32 v2Index = face.faceVertices[v == (face.faceVertices.size() - 1) ? 0 : v + 1];
@ -84,7 +84,7 @@ void HalfEdgeStructure::init() {
auto itEdge = edges.find(pairV2V1);
if (itEdge != edges.end()) {
const uint32 edgeIndex = mEdges.size();
const uint32 edgeIndex = static_cast<uint32>(mEdges.size());
itEdge->second.twinEdgeIndex = edgeIndex + 1;
edge.twinEdgeIndex = edgeIndex;
@ -109,7 +109,7 @@ void HalfEdgeStructure::init() {
}
// Set next edges
const uint32 nbEdges = mEdges.size();
const uint32 nbEdges = static_cast<uint32>(mEdges.size());
for (uint32 i=0; i < nbEdges; i++) {
mEdges[i].nextEdgeIndex = mapEdgeToIndex[nextEdges[mapEdgeIndexToKey[i]]];
}

View File

@ -72,8 +72,8 @@ OverlapCallback::CallbackData::CallbackData(Array<ContactPair>& contactPairs, Ar
mContactPairsIndices(world.mMemoryManager.getHeapAllocator()), mLostContactPairsIndices(world.mMemoryManager.getHeapAllocator()), mWorld(world) {
// Filter the contact pairs to only keep the overlap/trigger events (not the contact events)
const uint32 nbContactPairs = mContactPairs.size();
for (uint32 i=0; i < nbContactPairs; i++) {
const uint64 nbContactPairs = mContactPairs.size();
for (uint64 i=0; i < nbContactPairs; i++) {
// If the contact pair contains contacts (and is therefore not an overlap/trigger event)
if (!onlyReportTriggers || mContactPairs[i].isTrigger) {
@ -81,8 +81,8 @@ OverlapCallback::CallbackData::CallbackData(Array<ContactPair>& contactPairs, Ar
}
}
// Filter the lost contact pairs to only keep the overlap/trigger events (not the contact events)
const uint32 nbLostContactPairs = mLostContactPairs.size();
for (uint32 i=0; i < nbLostContactPairs; i++) {
const uint64 nbLostContactPairs = mLostContactPairs.size();
for (uint i=0; i < nbLostContactPairs; i++) {
// If the contact pair contains contacts (and is therefore not an overlap/trigger event)
if (!onlyReportTriggers || mLostContactPairs[i].isTrigger) {

View File

@ -213,7 +213,7 @@ decimal PolyhedronMesh::getFaceArea(uint32 faceIndex) const {
Vector3 v1 = getVertex(face.faceVertices[0]);
// For each vertex of the face
const uint32 nbFaceVertices = face.faceVertices.size();
const uint32 nbFaceVertices = static_cast<uint32>(face.faceVertices.size());
for (uint32 i=2; i < nbFaceVertices; i++) {
const Vector3 v2 = getVertex(face.faceVertices[i-1]);

View File

@ -587,7 +587,7 @@ int32 DynamicAABBTree::balanceSubTreeAtNode(int32 nodeID) {
}
/// Take an array of shapes to be tested for broad-phase overlap and return an array of pair of overlapping shapes
void DynamicAABBTree::reportAllShapesOverlappingWithShapes(const Array<int32>& nodesToTest, size_t startIndex,
void DynamicAABBTree::reportAllShapesOverlappingWithShapes(const Array<int32>& nodesToTest, uint32 startIndex,
size_t endIndex, Array<Pair<int32, int32>>& outOverlappingNodes) const {
RP3D_PROFILE("DynamicAABBTree::reportAllShapesOverlappingWithAABB()", mProfiler);

View File

@ -52,7 +52,7 @@ void NarrowPhaseInfoBatch::reserveMemory() {
// Clear all the objects in the batch
void NarrowPhaseInfoBatch::clear() {
const uint32 nbNarrowPhaseInfos = narrowPhaseInfos.size();
const uint32 nbNarrowPhaseInfos = static_cast<uint32>(narrowPhaseInfos.size());
for (uint32 i=0; i < nbNarrowPhaseInfos; i++) {
assert(narrowPhaseInfos[i].nbContactPoints == 0);
@ -76,7 +76,7 @@ void NarrowPhaseInfoBatch::clear() {
// allocated in the next frame at a possibly different location in memory (remember that the
// location of the allocated memory of a single frame allocator might change between two frames)
mCachedCapacity = narrowPhaseInfos.capacity();
mCachedCapacity = static_cast<uint32>(narrowPhaseInfos.capacity());
narrowPhaseInfos.clear(true);
}

View File

@ -217,7 +217,7 @@ void BroadPhaseSystem::computeOverlappingPairs(MemoryManager& memoryManager, Arr
Array<int> shapesToTest = mMovedShapes.toArray(memoryManager.getHeapAllocator());
// Ask the dynamic AABB tree to report all collision shapes that overlap with the shapes to test
mDynamicAABBTree.reportAllShapesOverlappingWithShapes(shapesToTest, 0, shapesToTest.size(), overlappingNodes);
mDynamicAABBTree.reportAllShapesOverlappingWithShapes(shapesToTest, 0, static_cast<uint32>(shapesToTest.size()), overlappingNodes);
// Reset the array of collision shapes that have move (or have been created) during the
// last simulation step