forked from ImageEngine/cortex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
3110 lines (2031 loc) · 116 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
10.0.0-a18
==========
Features
--------
- Added Sets to SceneInterface.
- Reading and writing Sets are currently supported for SceneCache, LinkedScene,
USD (via UsdCollectionAPI), and Alembic (via AbcCollection).
- IECoreMaya, IECoreHoudini, and IECoreVDB do not yet support the new Sets API.
- The aim is for this to replace Tags at some point in the future. For now,
we will support both mechanisms for gathering locations.
- IECoreMaya : LiveScene conversion of Maya Instancers.
- Converts from a Maya Instancer to a Cortex PointsPrimitive.
- Converts primvar names and types to match Cortex conventions.
- Automatically converts id, instanceType, and visibility from double to int.
- Supports Maya 2017 MASH in instancing mode.
Improvements
------------
- IECoreVDB::VDBObject : Introduced lazy loading of VDB grids.
- IECoreGL::Shader : Improve `defaultVertexSource()` for missing N.
- This improves the rendering of PointsPrimitives in GL_POINTS mode.
- PathMatcher :
- Added `size()` method and made `intersection()` method const.
- Timer :
- Updated to the latest boost timer library.
- Added Timer.Mode so wall clock, user cpu or system cpu time can be timed.
- Added ScopedTimer to help with debugging performance issues.
Fixes
-----
- IECoreGL : Fixed wireframe drawing of points and curves.
- This fixes the selection visualisation in Gaffer's viewport when
points are rendered as GL_POINTS and curves are rendered as GL_LINES.
- IECoreImage::ImageWriter : Fixed bug when writing JPGs with a dataWindow
that is larger than the displayWindow.
- MeshPrimitive::createSphere() : Fixed rounding bug for the number of segments.
- MurmurHash : Fixed symbol export for ostream operator
- StringAlgo : Fixed symbol export for `numericSuffix()`
Build
-----
- CMake (experimental) :
- Updated Readme
- Removed requirement for CMakeLists.txt to in root dir
- Added module to locate Blosc
- Added module to locate OpenVDB
- Explicitly set C++11
- Disable unused-local-typedefs warning in debug builds
10.0.0-a17
==========
Improvements
------------
- IECoreScene : Added SceneInterface::Path stream insertion << operator
Fixes
-----
- Build :
- IECoreMaya depends on IECoreScene.
- Update IE config to build with RV specific dependencies.
10.0.0-a16
==========
Improvements
------------
- IECoreHoudini : Dramatically improved performance for SOPs containing large hierarchy of named primitives (#729) :
- LiveScene : Optimized querying of names with a SOP.
- FromHoudiniGeometryConverter : Added "preserveName" and "convertGroupsAsPrimvars" parameters.
- FromHoudiniPointsConverter : Tighten requirements for converting to a PointsPrimitive.
- DetailSplitter : Added option to segment SOP hierarchy using Cortex rather than HDK.
- Removed support for `IECore::Group` conversion.
Fixes
-----
- IECoreUSD : Fixed crash when a USD file fails to load (#742).
- IECoreHoudini : Fixed OpenGL Context issue for Houdini 16.0 & 16.5 Qt5 builds (#741).
- IECoreAppleseed : Use safe_normalize instead of normalize (#739).
10.0.0-a15
==========
Features
--------
- Added mechanism for loading config files during Cortex module startup. Configs
are python files located on paths specified by the CORTEX_STARTUP_PATHS
environment variable (#716).
- IECoreMaya : Added support for multi-attributes in plug converters (#719).
Improvements
------------
- Improved debugging support (#726).
- ImageReader : Added support for deep images in `isComplete()` method (#717).
- ConfigLoader : Made `contextDict` argument optional. This makes it possible to
isolate config files from one another (#722).
- IECoreScene :
- Output : Added const version of `parametersData()` method (#715).
- PrimitiveVariable : Added `throwIfInvalid` argument to `expandedVariableData()`
(#720).
- Primitive Algo : Parallelised segmentation functions (#727).
Fixes
-----
- GLSL FilterAlgo : Fixed filtering of `filteredPulse()` (#737).
- IECoreAppleseed :
- Fixed compilation in debug mode (#725).
- MeshAlgo : Fixed errors caused by 0 length normals in DEBUG builds (#732).
- IECoreMaya : Fixed "Redeclaration of variable" warning in ParameterisedHolderUI
in Maya 2017 (#735).
- IECoreUSD : Fixed writing of bool attributes (#734).
- PrimitiveAlgo : Fixed bug when segmenting on indexed primitive variable (#727).
- MeshAlgo : Fixed crash if `distributePoints()` is called with non-facevarying
UVs. An exception as now thrown instead (#720).
- IECorePython : Fixed handling of Python exceptions in all wrapper classes (#721).
Breaking Changes
----------------
- FromMayaShapeConverter : Removed primVarAttrPrefix parameter. Always use the
"iePrimVar" prefix (#736).
- Removed IECoreMaya::GeometryCombiner (#736).
- Renamed IECoreScene::Display to IECoreScene::Output (#715).
- PrimitiveVariable : Changed signature of `expandedVariableData()`. Source
compatibility is maintained (#720).
- Removed ieMarschnerHair GLSL shader. This was only usable with the
MarschnerLookupTableOp which was removed in Cortex 9 (#714).
10.0.0-a14
==========
Features
--------
- IECoreVDB : Added new library providing interoperability with OpenVDB (#708)
- VDBObject allows VDB grids to be passed around as `IECore::Object`.
- VDBScene provides reading of VDB files via `IECoreScene::SceneInterface`.
Improvements
------------
- SearchPath : Added plaform-agnostic constructor which chooses the correct
separator based on the current platform (';' for Windows, ':' for Linux
and MacOS). Also deprecated all methods which take an explicit separator,
as they are a cross-platform-compatibility trap (#704).
- PrimitiveAlgo : Improved `segment()` methods to take an optional
`segmentValues` argument (#698).
- IECoreAlembic : Added support for velocity on meshes and curves (#706).
- IECoreArnold : Added support for Color4fVectorData primitive variables (#707).
Fixes
-----
- Symbol visibility :
- Removed public headers from IECoreUSD. We were not exporting the symbols
from these because we didn't intend them to be public anyway (#699).
- Exported `convert()` functions from IECoreNuke (#703).
- Exported `convert()` functions from IECoreMaya (#710).
- IECoreNuke : Fixed `import IECoreNuke` so that it doesn't require IECore
to have been imported already (#703).
- Windows : Fixed miscellaneous build problems (#705).
- ImageWriter : Auto-expand the data window when required (#713).
Build
-----
- Added ASAN option for use with Clang (#700).
10.0.0-a13
==========
Improvements
------------
- Appleseed : Added bindings for TransformAlgo and ObjectAlgo (#696).
- Object (#694) :
- CopyContext/SaveContext/LoadContext
- Hid internal implementation so it can be improved in
future.
- Derived from boost::noncopyable.
- Simplified registration of abstract types. They now use
the same mechanism as regular types.
- Changed CreatorFn to be a `std::function`, which is more
flexible than the previous function pointer.
- Optimised `copy()` method.
- OpenImageIOAlgo : Added support for string arrays in DataView class
and `data()` function. This allows string array metadata to be
round-tripped properly through the ImageReader and ImageWriter (#691).
- Build : Hid symbols that do not need to be exported (#695).
Fixes
-----
- Fixed build errors with GCC 6 (#697).
Breaking Changes
----------------
- Removed legacy Appleseed renderer backend. This is superceded by the new backend
incubating in the Gaffer project (#696).
- Object : Removed abstract type registration mechanism (#694).
10.0.0-a12
==========
Features
--------
- Added PathMatcher and PathMatcherData classes (#686).
- Added support for IECORE_DEBUG_WAIT environment variable. Setting this allows you
to attach a debugger during Cortex startup (#687).
- StringAlgo : Added addition methods ported from Gaffer (#686).
- PrimitiveAlgo : Added `segment()` methods for segmenting primitives (#689).
Fixes
-----
- PointDistribution : Fixed bug whereby points could be emitted in areas of zero density (#693).
- Primitive Algo : Fixed resampling of constant string primitive variables (#688).
- StringVectorData : Fixed `baseReadable()` and `baseWritable()` methods (#690).
Breaking Changes
----------------
- Removed AlembicInput. Use AlembicScene instead (#684).
- Removed the following unused Data and Parameter classes : (#692)
- TimeCodeParameter
- TimeDurationData and TimeDurationParameter
- TimePeriod, TimePeriodData and TimePeriodParameter
- StringAlgo : Moved to IECore::StringAlgo namespace (#686).
10.0.0-a11
==========
Fixes
-----
- USDScene : Fixed quaternion converter (#683).
- IECoreMaya : Restored registration of ParameterisedHolderSurfaceShape (#685).
10.0.0-a10
==========
Features
--------
- IECoreUSD (#678) :
- Added support for writing USD files via USDScene API.
- Added support for tags in USDScene API.
- Added support for writing and reading bounds.
- Added support for more primitive variable types.
Improvements
------------
- FromMayaMeshConverter : Reintroduced normals and uv parameters (#677).
Breaking Changes
----------------
- IECoreArnold : Removed legacy renderer class (#676).
- IECoreScene : Remove CapturingRenderer class (#680).
10.0.0-a9
=========
Improvements
------------
- Added support for Appleseed 1.8.1 (#670)
10.0.0-a8
=========
Breaking Changes
----------------
- Removed Imath types from Python bindings. Use the standard imath module instead. See #672 for details of the relevant syntax changes required.
- Removed IECoreRI, in favour of future support for 3delight/prman using dedicated modules. The two renderers have deviated so far from the RenderMan "standard" that a single module cannot effectively cover them both. 3delight support via the new NSI API is currently provided in Gaffer, PRMan support is planned for the future (#667).
- Removed CameraController - this has moved to Gaffer's internals (#666).
- Removed ParameterisedProcedural and all procedural support from hosts (#668). Procedurals have been unused in the Image Engine pipeline for several years now, in favour of Gaffer graphs.
- BoxAlgo : Moved functionality to nested IECore::BoxAlgo namespace (#672).
- Random : Moved to RandomAlgo and added namespace (#672).
- Removed data types based on Imath::Color3d and Imath::Color4d (#672).
- Removed DataTraits.isMatrixTypeData (#672).
- Removed PointsExpressionOp (#672).
Fixes
-----
- CurvesAlgo : Removed debug output (#665).
- AlembicScene : Fixed writing of points without IDs (#671).
10.0.0-a7
=========
Breaking Changes
----------------
- IECoreScene : Moved all scene description components into a new IECoreScene module (#660).
The contrib/scripts directory contains some scripts to aid in porting code, and the Cortex 9
branch has been updated with a forwards compatibility module to ease migration.
- IECore : Removed FileSequenceAnalyzerOps (#660).
- IECoreImage : Removed CurveTracer (#660).
- ObjectInterpolator : Removed cubic interpolation (#660).
- ObjectWriter : Removed writing of "bound" header data for VisibleRenderables (#660).
- DespatchTypedData : Removed TypedDataInterpolation (#660).
- Removed IECoreMantra (#660).
Improvements
------------
- ImageReader : Added support for reading headers from deep images (the deep data itself remains
unsupported) (#654).
- ObjectInterpolator : Added support for registering interpolators for custom object types (#660).
- CurveAlgo/MeshAlgo/PointsAlgo : Added invert parameter to component deletion functions (#651).
Fixes
-----
- HalfData : Fixed zero initialisation bug (#662).
- IECoreImage : Fixed bug which prevented module being imported without importing IECore first (#653).
- IECoreMaya : Fixed bugs with MEL evaluation (#657).
10.0.0-a6
=========
Breaking Changes
----------------
- Requires Arnold 5 (#637).
Features
--------
- Support for Arnold 5 (#637).
Improvements
------------
- RenderMan display driver : Added support for "layername" parameter. This is used by 3Delight 13.x (#648).
- IECoreArnold::ParameterAlgo (#637) :
- Added support for UInt parameters.
- Added support for converting V3i and V2i parameters to floats vectors.
- IECoreAlembic : Added support for reading and writing indexed primvars (#642).
Fixes
-----
- IECore::Font : Fixed thread safety bugs (#649).
- PointsAlgo : Fixed vertex -> uniform resample with an empty points prim (#647).
10.0.0-a5
=========
Fixes
-----
- IECoreAppleseed::MeshAlgo : Fixed conversion of indexed UVs (#639).
10.0.0-a4
=========
Features
--------
- USDScene : Added a prototype SceneInterface for reading USD scenes (#634).
Improvements
------------
- Replaced NULL/0 with `nullptr`, and added `override` to all virtual overrides (#629).
Fixes
-----
- IECoreGL::ColorTexture : Fixed bug in conversion of RGBA textures to ImagePrimitive (#635).
- IECoreGL : Fixed crashes when rendering indexed primitive variables (#631).
Build
-----
- Added script to prep for run-clang-tidy.py.
10.0.0-a3
=========
Breaking Changes
----------------
- Switched UVs to be represented as a single "uv" V2fVectorData PrimitiveVariable with optional
indices. Old caches are converted automatically on loading but code which deals with UVs directly
will need to be updated (#621).
- IECoreRI :
- Removed Dspy.h. The ieDisplay.so RenderMan display driver is now independent
of libIECoreRI, making it suitable for use in 3delight NSI renders (#622).
- Removed GXEvaluator (#621).
- Houdini cache loaders : Changed filtering (#616).
- Removed MeshFaceFilterOp. Use `MeshAlgo::deleteFaces()` instead (#621).
- Removed MeshTangentsOp. Use `MeshAlgo::calculateTangents()` instead (#621).
- Removed FaceAreaOp. Use `MeshAlgo::calculateFaceArea()` and `MeshAlgo::calculateFaceTextureArea()`
instead (#621).
- Removed PointDistributionOp. Use `MeshAlgo::distributePoints()` instead (#621).
- Removed MeshDistortionsOp. Use `MeshAlgo::calculateDistortion()` instead (#621).
- FromMayaMeshConverter (#621) :
- Removed unused parameters.
- Made some methods private.
Features
--------
- PointsAlgo : Added `mergePoints()` function (#616).
- MeshAlgo (#621) :
- Added `calculateFaceArea()` function
- Added `calculateFaceTextureArea()` function
- Added `distributePoints()` function
- Added `calculateDistortion()` function
Improvements
------------
- PrimitiveVariable (#621) :
- Added optional IntVectorData indices. This allows a compact representation
to be stored in PrimitiveVariable::data, with the indices being used to map
to the full Vertex/Uniform/FaceVarying size requirement.
- Added `expandedData()` method to convert data from indexed to non-indexed
form.
- Added `Primitive::expandedVariableData()` method to simplify access to
indexed data.
- Improved UV representation :
- UVs are specified as a single V2fVectorData PrimitiveVariable
- Connectivity of UVs is preserved using the optional
PrimitiveVariable::indices field
- The default UV set is now called "uv" rather than the previous
pair of "s" and "t"
- Additional UV sets are identified unambiguously using the GeometricData::UV
interpretation.
- Houdini cache loaders : Improved filtering (#616).
- PrimitiveEvaluator : Added Result::vec2PrimVar() accessor (#621).
- OpenImageIO::DataView : Added support for V2[if]VectorData (#621).
- LRUCache : Reduced overhead of `setMaxCost()` when the limit is not being reduced (#617).
- Python Wrapper classes : Added support for arbitrary numbers of constructor parameters (#618).
Fixes
-----
- ToGLMeshConverter : Fixed orientation of UV cooordinates (#624).
- IECoreNuke::CurveLookup : Fixed memory corruption (#616).
- MurmurHash : Fixed bug when appending arrays larger than `sizeof( int )` (#620).
Build
-----
- Added DEBUGINFO build option, for including debug symbols in release builds (#616).
- Improved Travis test output.
10.0.0-a2
=========
Breaking Changes
----------------
- Flipped interpretation of UVs, so that increasing values of V are up, not down #611.
- Refactored image and colour functionality significantly (#605)
- ImageReader and ImageWriter are now implemented via OpenImageIO behind the scenes.
There are no longer any format-specific derived classes. As a consequence many more
file formats are now supported.
- Colour management is deferred to OpenColorIO.
- Many classes are now unnecessary and have been removed.
- All image related functionality has been moved to a new IECoreImage module.
- ImagePrimitive is no longer directly renderable via IECore::Renderer.
- Image related functionality of IECore::Font is now moved to IECoreImage::Font.
- Removed unnecessary functionality. We recommend using Gaffer or OpenImageIO instead :
- ImagePrimitiveEvaluator
- PointRepulsionOp
- CheckImagesOp
- ImagePrimitiveOp
- CompositeAlgo/ImageCompositeOp/ImageSequenceCompositeOp
- ImagePremultiplyOp
- ImageUnpremultiplyOp
- UVDistortOp
- DeepPixel/DeepImageReader/DeepImageWriter
- Grade
- ColorSpaceTransformOp, CubeColorLookup and all color transforms
Additions
---------
- Added IECoreImage::OpenImageIOAlgo namespace, with various support for interoperability
with OpenImageIO (#605).
- Added IECoreImage::ColorAlgo namespace for applying colour transforms.
Improvements
------------
- Flipped interpretation of UVs, so that increasing values of V are up, not down (#611).
This provides improved interoperability with Maya and Houdini when UVs are subsequently
edited in Cortex (for instance, in Gaffer). This also simplifies UDIM management.
Fixes
-----
- Fixed RenderMan display driver for breaking changes introduced between 3delight
versions 12.0.88 and 12.0.113 (#612).
- UVs loaded from Alembic files now have the correct orientation. Note that this is
because Cortex's interpretation of V direction has changed, rather than because
IECoreAlembic::MeshReader has changed (#611).
Build
-----
- Fixed compilation with GCC 4.8.3 (#607, #610)
- Fixed missing include in IECorePython/ExceptionAlgo.h (#608)
- Boost asio, signals and factorial libraries are now required
dependencies (#605).
- OpenImageIO and OpenColorIO are now required dependencies (#605).
- IECoreHoudini can now be built without IECoreGL (#605).
- Removed direct dependencies on libTIFF, libJPEG and libPNG (#605).
10.0.0-a1
=========
Breaking Changes
----------------
- Data : Removed support for loading old obsolete LongData and LongVectorData objects (#582).
- Parameter : Removed deprecated `presets()` accessor. Use `getPresets()` instead (#582).
- IECorePython : Removed deprecated Wrapper class. Use RefCountedWrapper or
RunTimeTypedWrapper instead (#582).
- IECoreGL::MeshPrimitive : Removed deprecated constructor (#581).
- RSL ArrayAlgo.h : Removed deprecated functions (#581).
- IECoreRI::Renderer : Removed deprecated attributes and commands (#581).
- IECoreArnold::UniverseBlock : Removed deprecated constructor (#581).
- IECoreMaya :
- Menu : Removed useInterToUI arg and deprecated createMenu() method (#581).
- Removed MayaPythonUtil (#581).
- Removed deprecated TransientParameterisedHolderNode (#581).
- PathParameterUI : Removed deprecated openDialog() method (#581).
- PrimitiveEvaluator : Added Result argument to `signedDistance()` method (#581).
- Removed IECoreTruelight #586.
- IECoreAlembic :
- Removed ABCToMDC (#591).
- Removed FromAlembicConverter classes. Use AlembicReader classes instead (#591).
- MeshPrimitive : Made `setTopology()` non-virtual (#598).
Features
--------
- IECoreHoudini::LiveScene : Allowed the creation of derived classes (#552).
- IECorePython :
- Added ParameterClass and ParameterWrapper binding utilities (#583).
- Added OpClass and OpWrapper binding utilities (#583).
- Added ReaderClass and ReaderWrapper binding utilities (#583).
- Added ExceptionAlgo utilities (#604).
- IECoreAlembic :
- Added AlembicScene class. This replaces the AlembicInput class,
and provides both read and write support via the SceneInterface
API. It is also significantly faster (#598, #606).
- Added support for curves geometry (#591).
- Added support for points geometry (#591).
- Added support for BoolGeomParams (#591).
- Added ObjectReader and ObjectWriter classes
- LRUCache #596 :
- Added Policy template argument, with Serial and Parallel policies
optimised for single and multithreaded operation.
- Added optional GetterKey template argument. This allows additional
information to be passed to the getter, without it being stored in
the cache.
- Improved error handling. The original exception is now rethrown on
a second failed call to `get()`.
- Added support for reentrant getters which call back into the cache.
- Improved performance.
- MeshAlgo : Added `reverseWinding()` function (#598).
Improvements
------------
- SceneInterface : Added `hasBound()` method (#598).
- SampledSceneInterface : Implemented read methods using readAtSample
methods. This avoids all the derived classes having to implement the
same boilerplate (#598).
- SceneCache : Made hash() stable across processes where possible (#598).
- InternedString : Added specialisation for `std::hash` (#606).
- Appleseed DisplayTileCallback : Added support for arbitrary display
parameters (#600).
Fixes
-----
- IECoreArnold::ParameterAlgo (#579) :
- Fixed string array conversion for standard libraries where `std::string`
does not have equivalent layout to `const char *`.
- Fixed bug in `dataToArray()` boolean conversion.
- Spline (#593) :
- Removed intermediate cast to float that could reduce precision of
double splines.
- Added support for the final segment of curves requiring less than 4
control points.
- Improved handling of curves where the X axis curve is non-monotonic.
- MatrixMotionTransform : Fixed crash in `transform()` method (#597).
- IECoreAlembic : Fixed mesh winding order (#598).
- Fixed Houdini 16 issues (#587).
Build
-----
- Fixed check for glew.h (#590).
- Added WARNINGS_AS_ERRORS build argument (#590).
- Minimum C++ standard is not C++11 (#588).
- DEBUG option nows sets optimisation level to O0 (#588).
- Removed TESTCXXFLAGS option.
9.21.0
======
Features
--------
- PointsAlgo :
- Added `deletePoints()` (#576).
Fixes
-----
- MeshAlgo & CurvesAlgo :
- Improved argument names (#578).
- IECoreMantra : Fixed World procedural crash in Houdini 16 (#577).
Build
-----
- Fixed gcc 4.1 builds
9.20.0
======
Features
--------
- MeshAlgo :
- Added `deleteFaces()` (#575).
- CurvesAlgo :
- Added `resamplePrimitiveVariables()` (#566).
- Added `deleteCurves()` (#575).
- PointsAlgo :
- Added `resamplePrimitiveVariables()` (#575).
Improvements
------------
- IECoreHoudini : Added support for Houdini 16 (#569).
- IECoreArnold::OutputDriver :
- Using output layerName to set channel names (#573).
- Improved performance (#574).
- ClientDisplayDriver (#574) :
- Improved performance.
- Better error handling.
9.19.0
======
Features
--------
- MeshAlgo : Added function to resample primitive variables (#565)
Improvements
------------
- Arnold output driver : Added pixel aspect ratio to driver parameters (#564)
Fixes
-----
- Maya : Fixed deadlock issues with LiveScene (#562).
- Houdini : Fixed crash when the library was loaded without the plugin (#570).
- Nuke : Fixed debug builds (#567).
9.18.0
======
Features
--------
- IECore::MeshAlgo : Added calculateTangents() function.
- MeshAlgo is a new namepsace for functions which operate on MeshPrimitives.
- MeshTangentOp has been updated to use `MeshAlgo::calculateTangents()` internally.
- IECoreMaya:LiveScene : Convert Maya Sets to Scene Tags.
- Sets will be converted if they have a dynmaic bool attribute called "ieExport" which is set True.
- IECoreHoudini SceneNodes : Added an option to load Scene Tags as Houdini PrimGroups.
Improvements
------------
- IECoreArnold::ParameterAlgo : Avoid warnings when redeclaring attributes.
- IECoreHoudini Op SOPs : Added "ie" prefix to the tab menu for Cortex Ops loaded as Houdini SOPs.
- This affects Image Engine only.
Fixes
-----
- IECoreMaya::LiveScene : Ignore non-serializable objects introduced by Maya 2016 hypershade.
Build
-----
- Removed stale asserts.
- Removed references to dead test cases.
9.17.0
======
Improvements
------------
- `IECoreMaya::SceneShape` :
- Added tagName argument to `FnSceneShape.expandAll()`
- Added "Expand by Tag" option to SceneShape context menu.
- `IECoreArnold::ParameterAlgo`: Support `AI_TYPE_RGB`, `AI_TYPE_RGBA`, and `AI_TYPE_VECTOR`.
- `ImageDisplayDriver`: Support "header:" metadata convention
- `EXRImageWriter`: Added DreamWorks compression options (if compiled with OpenExr 2.2+).
- `OStreamMessageHandler`: Made m_stream protected to allow access from subclasses.
9.16.2
======
- Build
- Added CXXSTD build argument.
- Made compatible with recent FreeType versions.
- Fixed C++11 incompatibilities.
- Fixed debug builds.
- Fixed linking for single-lib Alembic.
9.16.1
======
Fixes
-----
- `IECoreMaya::SceneShape` :
- Fixed redraw issue in Maya 2016 parallel mode.
- Fixes computation for expanded SceneShapes in Maya 2016 parallel mode.
9.16.0
======
Improvements
------------
- IECoreAppleseed : Added support for int[] and float[] OSL shader parameters.
- Build :
- Added support for Alembic 1.6.
- Added support for Boost 1.61
- Added support for macOS Sierra
9.15.0
======
Improvements
------------
- IECoreArnold::ParameterAlgo :
- Added support for point parameters.
- Added support for DoubleData and M44dData
- Added node name to warnings.
- IECoreRI : Added support for render:sampleMotion option.
- IECoreMaya :
- Added UndoChunk `with` statement.
- Added RefreshDisabled `with` statement.
9.14.1
======
Fixes
-----
- Arnold `UniverseBlock`
- Shutdown lazily to improve read-only access (e.g. shader loading on script open).
- Fixed threadsafety issues with construction/destruction.
- Fixed writability issues in `Renderer` and tests.
- `IECoreGL::Selector`: Fixed leak of `glClearColor` and `glClearDepth`.
9.14.0
======
#### IECore
- ParameterAlgo
- Added manual conversion from BoolVectorData to AtArray.
- DisplayDriverServer
- Supporting automatic selection of a free port.
#### IECoreMaya
- SceneShape
- Added preserveNamespace argument to convertAllToGeometry().
- Recursive expandAsGeometry() now preserves namespace.
- Fixed bug converting multiple curves to geometry.
- Fixed naming backward compatibility when converting and connecting to curves.
9.13.2
======
#### IECore
- Added 'tx' support for TIFFImageReader
9.13.1
======
#### IECoreArnold
- CurvesAlgo : Convert "N" to orientations.
9.13.0
======
#### IECoreMaya
- Fixed LiveScene object merging bug (#524).
#### IECoreAppleseed
- Added support code and improvements for new renderer backend in Gaffer (#520).
9.12.1
======
#### IECore
- Camera
- Added support for negative clipping planes ( useful on ortho cams )
#### IECoreHoudini
- Fixed CurvesPrimitive duplication in Houdini SceneCacheSource SOP
9.12.0
======
#### IECoreArnold
- Added read/write access concept to UniverseBlock (#514).
- Added automatic loading of metadata files to UniverseBlock (#514).
- Stopped adding "user:" prefix to arbitrary primitive variables. Instead
variables which clash with built in parameters are ignored instead (#519).
- Added support for GeometricTypedData interpretation in primitive variables (#519).
- Support setting enum parameters using integer index
#### IECoreMaya
- LiveScene
- Added support for multiple shapes under a transform, by merging them
into a single Cortex object (#516).
- SceneShapes
- Added support for converting CurvesPrimitives to multiple maya curves
under the same transform (#516).
9.11.4
======
#### IECore
- Removed code that discarded Camera crop windows outside 0-1
#### IECoreMaya
- Fixed crash in ToMayaSkinClusterConverter when updating topology
#### IECoreArnold
- Added support for arbitrary camera parameters
#### Build
- Added DEBUG option and fixed debug build errors
9.11.3
======
#### IECoreArnold
- MeshAlgo : Fix iterator invalidation bug.
9.11.2
======
#### Build
- Fixed linking of IECoreAppleseed on OS X.
9.11.1
======
#### IECoreArnold
- Improved UV set support.
- Support for FaceVarying primitive variables.
- Support for Constant V3f primitive variables.
- Support for Vertex primitive variables on PointsPrimitives.
- Fixed incorrect output of Vertex primitive variables on CurvesPrimitives (these are not yet valid in Arnold)
#### IECoreAppleseed
- Made LogTarget class public.
- Added dataToString overload accepting a const Data*.
- Refactored transform conversion code out of TransformStack.
9.11.0
======
#### IECoreArnold
- Added support for AI_TYPE_VECTOR in `ParameterAlgo::setParameter()`.
- Stopped making unnecessary copies of mesh topology in `MeshAlgo::convert()`.
- Added support for point arrays in `ParameterAlgo::setParameter()`.
9.10.1
======
#### IECoreArnold
- Added support for matrix parameters
#### IECoreAppleseed
- Fliped t coordinate for mesh UVs.
- Removed ToAppleseed converters. Moved code to Algo files.
- Fixed compile issues for IECoreAppleseed on gcc 4.1.2
- Fixing SConstruct configuration for Appleseed
#### Build
- Exposing OSL and OIIO build options
9.10.0
======
#### IECoreArnold
- Remove support for Arnold < 4.1.
- Support for progressive renders.
- ParameterAlgo
- Support for arrays in getParameter().
- Support for RGBA and Point2 parameters.
- Support for V3fVectorData.
- Flipped t coordinate for mesh uvs.
- Suppressed conversion of stIndices primvar.
9.9.1
=====
#### Build
- Added INSTALL_ARNOLDPYTHON_DIR build option, to specify an independent location
for the installation of the IECoreArnold python module.
- Fixed linking of IECoreArnold.
9.9.0
=====
#### IECore
- Python Module
- Use RTLD_GLOBAL to load C++ modules.
#### IECoreMaya
- Added a MightHaveFn to IECoreMaya::LiveScene::registerCustomAttributes().
- If MightHaveFn is specified, it will be called before NamesFn to allow a cheap early out.
#### IECoreHoudini
- Implemented Cob GEOIO_Translator::fileStat to return the bounding box from the cob header.
#### IECoreArnold
- Renderer
- Apply name to camera nodes.
- Support "ai:shape:" attribute prefix.
- Add support for creating Arnold volume nodes.
- Add SphereAlgo with conversion from IECore::SpherePrimitive.
#### Build
- Fixed PYTHONPATH for IECoreArnold tests
- Updated SConstruct and tests for Arnold 4.2