Example #1
0
	void INodeLight::Render(Video::IRenderDriver *driver, IFrustum *frustum, int flags)
	{
		if (!m_bShow || !IsSelected())
			return;

		float cubeSize=0.1;
		//Draw Cube
		driver->UseMaterial(m_pEmissiveVertex);
		driver->_SetColor(IColor(1.0,1.0,1.0,1.0));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,cubeSize,cubeSize),GetPosition()+IVector3D(cubeSize,cubeSize,cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,-cubeSize,cubeSize),GetPosition()+IVector3D(cubeSize,-cubeSize,cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,cubeSize,-cubeSize),GetPosition()+IVector3D(cubeSize,cubeSize,-cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,-cubeSize,-cubeSize),GetPosition()+IVector3D(cubeSize,-cubeSize,-cubeSize));

		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,cubeSize,cubeSize),GetPosition()+IVector3D(-cubeSize,-cubeSize,cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(cubeSize,cubeSize,cubeSize),GetPosition()+IVector3D(cubeSize,-cubeSize,cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,cubeSize,-cubeSize),GetPosition()+IVector3D(-cubeSize,-cubeSize,-cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(cubeSize,cubeSize,-cubeSize),GetPosition()+IVector3D(cubeSize,-cubeSize,-cubeSize));

		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,cubeSize,cubeSize),GetPosition()+IVector3D(-cubeSize,cubeSize,-cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(cubeSize,-cubeSize,cubeSize),GetPosition()+IVector3D(cubeSize,-cubeSize,-cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(-cubeSize,-cubeSize,cubeSize),GetPosition()+IVector3D(-cubeSize,-cubeSize,-cubeSize));
		driver->_DrawLine(GetPosition()+IVector3D(cubeSize,cubeSize,cubeSize),GetPosition()+IVector3D(cubeSize,cubeSize,-cubeSize));

		IVector3D pos = GetPosition();
		//Draw Radius
		for (float i=0;i<=RADIUS_QUALITY;i++)
		{
			driver->_DrawLine(IVector3D(pos.GetX()+m_fRadius*cos(i/RADIUS_QUALITY*2*I_PIE),pos.GetY()+m_fRadius*sin(i/RADIUS_QUALITY*2*I_PIE),pos.GetZ()),
				IVector3D(pos.GetX()+m_fRadius*cos((i+1)/RADIUS_QUALITY*2*I_PIE),pos.GetY()+m_fRadius*sin((i+1)/RADIUS_QUALITY*2*I_PIE),pos.GetZ()));
			driver->_DrawLine(IVector3D(pos.GetX()+m_fRadius*cos(i/RADIUS_QUALITY*2*I_PIE),pos.GetY(),pos.GetZ()+m_fRadius*sin(i/RADIUS_QUALITY*2*I_PIE)),
				IVector3D(pos.GetX()+m_fRadius*cos((i+1)/RADIUS_QUALITY*2*I_PIE),pos.GetY(),pos.GetZ()+m_fRadius*sin((i+1)/RADIUS_QUALITY*2*I_PIE)));
			driver->_DrawLine(IVector3D(pos.GetX(),pos.GetY()+m_fRadius*sin(i/RADIUS_QUALITY*2*I_PIE),pos.GetZ()+m_fRadius*cos(i/RADIUS_QUALITY*2*I_PIE)),
				IVector3D(pos.GetX(),pos.GetY()+m_fRadius*sin((i+1)/RADIUS_QUALITY*2*I_PIE),pos.GetZ()+m_fRadius*cos((i+1)/RADIUS_QUALITY*2*I_PIE)));
		}

		//RenderFrustum
		/*IFrustum frustum2;
		for (int i=0;i<6;i++)
		{
			frustum2.SetFrustumFromMatrix(GetProjectionMatrix(i));
			frustum2.CalcVertice();
			frustum2.DrawFrustum(driver);
		}*/
		BaseClass::Render(driver,frustum,flags);
	}
Example #2
0
IVector3D Random::randomIVector(IVector3D min, IVector3D max) {
  return IVector3D(uniformInt(min.x, max.x),
                   uniformInt(min.y, max.y),
                   uniformInt(min.z, max.z));
}