| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #include "core/EntityCollision.h"
- #include <OgreHardwareBufferManager.h>
- EntityCollision::EntityCollision()
- {
- mRenderOp.vertexData = new Ogre::VertexData();
- mRenderOp.indexData = 0;
- mRenderOp.vertexData->vertexCount = 74;
- mRenderOp.vertexData->vertexStart = 0;
- mRenderOp.operationType = Ogre::RenderOperation::OT_LINE_LIST;
- mRenderOp.useIndexes = false;
- Ogre::VertexDeclaration* decl = mRenderOp.vertexData->vertexDeclaration;
- Ogre::VertexBufferBinding* bind = mRenderOp.vertexData->vertexBufferBinding;
- decl->addElement( 0, 0, Ogre::VET_FLOAT3, Ogre::VES_POSITION );
- Ogre::HardwareVertexBufferSharedPtr vbuf0 = Ogre::HardwareBufferManager::getSingleton().createVertexBuffer(
- decl->getVertexSize( 0 ),
- mRenderOp.vertexData->vertexCount,
- Ogre::HardwareBuffer::HBU_STATIC_WRITE_ONLY );
- bind->setBinding( 0, vbuf0 );
- float* pPos = static_cast< float* >( vbuf0->lock( Ogre::HardwareBuffer::HBL_DISCARD ) );
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f; *pPos++ = 1.0f;
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = 0.5f;*pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = 1.0f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = 0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = 0.5f; *pPos++ = 1.0f;
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- *pPos++ = -1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = -0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 1.0f;
- *pPos++ = -0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.0f; *pPos++ = -1.0f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- *pPos++ = 0.5f; *pPos++ = -0.9f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 0.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = 1.0f; *pPos++ = 0.0f; *pPos++ = 1.0f;
- *pPos++ = 0.9f; *pPos++ = -0.5f; *pPos++ = 1.0f;
- vbuf0->unlock();
- Ogre::AxisAlignedBox aabb;
- aabb.setInfinite();
- setBoundingBox( aabb );
- }
- EntityCollision::~EntityCollision()
- {
- delete mRenderOp.vertexData;
- }
- Ogre::Real
- EntityCollision::getSquaredViewDepth( const Ogre::Camera* cam ) const
- {
- return 0.0f;
- }
- Ogre::Real
- EntityCollision::getBoundingRadius() const
- {
- return 0.0f;
- }
|