示例#1
0
SimilarityTransform * SimilarityTransform::accumulate(const Transform * T2) const
{
    AffineTransform * T1aff = getAffineTransform();
    AffineTransform * T2aff = dynamic_cast<const SimilarityTransform *>(T2)->getAffineTransform();
    AffineTransform * aff = dynamic_cast<AffineTransform *>(T1aff->accumulate(T2aff));

    SimilarityTransform * pSim = aff->getSimilarityTransform();
    
    delete T1aff;
    delete T2aff;
    delete aff;

    return pSim;
}
示例#2
0
SimilarityTransform * SimilarityTransform::accumulateInverse(const Transform * T2) const
{
    AffineTransform * T1aff = getAffineTransform();
    AffineTransform * T2aff = dynamic_cast<const SimilarityTransform *>(T2)->getAffineTransform();
    AffineTransform * aff = T1aff->accumulateInverse(T2aff);
    SimilarityTransform * pSim = aff->getSimilarityTransform();
//    m->scale_ = scale_ * T2sim->scale_;
//    m->translation_ = translation_ + T2sim->translation_; //Do we need to scale here?? No
    
    delete T1aff;
    delete T2aff;
    delete aff;

    return pSim;
}