예제 #1
0
void makePyramid(GeometryBatch &batch, bool normals, bool uvs, const LColor *color)
{
  float h = 2.0f;
  batch.init(GL_TRIANGLES, "pyramid");
  batch.ps.resize(12);
  batch.ps[0] = LPoint(-h,-h,h);
  batch.ps[1] = LPoint(h,-h,h);
  batch.ps[2] = LPoint(0,h,0);
  batch.ps[3] = LPoint(h,-h,h);
  batch.ps[4] = LPoint(h,-h,-h);
  batch.ps[5] = LPoint(0,h,0);
  batch.ps[6] = LPoint(h,-h,-h);
  batch.ps[7] = LPoint(-h,-h,-h);
  batch.ps[8] = LPoint(0,h,0);
  batch.ps[9] = LPoint(-h,-h,-h);
  batch.ps[10] = LPoint(-h,-h,h);
  batch.ps[11] = LPoint(0,h,0);

  if (uvs)
  {
    batch.uvs[0].resize(12);
    batch.uvs[0][0] = UV(0, 0);
    batch.uvs[0][1] = UV(1, 0);
    batch.uvs[0][2] = UV(.5, 1);
    batch.uvs[0][3] = UV(0, 0);
    batch.uvs[0][4] = UV(1, 0);
    batch.uvs[0][5] = UV(.5, 1);
    batch.uvs[0][6] = UV(0, 0);
    batch.uvs[0][7] = UV(1, 0);
    batch.uvs[0][8] = UV(.5, 1);
    batch.uvs[0][9] = UV(0, 0);
    batch.uvs[0][10] = UV(1, 0);
    batch.uvs[0][11] = UV(.5, 1);
  }

  if (color)
  {
    batch.cs.assign(batch.ps.size(), *color);
  }

  if (normals)
  {
  }

  //  ostream_iterator<LPoint> osi(cout, "\n");
  //  copy(b.ps.begin(), b.ps.end(), osi);
  //  ostream_iterator<UV> osi(cout, "\n");
  //  copy(batch.uvs[0].begin(), batch.uvs[0].end(), osi);
}
예제 #2
0
#include "LMine.h"

#include "LLib.h"

const LPoint g_mine[4] = 
{
	LPoint(-1, -1),
	LPoint(-1, 1),
	LPoint(1, 1),
	LPoint(1, -1)
};

LMineSet::LMineSet()
{
	m_areaWidth = 0;
	m_areaHeight = 0;
	m_mineNum = 0;
}

LMineSet::~LMineSet()
{
	LDestroy::SafeDeleteArray(m_minePosList);
}

