Blender Git Commits

Blender Git "collada2.8" branch commits.

Page: 5 / 7

August 2, 2018, 15:49 (GMT)
Cleanup: Collada added a clarifying comment
August 2, 2018, 15:49 (GMT)
Refactor: Now only one Sample per frame and per object

Previously the Bone aniumations where stored in separate BCSample
instances. Now the BCSample class has one more entry for the animated
bones (a matrix map)

I am now ready for final cleaning up and testing.
August 2, 2018, 15:49 (GMT)
Cleanup: Collada removed unneeded methods from Animation Exporter
August 2, 2018, 15:49 (GMT)
Fix: Collada: Added back the handling of Armature animation export.

The previous commit removed also the Export of bone animations.
This is now fixed.
August 2, 2018, 15:49 (GMT)
Cleanup: Collada removed special handling of Object->Data animations

The export of Object->Data curves is no longer a
Special case but now included in the normal
operation of the Animation exporter.
August 2, 2018, 15:49 (GMT)
Feature: Collada Object->data FCurves can now also be sampled
August 2, 2018, 15:40 (GMT)
Refactor: Collada: Renamed BCMatrix to BCSample

Since the BCSample Objects will contain either
Matrix data for Object animation or other
data for Lamp, Material, and Camera animation.
August 2, 2018, 15:37 (GMT)
Cleanup: Collada reordered and commented BC_animation_transform_type
August 2, 2018, 15:37 (GMT)
Refactor: Use more general appraoch to get data from BCMatrix

Added virtual function get_value_for() that can pick the correct data
from a Matrix (and later also for a vector or a float array) (wip)

this is in preparation for adding Sample data for Materials, light and camera
Those animations do not need matrix values, but either simple float arrays
or float vector arrays. I still want to handle those animation samples
in the same way as the Matrix samples. So i try to use a class hierarchy here
with the base class BCSample and derived classes where BCMatrix is the only
implemented subclass so far. (wip)
August 2, 2018, 15:37 (GMT)
Renamed the file BCMatrix.* to BCSampleData.*

BCMatrix is still used, but i intend to setup a class hierarchy
wher BCSampleData is the parent of all sampled data in the
BCAnimationCurveContainer (wip)
August 2, 2018, 15:37 (GMT)
Cleanup: Fixed '#ifndef xxx' brakets in hjeader files

Due to renaming classes and files the initial #ifndef brakets
have got possibly misleading values for xxx
August 2, 2018, 15:37 (GMT)
Removed the "See Also" line from the license comments
August 2, 2018, 15:37 (GMT)
Fixed File Copyright blocks in file headers
August 2, 2018, 15:37 (GMT)
Added separate functions to get curve data for sampling and keyframes

For Materials, Camera, Lamp actions it turned out that the sampler
can not sample the data at the moment. So for those curves i need
to get the data from the original curves for now. I Added a getter
that would retreive the data from the FCurve instead from the sampled
data if no sampled data is available. This will change (wip)

Known limitation: the Material,Lamp,Camera actions are always
exported with linear interpolation (wip)
August 2, 2018, 15:37 (GMT)
First stable version of new Collada Animation Exporter.
This still needs cleanup and fixing (wip)
August 2, 2018, 13:04 (GMT)
Feature: Collada added new User interface options

keep_keyframes:
When sampling the distance between 2 keyframes is defined by
the sampling rate. Furthermore the keyframes defined in the
FCurves are not exported. However when this option is enabled
then also the defined keyframes will be added to the exported fcurves

keep_smooth_curves:
When sampling we do not use FCurves. So we also have no Curve handles
for smooth exporting. However when this option is enabled, Blender
does its best to recreate the handles for export. This is a very
experimental feature and it is know to break when:

- the exported animated objects have parent inverse matrices different
from the unit matrix
- The exported objects have negative scaling

There may be many other situations when this feature breaks.
This needs to be further tested. It may be removed later or replaced
by something less wonky.
August 2, 2018, 13:04 (GMT)
refactor: Collada: removed trivial function

The function get_joint_id(Object *ob, Bone *bone) was so simple
I replaced the function by a one line statement. Now you can see
directly what happens and no longer need to lookup what
the function does.
August 2, 2018, 13:04 (GMT)
Feature Collada: Export also not selected intermediate objects

Problem: When we export an Object Hierarchy, then we must export
all elements of the hierarchy to maintain the transforms. This
is especially important when exporting animated objects, because the
animation curves are exported as relative curves based on the
parent-child hierarchy. If an intermediate animated object is missing
then the exported animation breaks.

Solution: If the "Selected" Optioon is enabled, then take care
to also export all objects which are not selected and hidden,
but which are parents of selected objects.
August 2, 2018, 12:50 (GMT)
Cleanup: Collada added indentation, changed variable names

Just for better reading, no functional change here.
August 2, 2018, 12:34 (GMT)
Refactor Collada: Moved Classes into separate files

Renamed AnimationCurveCache to BCAnimationCurveContainer
because this is really not a cache but just a set of Data that
prepares the export of FCurves. This container only lives during
export and is otherwiose not used for anything else.

The BCAnimationCurveContainer is not depending on Collada in any way.
Theoretically it could be used also from Python, but this is another story.

Additions in more detail:

Classes:

* BCAnimationCurve
a wrapper for handling FCurves tied to an object within the
Animation Exporter

* BCAnimationCurveContainer
A container to keep all FCurves in one place. It also maintains
creation and deletion of temporary FCurves needed to export data
without interfering with the User's production data in Blender.

* BCMatrix
Handy class for making float mat[4][4] a primetime resident in
the code. Not necessary but nice.

Support functions:

* bc_get_children(std::vector<Object *> &child_set, Object *ob, Scene *scene)
returns the immediate children of an object into a set

* bc_string_after(const std::string& s, const char c)
returns the string after the last occurance of char

* bc_startswith(std::string const & value, std::string const & starting)
returns true if the string starts with the starting sequence

* bc_endswith(std::string const & value, std::string const & ending)
returns true if the string ends with the ending sequence
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021