blender.git
4 years agoGawain: remove GL enum from primitive API
Mike Erwin [Sat, 8 Apr 2017 05:19:25 +0000 (01:19 -0400)]
Gawain: remove GL enum from primitive API

Callers now have to use Gawain's PRIM enum to specify geometric primitives.

This makes the API more bullet-proof (at least less vulnerable) since GLenum covers waaay more than GL_POINTS, GL_LINES, etc.

Also prepares us for Vulkan.

4 years agoOpenGL: use PRIM instead of GL enum everywhere else
Mike Erwin [Sat, 8 Apr 2017 04:50:36 +0000 (00:50 -0400)]
OpenGL: use PRIM instead of GL enum everywhere else

Well, everywhere that uses Gawain for drawing. Places that call OpenGL directly still use GL enums.

Part of T49043

4 years agoCorrect constraint manipulator colors
Campbell Barton [Sat, 8 Apr 2017 02:08:51 +0000 (12:08 +1000)]
Correct constraint manipulator colors

Widget show as color of constrained axis

4 years agoFix WITH_LEGACY_OPENGL=ON
Campbell Barton [Sat, 8 Apr 2017 02:00:46 +0000 (12:00 +1000)]
Fix WITH_LEGACY_OPENGL=ON

This wasn't working outside of gpu module.

4 years agoOpenGL: use PRIM instead of GL enum for immBegin
Mike Erwin [Fri, 7 Apr 2017 20:31:26 +0000 (16:31 -0400)]
OpenGL: use PRIM instead of GL enum for immBegin

Getting ready for a Gawain API change...

Part of T49043

4 years agoGawain: remove GL enum from vertex format API
Mike Erwin [Fri, 7 Apr 2017 20:00:03 +0000 (16:00 -0400)]
Gawain: remove GL enum from vertex format API

Callers now have to use Gawain's COMP enum to specify vertex attributes.

This makes the API more bullet-proof (at least less vulnerable) since GLenum covers waaay more than component types.

Also prepares us for Vulkan.

4 years agouse COMP instead of GL enum to construct vertex format
Mike Erwin [Fri, 7 Apr 2017 19:51:39 +0000 (15:51 -0400)]
use COMP instead of GL enum to construct vertex format

I converted all other files a day or two ago; this file was part of a recent merge.

4 years agoOpenGL: remove UI_reinit_gl_state function
Mike Erwin [Fri, 7 Apr 2017 19:10:48 +0000 (15:10 -0400)]
OpenGL: remove UI_reinit_gl_state function

All line & point drawing is responsible for setting its own state (as of January 2016) making this redundant.

4 years agoOpenGL: transition away from GL_QUADS
Mike Erwin [Fri, 7 Apr 2017 19:03:24 +0000 (15:03 -0400)]
OpenGL: transition away from GL_QUADS

Single quads are drawn as a TRIANGLE_FAN, with 4 verts in the same order.

Multiple quads now use PRIM_QUADS_XXX and will need further work. Only 8 places still use this.

Part of T49043

4 years agoGawain: append XXX to PRIM_QUADS to make it scary
Mike Erwin [Fri, 7 Apr 2017 18:21:10 +0000 (14:21 -0400)]
Gawain: append XXX to PRIM_QUADS to make it scary

Quads are not part of modern GL or Vulkan, so we should avoid them. XXX makes coders think "hmm how could I draw this without using quads?"

Quads will be removed during the transition to core profile.

Part of T49043

4 years agofix use of uninitialized variable
Mike Erwin [Fri, 7 Apr 2017 17:48:11 +0000 (13:48 -0400)]
fix use of uninitialized variable

Bug crawled in via 2944438e9a276e48d7eabb5bb88ecec9b2f1e7dc as part of custom manipulators.

4 years agoshrink fixed-size internal GLSL string buffers
Mike Erwin [Fri, 7 Apr 2017 17:28:42 +0000 (13:28 -0400)]
shrink fixed-size internal GLSL string buffers

We concatenate #defines and #extensions into these, and can count the max string lengths needed. 256 is enough to hold today's strings; we can adjust later if needed.

4 years agouse best GPU matrix function for the job
Mike Erwin [Fri, 7 Apr 2017 17:24:00 +0000 (13:24 -0400)]
use best GPU matrix function for the job

Follow-up to 204e067111af9346fccea9981a0a7962ec8ef906 which coverted manipulators' legacy GL matrix calls to new ones.

