示例#1
0
文件: Types.cpp 项目: cguebert/Panda
	void registerAllTypes(asIScriptEngine* engine)
	{
		registerColor(engine);
		registerInt(engine);
		registerIntVector(engine);
		registerFloat(engine);
		registerFloatVector(engine);
		registerGradient(engine);
		registerPoint(engine);
		registerRect(engine);
		registerString(engine);
		registerMesh(engine); // After Point
		registerPath(engine); // After Point
		registerPolygon(engine); // After Path

		registerAnimation(engine);
	}
示例#2
0
文件: Glyph.C 项目: VisCore618/FFVC
// #################################################################
// グリフ作成のための頂点を生成
void Glyph::generateVertex(const FB::Vec3i idx, const float* pos, const char* str, const int m_bid)
{
  FB::Vec3f b;     // セルセンターのシフトインデクス
  FB::Vec3f c;     // セルセンター座標
  FB::Vec3f p[8];  // グリフの8頂点
  
  float w = 0.25;   // Glyph幅の係数
  float d = 0.05;   // Glyph厚さの係数
  
  b.assign((float)idx.x-0.5, (float)idx.y-0.5, (float)idx.z-0.5);
  c = org + b * pch;
  
  if ( !strcasecmp("x-", str))
  {
    b.assign( -pos[0], -w, -w);  p[0] = c + b * pch;
    b.assign(d-pos[0], -w, -w);  p[1] = c + b * pch;
    b.assign(d-pos[0],  w, -w);  p[2] = c + b * pch;
    b.assign( -pos[0],  w, -w);  p[3] = c + b * pch;
    b.assign( -pos[0], -w,  w);  p[4] = c + b * pch;
    b.assign(d-pos[0], -w,  w);  p[5] = c + b * pch;
    b.assign(d-pos[0],  w,  w);  p[6] = c + b * pch;
    b.assign( -pos[0],  w,  w);  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else if ( !strcasecmp("x+", str))
  {
    b.assign(pos[1]-d, -w, -w);  p[0] = c + b * pch;
    b.assign(pos[1]  , -w, -w);  p[1] = c + b * pch;
    b.assign(pos[1]  ,  w, -w);  p[2] = c + b * pch;
    b.assign(pos[1]-d,  w, -w);  p[3] = c + b * pch;
    b.assign(pos[1]-d, -w,  w);  p[4] = c + b * pch;
    b.assign(pos[1]  , -w,  w);  p[5] = c + b * pch;
    b.assign(pos[1]  ,  w,  w);  p[6] = c + b * pch;
    b.assign(pos[1]-d,  w,  w);  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else if ( !strcasecmp("y-", str))
  {
    b.assign(-w,  -pos[2], -w);  p[0] = c + b * pch;
    b.assign( w,  -pos[2], -w);  p[1] = c + b * pch;
    b.assign( w, d-pos[2], -w);  p[2] = c + b * pch;
    b.assign(-w, d-pos[2], -w);  p[3] = c + b * pch;
    b.assign(-w,  -pos[2],  w);  p[4] = c + b * pch;
    b.assign( w,  -pos[2],  w);  p[5] = c + b * pch;
    b.assign( w, d-pos[2],  w);  p[6] = c + b * pch;
    b.assign(-w, d-pos[2],  w);  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else if ( !strcasecmp("y+", str))
  {
    b.assign(-w, pos[3]-d, -w);  p[0] = c + b * pch;
    b.assign( w, pos[3]-d, -w);  p[1] = c + b * pch;
    b.assign( w, pos[3]  , -w);  p[2] = c + b * pch;
    b.assign(-w, pos[3]  , -w);  p[3] = c + b * pch;
    b.assign(-w, pos[3]-d,  w);  p[4] = c + b * pch;
    b.assign( w, pos[3]-d,  w);  p[5] = c + b * pch;
    b.assign( w, pos[3]  ,  w);  p[6] = c + b * pch;
    b.assign(-w, pos[3]  ,  w);  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else if ( !strcasecmp("z-", str))
  {
    b.assign(-w, -w,  -pos[4]);  p[0] = c + b * pch;
    b.assign( w, -w,  -pos[4]);  p[1] = c + b * pch;
    b.assign( w,  w,  -pos[4]);  p[2] = c + b * pch;
    b.assign(-w,  w,  -pos[4]);  p[3] = c + b * pch;
    b.assign(-w, -w, d-pos[4]);  p[4] = c + b * pch;
    b.assign( w, -w, d-pos[4]);  p[5] = c + b * pch;
    b.assign( w,  w, d-pos[4]);  p[6] = c + b * pch;
    b.assign(-w,  w, d-pos[4]);  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else if ( !strcasecmp("z+", str))
  {
    b.assign(-w, -w, pos[5]-d);  p[0] = c + b * pch;
    b.assign( w, -w, pos[5]-d);  p[1] = c + b * pch;
    b.assign( w,  w, pos[5]-d);  p[2] = c + b * pch;
    b.assign(-w,  w, pos[5]-d);  p[3] = c + b * pch;
    b.assign(-w, -w, pos[5]  );  p[4] = c + b * pch;
    b.assign( w, -w, pos[5]  );  p[5] = c + b * pch;
    b.assign( w,  w, pos[5]  );  p[6] = c + b * pch;
    b.assign(-w,  w, pos[5]  );  p[7] = c + b * pch;
    registerPolygon(p, m_bid);
  }
  else
  {
    Exit(0);
  }
  
}