Пример #1
0
SpatialInfo SpatialInfo::UnmapFromParent(const SpatialInfo& parentInfo) const
{
    float unmappedX;
    float unmappedY;
    float unmappedAngle = angle_ + parentInfo.angle_;
    float unmappedScaleX = scaleX_ * parentInfo.scaleX_;
    float unmappedScaleY = scaleY_ * parentInfo.scaleY_;
    float unmappedAlpha = alpha_ * parentInfo.alpha_;

    if (x_ != 0.0f || y_ != 0.0f)
    {
        float preMultX = x_ * parentInfo.scaleX_;
        float preMultY = y_ * parentInfo.scaleY_;

        float s = Sin(parentInfo.angle_);
        float c = Cos(parentInfo.angle_);

        unmappedX = (preMultX * c) - (preMultY * s) + parentInfo.x_;
        unmappedY = (preMultX * s) + (preMultY * c) + parentInfo.y_;
    }
    else
    {
        unmappedX = parentInfo.x_;
        unmappedY = parentInfo.y_;
    }

    return SpatialInfo(unmappedX, unmappedY, unmappedAngle, unmappedScaleX, unmappedScaleY, unmappedAlpha, spin);
}
Пример #2
0
void SpriterInstance::setSpatialInfo(float x, float y, float angle, float scaleX, float scaleY)
{
    spatialInfo_ = SpatialInfo(x, y, angle, scaleX, scaleY);
}