@@ -40,12 +40,12 @@ public: | |||
/// Create a loop. This automatically adjusts connectivity. | |||
/// @param vertices an array of vertices, these are copied | |||
/// @param count the vertex count | |||
void CreateLoop(const b2Vec2* vertices, int32 count); | |||
void CreateLoop(const b2Vec2* vertices, juce::int32 count); | |||
/// Create a chain with isolated end vertices. | |||
/// @param vertices an array of vertices, these are copied | |||
/// @param count the vertex count | |||
void CreateChain(const b2Vec2* vertices, int32 count); | |||
void CreateChain(const b2Vec2* vertices, juce::int32 count); | |||
/// Establish connectivity to a vertex that precedes the first vertex. | |||
/// Don't call this for loops. | |||
@@ -59,10 +59,10 @@ public: | |||
b2Shape* Clone(b2BlockAllocator* allocator) const; | |||
/// @see b2Shape::GetChildCount | |||
int32 GetChildCount() const; | |||
juce::int32 GetChildCount() const; | |||
/// Get a child edge. | |||
void GetChildEdge(b2EdgeShape* edge, int32 index) const; | |||
void GetChildEdge(b2EdgeShape* edge, juce::int32 index) const; | |||
/// This always return false. | |||
/// @see b2Shape::TestPoint | |||
@@ -70,10 +70,10 @@ public: | |||
/// Implement b2Shape. | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, | |||
const b2Transform& transform, int32 childIndex) const; | |||
const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeAABB | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, juce::int32 childIndex) const; | |||
/// Chains have zero mass. | |||
/// @see b2Shape::ComputeMass | |||
@@ -83,7 +83,7 @@ public: | |||
b2Vec2* m_vertices; | |||
/// The vertex count. | |||
int32 m_count; | |||
juce::int32 m_count; | |||
b2Vec2 m_prevVertex, m_nextVertex; | |||
bool m_hasPrevVertex, m_hasNextVertex; | |||
@@ -31,32 +31,32 @@ public: | |||
b2Shape* Clone(b2BlockAllocator* allocator) const; | |||
/// @see b2Shape::GetChildCount | |||
int32 GetChildCount() const; | |||
juce::int32 GetChildCount() const; | |||
/// Implement b2Shape. | |||
bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; | |||
/// Implement b2Shape. | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, | |||
const b2Transform& transform, int32 childIndex) const; | |||
const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeAABB | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeMass | |||
void ComputeMass(b2MassData* massData, float32 density) const; | |||
/// Get the supporting vertex index in the given direction. | |||
int32 GetSupport(const b2Vec2& d) const; | |||
juce::int32 GetSupport(const b2Vec2& d) const; | |||
/// Get the supporting vertex in the given direction. | |||
const b2Vec2& GetSupportVertex(const b2Vec2& d) const; | |||
/// Get the vertex count. | |||
int32 GetVertexCount() const { return 1; } | |||
juce::int32 GetVertexCount() const { return 1; } | |||
/// Get a vertex by index. Used by b2Distance. | |||
const b2Vec2& GetVertex(int32 index) const; | |||
const b2Vec2& GetVertex(juce::int32 index) const; | |||
/// Position | |||
b2Vec2 m_p; | |||
@@ -69,7 +69,7 @@ inline b2CircleShape::b2CircleShape() | |||
m_p.SetZero(); | |||
} | |||
inline int32 b2CircleShape::GetSupport(const b2Vec2 &d) const | |||
inline juce::int32 b2CircleShape::GetSupport(const b2Vec2 &d) const | |||
{ | |||
B2_NOT_USED(d); | |||
return 0; | |||
@@ -81,7 +81,7 @@ inline const b2Vec2& b2CircleShape::GetSupportVertex(const b2Vec2 &d) const | |||
return m_p; | |||
} | |||
inline const b2Vec2& b2CircleShape::GetVertex(int32 index) const | |||
inline const b2Vec2& b2CircleShape::GetVertex(juce::int32 index) const | |||
{ | |||
B2_NOT_USED(index); | |||
b2Assert(index == 0); | |||
@@ -36,17 +36,17 @@ public: | |||
b2Shape* Clone(b2BlockAllocator* allocator) const; | |||
/// @see b2Shape::GetChildCount | |||
int32 GetChildCount() const; | |||
juce::int32 GetChildCount() const; | |||
/// @see b2Shape::TestPoint | |||
bool TestPoint(const b2Transform& transform, const b2Vec2& p) const; | |||
/// Implement b2Shape. | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, | |||
const b2Transform& transform, int32 childIndex) const; | |||
const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeAABB | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeMass | |||
void ComputeMass(b2MassData* massData, float32 density) const; | |||
@@ -34,12 +34,12 @@ public: | |||
b2Shape* Clone(b2BlockAllocator* allocator) const; | |||
/// @see b2Shape::GetChildCount | |||
int32 GetChildCount() const; | |||
juce::int32 GetChildCount() const; | |||
/// Copy vertices. This assumes the vertices define a convex polygon. | |||
/// It is assumed that the exterior is the the right of each edge. | |||
/// The count must be in the range [3, b2_maxPolygonVertices]. | |||
void Set(const b2Vec2* vertices, int32 vertexCount); | |||
void Set(const b2Vec2* vertices, juce::int32 vertexCount); | |||
/// Build vertices to represent an axis-aligned box. | |||
/// @param hx the half-width. | |||
@@ -58,24 +58,24 @@ public: | |||
/// Implement b2Shape. | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, | |||
const b2Transform& transform, int32 childIndex) const; | |||
const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeAABB | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const; | |||
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, juce::int32 childIndex) const; | |||
/// @see b2Shape::ComputeMass | |||
void ComputeMass(b2MassData* massData, float32 density) const; | |||
/// Get the vertex count. | |||
int32 GetVertexCount() const { return m_vertexCount; } | |||
juce::int32 GetVertexCount() const { return m_vertexCount; } | |||
/// Get a vertex by index. | |||
const b2Vec2& GetVertex(int32 index) const; | |||
const b2Vec2& GetVertex(juce::int32 index) const; | |||
b2Vec2 m_centroid; | |||
b2Vec2 m_vertices[b2_maxPolygonVertices]; | |||
b2Vec2 m_normals[b2_maxPolygonVertices]; | |||
int32 m_vertexCount; | |||
juce::int32 m_vertexCount; | |||
}; | |||
inline b2PolygonShape::b2PolygonShape() | |||
@@ -86,7 +86,7 @@ inline b2PolygonShape::b2PolygonShape() | |||
m_centroid.SetZero(); | |||
} | |||
inline const b2Vec2& b2PolygonShape::GetVertex(int32 index) const | |||
inline const b2Vec2& b2PolygonShape::GetVertex(juce::int32 index) const | |||
{ | |||
b2Assert(0 <= index && index < m_vertexCount); | |||
return m_vertices[index]; | |||
@@ -62,7 +62,7 @@ public: | |||
Type GetType() const; | |||
/// Get the number of child primitives. | |||
virtual int32 GetChildCount() const = 0; | |||
virtual juce::int32 GetChildCount() const = 0; | |||
/// Test a point for containment in this shape. This only works for convex shapes. | |||
/// @param xf the shape world transform. | |||
@@ -75,13 +75,13 @@ public: | |||
/// @param transform the transform to be applied to the shape. | |||
/// @param childIndex the child shape index | |||
virtual bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, | |||
const b2Transform& transform, int32 childIndex) const = 0; | |||
const b2Transform& transform, juce::int32 childIndex) const = 0; | |||
/// Given a transform, compute the associated axis aligned bounding box for a child shape. | |||
/// @param aabb returns the axis aligned box. | |||
/// @param xf the world transform of the shape. | |||
/// @param childIndex the child shape | |||
virtual void ComputeAABB(b2AABB* aabb, const b2Transform& xf, int32 childIndex) const = 0; | |||
virtual void ComputeAABB(b2AABB* aabb, const b2Transform& xf, juce::int32 childIndex) const = 0; | |||
/// Compute the mass properties of this shape using its dimensions and density. | |||
/// The inertia tensor is computed about the local origin. | |||
@@ -26,9 +26,9 @@ | |||
struct b2Pair | |||
{ | |||
int32 proxyIdA; | |||
int32 proxyIdB; | |||
int32 next; | |||
juce::int32 proxyIdA; | |||
juce::int32 proxyIdB; | |||
juce::int32 next; | |||
}; | |||
/// The broad-phase is used for computing pairs and performing volume queries and ray casts. | |||
@@ -48,29 +48,29 @@ public: | |||
/// Create a proxy with an initial AABB. Pairs are not reported until | |||
/// UpdatePairs is called. | |||
int32 CreateProxy(const b2AABB& aabb, void* userData); | |||
juce::int32 CreateProxy(const b2AABB& aabb, void* userData); | |||
/// Destroy a proxy. It is up to the client to remove any pairs. | |||
void DestroyProxy(int32 proxyId); | |||
void DestroyProxy(juce::int32 proxyId); | |||
/// Call MoveProxy as many times as you like, then when you are done | |||
/// call UpdatePairs to finalized the proxy pairs (for your time step). | |||
void MoveProxy(int32 proxyId, const b2AABB& aabb, const b2Vec2& displacement); | |||
void MoveProxy(juce::int32 proxyId, const b2AABB& aabb, const b2Vec2& displacement); | |||
/// Call to trigger a re-processing of it's pairs on the next call to UpdatePairs. | |||
void TouchProxy(int32 proxyId); | |||
void TouchProxy(juce::int32 proxyId); | |||
/// Get the fat AABB for a proxy. | |||
const b2AABB& GetFatAABB(int32 proxyId) const; | |||
const b2AABB& GetFatAABB(juce::int32 proxyId) const; | |||
/// Get user data from a proxy. Returns NULL if the id is invalid. | |||
void* GetUserData(int32 proxyId) const; | |||
void* GetUserData(juce::int32 proxyId) const; | |||
/// Test overlap of fat AABBs. | |||
bool TestOverlap(int32 proxyIdA, int32 proxyIdB) const; | |||
bool TestOverlap(juce::int32 proxyIdA, juce::int32 proxyIdB) const; | |||
/// Get the number of proxies. | |||
int32 GetProxyCount() const; | |||
juce::int32 GetProxyCount() const; | |||
/// Update the pairs. This results in pair callbacks. This can only add pairs. | |||
template <typename T> | |||
@@ -92,10 +92,10 @@ public: | |||
void RayCast(T* callback, const b2RayCastInput& input) const; | |||
/// Get the height of the embedded tree. | |||
int32 GetTreeHeight() const; | |||
juce::int32 GetTreeHeight() const; | |||
/// Get the balance of the embedded tree. | |||
int32 GetTreeBalance() const; | |||
juce::int32 GetTreeBalance() const; | |||
/// Get the quality metric of the embedded tree. | |||
float32 GetTreeQuality() const; | |||
@@ -104,24 +104,24 @@ private: | |||
friend class b2DynamicTree; | |||
void BufferMove(int32 proxyId); | |||
void UnBufferMove(int32 proxyId); | |||
void BufferMove(juce::int32 proxyId); | |||
void UnBufferMove(juce::int32 proxyId); | |||
bool QueryCallback(int32 proxyId); | |||
bool QueryCallback(juce::int32 proxyId); | |||
b2DynamicTree m_tree; | |||
int32 m_proxyCount; | |||
juce::int32 m_proxyCount; | |||
int32* m_moveBuffer; | |||
int32 m_moveCapacity; | |||
int32 m_moveCount; | |||
juce::int32* m_moveBuffer; | |||
juce::int32 m_moveCapacity; | |||
juce::int32 m_moveCount; | |||
b2Pair* m_pairBuffer; | |||
int32 m_pairCapacity; | |||
int32 m_pairCount; | |||
juce::int32 m_pairCapacity; | |||
juce::int32 m_pairCount; | |||
int32 m_queryProxyId; | |||
juce::int32 m_queryProxyId; | |||
}; | |||
/// This is used to sort pairs. | |||
@@ -140,34 +140,34 @@ inline bool b2PairLessThan(const b2Pair& pair1, const b2Pair& pair2) | |||
return false; | |||
} | |||
inline void* b2BroadPhase::GetUserData(int32 proxyId) const | |||
inline void* b2BroadPhase::GetUserData(juce::int32 proxyId) const | |||
{ | |||
return m_tree.GetUserData(proxyId); | |||
} | |||
inline bool b2BroadPhase::TestOverlap(int32 proxyIdA, int32 proxyIdB) const | |||
inline bool b2BroadPhase::TestOverlap(juce::int32 proxyIdA, juce::int32 proxyIdB) const | |||
{ | |||
const b2AABB& aabbA = m_tree.GetFatAABB(proxyIdA); | |||
const b2AABB& aabbB = m_tree.GetFatAABB(proxyIdB); | |||
return b2TestOverlap(aabbA, aabbB); | |||
} | |||
inline const b2AABB& b2BroadPhase::GetFatAABB(int32 proxyId) const | |||
inline const b2AABB& b2BroadPhase::GetFatAABB(juce::int32 proxyId) const | |||
{ | |||
return m_tree.GetFatAABB(proxyId); | |||
} | |||
inline int32 b2BroadPhase::GetProxyCount() const | |||
inline juce::int32 b2BroadPhase::GetProxyCount() const | |||
{ | |||
return m_proxyCount; | |||
} | |||
inline int32 b2BroadPhase::GetTreeHeight() const | |||
inline juce::int32 b2BroadPhase::GetTreeHeight() const | |||
{ | |||
return m_tree.GetHeight(); | |||
} | |||
inline int32 b2BroadPhase::GetTreeBalance() const | |||
inline juce::int32 b2BroadPhase::GetTreeBalance() const | |||
{ | |||
return m_tree.GetMaxBalance(); | |||
} | |||
@@ -184,7 +184,7 @@ void b2BroadPhase::UpdatePairs(T* callback) | |||
m_pairCount = 0; | |||
// Perform tree queries for all moving proxies. | |||
for (int32 i = 0; i < m_moveCount; ++i) | |||
for (juce::int32 i = 0; i < m_moveCount; ++i) | |||
{ | |||
m_queryProxyId = m_moveBuffer[i]; | |||
if (m_queryProxyId == e_nullProxy) | |||
@@ -207,7 +207,7 @@ void b2BroadPhase::UpdatePairs(T* callback) | |||
std::sort(m_pairBuffer, m_pairBuffer + m_pairCount, b2PairLessThan); | |||
// Send the pairs back to the client. | |||
int32 i = 0; | |||
juce::int32 i = 0; | |||
while (i < m_pairCount) | |||
{ | |||
b2Pair* primaryPair = m_pairBuffer + i; | |||
@@ -31,7 +31,7 @@ class b2CircleShape; | |||
class b2EdgeShape; | |||
class b2PolygonShape; | |||
const uint8 b2_nullFeature = UCHAR_MAX; | |||
const juce::uint8 b2_nullFeature = UCHAR_MAX; | |||
/// The features that intersect to form the contact point | |||
/// This must be 4 bytes or less. | |||
@@ -43,17 +43,17 @@ struct b2ContactFeature | |||
e_face = 1 | |||
}; | |||
uint8 indexA; ///< Feature index on shapeA | |||
uint8 indexB; ///< Feature index on shapeB | |||
uint8 typeA; ///< The feature type on shapeA | |||
uint8 typeB; ///< The feature type on shapeB | |||
juce::uint8 indexA; ///< Feature index on shapeA | |||
juce::uint8 indexB; ///< Feature index on shapeB | |||
juce::uint8 typeA; ///< The feature type on shapeA | |||
juce::uint8 typeB; ///< The feature type on shapeB | |||
}; | |||
/// Contact ids to facilitate warm starting. | |||
union b2ContactID | |||
{ | |||
b2ContactFeature cf; | |||
uint32 key; ///< Used to quickly compare contact ids. | |||
juce::uint32 key; ///< Used to quickly compare contact ids. | |||
}; | |||
/// A manifold point is a contact point belonging to a contact | |||
@@ -103,7 +103,7 @@ struct b2Manifold | |||
b2Vec2 localNormal; ///< not use for Type::e_points | |||
b2Vec2 localPoint; ///< usage depends on manifold type | |||
Type type; | |||
int32 pointCount; ///< the number of manifold points | |||
juce::int32 pointCount; ///< the number of manifold points | |||
}; | |||
/// This is used to compute the current state of a contact manifold. | |||
@@ -240,12 +240,12 @@ void b2CollideEdgeAndPolygon(b2Manifold* manifold, | |||
const b2PolygonShape* circleB, const b2Transform& xfB); | |||
/// Clipping for contact manifolds. | |||
int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2], | |||
const b2Vec2& normal, float32 offset, int32 vertexIndexA); | |||
juce::int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2], | |||
const b2Vec2& normal, float32 offset, juce::int32 vertexIndexA); | |||
/// Determine if two generic shapes overlap. | |||
bool b2TestOverlap( const b2Shape* shapeA, int32 indexA, | |||
const b2Shape* shapeB, int32 indexB, | |||
bool b2TestOverlap( const b2Shape* shapeA, juce::int32 indexA, | |||
const b2Shape* shapeB, juce::int32 indexB, | |||
const b2Transform& xfA, const b2Transform& xfB); | |||
// ---------------- Inline Functions ------------------------------------------ | |||
@@ -32,23 +32,23 @@ struct b2DistanceProxy | |||
/// Initialize the proxy using the given shape. The shape | |||
/// must remain in scope while the proxy is in use. | |||
void Set(const b2Shape* shape, int32 index); | |||
void Set(const b2Shape* shape, juce::int32 index); | |||
/// Get the supporting vertex index in the given direction. | |||
int32 GetSupport(const b2Vec2& d) const; | |||
juce::int32 GetSupport(const b2Vec2& d) const; | |||
/// Get the supporting vertex in the given direction. | |||
const b2Vec2& GetSupportVertex(const b2Vec2& d) const; | |||
/// Get the vertex count. | |||
int32 GetVertexCount() const; | |||
juce::int32 GetVertexCount() const; | |||
/// Get a vertex by index. Used by b2Distance. | |||
const b2Vec2& GetVertex(int32 index) const; | |||
const b2Vec2& GetVertex(juce::int32 index) const; | |||
b2Vec2 m_buffer[2]; | |||
const b2Vec2* m_vertices; | |||
int32 m_count; | |||
juce::int32 m_count; | |||
float32 m_radius; | |||
}; | |||
@@ -57,9 +57,9 @@ struct b2DistanceProxy | |||
struct b2SimplexCache | |||
{ | |||
float32 metric; ///< length or area | |||
uint16 count; | |||
uint8 indexA[3]; ///< vertices on shape A | |||
uint8 indexB[3]; ///< vertices on shape B | |||
juce::uint16 count; | |||
juce::uint8 indexA[3]; ///< vertices on shape A | |||
juce::uint8 indexB[3]; ///< vertices on shape B | |||
}; | |||
/// Input for b2Distance. | |||
@@ -80,7 +80,7 @@ struct b2DistanceOutput | |||
b2Vec2 pointA; ///< closest point on shapeA | |||
b2Vec2 pointB; ///< closest point on shapeB | |||
float32 distance; | |||
int32 iterations; ///< number of GJK iterations used | |||
juce::int32 iterations; ///< number of GJK iterations used | |||
}; | |||
/// Compute the closest points between two shapes. Supports any combination of: | |||
@@ -93,22 +93,22 @@ void b2Distance(b2DistanceOutput* output, | |||
////////////////////////////////////////////////////////////////////////// | |||
inline int32 b2DistanceProxy::GetVertexCount() const | |||
inline juce::int32 b2DistanceProxy::GetVertexCount() const | |||
{ | |||
return m_count; | |||
} | |||
inline const b2Vec2& b2DistanceProxy::GetVertex(int32 index) const | |||
inline const b2Vec2& b2DistanceProxy::GetVertex(juce::int32 index) const | |||
{ | |||
b2Assert(0 <= index && index < m_count); | |||
return m_vertices[index]; | |||
} | |||
inline int32 b2DistanceProxy::GetSupport(const b2Vec2& d) const | |||
inline juce::int32 b2DistanceProxy::GetSupport(const b2Vec2& d) const | |||
{ | |||
int32 bestIndex = 0; | |||
juce::int32 bestIndex = 0; | |||
float32 bestValue = b2Dot(m_vertices[0], d); | |||
for (int32 i = 1; i < m_count; ++i) | |||
for (juce::int32 i = 1; i < m_count; ++i) | |||
{ | |||
float32 value = b2Dot(m_vertices[i], d); | |||
if (value > bestValue) | |||
@@ -123,9 +123,9 @@ inline int32 b2DistanceProxy::GetSupport(const b2Vec2& d) const | |||
inline const b2Vec2& b2DistanceProxy::GetSupportVertex(const b2Vec2& d) const | |||
{ | |||
int32 bestIndex = 0; | |||
juce::int32 bestIndex = 0; | |||
float32 bestValue = b2Dot(m_vertices[0], d); | |||
for (int32 i = 1; i < m_count; ++i) | |||
for (juce::int32 i = 1; i < m_count; ++i) | |||
{ | |||
float32 value = b2Dot(m_vertices[i], d); | |||
if (value > bestValue) | |||
@@ -39,15 +39,15 @@ struct b2TreeNode | |||
union | |||
{ | |||
int32 parent; | |||
int32 next; | |||
juce::int32 parent; | |||
juce::int32 next; | |||
}; | |||
int32 child1; | |||
int32 child2; | |||
juce::int32 child1; | |||
juce::int32 child2; | |||
// leaf = 0, free node = -1 | |||
int32 height; | |||
juce::int32 height; | |||
}; | |||
/// A dynamic AABB tree broad-phase, inspired by Nathanael Presson's btDbvt. | |||
@@ -68,23 +68,23 @@ public: | |||
~b2DynamicTree(); | |||
/// Create a proxy. Provide a tight fitting AABB and a userData pointer. | |||
int32 CreateProxy(const b2AABB& aabb, void* userData); | |||
juce::int32 CreateProxy(const b2AABB& aabb, void* userData); | |||
/// Destroy a proxy. This asserts if the id is invalid. | |||
void DestroyProxy(int32 proxyId); | |||
void DestroyProxy(juce::int32 proxyId); | |||
/// Move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB, | |||
/// then the proxy is removed from the tree and re-inserted. Otherwise | |||
/// the function returns immediately. | |||
/// @return true if the proxy was re-inserted. | |||
bool MoveProxy(int32 proxyId, const b2AABB& aabb1, const b2Vec2& displacement); | |||
bool MoveProxy(juce::int32 proxyId, const b2AABB& aabb1, const b2Vec2& displacement); | |||
/// Get proxy user data. | |||
/// @return the proxy user data or 0 if the id is invalid. | |||
void* GetUserData(int32 proxyId) const; | |||
void* GetUserData(juce::int32 proxyId) const; | |||
/// Get the fat AABB for a proxy. | |||
const b2AABB& GetFatAABB(int32 proxyId) const; | |||
const b2AABB& GetFatAABB(juce::int32 proxyId) const; | |||
/// Query an AABB for overlapping proxies. The callback class | |||
/// is called for each proxy that overlaps the supplied AABB. | |||
@@ -106,11 +106,11 @@ public: | |||
/// Compute the height of the binary tree in O(N) time. Should not be | |||
/// called often. | |||
int32 GetHeight() const; | |||
juce::int32 GetHeight() const; | |||
/// Get the maximum balance of an node in the tree. The balance is the difference | |||
/// in height of the two children of a node. | |||
int32 GetMaxBalance() const; | |||
juce::int32 GetMaxBalance() const; | |||
/// Get the ratio of the sum of the node areas to the root area. | |||
float32 GetAreaRatio() const; | |||
@@ -120,41 +120,41 @@ public: | |||
private: | |||
int32 AllocateNode(); | |||
void FreeNode(int32 node); | |||
juce::int32 AllocateNode(); | |||
void FreeNode(juce::int32 node); | |||
void InsertLeaf(int32 node); | |||
void RemoveLeaf(int32 node); | |||
void InsertLeaf(juce::int32 node); | |||
void RemoveLeaf(juce::int32 node); | |||
int32 Balance(int32 index); | |||
juce::int32 Balance(juce::int32 index); | |||
int32 ComputeHeight() const; | |||
int32 ComputeHeight(int32 nodeId) const; | |||
juce::int32 ComputeHeight() const; | |||
juce::int32 ComputeHeight(juce::int32 nodeId) const; | |||
void ValidateStructure(int32 index) const; | |||
void ValidateMetrics(int32 index) const; | |||
void ValidateStructure(juce::int32 index) const; | |||
void ValidateMetrics(juce::int32 index) const; | |||
int32 m_root; | |||
juce::int32 m_root; | |||
b2TreeNode* m_nodes; | |||
int32 m_nodeCount; | |||
int32 m_nodeCapacity; | |||
juce::int32 m_nodeCount; | |||
juce::int32 m_nodeCapacity; | |||
int32 m_freeList; | |||
juce::int32 m_freeList; | |||
/// This is used to incrementally traverse the tree for re-balancing. | |||
uint32 m_path; | |||
juce::uint32 m_path; | |||
int32 m_insertionCount; | |||
juce::int32 m_insertionCount; | |||
}; | |||
inline void* b2DynamicTree::GetUserData(int32 proxyId) const | |||
inline void* b2DynamicTree::GetUserData(juce::int32 proxyId) const | |||
{ | |||
b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); | |||
return m_nodes[proxyId].userData; | |||
} | |||
inline const b2AABB& b2DynamicTree::GetFatAABB(int32 proxyId) const | |||
inline const b2AABB& b2DynamicTree::GetFatAABB(juce::int32 proxyId) const | |||
{ | |||
b2Assert(0 <= proxyId && proxyId < m_nodeCapacity); | |||
return m_nodes[proxyId].aabb; | |||
@@ -163,12 +163,12 @@ inline const b2AABB& b2DynamicTree::GetFatAABB(int32 proxyId) const | |||
template <typename T> | |||
inline void b2DynamicTree::Query(T* callback, const b2AABB& aabb) const | |||
{ | |||
b2GrowableStack<int32, 256> stack; | |||
b2GrowableStack<juce::int32, 256> stack; | |||
stack.Push(m_root); | |||
while (stack.GetCount() > 0) | |||
{ | |||
int32 nodeId = stack.Pop(); | |||
juce::int32 nodeId = stack.Pop(); | |||
if (nodeId == b2_nullNode) | |||
{ | |||
continue; | |||
@@ -221,12 +221,12 @@ inline void b2DynamicTree::RayCast(T* callback, const b2RayCastInput& input) con | |||
segmentAABB.upperBound = b2Max(p1, t); | |||
} | |||
b2GrowableStack<int32, 256> stack; | |||
b2GrowableStack<juce::int32, 256> stack; | |||
stack.Push(m_root); | |||
while (stack.GetCount() > 0) | |||
{ | |||
int32 nodeId = stack.Pop(); | |||
juce::int32 nodeId = stack.Pop(); | |||
if (nodeId == b2_nullNode) | |||
{ | |||
continue; | |||
@@ -21,10 +21,10 @@ | |||
#include "b2Settings.h" | |||
const int32 b2_chunkSize = 16 * 1024; | |||
const int32 b2_maxBlockSize = 640; | |||
const int32 b2_blockSizes = 14; | |||
const int32 b2_chunkArrayIncrement = 128; | |||
const juce::int32 b2_chunkSize = 16 * 1024; | |||
const juce::int32 b2_maxBlockSize = 640; | |||
const juce::int32 b2_blockSizes = 14; | |||
const juce::int32 b2_chunkArrayIncrement = 128; | |||
struct b2Block; | |||
struct b2Chunk; | |||
@@ -39,23 +39,23 @@ public: | |||
~b2BlockAllocator(); | |||
/// Allocate memory. This will use b2Alloc if the size is larger than b2_maxBlockSize. | |||
void* Allocate(int32 size); | |||
void* Allocate(juce::int32 size); | |||
/// Free memory. This will use b2Free if the size is larger than b2_maxBlockSize. | |||
void Free(void* p, int32 size); | |||
void Free(void* p, juce::int32 size); | |||
void Clear(); | |||
private: | |||
b2Chunk* m_chunks; | |||
int32 m_chunkCount; | |||
int32 m_chunkSpace; | |||
juce::int32 m_chunkCount; | |||
juce::int32 m_chunkSpace; | |||
b2Block* m_freeLists[b2_blockSizes]; | |||
static int32 s_blockSizes[b2_blockSizes]; | |||
static uint8 s_blockSizeLookup[b2_maxBlockSize + 1]; | |||
static juce::int32 s_blockSizes[b2_blockSizes]; | |||
static juce::uint8 s_blockSizeLookup[b2_maxBlockSize + 1]; | |||
static bool s_blockSizeLookupInitialized; | |||
}; | |||
@@ -50,22 +50,22 @@ public: | |||
}; | |||
/// Set the drawing flags. | |||
void SetFlags(uint32 flags); | |||
void SetFlags(juce::uint32 flags); | |||
/// Get the drawing flags. | |||
uint32 GetFlags() const; | |||
juce::uint32 GetFlags() const; | |||
/// Append flags to the current flags. | |||
void AppendFlags(uint32 flags); | |||
void AppendFlags(juce::uint32 flags); | |||
/// Clear flags from the current flags. | |||
void ClearFlags(uint32 flags); | |||
void ClearFlags(juce::uint32 flags); | |||
/// Draw a closed polygon provided in CCW order. | |||
virtual void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; | |||
virtual void DrawPolygon(const b2Vec2* vertices, juce::int32 vertexCount, const b2Color& color) = 0; | |||
/// Draw a solid closed polygon provided in CCW order. | |||
virtual void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color) = 0; | |||
virtual void DrawSolidPolygon(const b2Vec2* vertices, juce::int32 vertexCount, const b2Color& color) = 0; | |||
/// Draw a circle. | |||
virtual void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color) = 0; | |||
@@ -81,7 +81,7 @@ public: | |||
virtual void DrawTransform(const b2Transform& xf) = 0; | |||
protected: | |||
uint32 m_drawFlags; | |||
juce::uint32 m_drawFlags; | |||
}; | |||
#endif |
@@ -25,7 +25,7 @@ | |||
/// This is a growable LIFO stack with an initial capacity of N. | |||
/// If the stack size exceeds the initial capacity, the heap is used | |||
/// to increase the size of the stack. | |||
template <typename T, int32 N> | |||
template <typename T, juce::int32 N> | |||
class b2GrowableStack | |||
{ | |||
public: | |||
@@ -70,7 +70,7 @@ public: | |||
return m_stack[m_count]; | |||
} | |||
int32 GetCount() | |||
juce::int32 GetCount() | |||
{ | |||
return m_count; | |||
} | |||
@@ -78,8 +78,8 @@ public: | |||
private: | |||
T* m_stack; | |||
T m_array[N]; | |||
int32 m_count; | |||
int32 m_capacity; | |||
juce::int32 m_count; | |||
juce::int32 m_capacity; | |||
}; | |||
@@ -46,7 +46,7 @@ inline float32 b2InvSqrt(float32 x) | |||
union | |||
{ | |||
float32 x; | |||
int32 i; | |||
juce::int32 i; | |||
} convert; | |||
convert.x = x; | |||
@@ -79,13 +79,13 @@ struct b2Vec2 | |||
b2Vec2 operator -() const { b2Vec2 v; v.Set(-x, -y); return v; } | |||
/// Read from and indexed element. | |||
float32 operator () (int32 i) const | |||
float32 operator () (juce::int32 i) const | |||
{ | |||
return (&x)[i]; | |||
} | |||
/// Write to an indexed element. | |||
float32& operator () (int32 i) | |||
float32& operator () (juce::int32 i) | |||
{ | |||
return (&x)[i]; | |||
} | |||
@@ -684,7 +684,7 @@ template<typename T> inline void b2Swap(T& a, T& b) | |||
/// that recursively "folds" the upper bits into the lower bits. This process yields a bit vector with | |||
/// the same most significant 1 as x, but all 1's below it. Adding 1 to that value yields the next | |||
/// largest power of 2. For a 32-bit value:" | |||
inline uint32 b2NextPowerOfTwo(uint32 x) | |||
inline juce::uint32 b2NextPowerOfTwo(juce::uint32 x) | |||
{ | |||
x |= (x >> 1); | |||
x |= (x >> 2); | |||
@@ -694,7 +694,7 @@ inline uint32 b2NextPowerOfTwo(uint32 x) | |||
return x + 1; | |||
} | |||
inline bool b2IsPowerOfTwo(uint32 x) | |||
inline bool b2IsPowerOfTwo(juce::uint32 x) | |||
{ | |||
bool result = x > 0 && (x & (x - 1)) == 0; | |||
return result; | |||
@@ -25,12 +25,6 @@ | |||
#define B2_NOT_USED(x) ((void)(x)) | |||
#define b2Assert(A) assert(A) | |||
typedef signed char int8; | |||
typedef signed short int16; | |||
typedef signed int int32; | |||
typedef unsigned char uint8; | |||
typedef unsigned short uint16; | |||
typedef unsigned int uint32; | |||
typedef float float32; | |||
typedef double float64; | |||
@@ -127,7 +121,7 @@ typedef double float64; | |||
// Memory Allocation | |||
/// Implement this function to use your own memory allocator. | |||
void* b2Alloc(int32 size); | |||
void* b2Alloc(juce::int32 size); | |||
/// If you implement b2Alloc, you should also implement this function. | |||
void b2Free(void* mem); | |||
@@ -139,9 +133,9 @@ void b2Log(const char* string, ...); | |||
/// See http://en.wikipedia.org/wiki/Software_versioning | |||
struct b2Version | |||
{ | |||
int32 major; ///< significant changes | |||
int32 minor; ///< incremental changes | |||
int32 revision; ///< bug fixes | |||
juce::int32 major; ///< significant changes | |||
juce::int32 minor; ///< incremental changes | |||
juce::int32 revision; ///< bug fixes | |||
}; | |||
/// Current version. | |||
@@ -21,13 +21,13 @@ | |||
#include "b2Settings.h" | |||
const int32 b2_stackSize = 100 * 1024; // 100k | |||
const int32 b2_maxStackEntries = 32; | |||
const juce::int32 b2_stackSize = 100 * 1024; // 100k | |||
const juce::int32 b2_maxStackEntries = 32; | |||
struct b2StackEntry | |||
{ | |||
char* data; | |||
int32 size; | |||
juce::int32 size; | |||
bool usedMalloc; | |||
}; | |||
@@ -40,21 +40,21 @@ public: | |||
b2StackAllocator(); | |||
~b2StackAllocator(); | |||
void* Allocate(int32 size); | |||
void* Allocate(juce::int32 size); | |||
void Free(void* p); | |||
int32 GetMaxAllocation() const; | |||
juce::int32 GetMaxAllocation() const; | |||
private: | |||
char m_data[b2_stackSize]; | |||
int32 m_index; | |||
juce::int32 m_index; | |||
int32 m_allocation; | |||
int32 m_maxAllocation; | |||
juce::int32 m_allocation; | |||
juce::int32 m_maxAllocation; | |||
b2StackEntry m_entries[b2_maxStackEntries]; | |||
int32 m_entryCount; | |||
juce::int32 m_entryCount; | |||
}; | |||
#endif |
@@ -46,8 +46,8 @@ inline float32 b2MixRestitution(float32 restitution1, float32 restitution2) | |||
return restitution1 > restitution2 ? restitution1 : restitution2; | |||
} | |||
typedef b2Contact* b2ContactCreateFcn( b2Fixture* fixtureA, int32 indexA, | |||
b2Fixture* fixtureB, int32 indexB, | |||
typedef b2Contact* b2ContactCreateFcn( b2Fixture* fixtureA, juce::int32 indexA, | |||
b2Fixture* fixtureB, juce::int32 indexB, | |||
b2BlockAllocator* allocator); | |||
typedef void b2ContactDestroyFcn(b2Contact* contact, b2BlockAllocator* allocator); | |||
@@ -106,14 +106,14 @@ public: | |||
const b2Fixture* GetFixtureA() const; | |||
/// Get the child primitive index for fixture A. | |||
int32 GetChildIndexA() const; | |||
juce::int32 GetChildIndexA() const; | |||
/// Get fixture B in this contact. | |||
b2Fixture* GetFixtureB(); | |||
const b2Fixture* GetFixtureB() const; | |||
/// Get the child primitive index for fixture B. | |||
int32 GetChildIndexB() const; | |||
juce::int32 GetChildIndexB() const; | |||
/// Override the default friction mixture. You can call this in b2ContactListener::PreSolve. | |||
/// This value persists until set or reset. | |||
@@ -173,12 +173,12 @@ protected: | |||
static void AddType(b2ContactCreateFcn* createFcn, b2ContactDestroyFcn* destroyFcn, | |||
b2Shape::Type typeA, b2Shape::Type typeB); | |||
static void InitializeRegisters(); | |||
static b2Contact* Create(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB, b2BlockAllocator* allocator); | |||
static b2Contact* Create(b2Fixture* fixtureA, juce::int32 indexA, b2Fixture* fixtureB, juce::int32 indexB, b2BlockAllocator* allocator); | |||
static void Destroy(b2Contact* contact, b2Shape::Type typeA, b2Shape::Type typeB, b2BlockAllocator* allocator); | |||
static void Destroy(b2Contact* contact, b2BlockAllocator* allocator); | |||
b2Contact() : m_fixtureA(NULL), m_fixtureB(NULL) {} | |||
b2Contact(b2Fixture* fixtureA, int32 indexA, b2Fixture* fixtureB, int32 indexB); | |||
b2Contact(b2Fixture* fixtureA, juce::int32 indexA, b2Fixture* fixtureB, juce::int32 indexB); | |||
virtual ~b2Contact() {} | |||
void Update(b2ContactListener* listener); | |||
@@ -186,7 +186,7 @@ protected: | |||
static b2ContactRegister s_registers[b2Shape::e_typeCount][b2Shape::e_typeCount]; | |||
static bool s_initialized; | |||
uint32 m_flags; | |||
juce::uint32 m_flags; | |||
// World pool and list pointers. | |||
b2Contact* m_prev; | |||
@@ -199,12 +199,12 @@ protected: | |||
b2Fixture* m_fixtureA; | |||
b2Fixture* m_fixtureB; | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Manifold m_manifold; | |||
int32 m_toiCount; | |||
juce::int32 m_toiCount; | |||
float32 m_toi; | |||
float32 m_friction; | |||
@@ -278,7 +278,7 @@ inline b2Fixture* b2Contact::GetFixtureB() | |||
return m_fixtureB; | |||
} | |||
inline int32 b2Contact::GetChildIndexA() const | |||
inline juce::int32 b2Contact::GetChildIndexA() const | |||
{ | |||
return m_indexA; | |||
} | |||
@@ -288,7 +288,7 @@ inline const b2Fixture* b2Contact::GetFixtureB() const | |||
return m_fixtureB; | |||
} | |||
inline int32 b2Contact::GetChildIndexB() const | |||
inline juce::int32 b2Contact::GetChildIndexB() const | |||
{ | |||
return m_indexB; | |||
} | |||
@@ -122,8 +122,8 @@ protected: | |||
float32 m_length; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_u; | |||
b2Vec2 m_rA; | |||
b2Vec2 m_rB; | |||
@@ -102,8 +102,8 @@ protected: | |||
float32 m_maxTorque; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_rA; | |||
b2Vec2 m_rB; | |||
b2Vec2 m_localCenterA; | |||
@@ -113,7 +113,7 @@ protected: | |||
float32 m_impulse; | |||
// Solver temp | |||
int32 m_indexA, m_indexB, m_indexC, m_indexD; | |||
juce::int32 m_indexA, m_indexB, m_indexC, m_indexD; | |||
b2Vec2 m_lcA, m_lcB, m_lcC, m_lcD; | |||
float32 m_mA, m_mB, m_mC, m_mD; | |||
float32 m_iA, m_iB, m_iC, m_iD; | |||
@@ -171,7 +171,7 @@ protected: | |||
b2Body* m_bodyA; | |||
b2Body* m_bodyB; | |||
int32 m_index; | |||
juce::int32 m_index; | |||
bool m_islandFlag; | |||
bool m_collideConnected; | |||
@@ -113,8 +113,8 @@ protected: | |||
float32 m_gamma; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_rB; | |||
b2Vec2 m_localCenterB; | |||
float32 m_invMassB; | |||
@@ -173,8 +173,8 @@ protected: | |||
b2LimitState m_limitState; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_localCenterA; | |||
b2Vec2 m_localCenterB; | |||
float32 m_invMassA; | |||
@@ -125,8 +125,8 @@ protected: | |||
float32 m_impulse; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_uA; | |||
b2Vec2 m_uB; | |||
b2Vec2 m_rA; | |||
@@ -181,8 +181,8 @@ protected: | |||
float32 m_upperAngle; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_rA; | |||
b2Vec2 m_rB; | |||
b2Vec2 m_localCenterA; | |||
@@ -96,8 +96,8 @@ protected: | |||
float32 m_impulse; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_u; | |||
b2Vec2 m_rA; | |||
b2Vec2 m_rB; | |||
@@ -110,8 +110,8 @@ protected: | |||
b2Vec3 m_impulse; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_rA; | |||
b2Vec2 m_rB; | |||
b2Vec2 m_localCenterA; | |||
@@ -159,8 +159,8 @@ protected: | |||
bool m_enableMotor; | |||
// Solver temp | |||
int32 m_indexA; | |||
int32 m_indexB; | |||
juce::int32 m_indexA; | |||
juce::int32 m_indexB; | |||
b2Vec2 m_localCenterA; | |||
b2Vec2 m_localCenterB; | |||
float32 m_invMassA; | |||
@@ -423,9 +423,9 @@ private: | |||
b2BodyType m_type; | |||
uint16 m_flags; | |||
juce::uint16 m_flags; | |||
int32 m_islandIndex; | |||
juce::int32 m_islandIndex; | |||
b2Transform m_xf; // the body origin transform | |||
b2Sweep m_sweep; // the swept motion for CCD | |||
@@ -441,7 +441,7 @@ private: | |||
b2Body* m_next; | |||
b2Fixture* m_fixtureList; | |||
int32 m_fixtureCount; | |||
juce::int32 m_fixtureCount; | |||
b2JointEdge* m_jointList; | |||
b2ContactEdge* m_contactList; | |||
@@ -43,7 +43,7 @@ public: | |||
b2BroadPhase m_broadPhase; | |||
b2Contact* m_contactList; | |||
int32 m_contactCount; | |||
juce::int32 m_contactCount; | |||
b2ContactFilter* m_contactFilter; | |||
b2ContactListener* m_contactListener; | |||
b2BlockAllocator* m_allocator; | |||
@@ -39,16 +39,16 @@ struct b2Filter | |||
} | |||
/// The collision category bits. Normally you would just set one bit. | |||
uint16 categoryBits; | |||
juce::uint16 categoryBits; | |||
/// The collision mask bits. This states the categories that this | |||
/// shape would accept for collision. | |||
uint16 maskBits; | |||
juce::uint16 maskBits; | |||
/// Collision groups allow a certain group of objects to never collide (negative) | |||
/// or always collide (positive). Zero means no collision group. Non-zero group | |||
/// filtering always wins against the mask bits. | |||
int16 groupIndex; | |||
juce::int16 groupIndex; | |||
}; | |||
/// A fixture definition is used to create a fixture. This class defines an | |||
@@ -95,8 +95,8 @@ struct b2FixtureProxy | |||
{ | |||
b2AABB aabb; | |||
b2Fixture* fixture; | |||
int32 childIndex; | |||
int32 proxyId; | |||
juce::int32 childIndex; | |||
juce::int32 proxyId; | |||
}; | |||
/// A fixture is used to attach a shape to a body for collision detection. A fixture | |||
@@ -159,7 +159,7 @@ public: | |||
/// Cast a ray against this shape. | |||
/// @param output the ray-cast results. | |||
/// @param input the ray-cast input parameters. | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, int32 childIndex) const; | |||
bool RayCast(b2RayCastOutput* output, const b2RayCastInput& input, juce::int32 childIndex) const; | |||
/// Get the mass data for this fixture. The mass data is based on the density and | |||
/// the shape. The rotational inertia is about the shape's origin. This operation | |||
@@ -190,10 +190,10 @@ public: | |||
/// Get the fixture's AABB. This AABB may be enlarge and/or stale. | |||
/// If you need a more accurate AABB, compute it using the shape and | |||
/// the body transform. | |||
const b2AABB& GetAABB(int32 childIndex) const; | |||
const b2AABB& GetAABB(juce::int32 childIndex) const; | |||
/// Dump this fixture to the log file. | |||
void Dump(int32 bodyIndex); | |||
void Dump(juce::int32 bodyIndex); | |||
protected: | |||
@@ -226,7 +226,7 @@ protected: | |||
float32 m_restitution; | |||
b2FixtureProxy* m_proxies; | |||
int32 m_proxyCount; | |||
juce::int32 m_proxyCount; | |||
b2Filter m_filter; | |||
@@ -326,7 +326,7 @@ inline bool b2Fixture::TestPoint(const b2Vec2& p) const | |||
return m_shape->TestPoint(m_body->GetTransform(), p); | |||
} | |||
inline bool b2Fixture::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, int32 childIndex) const | |||
inline bool b2Fixture::RayCast(b2RayCastOutput* output, const b2RayCastInput& input, juce::int32 childIndex) const | |||
{ | |||
return m_shape->RayCast(output, input, m_body->GetTransform(), childIndex); | |||
} | |||
@@ -336,7 +336,7 @@ inline void b2Fixture::GetMassData(b2MassData* massData) const | |||
m_shape->ComputeMass(massData, m_density); | |||
} | |||
inline const b2AABB& b2Fixture::GetAABB(int32 childIndex) const | |||
inline const b2AABB& b2Fixture::GetAABB(juce::int32 childIndex) const | |||
{ | |||
b2Assert(0 <= childIndex && childIndex < m_proxyCount); | |||
return m_proxies[childIndex].aabb; | |||
@@ -40,8 +40,8 @@ struct b2TimeStep | |||
float32 dt; // time step | |||
float32 inv_dt; // inverse time step (0 if dt == 0). | |||
float32 dtRatio; // dt * inv_dt0 | |||
int32 velocityIterations; | |||
int32 positionIterations; | |||
juce::int32 velocityIterations; | |||
juce::int32 positionIterations; | |||
bool warmStarting; | |||
}; | |||
@@ -92,8 +92,8 @@ public: | |||
/// @param velocityIterations for the velocity constraint solver. | |||
/// @param positionIterations for the position constraint solver. | |||
void Step( float32 timeStep, | |||
int32 velocityIterations, | |||
int32 positionIterations); | |||
juce::int32 velocityIterations, | |||
juce::int32 positionIterations); | |||
/// Manually clear the force buffer on all bodies. By default, forces are cleared automatically | |||
/// after each call to Step. The default behavior is modified by calling SetAutoClearForces. | |||
@@ -158,22 +158,22 @@ public: | |||
bool GetSubStepping() const { return m_subStepping; } | |||
/// Get the number of broad-phase proxies. | |||
int32 GetProxyCount() const; | |||
juce::int32 GetProxyCount() const; | |||
/// Get the number of bodies. | |||
int32 GetBodyCount() const; | |||
juce::int32 GetBodyCount() const; | |||
/// Get the number of joints. | |||
int32 GetJointCount() const; | |||
juce::int32 GetJointCount() const; | |||
/// Get the number of contacts (each may have 0 or more contact points). | |||
int32 GetContactCount() const; | |||
juce::int32 GetContactCount() const; | |||
/// Get the height of the dynamic tree. | |||
int32 GetTreeHeight() const; | |||
juce::int32 GetTreeHeight() const; | |||
/// Get the balance of the dynamic tree. | |||
int32 GetTreeBalance() const; | |||
juce::int32 GetTreeBalance() const; | |||
/// Get the quality metric of the dynamic tree. The smaller the better. | |||
/// The minimum is 1. | |||
@@ -228,15 +228,15 @@ private: | |||
b2BlockAllocator m_blockAllocator; | |||
b2StackAllocator m_stackAllocator; | |||
int32 m_flags; | |||
juce::int32 m_flags; | |||
b2ContactManager m_contactManager; | |||
b2Body* m_bodyList; | |||
b2Joint* m_jointList; | |||
int32 m_bodyCount; | |||
int32 m_jointCount; | |||
juce::int32 m_bodyCount; | |||
juce::int32 m_jointCount; | |||
b2Vec2 m_gravity; | |||
bool m_allowSleep; | |||
@@ -288,17 +288,17 @@ inline const b2Contact* b2World::GetContactList() const | |||
return m_contactManager.m_contactList; | |||
} | |||
inline int32 b2World::GetBodyCount() const | |||
inline juce::int32 b2World::GetBodyCount() const | |||
{ | |||
return m_bodyCount; | |||
} | |||
inline int32 b2World::GetJointCount() const | |||
inline juce::int32 b2World::GetJointCount() const | |||
{ | |||
return m_jointCount; | |||
} | |||
inline int32 b2World::GetContactCount() const | |||
inline juce::int32 b2World::GetContactCount() const | |||
{ | |||
return m_contactManager.m_contactCount; | |||
} | |||
@@ -66,7 +66,7 @@ struct b2ContactImpulse | |||
{ | |||
float32 normalImpulses[b2_maxManifoldPoints]; | |||
float32 tangentImpulses[b2_maxManifoldPoints]; | |||
int32 count; | |||
juce::int32 count; | |||
}; | |||
/// Implement this class to get contact information. You can use these results for | |||
@@ -45,6 +45,14 @@ | |||
#include "juce_box2d.h" | |||
typedef juce::int8 int8; | |||
typedef juce::int16 int16; | |||
typedef juce::int32 int32; | |||
typedef juce::uint8 uint8; | |||
typedef juce::uint16 uint16; | |||
typedef juce::uint32 uint32; | |||
#include "box2d/Collision/b2BroadPhase.cpp" | |||
#include "box2d/Collision/b2CollideCircle.cpp" | |||
#include "box2d/Collision/b2CollideEdge.cpp" | |||