Add Draw3DCircle function and update raylib and rlgl header
Draw3DCircle is useful to draw point lights radius.
This commit is contained in:
parent
ae2d0d4cd8
commit
2e26ce235d
3 changed files with 22 additions and 2 deletions
19
src/models.c
19
src/models.c
|
@ -75,6 +75,25 @@ void Draw3DLine(Vector3 startPos, Vector3 endPos, Color color)
|
||||||
rlEnd();
|
rlEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw a circle in 3D world space
|
||||||
|
void Draw3DCircle(Vector3 center, float radius, float rotationAngle, Vector3 rotation, Color color)
|
||||||
|
{
|
||||||
|
rlPushMatrix();
|
||||||
|
rlTranslatef(center.x, center.y, center.z);
|
||||||
|
rlRotatef(rotationAngle, rotation.x, rotation.y, rotation.z);
|
||||||
|
|
||||||
|
rlBegin(RL_LINES);
|
||||||
|
for (int i = 0; i < 360; i += 10)
|
||||||
|
{
|
||||||
|
rlColor4ub(color.r, color.g, color.b, color.a);
|
||||||
|
|
||||||
|
rlVertex3f(sin(DEG2RAD*i)*radius, cos(DEG2RAD*i)*radius, 0.0f);
|
||||||
|
rlVertex3f(sin(DEG2RAD*(i + 10)) * radius, cos(DEG2RAD*(i + 10)) * radius, 0.0f);
|
||||||
|
}
|
||||||
|
rlEnd();
|
||||||
|
rlPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
// Draw cube
|
// Draw cube
|
||||||
// NOTE: Cube position is the center position
|
// NOTE: Cube position is the center position
|
||||||
void DrawCube(Vector3 position, float width, float height, float length, Color color)
|
void DrawCube(Vector3 position, float width, float height, float length, Color color)
|
||||||
|
|
|
@ -437,7 +437,7 @@ typedef struct LightData {
|
||||||
|
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
||||||
float attenuation; // Lost of light intensity with distance (world distance)
|
float radius; // Lost of light intensity with distance (world distance)
|
||||||
|
|
||||||
Color diffuse; // Light color
|
Color diffuse; // Light color
|
||||||
float intensity; // Light intensity level
|
float intensity; // Light intensity level
|
||||||
|
@ -803,6 +803,7 @@ const char *SubText(const char *text, int position, int length);
|
||||||
// Basic 3d Shapes Drawing Functions (Module: models)
|
// Basic 3d Shapes Drawing Functions (Module: models)
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
void Draw3DLine(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space
|
void Draw3DLine(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space
|
||||||
|
void Draw3DCircle(Vector3 center, float radius, float rotationAngle, Vector3 rotation, Color color); // Draw a circle in 3D world space
|
||||||
void DrawCube(Vector3 position, float width, float height, float lenght, Color color); // Draw cube
|
void DrawCube(Vector3 position, float width, float height, float lenght, Color color); // Draw cube
|
||||||
void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version)
|
void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version)
|
||||||
void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color); // Draw cube wires
|
void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color); // Draw cube wires
|
||||||
|
|
|
@ -218,7 +218,7 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion;
|
||||||
|
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
Vector3 target; // Used on LIGHT_DIRECTIONAL and LIGHT_SPOT (cone direction target)
|
||||||
float attenuation; // Lost of light intensity with distance (world distance)
|
float radius; // Lost of light intensity with distance (world distance)
|
||||||
|
|
||||||
Color diffuse; // Use Vector3 diffuse
|
Color diffuse; // Use Vector3 diffuse
|
||||||
float intensity;
|
float intensity;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue