#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/core/svg/svg_animation_element.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/svg/animation/element_smil_animations.h"
#include "third_party/blink/renderer/core/svg/animation/smil_animation_effect_parameters.h"
#include "third_party/blink/renderer/core/svg/svg_animate_element.h"
#include "third_party/blink/renderer/core/svg/svg_animate_motion_element.h"
#include "third_party/blink/renderer/core/svg/svg_parser_utilities.h"
#include "third_party/blink/renderer/core/svg_names.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/character_visitor.h"
namespace blink {
SVGAnimationElement::SVGAnimationElement(const QualifiedName& tag_name,
Document& document)
: … { … }
bool SVGAnimationElement::ParseValues(const String& value,
Vector<String>& result) { … }
static bool IsInZeroToOneRange(float value) { … }
static bool ParseKeyTimes(const String& string,
HeapVector<float>& result,
bool verify_order) { … }
template <typename CharType>
static bool ParseKeySplinesInternal(const CharType* ptr,
const CharType* end,
Vector<gfx::CubicBezier>& result) { … }
static bool ParseKeySplines(const String& string,
Vector<gfx::CubicBezier>& result) { … }
void SVGAnimationElement::Trace(Visitor* visitor) const { … }
void SVGAnimationElement::ParseAttribute(
const AttributeModificationParams& params) { … }
void SVGAnimationElement::AnimationAttributeChanged() { … }
void SVGAnimationElement::UnregisterAnimation(
const QualifiedName& attribute_name) { … }
void SVGAnimationElement::RegisterAnimation(
const QualifiedName& attribute_name) { … }
void SVGAnimationElement::WillChangeAnimationTarget() { … }
float SVGAnimationElement::getStartTime(ExceptionState& exception_state) const { … }
float SVGAnimationElement::getCurrentTime() const { … }
float SVGAnimationElement::getSimpleDuration(
ExceptionState& exception_state) const { … }
void SVGAnimationElement::beginElementAt(float offset) { … }
void SVGAnimationElement::endElementAt(float offset) { … }
AnimationMode SVGAnimationElement::CalculateAnimationMode() { … }
void SVGAnimationElement::SetCalcMode(const AtomicString& calc_mode) { … }
String SVGAnimationElement::ToValue() const { … }
String SVGAnimationElement::ByValue() const { … }
String SVGAnimationElement::FromValue() const { … }
bool SVGAnimationElement::IsAdditive() const { … }
bool SVGAnimationElement::IsAccumulated() const { … }
void SVGAnimationElement::CalculateKeyTimesForCalcModePaced() { … }
static inline double SolveEpsilon(double duration) { … }
unsigned SVGAnimationElement::CalculateKeyTimesIndex(float percent) const { … }
float SVGAnimationElement::CalculatePercentForSpline(
float percent,
unsigned spline_index) const { … }
float SVGAnimationElement::CalculatePercentFromKeyPoints(float percent) const { … }
float SVGAnimationElement::CalculatePercentForFromTo(float percent) const { … }
float SVGAnimationElement::CurrentValuesFromKeyPoints(float percent,
String& from,
String& to) const { … }
float SVGAnimationElement::CurrentValuesForValuesAnimation(float percent,
String& from,
String& to) const { … }
bool SVGAnimationElement::UpdateAnimationParameters() { … }
bool SVGAnimationElement::CheckAnimationParameters() const { … }
bool SVGAnimationElement::UpdateAnimationValues() { … }
SMILAnimationEffectParameters SVGAnimationElement::ComputeEffectParameters()
const { … }
void SVGAnimationElement::ApplyAnimation(SMILAnimationValue& animation_value) { … }
bool SVGAnimationElement::OverwritesUnderlyingAnimationValue() const { … }
}