示例#1
0
文件: dejong.c 项目: aearly/DeJong
Double4 getColor2(double dx, double dy) {
  double distance = (fabs(dx) + fabs(dy)) / 2.0;
  if (distance < 0) distance = 0;
  if (distance > 2.0) distance = 2.0;

  if (distance <= 1.0) {
    return lerp4(cl1, cl2, distance);
  } else {
    return lerp4(cl2, cl3, distance);
  }
}
示例#2
0
文件: dejong.c 项目: aearly/DeJong
Double4 getColor(double dx, double dy) {
  double distance = (fabs(dx) + fabs(dy)) / 4.0;
  if (distance < 0) distance = 0;
  if (distance > 1.0) distance = 1.0;

  return lerp4(c1, c2, distance);
}
示例#3
0
文件: model.c 项目: Rapthera/warcog
static void get_rot(vec4 *res, const uint8_t *p, const uint8_t *qt, int anim_id, double frame)
{
    uint8_t start, end;
    const keyframe4_t *k, *j;
    float t;

    start = (!anim_id) ? 0 : qt[anim_id - 1];
    end = qt[anim_id];
    k = (const keyframe4_t*)p; k += start;

    if(start == end) {
        *res = vec4(0.0, 0.0, 0.0, 1.0);
        return;
    }

    if(start + 1 == end || frame <= k->frame) {
        *res = k->vec;
        return;
    }

    while((++k)->frame < frame);

    j = k - 1;
    t = (float)(frame - j->frame) / (float)(k->frame - j->frame);
    *res = lerp4(j->vec, k->vec, t);
}