void plLeafController::AllocKeys(unsigned int numKeys, unsigned int type) { DeallocKeys(); fType = type; fKeys.setSizeNull(numKeys); switch (fType) { case hsKeyFrame::kPoint3KeyFrame: case hsKeyFrame::kBezPoint3KeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsPoint3Key(); break; case hsKeyFrame::kScalarKeyFrame: case hsKeyFrame::kBezScalarKeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsScalarKey(); break; case hsKeyFrame::kScaleKeyFrame: case hsKeyFrame::kBezScaleKeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsScaleKey(); break; case hsKeyFrame::kQuatKeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsQuatKey(); break; case hsKeyFrame::kCompressedQuatKeyFrame32: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsCompressedQuatKey32(); break; case hsKeyFrame::kCompressedQuatKeyFrame64: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsCompressedQuatKey64(); break; case hsKeyFrame::k3dsMaxKeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsG3DSMaxKeyFrame(); break; case hsKeyFrame::kMatrix33KeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsMatrix33Key(); break; case hsKeyFrame::kMatrix44KeyFrame: for (size_t i=0; i<numKeys; i++) fKeys[i] = new hsMatrix44Key(); break; default: break; } }
void plLeafController::setKeys(const hsTArray<hsKeyFrame*>& keys, unsigned int type) { DeallocKeys(); AllocKeys(keys.getSize(), type); for (size_t i=0; i<keys.getSize(); i++) fKeys[i] = keys[i]; }
plLeafController::~plLeafController() { DeallocKeys(); DeallocControllers(); }
void plLeafController::setKeys(const std::vector<hsKeyFrame*>& keys, unsigned int type) { DeallocKeys(); AllocKeys(keys.size(), type); for (size_t i=0; i<keys.size(); i++) *fKeys[i] = *keys[i]; }