part of T49450

4 years agoOpenGL: support GLSL 3.3 core profile
Mike Erwin [Fri, 7 Apr 2017 16:50:44 +0000 (12:50 -0400)]
OpenGL: support GLSL 3.3 core profile

When WITH_LEGACY_OPENGL = OFF.

This is our final target for Blender 2.8, all previous versions will be dropped in the future. GLSL 3.3 is richer so we don't require as many extensions.

4 years agoWorkaround for weightpoint not working
Dalai Felinto [Fri, 7 Apr 2017 16:00:39 +0000 (18:00 +0200)]
Workaround for weightpoint not working

Kudos to Germano Cavalcante for spotting the issue, the real fix is to pass SL to the function though

4 years agoSimplified some test code in render_layer_common.py
Sybren A. Stüvel [Fri, 7 Apr 2017 15:51:23 +0000 (17:51 +0200)]
Simplified some test code in render_layer_common.py

4 years agoNo more need to alter sys.path in each and every render_layer unit test.
Sybren A. Stüvel [Fri, 7 Apr 2017 15:50:47 +0000 (17:50 +0200)]
No more need to alter sys.path in each and every render_layer unit test.

I tried the clean way, by setting the PYTHONPATH environment variable for
CTest, using SET (CTEST_ENVIRONMENT blablab), but that didn't seem to
work.

4 years agoTests: import blendfile without modifying sys.path
Sybren A. Stüvel [Fri, 7 Apr 2017 15:25:09 +0000 (17:25 +0200)]
Tests: import blendfile without modifying sys.path

4 years agoMerge branch 'master' into blender2.8
Sybren A. Stüvel [Fri, 7 Apr 2017 15:28:22 +0000 (17:28 +0200)]
Merge branch 'master' into blender2.8

# Conflicts:
# source/blender/alembic/intern/abc_exporter.h
# source/blender/alembic/intern/abc_util.cc

4 years agoOpenGL: Get rid of PRIM_QUADS usage in manipulators code
Julian Eisel [Fri, 7 Apr 2017 15:04:14 +0000 (17:04 +0200)]
OpenGL: Get rid of PRIM_QUADS usage in manipulators code

4 years agoOpenGL / Outliner: QUADS are not supported in core
Dalai Felinto [Fri, 7 Apr 2017 14:42:56 +0000 (16:42 +0200)]
OpenGL / Outliner: QUADS are not supported in core

4 years agoFix drawing of planar transfrom manipulators, update matrix code
Julian Eisel [Fri, 7 Apr 2017 14:02:45 +0000 (16:02 +0200)]
Fix drawing of planar transfrom manipulators, update matrix code

4 years agoAlembic import: prevent crash when cancelling import.
Sybren A. Stüvel [Fri, 7 Apr 2017 14:03:16 +0000 (16:03 +0200)]
Alembic import: prevent crash when cancelling import.

It's possible that cancellation occured between the creation of the reader
and the creation of the Blender object, in which case reader->object()
returns a NULL pointer.

4 years agoAlembic import: prevent double user decrement when cancelling import.
Sybren A. Stüvel [Fri, 7 Apr 2017 14:02:51 +0000 (16:02 +0200)]
Alembic import: prevent double user decrement when cancelling import.

BKE_libblock_free_us() was called on the object data, which decrements
its user count, after which the same function was called on the object,
which decrements the user count of the object data again. This double
decrement was too much.

4 years agoCycles: Fix access of NULL pointer as array
Sergey Sharybin [Fri, 7 Apr 2017 13:07:25 +0000 (15:07 +0200)]
Cycles: Fix access of NULL pointer as array

Was confusing guarded allocator for some reason.

4 years ago3D Manipulator: add back protected flags check
Campbell Barton [Fri, 7 Apr 2017 13:01:20 +0000 (23:01 +1000)]
3D Manipulator: add back protected flags check

This used to be a separate pass

4 years agoAlembic: synced gather_objects_paths with visit_objects
Sybren A. Stüvel [Fri, 7 Apr 2017 11:40:38 +0000 (13:40 +0200)]
Alembic: synced gather_objects_paths with visit_objects

