X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbox.cpp;fp=source%2Fbox.cpp;h=0000000000000000000000000000000000000000;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=46f1b48ed7bfc315a23a221134544adcccf5c19e;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/box.cpp b/source/box.cpp deleted file mode 100644 index 46f1b48e..00000000 --- a/source/box.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include "box.h" -#include "primitivebuilder.h" - -using namespace std; - -namespace Msp { -namespace GL { - -BoxBuilder::BoxBuilder(float w, float h, float d): - origin(-w/2, -h/2, -d/2), - span(w, h, d) -{ } - -BoxBuilder::BoxBuilder(const Vector3 &o, const Vector3 &s): - origin(o), - span(s) -{ } - -void BoxBuilder::build(PrimitiveBuilder &builder) const -{ - builder.normal(1, 0, 0); - build_face(builder, Vector3(origin.x+span.x, origin.y, origin.z), Vector3(0, span.y, 0), Vector3(0, 0, span.z)); - builder.normal(0, 1, 0); - build_face(builder, Vector3(origin.x+span.x, origin.y+span.y, origin.z), Vector3(-span.x, 0, 0), Vector3(0, 0, span.z)); - builder.normal(-1, 0, 0); - build_face(builder, Vector3(origin.x, origin.y+span.y, origin.z), Vector3(0, -span.y, 0), Vector3(0, 0, span.z)); - builder.normal(0, -1, 0); - build_face(builder, origin, Vector3(span.x, 0, 0), Vector3(0, 0, span.z)); - builder.normal(0, 0, 1); - build_face(builder, Vector3(origin.x, origin.y, origin.z+span.z), Vector3(span.x, 0, 0), Vector3(0, span.y, 0)); - builder.normal(0, 0, -1); - build_face(builder, Vector3(origin.x+span.x, origin.y, origin.z), Vector3(-span.x, 0, 0), Vector3(0, span.y, 0)); -} - -void BoxBuilder::build_face(PrimitiveBuilder &builder, const Vector3 &o, const Vector3 &s1, const Vector3 &s2) const -{ - float l1 = 1, l2 = 1; - if(generate_tbn || tex_fit!=STRETCH) - { - l1 = s1.norm(); - l2 = s2.norm(); - } - - if(generate_tbn) - { - builder.tangent(s1/l1); - builder.binormal(s2/l2); - } - - float u_size = 1; - float v_size = 1; - adjust_texture_scale(u_size, v_size, l1, l2); - - builder.begin(TRIANGLE_STRIP); - builder.texcoord(0, v_size); - builder.vertex(o+s2); - builder.texcoord(0, 0); - builder.vertex(o); - builder.texcoord(u_size, v_size); - builder.vertex(o+s1+s2); - builder.texcoord(u_size, 0); - builder.vertex(o+s1); - builder.end(); -} - -} // namespace GL -} // namespace Msp