void LMineSet::SetArea(IN int width, IN int height)
{
	m_areaWidth = width;
	m_areaHeight = height;
}
예제 #3
0
void makeCube(GeometryBatch &b, float w, 
    bool normals, bool uvs, const LColor *color)
{

  b.init(GL_TRIANGLES, "cube");
  b.ps.resize(36);
  b.ns.resize(b.ps.size());
  b.uvs[0].resize(b.ps.size());
  b.ps[0] = LPoint(-w, -w, w);  b.ns[0] = LNormal(0,0,1); b.uvs[0][0] = UV(0,0);
  b.ps[1] = LPoint(w, -w, w);   b.ns[1] = LNormal(0,0,1); b.uvs[0][1] = UV(1,0);
  b.ps[2] = LPoint(-w, w, w);   b.ns[2] = LNormal(0,0,1); b.uvs[0][2] = UV(0,1);
  b.ps[3] = LPoint(-w, w, w);   b.ns[3] = LNormal(0,0,1); b.uvs[0][3] = UV(0,1);
  b.ps[4] = LPoint(w, -w, w);   b.ns[4] = LNormal(0,0,1); b.uvs[0][4] = UV(1,0);
  b.ps[5] = LPoint(w, w, w);    b.ns[5] = LNormal(0,0,1); b.uvs[0][5] = UV(1,1);

  b.ps[6] = LPoint(w, -w, w);   b.ns[6] =  LNormal(1,0,0); b.uvs[0][6] = UV(0,0); 
  b.ps[7] = LPoint(w, -w, -w);  b.ns[7] =  LNormal(1,0,0); b.uvs[0][7] = UV(1,0);
  b.ps[8] = LPoint(w, w, w);    b.ns[8] =  LNormal(1,0,0); b.uvs[0][8] = UV(0,1);
  b.ps[9] = LPoint(w, w, w);    b.ns[9] =  LNormal(1,0,0); b.uvs[0][9] = UV(0,1);
  b.ps[10] = LPoint(w, -w, -w); b.ns[10] = LNormal(1,0,0); b.uvs[0][10] = UV(1,0); 
  b.ps[11] = LPoint(w, w, -w);  b.ns[11] = LNormal(1,0,0); b.uvs[0][11] = UV(1,1);

  b.ps[12] = LPoint(w, -w, -w);  b.ns[12] = LNormal(0,0,-1); b.uvs[0][12] = UV(0,0);
  b.ps[13] = LPoint(-w, -w, -w); b.ns[13] = LNormal(0,0,-1); b.uvs[0][13] = UV(1,0);
  b.ps[14] = LPoint(w, w, -w);   b.ns[14] = LNormal(0,0,-1); b.uvs[0][14] = UV(0,1);
  b.ps[15] = LPoint(w, w, -w);   b.ns[15] = LNormal(0,0,-1); b.uvs[0][15] = UV(0,1);
  b.ps[16] = LPoint(-w, -w, -w); b.ns[16] = LNormal(0,0,-1); b.uvs[0][16] = UV(1,0);
  b.ps[17] = LPoint(-w, w, -w);  b.ns[17] = LNormal(0,0,-1); b.uvs[0][17] = UV(1,1);

  b.ps[18] = LPoint(-w, -w, -w); b.ns[18] = LNormal(0,0,-1); b.uvs[0][18] = UV(0,0);
  b.ps[19] = LPoint(-w, -w, w);  b.ns[19] = LNormal(0,0,-1); b.uvs[0][19] = UV(1,0);
  b.ps[20] = LPoint(-w, w, -w);  b.ns[20] = LNormal(0,0,-1); b.uvs[0][20] = UV(0,1);
  b.ps[21] = LPoint(-w, w, -w);  b.ns[21] = LNormal(0,0,-1); b.uvs[0][21] = UV(0,1);
  b.ps[22] = LPoint(-w, -w, w);  b.ns[22] = LNormal(0,0,-1); b.uvs[0][22] = UV(1,0);
  b.ps[23] = LPoint(-w, w, w);   b.ns[23] = LNormal(0,0,-1); b.uvs[0][23] = UV(1,1);

  b.ps[24] = LPoint(-w, w, w);  b.ns[24] = LNormal(0,1,0); b.uvs[0][24] = UV(0,0);
  b.ps[25] = LPoint(w, w, w);   b.ns[25] = LNormal(0,1,0); b.uvs[0][25] = UV(1,0);
  b.ps[26] = LPoint(-w, w, -w); b.ns[26] = LNormal(0,1,0); b.uvs[0][26] = UV(0,1);
  b.ps[27] = LPoint(-w, w, -w); b.ns[27] = LNormal(0,1,0); b.uvs[0][27] = UV(0,1);
  b.ps[28] = LPoint(w, w, w);   b.ns[28] = LNormal(0,1,0); b.uvs[0][28] = UV(1,0);
  b.ps[29] = LPoint(w, w, -w);  b.ns[29] = LNormal(0,1,0); b.uvs[0][29] = UV(1,1);

  b.ps[30] = LPoint(-w, -w, -w); b.ns[30] = LNormal(0,-1,0); b.uvs[0][30] = UV(0,0);
  b.ps[31] = LPoint(w, -w, -w);  b.ns[31] = LNormal(0,-1,0); b.uvs[0][31] = UV(1,0);
  b.ps[32] = LPoint(-w, -w, w);  b.ns[32] = LNormal(0,-1,0); b.uvs[0][32] = UV(0,1);
  b.ps[33] = LPoint(-w, -w, w);  b.ns[33] = LNormal(0,-1,0); b.uvs[0][33] = UV(0,1);
  b.ps[34] = LPoint(w, -w, -w);  b.ns[34] = LNormal(0,-1,0); b.uvs[0][34] = UV(1,0);
  b.ps[35] = LPoint(w, -w, w);   b.ns[35] = LNormal(0,-1,0); b.uvs[0][35] = UV(1,1);

  if (!normals) b.ns.clear();
  if (!uvs) b.uvs[0].clear();
  if (color)
  {
    b.cs.assign(b.ps.size(), *color);
  }
}