This was necessary, but was only mentioned at gather_object_paths (which
I didn't see earlier). That's now also fixed.

4 years ago3D View: manipulator from custom-manipulators branch
Campbell Barton [Thu, 6 Apr 2017 14:35:57 +0000 (00:35 +1000)]
3D View: manipulator from custom-manipulators branch

Original code from @Severin with changes from @dfelinto & @hypersomniac.

This doesn't cause many functional changes
besides using new transform manipulators.

Submitted as D2604

4 years agoReplace CGSubSurf direct includes to GL/glew.h
Dalai Felinto [Fri, 7 Apr 2017 11:03:24 +0000 (13:03 +0200)]
Replace CGSubSurf direct includes to GL/glew.h

4 years agoCleanup: Unused function
Sergey Sharybin [Fri, 7 Apr 2017 10:55:04 +0000 (12:55 +0200)]
Cleanup: Unused function

4 years agoCycles: Fix corrupted mesh render when topology differs at the next frame
Sergey Sharybin [Fri, 7 Apr 2017 10:48:43 +0000 (12:48 +0200)]
Cycles: Fix corrupted mesh render when topology differs at the next frame

4 years agoCycles: Change work pool and global size of split CPU for easier debugging
Mai Lavelle [Thu, 6 Apr 2017 09:08:35 +0000 (05:08 -0400)]
Cycles: Change work pool and global size of split CPU for easier debugging

4 years agoCycles: Fix indentation
Mai Lavelle [Fri, 31 Mar 2017 06:38:07 +0000 (02:38 -0400)]
Cycles: Fix indentation

4 years agoCycles: Add missing flush
Mai Lavelle [Fri, 31 Mar 2017 06:00:27 +0000 (02:00 -0400)]
Cycles: Add missing flush

4 years agoCycles: Check ray state properly to avoid endless loop
Mai Lavelle [Tue, 28 Mar 2017 06:28:36 +0000 (02:28 -0400)]
Cycles: Check ray state properly to avoid endless loop

The state mask wasnt applied before comparison giving false results. It
shouldnt really happen that a ray state contains any flags that need to
be masked away, but if it does happen its better to not get stuck.

4 years agoAlembic: documented use of CacheReader struct
Sybren A. Stüvel [Thu, 23 Feb 2017 10:58:20 +0000 (11:58 +0100)]
Alembic: documented use of CacheReader struct

4 years agoAlembic: just pass NULL when we know mcmd->reader is NULL.
Sybren A. Stüvel [Thu, 23 Feb 2017 10:58:45 +0000 (11:58 +0100)]
Alembic: just pass NULL when we know mcmd->reader is NULL.

More explicit, easier to read & understand.

4 years agoFix building alembic gtest with buildinfo...
Bastien Montagne [Fri, 7 Apr 2017 08:44:13 +0000 (10:44 +0200)]
Fix building alembic gtest with buildinfo...

4 years agoFix compilation error after recent changes
Sergey Sharybin [Fri, 7 Apr 2017 07:58:32 +0000 (09:58 +0200)]
Fix compilation error after recent changes

4 years agoOpenGL: disable rotate manipulator clipping on Mac
Mike Erwin [Fri, 7 Apr 2017 07:08:00 +0000 (03:08 -0400)]
OpenGL: disable rotate manipulator clipping on Mac

This fixes T51143.

gl_ClipDistance is part of GLSL version 1.3 but Mac is stuck on 1.2 for now.

This workaround uses GPU_SHADER_3D_UNIFORM_COLOR for the entire rotation widget, ignoring any clipping plane. The CLIPPING shader only works on GLSL 1.3+ so I removed its 1.2 cruft.

A legacy implementation using gl_ClipVertex might be possible, but is not worth the effort. This problem (and workaround) goes away when all platforms move to 3.3 core profile.

4 years agofix rotation manipulator's Push/PopMatrix balance
Mike Erwin [Fri, 7 Apr 2017 07:51:10 +0000 (03:51 -0400)]
fix rotation manipulator's Push/PopMatrix balance

Was popping out the bottom of the stack.

4 years agoFix T51137: Edge Rip Hangs
Campbell Barton [Fri, 7 Apr 2017 01:43:50 +0000 (11:43 +1000)]
Fix T51137: Edge Rip Hangs

4 years agoOpenGL: refactor ui_panel_category_draw_tab
Mike Erwin [Thu, 6 Apr 2017 23:37:50 +0000 (19:37 -0400)]
OpenGL: refactor ui_panel_category_draw_tab

changes:
- exact vertex count
- take bool (filled vs outline) instead of GLenum

This function has some flexibility that is not currently used. I left that in.

4 years agoOpenGL: refactor UI_draw_roundbox functions
Mike Erwin [Thu, 6 Apr 2017 23:15:26 +0000 (19:15 -0400)]
OpenGL: refactor UI_draw_roundbox functions

Each function takes a bool (filled vs outline) and a color. We already had multiple ways of passing color in; these are still here. Special variant for anti-aliasing.

- took GLenum out of interface
- removed UI_RB_ALPHA flag (only one place really used it)
- use exact vertex count
- removed redundant state changes (BLEND, LINE_SMOOTH)

4 years agoNew build option WITH_LEGACY_OPENGL
Dalai Felinto [Thu, 6 Apr 2017 16:46:33 +0000 (18:46 +0200)]
New build option WITH_LEGACY_OPENGL

This introduces a new CMake option - WITH_LEGACY_OPENGL. Without this option
things may not draw perfectly, however, we should soon be able to build with
OpenGL core profile.

The matrix-related api calls are (still) not handled here (glTranslate, ...).

There seems to be no consensus on whether to make this build option the
default. We can talk about this later. For now two things are the
priority:

(1) To get rid of deprecated calls when WITH_LEGACY_OPENGL is ON
(2) To make core profile work for Mesa/Mac when WITH_LEGACY_OPENGL is OFF

Reviewers: merwin, sergey, campbellbarton

Differential Revision: https://developer.blender.org/D2603

Many thanks for Sergey Sharybin for the help.

4 years agoFix T51135: Cylinder primitive generated bad UVs
Germano Cavalcante [Thu, 6 Apr 2017 15:20:22 +0000 (12:20 -0300)]
Fix T51135: Cylinder primitive generated bad UVs

4 years agoDepsgraph: Prefer use anonymous structs for unused arguments
Sergey Sharybin [Thu, 6 Apr 2017 14:58:19 +0000 (16:58 +0200)]
Depsgraph: Prefer use anonymous structs for unused arguments

4 years agoAlembic: rewrapped some lines to fit within 80 chars.
Sybren A. Stüvel [Thu, 6 Apr 2017 13:08:35 +0000 (15:08 +0200)]
Alembic: rewrapped some lines to fit within 80 chars.

4 years agoAlembic import: compatibility with pre-C++11 compilers.
Sybren A. Stüvel [Thu, 6 Apr 2017 13:08:19 +0000 (15:08 +0200)]
Alembic import: compatibility with pre-C++11 compilers.

4 years agoAlembic import: restructured the importer w.g.t. parenthood
Sybren A. Stüvel [Thu, 6 Apr 2017 12:22:28 +0000 (14:22 +0200)]
Alembic import: restructured the importer w.g.t. parenthood

Previously, a GHash was used to store a flattened mapping of parent
information based on the Alembic hierarchy, and then that hash was used to
set parent pointers on Blender objects. This resulted in errors and
some duplicate objects. The new approach stores parent pointers while
traversing the Alembic hierarchy, which means that there is much more
information about the actual context of the Alembic object itself,
producing a more stable import.

4 years agoAlembic: rotation mode issue in copy_m44_axis_swap, and added unit tests.
Sybren A. Stüvel [Wed, 5 Apr 2017 15:07:24 +0000 (17:07 +0200)]
Alembic: rotation mode issue in copy_m44_axis_swap, and added unit tests.

4 years agoAdded float[][] comparison macros to testing.h
Sybren A. Stüvel [Wed, 5 Apr 2017 15:03:59 +0000 (17:03 +0200)]
Added float[][] comparison macros to testing.h

I've moved EXPECT_M3_NEAR from abc_matrix_test.cc to testing.h, as that's
a more suitable location.

4 years agoAlembic: Renamed create_rotation_matrix to create_swapped_rotation_matrix and more:
Sybren A. Stüvel [Wed, 5 Apr 2017 13:05:24 +0000 (15:05 +0200)]
Alembic: Renamed create_rotation_matrix to create_swapped_rotation_matrix and more:

Also replaced the bool param "to_yup" with "AbcAxisSwapMode mode", so that
it's more explicit that axes are swapped.

Also added unittests for create_swapped_rotation_matrix.

4 years agoCMake: Fixed order of bf_alembic in SETUP_BLENDER_SORTED_LIBS
Sybren A. Stüvel [Wed, 5 Apr 2017 12:59:22 +0000 (14:59 +0200)]
CMake: Fixed order of bf_alembic in SETUP_BLENDER_SORTED_LIBS

bf_alembic depends on bf_bmesh, and should therefore be above it.

4 years agoAlembic import: fixed crash on more complex model
Sybren A. Stüvel [Tue, 4 Apr 2017 15:05:47 +0000 (17:05 +0200)]
Alembic import: fixed crash on more complex model

There was a problem with parent-child relations not getting set up
correctly when an Alembic object was both the transform for a mesh object
and the parent of other mesh objects.

4 years agoAlembic: comment typo/error fixes
Sybren A. Stüvel [Tue, 4 Apr 2017 15:06:05 +0000 (17:06 +0200)]
Alembic: comment typo/error fixes

4 years agoAlembic import: prevented unnecessary vector scaling
Sybren A. Stüvel [Thu, 2 Mar 2017 09:05:34 +0000 (10:05 +0100)]
Alembic import: prevented unnecessary vector scaling

4 years agoAlembic import: moved import-time scaling to different function
Sybren A. Stüvel [Thu, 2 Mar 2017 09:03:51 +0000 (10:03 +0100)]
Alembic import: moved import-time scaling to different function

convert_matrix() now only converts from Imath::M44d to float[4][4] (taking
different camera orientations into account). Import-time scaling is now
performed by the caller.

4 years agoAlembic: removed unnecessary matrix copy
Sybren A. Stüvel [Thu, 2 Mar 2017 09:02:48 +0000 (10:02 +0100)]
Alembic: removed unnecessary matrix copy

4 years agoAlembic: simplified AbcEmptyReader::readObjectData
Sybren A. Stüvel [Thu, 2 Mar 2017 08:57:12 +0000 (09:57 +0100)]
Alembic: simplified AbcEmptyReader::readObjectData

4 years agoAlembic: added some r_ prefixes for return parameters
Sybren A. Stüvel [Thu, 2 Mar 2017 08:56:57 +0000 (09:56 +0100)]
Alembic: added some r_ prefixes for return parameters

4 years agoAlembic: code style
Sybren A. Stüvel [Wed, 1 Mar 2017 13:27:25 +0000 (14:27 +0100)]
Alembic: code style

4 years agoAlembic: don't use m_shapes_type
Sybren A. Stüvel [Tue, 28 Feb 2017 15:53:48 +0000 (16:53 +0100)]
Alembic: don't use m_shapes_type

4 years agoDepsgraph: Remove old depsgraph header from window manager
Sergey Sharybin [Thu, 6 Apr 2017 14:44:32 +0000 (16:44 +0200)]
Depsgraph: Remove old depsgraph header from window manager

4 years agoDepsgraph: Remove print dependnecies operator
Sergey Sharybin [Thu, 6 Apr 2017 14:43:09 +0000 (16:43 +0200)]
Depsgraph: Remove print dependnecies operator

This is not really supported with the new depsgraph.

4 years agoDepsgraph: Remove old depsgraph header from blender internal
Sergey Sharybin [Thu, 6 Apr 2017 14:38:43 +0000 (16:38 +0200)]
Depsgraph: Remove old depsgraph header from blender internal

4 years agoDepsgraph: Remove old depsgraph header from python
Sergey Sharybin [Thu, 6 Apr 2017 14:36:15 +0000 (16:36 +0200)]
Depsgraph: Remove old depsgraph header from python

4 years agoDepsgraph: Remove old depsgraph header from modifiers
Sergey Sharybin [Thu, 6 Apr 2017 14:34:38 +0000 (16:34 +0200)]
Depsgraph: Remove old depsgraph header from modifiers

4 years agoDepsgraph: Remove old depsgraph header from freestyle
Sergey Sharybin [Thu, 6 Apr 2017 14:32:59 +0000 (16:32 +0200)]
Depsgraph: Remove old depsgraph header from freestyle

4 years agoDepsgraph: Remove olde depsgraph header from new depsgraph
Sergey Sharybin [Thu, 6 Apr 2017 14:18:42 +0000 (16:18 +0200)]
Depsgraph: Remove olde depsgraph header from new depsgraph

4 years agoDepsgraph: Remove old depsgraph header from collada
Sergey Sharybin [Thu, 6 Apr 2017 14:17:21 +0000 (16:17 +0200)]
Depsgraph: Remove old depsgraph header from collada

4 years agoDepsgraph: Remove old depsgraph header from blenloader
Sergey Sharybin [Thu, 6 Apr 2017 14:13:57 +0000 (16:13 +0200)]
Depsgraph: Remove old depsgraph header from blenloader

4 years agoDepsgraph: Remove old header from blenkernel
Sergey Sharybin [Thu, 6 Apr 2017 14:11:50 +0000 (16:11 +0200)]
Depsgraph: Remove old header from blenkernel

4 years agoAlembic: more lenient check on absence of sheer & homogeneous scaling
Sybren A. Stüvel [Tue, 28 Feb 2017 15:42:25 +0000 (16:42 +0100)]
Alembic: more lenient check on absence of sheer & homogeneous scaling

Checking precise values of floats is not a good idea.

4 years agoAlembic: simplified conditional statements
Sybren A. Stüvel [Thu, 23 Feb 2017 10:25:42 +0000 (11:25 +0100)]
Alembic: simplified conditional statements

4 years agoAlembic import: nicer progress updates
Sybren A. Stüvel [Thu, 23 Feb 2017 15:19:14 +0000 (16:19 +0100)]
Alembic import: nicer progress updates

4 years agoAlembic import: fixed bug where local matrix from Alembic was used as object matrix
Sybren A. Stüvel [Thu, 23 Feb 2017 15:00:06 +0000 (16:00 +0100)]
Alembic import: fixed bug where local matrix from Alembic was used as object matrix

Also renamed AbcObjectReader::readObjectMatrix to
setupObjectTransform, as it does more than just reading the object
matrix; it also sets up an object constraint if the Alembic Xform is
animated.

4 years agoAlembic import: separated reading matrix and getting the appropriate Xform object
Sybren A. Stüvel [Thu, 23 Feb 2017 14:58:36 +0000 (15:58 +0100)]
Alembic import: separated reading matrix and getting the appropriate Xform object

Also added a bit better error reporting, instead of silently ignoring
invalid Alembic data.

4 years agoAlembic import: be more lenient towards unknown object types.
Sybren A. Stüvel [Thu, 23 Feb 2017 14:54:46 +0000 (15:54 +0100)]
Alembic import: be more lenient towards unknown object types.

Alembic is an interchange and caching format, that can contain custom
object schemas. Blender shouldn't crash (because of failing asserts) just
because it doesn't know such an object type.

4 years agoAlembic: don't call object.getFullName() multiple times.
Sybren A. Stüvel [Thu, 23 Feb 2017 09:16:37 +0000 (10:16 +0100)]
Alembic: don't call object.getFullName() multiple times.

4 years agoAlembic: Renamed parent_map to reader_map
Sybren A. Stüvel [Thu, 23 Feb 2017 09:12:34 +0000 (10:12 +0100)]
Alembic: Renamed parent_map to reader_map

It's a mapping from full path of an Alembic object to an AbcObjectReader*.
The fact that at some point it is used to construct parent-child relations
doesn't matter.

4 years agoAlembic: use typedefs to make it easier to handle maps/vectors
Sybren A. Stüvel [Tue, 21 Feb 2017 14:02:17 +0000 (15:02 +0100)]
Alembic: use typedefs to make it easier to handle maps/vectors

4 years agoAlembic: more const-ness
Sybren A. Stüvel [Tue, 21 Feb 2017 14:00:27 +0000 (15:00 +0100)]
Alembic: more const-ness

4 years agoAlembic: fixed importer
Sybren A. Stüvel [Wed, 15 Feb 2017 16:29:26 +0000 (17:29 +0100)]
Alembic: fixed importer

The importer was guessing whether an Alembic IXform object was part of a
child object, or should be represented as an Empty in Blender. By reversing
the order in which objects are visited, the children can now claim their
parent as part of the same object (so IPolyMesh claims its parent IXform
as part of the same Blender object). This results in much less guesswork.

I've also removed similar guesswork from the code that sets parent pointers,
by simply searching for the parent in a hierarchical way, instead of trying
to predict (again) which IXforms were turned into empties.

Also, visit_object() now actually visits the object -- previously it only
visited its children, and assumed the object it was called on was already
handled by a previous call.

4 years agoAlembic: prevent a couple of unnecessary multiplications
Sybren A. Stüvel [Wed, 15 Feb 2017 14:22:49 +0000 (15:22 +0100)]
Alembic: prevent a couple of unnecessary multiplications

4 years agoAlembic: be more explicit in y-up versus z-up variables.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:22:21 +0000 (15:22 +0100)]
Alembic: be more explicit in y-up versus z-up variables.

