mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-07 22:07:48 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#include "GfxBase/AdornBillboarder.h"
|
||||
#include "GfxBase/ViewportBillboarder.h"
|
||||
#include "V8DataModel/Camera.h"
|
||||
|
||||
namespace RBX {
|
||||
|
||||
AdornBillboarder::AdornBillboarder(Adorn* parent, const ViewportBillboarder& viewportBillboarder)
|
||||
: parent(parent)
|
||||
, viewport(viewportBillboarder.getViewport())
|
||||
, alwaysOnTop(viewportBillboarder.alwaysOnTop)
|
||||
{
|
||||
parent->setObjectToWorldMatrix(viewportBillboarder.getCoordinateFrame());
|
||||
}
|
||||
|
||||
AdornBillboarder::AdornBillboarder(Adorn* parent, const Rect2D& viewport, const CoordinateFrame& transform, bool alwaysOnTop)
|
||||
: parent(parent)
|
||||
, viewport(viewport)
|
||||
, alwaysOnTop(alwaysOnTop)
|
||||
{
|
||||
parent->setObjectToWorldMatrix(transform);
|
||||
}
|
||||
|
||||
Rect2D AdornBillboarder::getViewport() const
|
||||
{
|
||||
return viewport;
|
||||
}
|
||||
|
||||
void AdornBillboarder::line2d(const Vector2& p0, const Vector2& p1, const Color4& color)
|
||||
{
|
||||
Vector3 p03D = Vector3(p0, 0);
|
||||
Vector3 p13D = Vector3(p1, 0);
|
||||
|
||||
p03D.y *= -1;
|
||||
p13D.y *= -1;
|
||||
|
||||
parent->line3d(p03D, p13D, color);
|
||||
}
|
||||
|
||||
void AdornBillboarder::rect2dImpl(
|
||||
const Vector2& x0y0, const Vector2& x1y0, const Vector2& x0y1, const Vector2& x1y1,
|
||||
const Vector2& tex0, const Vector2& tex1, const Color4 & color)
|
||||
{
|
||||
Vector3 px0y0(x0y0, 0);
|
||||
Vector3 px1y0(x1y0, 0);
|
||||
Vector3 px0y1(x0y1, 0);
|
||||
Vector3 px1y1(x1y1, 0);
|
||||
|
||||
px0y1.y *= -1;
|
||||
px1y1.y *= -1;
|
||||
px0y0.y *= -1;
|
||||
px1y0.y *= -1;
|
||||
|
||||
parent->quad(px0y0, px1y0, px0y1, px1y1, color, tex0, tex1, 0, alwaysOnTop);
|
||||
}
|
||||
|
||||
void AdornBillboarder::convexPolygon2d(
|
||||
const Vector2* v,
|
||||
int countv,
|
||||
const Color4& color)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
Vector3* v3d = (Vector3*)_alloca(sizeof(Vector3) * countv);
|
||||
#else
|
||||
Vector3* v3d = (Vector3*)alloca(sizeof(Vector3) * countv);
|
||||
#endif
|
||||
|
||||
for(int i = 0; i < countv; ++i)
|
||||
{
|
||||
v3d[i] = Vector3(v[i].x, -v[i].y, 0); /*neg y : convert from ui space (0,0 top left) to math space */
|
||||
}
|
||||
|
||||
parent->convexPolygon(v3d, countv, color);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user