-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2011 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
+#define _USE_MATH_DEFINES
#include <cmath>
#include "cylinder.h"
#include "primitivebuilder.h"
void CylinderBuilder::build(PrimitiveBuilder &builder) const
{
- if(binormal_attr>=0)
- builder.attrib(binormal_attr, 0, 1, 0);
+ if(generate_tbn)
+ builder.binormal(0, 1, 0);
for(unsigned i=0; i<2; ++i)
{
float z = (i-0.5)*length;
builder.normal(0, 0, i*2.0-1.0);
builder.texcoord(0.5, 0.5);
- if(tangent_attr>=0)
- builder.attrib(tangent_attr, (i ? 1 : -1), 0, 0);
+ if(generate_tbn)
+ builder.tangent((i ? 1 : -1), 0, 0);
builder.vertex(0, 0, z);
for(unsigned j=0; j<segments; ++j)
{
float v_scale = 1;
adjust_texture_scale(u_scale, v_scale, radius*M_PI*2, length);
- if(binormal_attr>=0)
- builder.attrib(binormal_attr, 0, 0, 1);
+ if(generate_tbn)
+ builder.binormal(0, 0, 1);
for(unsigned i=0; i<2; ++i)
{
float z = (i-0.5)*length;
float s = sin(a);
builder.normal(c, s, 0);
builder.texcoord(j*u_scale, i*v_scale);
- if(tangent_attr>=0)
- builder.attrib(tangent_attr, -s, c, 0);
+ if(generate_tbn)
+ builder.tangent(-s, c, 0);
builder.vertex(radius*c, radius*s, z);
}
}