4 years agoAlembic: removed a lot of unnecessary & duplicate code from abc_util.cc
Sybren A. Stüvel [Wed, 15 Feb 2017 14:20:23 +0000 (15:20 +0100)]
Alembic: removed a lot of unnecessary & duplicate code from abc_util.cc

create_transform_matrix(float[4][4]) did mostly the same as
create_transform_matrix(Object *, float[4][4]), but more elegant.
However, the former has some inconsistencies with the latter (which
are now merged and made explicit, turned out one was for z-up→y-up
while the other was for y-up→z-up), and was renamed to
copy_m44_axis_swap(...) to convey its purpose more clearly.

Furthermore, "loc" has been renamed to "trans", as matrices don't
store locations but translations; and more variables now have a src_
or dst_ prefix to denote whether they contain a matrix/vector in the
source or destination axis orientation.

4 years agoAlembic: added note
Sybren A. Stüvel [Wed, 15 Feb 2017 14:40:33 +0000 (15:40 +0100)]
Alembic: added note

4 years agoAlembic: allow copy_{z,y}up_from_{y,z}up() to be called with yup=zup
Sybren A. Stüvel [Wed, 15 Feb 2017 14:13:24 +0000 (15:13 +0100)]
Alembic: allow copy_{z,y}up_from_{y,z}up() to be called with yup=zup

