Example #1
0
Bool CGeometryHelper::CreatePlane( CGeometryModel& model, const CColor& color, const CVector2f& size, const CVector2f& uvSize )
{
	struct SVertex
	{
		CVector3f	Position;
		CVector2f	TexCoord0;
		CColor		Color;
	};

	SVertex vertexBufferData[ 4 ];
	UInt16 indexBufferData[ 6 ];

	vertexBufferData[ 0 ].Position = CVector3f( -0.5f*size.GetX(), 0.0f,  0.5f*size.GetY() );
	vertexBufferData[ 1 ].Position = CVector3f(  0.5f*size.GetX(), 0.0f,  0.5f*size.GetY() );
	vertexBufferData[ 2 ].Position = CVector3f(  0.5f*size.GetX(), 0.0f, -0.5f*size.GetY() );
	vertexBufferData[ 3 ].Position = CVector3f( -0.5f*size.GetX(), 0.0f, -0.5f*size.GetY() );

	vertexBufferData[ 0 ].TexCoord0 = CVector2f( 0.0f,				0.0f );
	vertexBufferData[ 1 ].TexCoord0 = CVector2f( 1.0f*uvSize.GetX(),	0.0f );
	vertexBufferData[ 2 ].TexCoord0 = CVector2f( 1.0f*uvSize.GetX(),	1.0f*uvSize.GetY() );
	vertexBufferData[ 3 ].TexCoord0 = CVector2f( 0.0f,				1.0f*uvSize.GetY() );

	vertexBufferData[ 0 ].Color = color;
	vertexBufferData[ 1 ].Color = color;
	vertexBufferData[ 2 ].Color = color;
	vertexBufferData[ 3 ].Color = color;

	indexBufferData[ 0 ] = 0; 
	indexBufferData[ 1 ] = 1;
	indexBufferData[ 2 ] = 3;
	indexBufferData[ 3 ] = 1;
	indexBufferData[ 4 ] = 2;
	indexBufferData[ 5 ] = 3;

	CGeometryMesh* mesh = NEWOBJ( CGeometryMesh, () );
	CGeometryVertexBuffer* vb = NEWOBJ( CGeometryVertexBuffer, () );
	CGeometryIndexBuffer* ib = NEWOBJ( CGeometryIndexBuffer, () );
	CGeometryVertexLayout* vl = NEWOBJ( CGeometryVertexLayout, () );

	vl->AddElement( nVertexComponent_Position, nVertexComponentType_Float3 );
	vl->AddElement( nVertexComponent_TexCoord0, nVertexComponentType_Float2 );
	vl->AddElement( nVertexComponent_Color0, nVertexComponentType_Float4 );
	vl->Initialize();

	//vb->SetAttribute( CGeometryVertexBuffer::nFlag_Dynamic );
	vb->SetRawData( 4, sizeof( SVertex ), ( Byte* ) vertexBufferData );
	vb->Load( );

	ib->SetRawData( 6, sizeof( UInt16 ), (Byte*)indexBufferData );
	ib->Load( );

	mesh->SetIndexBuffer( ib );
	mesh->SetVertexBuffer( vb );
	mesh->SetVertexLayout( vl );

	model.SetSubsetCount( 1 );
	model.GetSubset(0).Mesh = mesh;

	return TRUE;
}
Example #2
0
float CVector2f::AngleBetweenEx(const CVector2f _vector1, const CVector2f _vector2)
{
	CVector2f vecBetween = _vector2 - _vector1;

	if( vecBetween.GetX() < 0 )
	{
		// 2 * PI
		return (6.28f) + atan2(vecBetween.GetX(), -vecBetween.GetY());
	}
	else
		return atan2(vecBetween.GetX(), -vecBetween.GetY());

}
Example #3
0
float CVector2f::operator* (CVector2f vec)
{
    return this->x*vec.GetX() + this->y*vec.GetY();
}
Example #4
0
CVector2f CVector2i::operator/( const CVector2f& v) const
{
    return CVector2f((Float32)x/v.GetX(),(Float32)y/v.GetY() );
}
Example #5
0
CVector2i::CVector2i( const CVector2f& other )
{
    x = (Int32) other.GetX();
    y = (Int32) other.GetY();
}
Example #6
0
Void CGameProperty::SetAsVector2( const CVector2f& d)
{
	m_Tuple2fValue.x = d.GetX();
	m_Tuple2fValue.y = d.GetY();
}
Example #7
0
Void CText::SetPosition( const CVector2f& pos )
{
    m_Position.SetX( pos.GetX() );
    m_Position.SetY( pos.GetY() );
}