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); }
void SpriterInstance::setSpatialInfo(float x, float y, float angle, float scaleX, float scaleY) { spatialInfo_ = SpatialInfo(x, y, angle, scaleX, scaleY); }