diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-03-06 18:19:35 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-03-06 18:19:45 +0300 |
commit | eb522af4fec58876ac1b0a73ad9bcdae2d82d33f (patch) | |
tree | 485c6a1fb23b5be256757375e2157378d3a5c61b /source/blender/collada/BCAnimationCurve.h | |
parent | ff60dd8b18ed00902e5bdfd36882072db7af8735 (diff) |
Cleanup: move Alembic, AVI, Collada, and USD to `source/blender/io`
This moves the `alembic`, `avi`, `collada`, and `usd` modules into a common
`io` directory.
This also cleans up some `#include "../../{somedir}/{somefile}.h"` by
adding `../../io/{somedir}` to `CMakeLists.txt` and then just using
`#include "{somefile}.h"`.
No functional changes.
Diffstat (limited to 'source/blender/collada/BCAnimationCurve.h')
-rw-r--r-- | source/blender/collada/BCAnimationCurve.h | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/source/blender/collada/BCAnimationCurve.h b/source/blender/collada/BCAnimationCurve.h deleted file mode 100644 index 7b523ac53ca..00000000000 --- a/source/blender/collada/BCAnimationCurve.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2008 Blender Foundation. - * All rights reserved. - */ - -#ifndef __BCANIMATIONCURVE_H__ -#define __BCANIMATIONCURVE_H__ - -#include "collada_utils.h" -#include "BCSampleData.h" - -#include "MEM_guardedalloc.h" - -extern "C" { -#include "BKE_fcurve.h" -#include "BKE_armature.h" -#include "BKE_material.h" -#include "ED_anim_api.h" -#include "ED_keyframing.h" -#include "ED_keyframes_edit.h" -} - -typedef float(TangentPoint)[2]; - -typedef std::set<float> BCFrameSet; -typedef std::vector<float> BCFrames; -typedef std::vector<float> BCValues; -typedef std::vector<float> BCTimes; -typedef std::map<int, float> BCValueMap; - -typedef enum BC_animation_type { - BC_ANIMATION_TYPE_OBJECT, - BC_ANIMATION_TYPE_BONE, - BC_ANIMATION_TYPE_CAMERA, - BC_ANIMATION_TYPE_MATERIAL, - BC_ANIMATION_TYPE_LIGHT, -} BC_animation_type; - -class BCCurveKey { - private: - BC_animation_type key_type; - std::string rna_path; - int curve_array_index; - int curve_subindex; /* only needed for materials */ - - public: - BCCurveKey(); - BCCurveKey(const BC_animation_type type, - const std::string path, - const int array_index, - const int subindex = -1); - void operator=(const BCCurveKey &other); - const std::string get_full_path() const; - const std::string get_path() const; - const int get_array_index() const; - const int get_subindex() const; - void set_object_type(BC_animation_type object_type); - const BC_animation_type get_animation_type() const; - const bool operator<(const BCCurveKey &other) const; -}; - -class BCBezTriple { - public: - BezTriple &bezt; - - BCBezTriple(BezTriple &bezt); - const float get_frame() const; - const float get_time(Scene *scene) const; - const float get_value() const; - const float get_angle() const; - void get_in_tangent(Scene *scene, float point[2], bool as_angle) const; - void get_out_tangent(Scene *scene, float point[2], bool as_angle) const; - void get_tangent(Scene *scene, float point[2], bool as_angle, int index) const; -}; - -class BCAnimationCurve { - private: - BCCurveKey curve_key; - float min = 0; - float max = 0; - - bool curve_is_local_copy = false; - FCurve *fcurve; - PointerRNA id_ptr; - void init_pointer_rna(Object *ob); - void delete_fcurve(FCurve *fcu); - FCurve *create_fcurve(int array_index, const char *rna_path); - void create_bezt(float frame, float output); - void update_range(float val); - void init_range(float val); - - public: - BCAnimationCurve(); - BCAnimationCurve(const BCAnimationCurve &other); - BCAnimationCurve(const BCCurveKey &key, Object *ob); - BCAnimationCurve(BCCurveKey key, Object *ob, FCurve *fcu); - ~BCAnimationCurve(); - - const bool is_of_animation_type(BC_animation_type type) const; - const int get_interpolation_type(float sample_frame) const; - bool is_animated(); - const bool is_transform_curve() const; - const bool is_rotation_curve() const; - bool is_keyframe(int frame); - void adjust_range(int frame); - - const std::string get_animation_name(Object *ob) const; /* xxx: this is collada specific */ - const std::string get_channel_target() const; - const std::string get_channel_type() const; - const std::string get_channel_posebone() const; // returns "" if channel is not a bone channel - - const int get_channel_index() const; - const int get_subindex() const; - const std::string get_rna_path() const; - const FCurve *get_fcurve() const; - const int sample_count() const; - - const float get_value(const float frame); - void get_values(BCValues &values) const; - void get_value_map(BCValueMap &value_map); - - void get_frames(BCFrames &frames) const; - - /* Curve edit functions create a copy of the underlaying FCurve */ - FCurve *get_edit_fcurve(); - bool add_value_from_rna(const int frame); - bool add_value_from_matrix(const BCSample &sample, const int frame); - void add_value(const float val, const int frame); - void clean_handles(); - - /* experimental stuff */ - const int closest_index_above(const float sample_frame, const int start_at) const; - const int closest_index_below(const float sample_frame) const; -}; - -typedef std::map<BCCurveKey, BCAnimationCurve *> BCAnimationCurveMap; - -#endif /* __BCANIMATIONCURVE_H__ */ |