Re: performer memory management

New Message Reply Date view Thread view Subject view Author view

jason allen bryan (jbryan++at++cis.ohio-state.edu)
Thu, 8 Oct 1998 09:09:43 -0400 (EDT)


the follwing is some code extracted from the application. is it
possible that global allocation causes problems?

#includes ...

// global declarations

pfVec3 stupid[3]; <---- here's the fix
pfVec3 basePoints[8];
pfVec3 lastPoints[8];
pfVec3 points[8];
pfVec3 dir[8];
pfVec3 baseObjectAxis[3];
pfVec3 objectAxis[3];
pfVec3 centerOfMass;
pfVec3 baseCM;
pfCoord baseObjectCoord;
pfCoord objectCoord;
pfDCS *object_dcs;
float scale;

struct timeval end_time, start_time;
struct timezone tz;
double secs, usecs;
float dt;

pfDCS *lightDCS;
pfuEventStream events;

pfDCS *load_object (int argc, char *argv[])
{
    code to load iv file of object
    ...
}

int load_object_data (char *filename)
{
    code to load data related to position and orientation of object
    ...
}

void transform_object (void)
{
  int i;
  pfMatrix m;

  m.makeIdent ();
  m.postRot (m, xform.hpr[2], 0.0, 1.0, 0.0);
  m.postRot (m, xform.hpr[1], 1.0, 0.0, 0.0);
  m.postRot (m, xform.hpr[0], 0.0, 0.0, 1.0);
  objectAxis[0].xformPt (baseObjectAxis[0], m);
  objectAxis[1].xformPt (baseObjectAxis[1], m);
  objectAxis[2].xformPt (baseObjectAxis[2], m);
  m.postScale (m, scale, scale, scale);
  m.postTrans (m, xform.xyz[0], xform.xyz[1], xform.xyz[2]);

  for (i = 0; i < 8; i++)
    {
      lastPoints[i] = points[i];
      points[i] = basePoints[i];
      points[i].xformPt (points[i], m);
      dir[i] = points[i] - lastPoints[i];
    }
  centerOfMass.xformPt (baseCM, m);

  object_dcs->setCoord (&xform);
}

pfDCS *load_scene (int argc, char *argv[])
{
    code to load scene in iv or flt format
    ...
}

int main(int argc, char *argv[])
{
    ...
    initialize performer, etc
    run simulation
    ...
}


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Thu Oct 08 1998 - 06:09:50 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.