Пример #1
0
void SkyBox::draw(gdl::AShader *shader, const gdl::Clock &clock,
                  const glm::vec3& pos) const
{
  GameGeometry tmpCube(*_cube);

  tmpCube.setPosition(pos);
  _texture->bind();
  tmpCube.draw(shader, clock);
}
Пример #2
0
// This routine implements the isomorphism from F_p[X]/(Phi_m(X)) to
// F_p[X_1, ..., X_k]/(Phi_{m_1}(X_1), ..., Phi_{m_k}(X_k)). The input
// is a polynomial mod q, which must be of degree < m. The output is a
// HyperCube of dimension (phi(m_1), ..., phi(m_k)).
//
// It is assumed that the current modulus is already set.
// For convenience, this method returns the value of the modulus q.
long PowerfulConversion::polyToPowerful(HyperCube<zz_p>& powerful,
					const zz_pX& poly) const
{
  HyperCube<zz_p> tmpCube(getLongSig());

  long n = deg(poly);
  //OLD: assert(n < indexes->m);
  helib::assertTrue(n < indexes->m, "Degree of polynomial poly is greater or equal than indexes->m");

  for (long i = 0; i <= n; i++)
    tmpCube[indexes->polyToCubeMap[i]] = poly[i];

  for (long i = n+1; i < indexes->m; i++)
    tmpCube[indexes->polyToCubeMap[i]] = 0;

  zz_pX tmp1, tmp2;
  recursiveReduce(CubeSlice<zz_p>(tmpCube), cycVec_p, 0, tmp1, tmp2);

  for (long i = 0; i < indexes->phim; i++)
    powerful[i] = tmpCube[indexes->shortToLongMap[i]];

  return zz_p::modulus();
}