Beispiel #1
0
void ModelStatic::calculateBoundingBox(AABB& box)
{
    zeq_model_proto_t* proto = getModelPrototype();
    
    if (!proto)
        return;
    
    Mat4 matrix = getModelMatrix();
    Vec3 pos;
    
    for (VertexBuffer* vb : proto->getVertexBuffers())
    {
        for (Vertex& vert : *vb)
        {
            matrix.transformVector(pos, vert.pos);
            box.addInternalPoint(pos);
        }
    }
    
    for (VertexBuffer* vb : proto->getVertexBuffersNoCollide())
    {
        for (Vertex& vert : *vb)
        {
            matrix.transformVector(pos, vert.pos);
            box.addInternalPoint(pos);
        }
    }
}
Beispiel #2
0
void mxRenderMesh::ComputeBoundingBox( AABB &bbox ) const
{
	bbox.reset( 0.0f, 0.0f, 0.0f );

	for ( u32 i = 0; i < GetVertexCount(); i++ )
	{
		bbox.addInternalPoint( GetPos( i ) );
	}
}