This allows in-place conversion between z-up and y-up, by passing the
same variable to both arguments.

4 years agoAlembic: import empties under their own name in Alembic, not their parent's
Sybren A. Stüvel [Wed, 15 Feb 2017 14:32:15 +0000 (15:32 +0100)]
Alembic: import empties under their own name in Alembic, not their parent's

Before this commit something strange happened, as the m_data_name of
an inherit data-less object was used.

4 years agoAlembic: Don't compute world matrix when it's not necessary.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:30:34 +0000 (15:30 +0100)]
Alembic: Don't compute world matrix when it's not necessary.

4 years agoAlembic: cleaned up hack in AbcObjectReader::read_matrix()
Sybren A. Stüvel [Wed, 15 Feb 2017 14:29:41 +0000 (15:29 +0100)]
Alembic: cleaned up hack in AbcObjectReader::read_matrix()

4 years agoAlembic: added some clarification
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:33 +0000 (15:26 +0100)]
Alembic: added some clarification

4 years agoAlembic: added some getter functions to help debug prints etc.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:00 +0000 (15:26 +0100)]
Alembic: added some getter functions to help debug prints etc.

4 years agoAlembic: do not presume to predict the parent name
Sybren A. Stüvel [Thu, 6 Apr 2017 13:35:57 +0000 (15:35 +0200)]
Alembic: do not presume to predict the parent name

