示例#1
0
	//------------------------------------------------------------------------------------------------------
	RotatingRing::RotatingRing()
		:LocatableObject( this ),
		m_isMaked(false),
		m_pRingBuffer(NULL),
		m_fRadius(0)
	{
		float bs = 1.5 * 1;
		m_BindBox = aabbox3df( vector3f( -bs, -bs, -bs ), vector3f( bs, bs, bs ) );
		m_isMaked = true;
		m_fRadius = 1;
		ASSERT( 3 == RC_AXIS );
		VertexColor LineVertex[ RC_AXIS * RC_POINT ];
		static ushort Indies[RC_AXIS*RC_POINT*2];
		for ( int i = 0 ; i < RC_AXIS*RC_POINT*2; i += 2 )
		{
			Indies[i] = i/2;
			//Indies[i+1] = (i/2)%RC_POINT==0&&0!=i ? i-RC_POINT*2 : i/2+1 ;
			if ( i/2 == RC_POINT-1 || i/2 == RC_POINT*2-1 || i/2 == RC_POINT*3-1 )
			{
				Indies[i+1] = i/2-RC_POINT+1;
			}
			else
			{
				Indies[i+1] = i/2+1;
			}
		}
		m_pRingBuffer = NEW RendBuffer( Device::RM_LINES );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_STATIC );
		m_pRingBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRingBuffer->SetIndicesBuffer( m_pIndicesBuffer );
		m_pIndicesBuffer->FlushIndiesBuffer( RC_AXIS*RC_POINT*2, Indies );
	}
示例#2
0
	//------------------------------------------------------------------------------------------------------
	GridNode::GridNode(void)
		:m_pRendBuffer(NULL)
	{
		m_pRendBuffer = NEW RendBuffer( Device::RM_LINES );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_DYNAMIC );
		m_pRendBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRendBuffer->SetIndicesBuffer( m_pIndicesBuffer );
	}
示例#3
0
	//////////////////////////////
	//		BillboardNode		//
	/////////////////////////////
	//-------------------------------------------------------------------------------------
	BillboardNode::BillboardNode()
		:m_pTexture(NULL)
	{
		ushort Indies[Billboard::COUNT_OF_INDIES]={0,1,2, 2,1,3};
		m_pRendBuffer = NEW RendBuffer( Billboard::GetRenderMode() );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_STATIC );
		m_pRendBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRendBuffer->SetIndicesBuffer( m_pIndicesBuffer );
		m_pIndicesBuffer->FlushIndiesBuffer( Billboard::COUNT_OF_INDIES, &Indies[0] );
	}
示例#4
0
	//------------------------------------------------------------------------------------------------------
	void Rect2D::NewRect2D()
	{
		m_pVertexArray = NEW VertexColor[COUNT_OF_VERTEX];

		static ushort Indies[COUNT_OF_INDIES]={0,1, 1,2, 2,3, 3,0};
		m_pRendBuffer = NEW RendBuffer( Device::RM_LINES );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_STATIC );
		m_pRendBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRendBuffer->SetIndicesBuffer( m_pIndicesBuffer );
		m_pIndicesBuffer->FlushIndiesBuffer( COUNT_OF_INDIES, &Indies[0] );
	}
示例#5
0
	//------------------------------------------------------------------------------------------------------
	LineNode::LineNode( const vector4f& b, const vector4f& e, const Color& c )
	{
		m_BindBox.Contains( vector3f(b) );
		m_BindBox.Contains( vector3f(e) );
		m_pVertexArray = NEW VertexColor[COUNT_OF_VERTEX];
		m_pVertexArray[0].SetVertex( b );
		m_pVertexArray[0].SetColor( c );
		m_pVertexArray[1].SetVertex( e );
		m_pVertexArray[1].SetColor( c );
		static ushort Indies[COUNT_OF_INDIES]={0,1};
		m_pRendBuffer = NEW RendBuffer( Device::RM_LINE_STRIP );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_STATIC );
		m_pRendBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRendBuffer->SetIndicesBuffer( m_pIndicesBuffer );
		m_pVertexBuffer->FlushVertexBuffer( COUNT_OF_VERTEX, m_pVertexArray );
		m_pIndicesBuffer->FlushIndiesBuffer( COUNT_OF_INDIES, &Indies[0] );
	}
示例#6
0
//-------------------------------------------------------------------------------------------------------
RendBuffer* StringManager::_AllocBuffer()
{
    if( 0 != m_FreeBufferList.size() )
    {
        RendBufferList::iterator it = m_FreeBufferList.begin();
        RendBuffer* reslut = (*it);
        m_FreeBufferList.erase( it );
        return reslut;
    }
    static ushort Indies[BString::COUNT_OF_INDIES]= {0,1,2,3};

    RendBuffer*			rb;
    VertexBuffer*		vb;
    IndicesBuffer*		ib;
    rb = NEW RendBuffer(Device::RM_TRIANGLE_STRIP);
    vb = NEW VertexBuffer( Device::MU_DYNAMIC );
    ib = NEW IndicesBuffer( Device::MU_STATIC );
    rb->SetVertexBuffer( vb );
    rb->SetIndicesBuffer( ib );
    ib->FlushIndiesBuffer( BString::COUNT_OF_INDIES, &Indies[0] );
    return rb;
}
示例#7
0
	//------------------------------------------------------------------------------------------------------
	Rect3D::Rect3D(const vector3f& ulb, const vector3f& drf, const Color& color)
	{
		m_pVertexArray = NEW VertexColor[COUNT_OF_VERTEX];
		m_pVertexArray[0] = VertexColor( vector4f(ulb.m_x, ulb.m_y, drf.m_z), color ) ;
		m_pVertexArray[1] = VertexColor( vector4f(drf.m_x, ulb.m_y, drf.m_z), color ) ;
		m_pVertexArray[2] = VertexColor( vector4f(drf.m_x, drf.m_y, drf.m_z), color ) ;
		m_pVertexArray[3] = VertexColor( vector4f(ulb.m_x, drf.m_y, drf.m_z), color ) ;
		m_pVertexArray[4] = VertexColor( vector4f(ulb.m_x, ulb.m_y, ulb.m_z), color ) ;
		m_pVertexArray[5] = VertexColor( vector4f(drf.m_x, ulb.m_y, ulb.m_z), color ) ;
		m_pVertexArray[6] = VertexColor( vector4f(drf.m_x, drf.m_y, ulb.m_z), color ) ;
		m_pVertexArray[7] = VertexColor( vector4f(ulb.m_x, drf.m_y, ulb.m_z), color ) ;

		static ushort Indies[COUNT_OF_INDIES]={	0,1, 1,2, 2,3, 3,0,
			0,4, 1,5, 2,6, 3,7,
			4,5, 5,6, 6,7, 7,4};

		m_pRendBuffer = NEW RendBuffer( Device::RM_LINES );
		m_pVertexBuffer = NEW VertexBuffer( Device::MU_DYNAMIC );
		m_pIndicesBuffer = NEW IndicesBuffer( Device::MU_STATIC );
		m_pRendBuffer->SetVertexBuffer( m_pVertexBuffer );
		m_pRendBuffer->SetIndicesBuffer( m_pIndicesBuffer );
		m_pVertexBuffer->FlushVertexBuffer( COUNT_OF_VERTEX, m_pVertexArray );
		m_pIndicesBuffer->FlushIndiesBuffer( COUNT_OF_INDIES, &Indies[0] );
	}