36 static const size_t num_vert_splines = 4;
41 void LoadFromNode(
const XNode* Node)
override;
50 float percent_between);
54 return !operator==(other);
57 void SetDrawState(DrawMode dm,
int first,
int num);
58 [[nodiscard]]
int GetSafeNumToDraw(DrawMode dm,
int num)
const;
60 std::vector<RageSpriteVertex> vertices;
61 std::vector<size_t> quad_states;
63 DrawMode _DrawMode{ DrawMode_Invalid };
68 float line_width{ 1.0f };
73 if (AMV_Tweens.empty()) {
77 return AMV_Tweens.back();
80 [[nodiscard]]
const AMV_TweenState& AMV_DestTweenState()
const
85 void EnableAnimation(
bool bEnable)
override;
86 void Update(
float fDelta)
override;
89 virtual void DrawInternal(
const AMV_TweenState* TS);
91 void SetCurrentTweenStart()
override;
92 void EraseHeadTween()
override;
93 void UpdatePercentThroughTween(
float PercentThroughTween)
override;
94 void BeginTweening(
float time,
ITween* pInterp)
override;
96 void StopTweening()
override;
97 void FinishTweening()
override;
100 [[nodiscard]]
RageTexture* GetTexture()
const {
return _Texture; };
103 void UnloadTexture();
104 void SetNumVertices(
size_t n);
107 void AddVertices(
int Add);
109 void SetEffectMode(EffectMode em) { _EffectMode = em; }
110 void SetTextureMode(TextureMode tm) { _TextureMode = tm; }
111 void SetLineWidth(
float width) { AMV_DestTweenState().line_width = width; }
113 void SetDrawState(DrawMode dm,
int first,
int num)
115 AMV_DestTweenState().SetDrawState(dm, first, num);
118 [[nodiscard]] DrawMode GetDestDrawMode()
const
120 return AMV_DestTweenState()._DrawMode;
122 [[nodiscard]]
int GetDestFirstToDraw()
const
124 return AMV_DestTweenState().FirstToDraw;
126 [[nodiscard]]
int GetDestNumToDraw()
const
128 return AMV_DestTweenState().NumToDraw;
130 [[nodiscard]] DrawMode GetCurrDrawMode()
const
132 return AMV_current._DrawMode;
134 [[nodiscard]]
int GetCurrFirstToDraw()
const
136 return AMV_current.FirstToDraw;
138 [[nodiscard]]
int GetCurrNumToDraw()
const {
return AMV_current.NumToDraw; }
139 size_t GetNumVertices() {
return AMV_DestTweenState().vertices.size(); }
141 void SetVertexPos(
int index,
float x,
float y,
float z);
142 void SetVertexColor(
int index,
const RageColor& c);
143 void SetVertexCoords(
int index,
float TexCoordX,
float TexCoordY);
145 inline void SetVertsFromSplinesInternal(
size_t num_splines,
147 void SetVertsFromSplines();
156 [[nodiscard]]
int GetNumStates()
const override {
return _states.size(); }
157 void AddState(
const State& new_state) { _states.push_back(new_state); }
158 void RemoveState(
size_t i)
160 ASSERT(i < _states.size());
161 _states.erase(_states.begin() + i);
164 [[nodiscard]]
size_t GetState()
const {
return _cur_state; }
165 State& GetStateData(
size_t i)
167 ASSERT(i < _states.size());
170 void SetStateData(
size_t i,
const State& s)
172 ASSERT(i < _states.size());
175 void SetStateProperties(
const std::vector<State>& new_states)
177 _states = new_states;
180 void SetState(
int i)
override;
181 void SetAllStateDelays(
float delay);
182 [[nodiscard]]
float GetAnimationLengthSeconds()
const override;
183 void SetSecondsIntoAnimation(
float seconds)
override;
184 void UpdateAnimationState(
bool force_update =
false);
186 [[nodiscard]]
size_t GetNumQuadStates()
const
188 return AMV_DestTweenState().quad_states.size();
190 void AddQuadState(
size_t s)
192 AMV_DestTweenState().quad_states.push_back(s);
194 void RemoveQuadState(
size_t i)
196 AMV_DestTweenState().quad_states.erase(
197 AMV_DestTweenState().quad_states.begin() + i);
199 size_t GetQuadState(
size_t i)
201 return AMV_DestTweenState().quad_states[i];
203 void SetQuadState(
size_t i,
size_t s)
205 AMV_DestTweenState().quad_states[i] = s;
207 bool _use_animation_state;
210 void PushSelf(lua_State* L)
override;
215 std::vector<RageSpriteVertex> _Vertices;
216 std::vector<AMV_TweenState> AMV_Tweens;
217 AMV_TweenState AMV_current;
218 AMV_TweenState AMV_start;
221 AMV_TweenState* AMV_TempState;
223 EffectMode _EffectMode;
224 TextureMode _TextureMode;
228 std::vector<CubicSplineN> _splines;
230 bool _skip_next_update;
231 float _secs_into_state;
233 std::vector<State> _states;
Definition RageTexture.h:14
Definition RageTextureID.h:12