mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-14 09:36:37 +02:00
42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
//
|
|
// CollisionInfo.cpp
|
|
// hifi
|
|
//
|
|
// Created by Andrew Meadows on 2014.02.14
|
|
// Copyright (c) 2014 High Fidelity, Inc. All rights reserved.
|
|
//
|
|
|
|
#include "CollisionInfo.h"
|
|
|
|
CollisionList::CollisionList(int maxSize) :
|
|
_maxSize(maxSize),
|
|
_size(0) {
|
|
_collisions.resize(_maxSize);
|
|
}
|
|
|
|
CollisionInfo* CollisionList::getNewCollision() {
|
|
// return pointer to existing CollisionInfo, or NULL of list is full
|
|
return (_size < _maxSize) ? &(_collisions[++_size]) : NULL;
|
|
}
|
|
|
|
CollisionInfo* CollisionList::getCollision(int index) {
|
|
return (index > -1 && index < _size) ? &(_collisions[index]) : NULL;
|
|
}
|
|
|
|
void CollisionList::clear() {
|
|
for (int i = 0; i < _size; ++i) {
|
|
// we only clear the important stuff
|
|
CollisionInfo& collision = _collisions[i];
|
|
collision._type = BASE_COLLISION;
|
|
collision._data = NULL; // CollisionInfo does not own whatever this points to.
|
|
collision._flags = 0;
|
|
// we rely on the consumer to properly overwrite these fields when the collision is "created"
|
|
//collision._damping;
|
|
//collision._elasticity;
|
|
//collision._contactPoint;
|
|
//collision._penetration;
|
|
//collision._addedVelocity;
|
|
}
|
|
_size = 0;
|
|
}
|
|
|