ChrisOS Research ProjectOperating systems · language systems · graphics · machine emulation
DOCUMENTATION ARCHIVEMAIN BRANCH
ChrisOS/Referência de fonte: GAMES/SPHERE.CC

Referência de fonte: GAMES/SPHERE.CC

Registro determinístico da fonte. O conteúdo completo do arquivo é reproduzido abaixo; esta página não substitui a interpretação arquitetural dos capítulos autorais.

Identidade do arquivo

Campo Valor
Path GAMES/SPHERE.CC
Lines 75
Bytes 1252
SHA-256 491e724b9b08961ebe56cfb1c04755d1a0fb5e6075f887d39b103b41ba8d18c5
ChrisOS revision da3df29cb397932c43d32373871fb9380e688ade

Dependências sintáticas detectadas

Linha Include
— Nenhum include de preprocessor detectado.

Símbolos detectados

Linha Símbolo
1 main

Fonte completa

O bloco seguinte é o arquivo textual integral na revisão indicada. Não há elisão, abreviação ou paráfrase.

void main() {
  float v[351];
  int idx[576];
  int stacks;
  int slices;
  int nv;
  int nt;
  int i;
  int j;
  int k;
  int ti;
  int a0;
  int a1;
  int b0;
  int b1;
  float theta;
  float phi;
  float a;

  stacks = 8;
  slices = 12;
  nv = 117;
  nt = 192;

  k = 0;
  i = 0;
  while (i <= stacks) {
    theta = i * 180.0 / 8.0;
    j = 0;
    while (j <= slices) {
      phi = j * 360.0 / 12.0;
      v[k]   = sin(theta) * cos(phi);
      v[k+1] = cos(theta);
      v[k+2] = sin(theta) * sin(phi);
      k = k + 3;
      j = j + 1;
    }
    i = i + 1;
  }

  ti = 0;
  i = 0;
  while (i < stacks) {
    j = 0;
    while (j < slices) {
      a0 = i * 13 + j;
      a1 = a0 + 1;
      b0 = a0 + 13;
      b1 = b0 + 1;
      idx[ti * 3 + 0] = a0;
      idx[ti * 3 + 1] = b0;
      idx[ti * 3 + 2] = a1;
      ti = ti + 1;
      idx[ti * 3 + 0] = a1;
      idx[ti * 3 + 1] = b0;
      idx[ti * 3 + 2] = b1;
      ti = ti + 1;
      j = j + 1;
    }
    i = i + 1;
  }

  viewport(320, 200);
  a = 0.0;
  while (1) {
    if (key(1)) { return; }
    clear(1);
    cam(0.0, 1.5, 5.0, 0.0, -5.0);
    light(3.0, 6.0, 2.0, 1.0, 1.0, 1.0);
    meshf(0, 117, 192, 0.0, 0.0, 0.0, a, 10);
    a = a + 2.0;
    if (a > 359.0) { a = 0.0; }
    wait(1);
  }
}

Papel deste registro

O atlas garante rastreabilidade arquivo-a-arquivo. Responsabilidade, invariantes, ownership, concorrência, segurança, desempenho e interação entre subsistemas pertencem aos capítulos autorais e devem citar este arquivo quando aplicável.

Registro do documento ID: source-491e724b9b08961e Reviewed source: da3df29cb397 Class: generated-source-reference