Example #1
0
/* Функция обновления межкадровых параметров объекта анимации.
 * АРГУМЕНТЫ:
 *   - указатель на "себя" - сам объект анимации:
 *       od6UNIT_COW *Unit;
 *   - указатель на контекст анимации:
 *       od6ANIM *Ani;
 * ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
 */
static VOID CowUnitResponse( od6UNIT_COW *Unit, od6ANIM *Ani )
{
  OD6_RndWs = Ani->W;
  OD6_RndHs = Ani->H;
  OD6_RndWp = OD6_RndHp * Ani->W / Ani->H;
  OD6_RndMatrProjection = MatrProjection(-OD6_RndWp / 2, OD6_RndWp / 2, -OD6_RndHp / 2, OD6_RndHp / 2, OD6_RndProjDist, 1000.0);
}
Example #2
0
static VOID CubeUnitResponse( as4UNIT_CUBE *Unit, as4ANIM *Ani )
{
  AS4_RndWs = Ani->W;
  AS4_RndHs = Ani->H;
  AS4_RndWp = AS4_RndHp * Ani->W / Ani->H;
  AS4_RndMatrProjection = MatrProjection(-AS4_RndWp / 2, AS4_RndWp / 2, -AS4_RndHp / 2, AS4_RndHp / 2, AS4_ProjDist, 1000.0);
} /* End of 'CubeUnitResponse' function */
Example #3
0
VOID SS3_AnimResize( INT W, INT H )
{
  DBL ratio_x = 1, ratio_y = 1;

  SS3_Anim.W = W;
  SS3_Anim.H = H;

  if (W > H)
    ratio_x = (DBL)W / H;
  else
    ratio_y = (DBL)H / W;
  SS3_Anim.Wp = SS3_Anim.ProjSize * ratio_x;
  SS3_Anim.Hp = SS3_Anim.ProjSize * ratio_y;
  SS3_Anim.MatrProjection = MatrProjection(-SS3_Anim.Wp / 2, SS3_Anim.Wp / 2, -SS3_Anim.Hp / 2, SS3_Anim.Hp / 2, SS3_Anim.ProjDist, 1000);
  glViewport(0, 0, W, H);
}
Example #4
0
/* Resize of animation function.
 * ARGUMENTS:
 *   - new width and height of animation:
 *       INT W, H;
 * RETURNS: None.
 */
VOID EF2_AnimResize( INT W, INT H )
{
  DBL ratio_x = 1, ratio_y = 1;
  /* Save size of screen */
  EF2_Anim.W = W;
  EF2_Anim.H = H;

  if (W > H)
    ratio_x = (DBL)W / H;
  else
    ratio_y = (DBL)H / W;
  EF2_Anim.Wp = EF2_Anim.ProjSize * ratio_x;
  EF2_Anim.Hp = EF2_Anim.ProjSize * ratio_y;
  EF2_Anim.MatrProjection = MatrProjection(-EF2_Anim.Wp / 2, EF2_Anim.Wp / 2, -EF2_Anim.Hp / 2, EF2_Anim.Hp / 2, EF2_Anim.ProjDist, 1000);
  /* Change size of screen */
  glViewport(0, 0, W, H);
} /* End of 'EF2_AnimResize' function */
Example #5
0
/* Функция обработки изменения размера области вывода.
 * АРГУМЕНТЫ:
 *   - новый размер области вывода:
 *       INT W, H;
 * ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
 */
VOID OK2_AnimResize( INT W, INT H )
{
  DBL ratio_x = 1, ratio_y = 1;

   /* Сохранение размера */
  OK2_Anim.W = W;
  OK2_Anim.H = H;
  /* Поле просмотра */
  glViewport(0, 0, W, H);
  
  if (W > H)
    ratio_x = (DBL)W / H;
  else
    ratio_y = (DBL)H / W;
  OK2_Anim.Wp = OK2_Anim.ProjSize * ratio_x;
  OK2_Anim.Hp = OK2_Anim.ProjSize * ratio_y;
  
  OK2_Anim.MatrProjection =
      MatrProjection(-OK2_Anim.Wp / 2, OK2_Anim.Wp / 2,
                     -OK2_Anim.Hp / 2, OK2_Anim.Hp / 2,
                      OK2_Anim.ProjDist, OK2_Anim.FarClip);
} /* End of 'OK2_AnimResize' function */
Example #6
0
/* Функция обновления межкадровых параметров объекта анимации.
 * АРГУМЕНТЫ:
 *   - указатель на "себя" - сам объект анимации:
 *       ii2UNIT_COW *Unit;
 *   - указатель на контекст анимации:
 *       ii2ANIM *Ani;
 * ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Нет.
 */
static VOID CowUnitResponse( ii2UNIT_COW *Unit, ii2ANIM *Ani )
{
  MatrProjection( -II2_RndWp / 2, II2_RndWp / 2, -II2_RndHp / 2, II2_RndHp / 2, II2_RndProjDist, 1000 );
} /* End of 'CowUnitResponse' function */