AbcExporter::createTransformWriter() tries to predict the parent Xform
name, but if it cannot be found has multiple ways of creating it, possibly
under a different name than originally searched for.

4 years agoAlembic: Removed AbcTransformWriter::m_parent
Sybren A. Stüvel [Tue, 14 Feb 2017 16:32:55 +0000 (17:32 +0100)]
Alembic: Removed AbcTransformWriter::m_parent

It was set, but never read anywhere.

4 years agoDepsgraph: Remove old depsgraph header from alembic files
Sergey Sharybin [Thu, 6 Apr 2017 13:45:47 +0000 (15:45 +0200)]
Depsgraph: Remove old depsgraph header from alembic files

4 years agoDepsgraph: Remove old depsgraph header from game engine
Sergey Sharybin [Thu, 6 Apr 2017 13:40:53 +0000 (15:40 +0200)]
Depsgraph: Remove old depsgraph header from game engine

4 years agoDepsgraph: Remove old depsgraph headers from creator
Sergey Sharybin [Thu, 6 Apr 2017 13:40:08 +0000 (15:40 +0200)]
Depsgraph: Remove old depsgraph headers from creator

4 years agoDepsgraph: More type definitions to new depsgraph header
Sergey Sharybin [Thu, 6 Apr 2017 13:37:46 +0000 (15:37 +0200)]
Depsgraph: More type definitions to new depsgraph header