changelog.docu 67.2 KB
Newer Older
1
/** \page om_changelog Changelog
Jan Möbius's avatar
Jan Möbius committed
2
3
4
5
6

\htmlonly

<table border=1 cellpadding=4 cellspacing=2>

Jan Möbius's avatar
Jan Möbius committed
7
8
<!-- --------------------------------------------------------------------- -->

9

10
<tr valign=top><td><b>8.0</b> (?/?/?)</td><td>
Jan Möbius's avatar
Jan Möbius committed
11

12
13
14
15
16
<b>Breaking changes:</b>
<ul>
<li>Don't run and test on VS2013 anymore. As VS2013 still lacks some C++11 features, we remove it from our list of supported platforms</li>
</ul>

17
18
19
20
21
<b>Core</b>
<ul>
<li>TriConnectivity: Added two functions split_edge and split_edge_copy to mask the PolyConnectivity functions of the same name (Prevents creation of valence 2 vertices on trimeshes)</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
22
23
24
<b>IO</b>
<ul>
<li>PLY Reader: Allowing the PLY reader to read custom face ( Thanks to morgan Leborgne for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
25
<li>PLY Reader: Fixed endless loop on unknown property list type</li>
26
<li>PLY Reader: Fix hang when reading directly from istream (Thanks to Paul Loré for the patch)</li>
Max Lyon's avatar
Max Lyon committed
27
28
29
<li>OM Writer/Reader: Update file format version to 2.0. Older files can still be read, but older OpenMesh versions cannot read new format.</li>
<li>OM Writer/Reader: Fixed inconsistent writing/reading of edge properties</li>
<li>OM Writer/Reader: Add option to store status</li>
Jan Möbius's avatar
Jan Möbius committed
30
31
</ul>

Jan Möbius's avatar
Jan Möbius committed
32
33
34
35
<b>Tools</b>
<ul>
<li>SmartTagger: Added the SmartTagger class to tag primitives (O(1) reset )</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
36

37
38
39
40
41
42
<b>Build System</b>
<ul>
<li>Rename the DEPRECATED macro into OM_DEPRECATED to prevent a macro clash with Intel MKL (Thanks to Morgan Leborgne for the patch)</li>
</ul>


Jan Möbius's avatar
Jan Möbius committed
43
44
45
</tr>


46
<tr valign=top><td><b>7.1</b> (2018/05/29)</td><td>
47

Jan Möbius's avatar
Jan Möbius committed
48
<b>IO</b>
49
<ul>
Jan Möbius's avatar
Jan Möbius committed
50
<li>OBJ Reader: Fixed slow OBJ reader (Thanks to Etienne Danvoye for the patch) </li>
51
52
</ul>

Jan Möbius's avatar
Jan Möbius committed
53
54
55
56
<b>Documentation</b>
<ul>
<li>Updated build instructions.</li>
</ul>
57

58
<b>Build System</b>
59
<ul>
Jan Möbius's avatar
Jan Möbius committed
60
<li>Default to C++11 in cmake files</li>
61
<li>Remove old qmake project files. Unmaintained for a very long time</li>
62
63
<li>Replaced Qt finders</li>
<li>Added VS 2017 to CI builds</li>
64
65
66
67
68
69
</ul>

</tr>



Jan Möbius's avatar
Jan Möbius committed
70
<tr valign=top><td><b>7.0</b> (2018/04/19)</td><td>
71

Jan Möbius's avatar
Jan Möbius committed
72
73
74
<b>Breaking changes</b>
<ul>
<li>The minimal standard for C++ has been raised to C++11. Compilers not supporting C++11 or higher are no longer supported</li>
75
<li>Removed the python bindings from this project. They have migrated to a <a href="https://www.graphics.rwth-aachen.de:9000/OpenMesh/openmesh-python">seperate project</a>.</li>
Jan Möbius's avatar
Jan Möbius committed
76
77
</ul>

Jan Möbius's avatar
Jan Möbius committed
78
79
<b>Core</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
80
<li>Implemented a cast from polyMesh to Mesh and vice versa using static_cast(polymeshInstance) or static_cast(trimeshInstance)</li>
Jan Möbius's avatar
Jan Möbius committed
81
82
<li>make all negative handles invalid, not just -1</li>
<li>Several warnings fixed (Including the checked iterators)</li>
83
<li>split_copy and split_edge_copy operations now also copy internal properties.</li>
Jan Möbius's avatar
Jan Möbius committed
84
<li>copy face properties in split_copy(EdgeHandle, VertexHandle)</li>
Jan Möbius's avatar
Jan Möbius committed
85
86
87
<li>fix halfedge indices in OpenMeshTrimeshCirculatorHalfedgeLoop CWAndCCWCheck</li>
<li>Fix wrong behaviour of HalfedgeLoopIterators by changing the template parameter</li>
<li>Added 1-4 triangle split funtion(splits all edges at Midpoints)</li>
Jan's avatar
Jan committed
88
89
<li>Boost range support (Thanks to Bastian Pranzas for the patch)</li>
<li>Made the face and edge split operations that copy properties also copy builtin properties</li>
90
<li>calc_sector_angle: Check for real division by zero not with epsilon that was way to large</li>
Jan Möbius's avatar
Jan Möbius committed
91
<li>Don't return invalid iterators for empty element ranges</li>
Jan Möbius's avatar
Jan Möbius committed
92
93
94
<li>Mark halfedges as deleted after collapse</li>
<li>Let default range-based for skip deleted elements and add a version that includes deleted elements</li>
<li>Moved length() by norm() to external functions. This allows us to support other vector types instead of Vec3d (e.g. via Eigen) </li>
Jan Möbius's avatar
Jan Möbius committed
95
96
</ul>

Jan Möbius's avatar
Jan Möbius committed
97
98
99
<b>Utils</b>
<ul>
<li>enable c++11 features of many classes for Visual Studio 2013</li>
Jan's avatar
Jan committed
100
101
<li>Fixed broken version macros (Thanks to Frederik Salomonsson for the fix)</li>
<li>Fixed Build on gcc-7.2 (Thanks to Gero Müller and Martial Tola for the patches)</li>
102
<li>Small compilation fix for MINGW64 cross-compilation(Thanks to Manuel Massing for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
103
</ul>
Jan Möbius's avatar
Jan Möbius committed
104
105
106
107
108
109
110
111
112
113

<b>Tools</b>
<ul>
<li>Subdivider: New Midpoint subdivision scheme</li>
<li>Subdivider: Use double as default type</li>
</ul>

<b>Geometry</b>
<ul>
<li>QuadricT: implement Q+Q and Q*scalar operators for convenience.</li>
Jan Möbius's avatar
Jan Möbius committed
114
<li>Vector11T: Make converting ctor only accept 2 arguments</li>
Jan's avatar
Jan committed
115
<li>Only compute normals for faces that are not deleted</li>
Jan Möbius's avatar
Jan Möbius committed
116
117
118
</ul>


Jan Möbius's avatar
Jan Möbius committed
119
120
<b>IO</b>
<ul>
Jan's avatar
Jan committed
121
<li>ImporterT: Modified the add_face function of importerT to always return a valid FaceHandle</li>
122
<li>ImporterT: Return a valid FaceHandle when adding non-manifold faces.</li>
Jan Möbius's avatar
Jan Möbius committed
123
<li>BaseExporter: Added accessor functions for HalfEdgeHandles and faceTexCoords to base exporter and exporter template.</li>
124
<li>OBJ Writer: Fail if vertex color export was requested (Thanks to Manuel Massing)</li>
Jan Möbius's avatar
Jan Möbius committed
125
<li>OBJ Writer: Added functionality to store FaceTexCoords to objwriter</li>
126
<li>OBJ Writer: Applied fix for bad or missing vertex tex coords (Thanks to Gero Müller for the patch)</li>
127
<li>OBJ Writer: Fix vertex texture coordinates export in OBJ writer</li>
Jan Möbius's avatar
Jan Möbius committed
128
129
130
<li>OBJ Loader: range check for vertex colors and normals in OBJ loader</li>
<li>OBJ Loader: fixed handling of negative indices in OBJ loader</li>
<li>OM Writer: Fixed OMWriter when no faces are available (Thanks to Jamie Kydd for the patch)</li>
131
<li>OM Writer: Added Mark to the format header to identify end of stream correctly (Thanks to Jamie Kydd for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
132
133
<li>PLY Reader: Skip reading extra elements after face</li>
<li>PLY Reader: Return error when reaching EOF</li>
134
<li>OMFormat: Fix implicit fallthrough warning on gcc(Thanks to Manuel Massing for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
135
136
137
138
139
</ul>

<b>Unittests</b>
<ul>
<li>Added unittest to write and read faceTexcoords with a test obj file</li>
140
<li>Added unittest for split_edge_copy operations on Tri and PolyMeshes</li>
Jan Möbius's avatar
Jan Möbius committed
141
142
143
144
145
</ul>

<b>General</b>
<ul>
<li>Updated Logo</li>
Jan Möbius's avatar
Jan Möbius committed
146
<li>Only Issue Warning if compile Order for MeshIO.hh is violated. Check will be removed if no errors are reported.</li>
Jan Möbius's avatar
Jan Möbius committed
147
</ul>
148
149
150
151

</tr>


152

Jan Möbius's avatar
Jan Möbius committed
153
<tr valign=top><td><b>6.3</b> (2016/10/04)</td><td>
Jan Möbius's avatar
Jan Möbius committed
154

Jan Möbius's avatar
Jan Möbius committed
155
156
157
158
<b>Core</b>
<ul>
<li>Fixed type pun warning with gcc-6</li>
<li>Fixed incorrect type of hash function for boost causing a warning with clang</li>
Jan Möbius's avatar
Jan Möbius committed
159
<li>gcc 4.7 fix</li>
Jan Möbius's avatar
Jan Möbius committed
160
161
162
163
164
</ul>

<b>IO</b>
<ul>
<li>STL Reader: Identify stl files containing solid keyword as ASCII type</li>
Jan's avatar
Jan committed
165
<li>Importer: Failed faces will be added on the fly now to correctly handle properties on them.</li>
Jan Möbius's avatar
Jan Möbius committed
166
</ul>
Jan Möbius's avatar
Jan Möbius committed
167

Jan Möbius's avatar
Jan Möbius committed
168
169
170
171
172
<b>Utils</b>
<ul>
<li>PropertyManager: Add C++11 range-based set_range() version.</li>
<li>PropertyManager: Add initializing createIfNotExists() versions.</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
173

Jan Möbius's avatar
Jan Möbius committed
174
175
176
<b>General</b>
<ul>
<li>Fixed undefined MSVC macro warning (Thanks to Xan for the patch)</li> 
Jan Möbius's avatar
Jan Möbius committed
177
</ul>
Jan Möbius's avatar
Jan Möbius committed
178

Jan Möbius's avatar
Jan Möbius committed
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<b>Python</b>
<ul>
<li>Added link directories and log file to build system</li>
<li>Made member function pointer types explicit. This gets rid of a preprocessor conditional and prevents bug in msvc.</li>
</ul>

<b>Unittests</b>
<ul>
<li>Added unittest to trigger gcc alignment bug</li>
</ul>

<b>Documentation</b>
<ul>
<li>Updated documentation of BaseKernel's property functions to hint at PropertyManager.</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
195
196
197
<b>Build System</b>
<ul>
<li>Removed unnecessary include dir from Core Cmakelist (Thanks to Xan for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
198
<li>Added a little safeguard against GCC optimizer bug to CMakeLists.txt</li>
Jan Möbius's avatar
Jan Möbius committed
199
200
</ul>

Jan Möbius's avatar
Jan Möbius committed
201
202
</tr>

Jan Möbius's avatar
Jan Möbius committed
203
<tr valign=top><td><b>6.2</b> (2016/07/11)</td><td>
204

205
206
<b>General</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
207
<li>Fixed build error with Visual Studio 2015 Update 3 (Fixed VS2015 Update 3 build error)</li>
208
209
</ul>

Jan Möbius's avatar
Jan Möbius committed
210
211
212
213
214
<b>Build System</b>
<ul>
<li>Fixed mingw compilataion error</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
215
216
217
218
219
220
<b>General</b>
<ul>
<li>Added size_t hash_value functions to support boost unordered_set and map</li>
</ul>


221
222
223
</tr>

<tr valign=top><td><b>6.1</b> (2016/05/31)</td><td>
Jan Möbius's avatar
Jan Möbius committed
224

Jan Möbius's avatar
Jan Möbius committed
225
226
227
<b>General</b>
<ul>
<li>New logo for OpenMesh and switched to VCI schema</li>
Jan Möbius's avatar
Jan Möbius committed
228
<li>Fix Internal Compiler Error in Visual Studio 2015 Community edition (Enterprise version does not trigger this error)</li>
Jan Möbius's avatar
Jan Möbius committed
229
230
231
232
233
234
235
</ul>

<b>Core</b>
<ul>
<li>PolyMesh: Copy per-halfedge and per-face properties to new elments during triangulation (Thanks to Max Limper for the patch)</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
236
237
<b>IO</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
238
<li>PLY Reader: Handle nr newlines (Thanks to Christian Feurer for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
239
<li>PLY Reader: Fixed binary reader errors in ply reader. (Thanks to Michael Kremer for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
240
<li>Throw error when no readers are available (Thanks to Christian Feurer for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
241
242
</ul>

243
244
245
<b>Build System</b>
<ul>
<li>Some fixes for min gw (Thanks to Xan for the patch)</li>
Jan Möbius's avatar
Jan Möbius committed
246
<li>Several changes to support mingw on windows again. (Thanks to Christian Feurer for the patches).</li>
247
248
</ul>

Jan Möbius's avatar
Jan Möbius committed
249
250
251
252
253
254
255
256
257
258
259
<b>Infrastructure</b>
<ul>
<li>Build drag and drop installer for Mac in Daily Builds</li>
</ul>

<b>Documentation</b>
<ul>
<li>Move documentation of PropertyManager factory functions to PropertyManager Doxygen page</li>
</ul>


Jan Möbius's avatar
Jan Möbius committed
260
261
</tr>

Jan Möbius's avatar
Jan Möbius committed
262

263
<tr valign=top><td><b>6.0</b> (2016/29/04)</td><td>
264

Jan Möbius's avatar
Jan Möbius committed
265
266
267
268
269
<b>Core</b>
<ul>
<li>Added a couple of methods to enable more efficient adding of batches of vertices (Without resizing property vectors) </li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
270
271
272
<b>IO</b>
<ul>
<li>Obj reader: added texCoord3d functions to objloader</li>
Jan Möbius's avatar
Jan Möbius committed
273
<li>PLY Reader: Don't emit warning for every complex face but warn only once in the end.</li>
Jan Möbius's avatar
Jan Möbius committed
274
<li>Importer: Integrate non-manifold faces while importing and not at the end. Fixes missing properties on non-manifolds. (Thanks to Max Limper for the patch, Merge Request 51)</li>
Jan Möbius's avatar
Jan Möbius committed
275
</ul>
276

Jan Möbius's avatar
Jan Möbius committed
277
278
279
280
<b>VectorT</b>
<ul>
<li>Full C++11 rewrite of VectorT (Keeping C++98 backward compatibility)</li>
<li>Split VectorT implementation into two files (One c++98 and one c++11)</li>
Jan Möbius's avatar
Jan Möbius committed
281
<li>Added += operator to mesh iterators (C++11 only) </li>
Jan Möbius's avatar
Jan Möbius committed
282
283
284
285
286
287
</ul>

<b>Unittests</b>
<ul>
<li>Added several unittests for VectorT</li>
<li>Added Benchmarks for VectorT</li>
288
<li>Added test for property iterators</li>
Jan Möbius's avatar
Jan Möbius committed
289
290
</ul>

Jan Möbius's avatar
Jan Möbius committed
291
292
293
294
<b>Build System</b>
<ul>
<li>Updated c++11 ifdefs to use c++11 (starting with VS1015)</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
295

Jan Möbius's avatar
Jan Möbius committed
296
297
298
299
300
<b>Python Interface</b>
<ul>
<li>Fixed segfault in decimater due to a bad pointer</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
301
302
303
304
305
<b>Utils</b>
<ul>
<li>Add factory functions for creating PropertyManagers without restating the mesh type in C++11</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
306
307
308
309
310
311

<b>Apps</b>
<ul>
<li>VDPM Analyzer: Fixed VS2015 internal compiler error with C++11</li>
</ul>

312
313
314
</tr>


Jan Möbius's avatar
Jan Möbius committed
315
<tr valign=top><td><b>5.2</b> (2016/04/28)</td><td>
Jan Möbius's avatar
Jan Möbius committed
316
317
318
319

<b>Core</b>
<ul>
<li>Fixed ugly typo in __decrement function of Basehandle. Seems to be unused in the rest of the code.</li>
Jan Möbius's avatar
Jan Möbius committed
320
<li>drop VectorDimensionsT metaprogram in favor of vector_traits in normal computation function</li>
Jan Möbius's avatar
Jan Möbius committed
321
322
323
</ul>


Jan Möbius's avatar
Jan Möbius committed
324
325
326
<b>IO</b>
<ul>
<li>PLY Reader: Fixed CR LF newline handling for binary file headers.</li>
Jan Möbius's avatar
Jan Möbius committed
327
<li>Obj writer: Fix OBJ material files and face color (Thanks to Sven-Kristofer Pilz for the patch) </li>
328
329
<li>Obj writer: Fix OBJ writer bug file extension removal (Thanks to Katharina Breininger for the patch) </li>

Jan Möbius's avatar
Jan Möbius committed
330
331
</ul>

332
333
334
335
336
337
<b>Tools</b>
<ul>
<li>Decimater: Added missing preprocess collapse call in size_t DecimaterT<Mesh>::decimate(size_t _n_collapses)  (Thanks to Andrej Ivanis for the hint)</li>
</ul>


Jan Möbius's avatar
Jan Möbius committed
338

Jan Möbius's avatar
Jan Möbius committed
339
340
341
342
343
344
345
346
347
348
349
350
<b>Build System</b>
<ul>
<li>Fixed Typo in cmake install for smoother (Thanks to Takashi Michikawa for the fix).</li>
</ul>

<b>Documentation</b>
<ul>
<li>Fixed order of smoother parameters in the documentation. (Thanks to Takashi Michikawa for the info).</li>
</ul>

</tr>

351

Jan Möbius's avatar
Jan Möbius committed
352
<tr valign=top><td><b>5.1</b> (2015/17/12)</td><td>
353

Jan Möbius's avatar
Jan Möbius committed
354
355
356
<b>Core</b>
<ul>
<li>Added clean_keep_reservation() (remove all elements from the mesh but keeps the properties. In contrast to clean() the memory used for the elements will remain allocated</li>
Jan Möbius's avatar
Jan Möbius committed
357
<li>Reduced number of include statements to speedup compilation</li>
Jan Möbius's avatar
Jan Möbius committed
358
<li>Removed unused member variable next_cache_count_ member of PolyConnectivity and made it local</li>
Jan Möbius's avatar
Jan Möbius committed
359
360
</ul>

Jan Möbius's avatar
Jan Möbius committed
361
362
363
<b>General</b>
<ul>
<li>Fixed bug preventing from building with 2 dimensional vectors (e.g. vec2i) </li>
Jan Möbius's avatar
Jan Möbius committed
364
<li>Heap: Minor cleanup (some consts)</li>
Jan Möbius's avatar
Jan Möbius committed
365
<li>Added static versions of ArrayKernel::edge_handle and ...::halfedge_handle</li>
Jan Möbius's avatar
Jan Möbius committed
366
<li>Reduced number of includes</li>
Jan Möbius's avatar
Jan Möbius committed
367
368
</ul>

Jan Möbius's avatar
Jan Möbius committed
369
370
371
<b>IO</b>
<ul>
<li>OMWriter: fix crash in OMWriter when writing an empty mesh with colors</li>
Jan Möbius's avatar
Jan Möbius committed
372
<li>Binary writers: Fixed double swap in string specialization. Added Unittest.</li>
Jan Möbius's avatar
Jan Möbius committed
373
</ul>
Jan Möbius's avatar
Jan Möbius committed
374
375
376
377

<b>VectorT</b>
<ul>
<li>take VectorT argument by reference for non-member vector scalar multiplication</li>
Jan Möbius's avatar
Jan Möbius committed
378
379
380
381
382
383
384
</ul>

<b>Unittests</b>
<ul>
<li>Added some basic linear algebra tests for VectorT</li>
<li>Added tests for vec2x construction</li>
</ul>
385

Jan Möbius's avatar
Jan Möbius committed
386
387
388
389
390
<b>Documentation</b>
<ul>
<li>Add some more documentation about primitive deletion. Closes #14</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
391
392
393
394
395
<b>Build System</b>
<ul>
<li>Fixed missing debug dll for autobuilders</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
396
397
398
399
<b>Python Interface</b>
<ul>
<li>Exposed Decimater to python</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
400

401
402
403
404
</tr>



405
<tr valign=top><td><b>5.0</b> (2015/11/18)</td><td>
Jan Möbius's avatar
Jan Möbius committed
406

Jan Möbius's avatar
Jan Möbius committed
407
408
409
410
411
<b>General</b>
<ul>
<li>Moved repository to git</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
412
413
414
<b>Core</b>
<ul>
<li>Fixed bug where range iterators contained an invalid element when the range was empty</li>
Jan Möbius's avatar
Jan Möbius committed
415
416
<li>Reintroduced and polished the StatusSet API (Thanks to Martin Marinov)</li>
<li>More efficient implementation of opposite_halfedge_handle (Less instructions required)</li>
417
418
419
420
421
422
423
424
<li>PolyMeshes: More robust algorithm for computing surface normals (Fixes bad normals on concave polygons)</li>
</ul>

<b>VectorT</b>
<ul>
<li>Modernized VectorT constructors for C++11 (Less redundancy, make some of the VectorT constructors constexpr)</li>
<li>C++11: Added _htmlColor literal operator.</li>
<li>C++11: Added explicit static_cast along with static SFINAE checks to VectorT constructor.</li>
Jan Möbius's avatar
Jan Möbius committed
425
426
</ul>

Jan Möbius's avatar
Jan Möbius committed
427
428
<b>IO</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
429
430
<li>loaded properties are presistant per default</li>
<li>remove unnecessary c headers</li>
Jan Möbius's avatar
Jan Möbius committed
431
<li>PLY Writer: fix crash when saving a mesh and a custom property was removed before, extend unittest for this case</li>
Jan Möbius's avatar
Jan Möbius committed
432
433
434
<li>PLY Writer: add custom property (with pod data type) support for binary ply files closes #2496</li>
<li>remove redundant code refs #2525</li>
<li>Off Writer: Removed redundant code</li>
Jan Möbius's avatar
Jan Möbius committed
435
<li>Made STLReader, OBJReader reuse stringstreams to improve performance</li>
Jan Möbius's avatar
Jan Möbius committed
436
437
438
439
440
441
</ul>

<b>Unittests</b>
<ul>
<li>add obj writer unittest</li>
<li>add unittest for write stla</li>
Jan Möbius's avatar
Jan Möbius committed
442
<li>Fixed bug where Some C++11 unittests were not build and used</li>
Jan Möbius's avatar
Jan Möbius committed
443
<li>Added more unittests c++11 ranges vvrange and vertexrange</li>
Jan Möbius's avatar
Jan Möbius committed
444
</ul>
Jan Möbius's avatar
Jan Möbius committed
445
446
447
448
449


</tr>


Jan Möbius's avatar
Jan Möbius committed
450
<tr valign=top><td><b>4.1</b> (2015/07/27,Rev.1318)</td><td>
451
452
453
454
455
456
<b>Core</b>
<ul>
<li>Fixed bug in polymesh normal computation. Added more unittests for normal computation.</li>
<li>Get rid of some windows preprocessor warnings</li>
</ul>

Jan Möbius's avatar
Jan Möbius committed
457
458
459
460
461
462
<b>IO</b>
<ul>
<li>Options: Fixed bad enum</li>
</ul>


463
464
465
466
<b>Build System</b>
<ul>
<li>Removed fixbundle calls if not building apps.</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
467

Jan Möbius's avatar
Jan Möbius committed
468
469
</tr>

Jan Möbius's avatar
Jan Möbius committed
470

471
<tr valign=top><td><b>4.0</b> (2015/07/08,Rev.1308)</td><td>
Jan Möbius's avatar
Jan Möbius committed
472
473
474
475
476

<b>LICENSE</b>
<ul>
<li>OpenMesh has been relicensed to BSD-3</li>
</ul>
Jan Möbius's avatar
Jan Möbius committed
477
478
479
480

<b>Core</b>
<ul>
<li>Fixed crash when writing with multiple threads to mostream. closes #2293 (Note: This fix is only active with C++11 support) </li>
Jan Möbius's avatar
Jan Möbius committed
481
<li>fix "relink failed" condition closes #1244. This patch fixes a rare condition in add_face, where a non-manifold configuration could be created. </li>
Jan Möbius's avatar
Jan Möbius committed
482
483
484
485
<li>Added CW and CCW Circulators ( These new iterator versions also fix the problems that circulators could get valid again, if iterating past the end,
    they are also faster, as the require one check less then the old ones.)</li>
<li>Implement a warning on the operator-- of the old iterators. It was possible to use them to iterate from begin into negative direction. At boundaries,
    that did not work correctly and visited one entity twice. The warning can be disabled via cmake or define (-DNO_DECREMENT_DEPRECATED_WARNINGS ).</li>
Jan Möbius's avatar
Jan Möbius committed
486
<li>Fixed wrong normal calculation in calc_face_normal for Poly Meshes. closes #2427</li>
Jan Möbius's avatar
Jan Möbius committed
487
<li>Fixed various warnings with vector casts</li>
Jan Möbius's avatar
Jan Möbius committed
488
<li>General: Get rid of some compiler warnings</li>
489
<li>VectorT: fix compile error on vector scalar multiplication when scalar type differs of vector scalar type and the scalar was lhs. closes #2367</li>
490
<li>Removed dead and uncompilable code regarding the status set. refs #2511 </li>
Jan Möbius's avatar
Jan Möbius committed
491
</ul>
Jan Möbius's avatar
Jan Möbius committed
492
493
494

<b>IO</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
495
<li>Readers/Writers: extend "can_read/can_write" function. returns true, if no explicit filename is given, but just the extension. closes #2431 </li>
Jan Möbius's avatar
Jan Möbius committed
496
<li>Writers: Avoid std::endl in various writers to avoid flushing the output stream on every line. (Thanks to Roman Zoller for the hint).</li>
Jan Möbius's avatar
Jan Möbius committed
497
<li>OBJReader: fix reading mtl files with texture only for obj files</li>
Jan Möbius's avatar
Jan Möbius committed
498
<li>OBJReader: fix crash, if obj file contains degenerated faces</li>
Jan Möbius's avatar
Jan Möbius committed
499
500
501
502
<li>OBJReader: improve performance for small vectors/faces</li>
<li>OBJReader: load vertex color values as float in range of [0..1] instead of integers [0..255]</li>
<li>PLY Reader: Ascii reader now supports custom attributes</li>
<li>PLY Writer: add custom property support for ascii version</li>
503
<li>PLY Reader: unify int8_t/signed char/char in ply reader and writer. </li>
504
<li>PLY Reader/Writer Binary: change type int8_t to signed char from type char closes #2499 </li>
505
<li>STL Writer: Add a space after the solid keyword to make some readers happy. </li>
Jan Möbius's avatar
Jan Möbius committed
506
507
</ul>

Jan Möbius's avatar
Jan Möbius committed
508
509
510
511
512
513
<b>Utils</b>
<ul>
<li>Fixing PropertyManager so that it cooperates with bool properties even on unforgiving implementations (such as clang).</li>
</ul>


Jan Möbius's avatar
Jan Möbius committed
514
515
516
<b>Tools</b>
<ul>
<li>Don't use auto_ptr when compiler supports C++11. Replaced by unique_ptr.</li>
Jan Möbius's avatar
Jan Möbius committed
517
518
519
<li>Fix for Smoother set_relative error (Thanks to Leonardo Cecchinato for the fix) </li>
<li>Improved SmootherT.hh Documentation</li>
<li>Fixed old OM3 port warning in smoother</li>
Jan Möbius's avatar
Jan Möbius committed
520
<li>Decimater: ModProgMesh - Fixed write on 64-bit systems</li>
Jan Möbius's avatar
Jan Möbius committed
521
522
</ul>

Jan Möbius's avatar
Jan Möbius committed
523
524
525
<b>General</b>
<ul>
<li>Fixed various build warnings</li>
Jan Möbius's avatar
Jan Möbius committed
526
<li>Moved several iostream includes to cc files or removed them where not necessary (or switched to omlog and omerr)</li>
Jan Möbius's avatar
Jan Möbius committed
527
528
</ul>

Jan Möbius's avatar
Jan Möbius committed
529
530
<b>Documentation</b>
<ul>
Jan Möbius's avatar
Jan Möbius committed
531
<li>Example for locking vertices in decimater</li>
Jan Möbius's avatar
Jan Möbius committed
532
<li>Added extra hint about status flags when collapsing edges</li>
533
534
535
536
<li>Updated tutorial on reading and writing meshes with python bindings</li>
<li>Updated the tutorial with further information on how to build the python bindings</li>
<li>Added missing requestsfor polyMesh in collapsee docu</li>
<li>Add feature support list for readers/writers</li>
537
538
539
<li>add info about requesting standard properties and loading a mesh with options - refs #2512</li>
<li>add info about texture information in OBJ file format - closes #2369</li>
<li>add info about texture index property refs #2512</li>
Jan Möbius's avatar
Jan Möbius committed
540
541
542
543
544
545
</ul>

<b>Unittests</b>
<ul>
<li>fixed a bug in the unit test test_add_face.py</li>
<li>Added tests for tutorials about flip and collapse</li>
Jan Möbius's avatar
Jan Möbius committed
546
547
<li>Added basic smoother compile test</li>
<li>Added unit test for bool PropertyManager::set_range.</li>
Jan Möbius's avatar
Jan Möbius committed
548
549
<li>Added write unittest for binary stl files</li>
<li>Added c++11 test file</li>
550
<li>Use the acg macro to add the unittests to make sure flags are passed through (e.g. to enable c++11)</li>
Jan Möbius's avatar
Jan Möbius committed
551
</ul>
552

Jan Möbius's avatar
Jan Möbius committed
553
554
555
556
<b>Build System</b>
<ul>
<li>Python Bindings: strip pythonlibs version string of possible other characters than 0-9 and .  (e.g. '+')</li>
<li>Python Bindings: don't require boost-python</li>
Jan Möbius's avatar
Jan Möbius committed
557
558
559
560
<li>Python Bindings: updated the cmake file so that cmake finds boost python installations with the names python2 and python3</li>
<li>Python Bindings: fixed a cmake warning on os x (Policy CMP0042: MACOSX_RPATH)</li>
<li>fix windows warning about unknown preprocessor define</li>
<li>Default to release build type if not selected via cmake. Only on non Win platforms</li>
Jan Möbius's avatar
Jan Möbius committed
561
<li>No copy after build required for doc, as its copied by doxygen anyway</li>
Jan Möbius's avatar
Jan Möbius committed
562
<li>Got rid of the old ACGMakefiles, as they were not maintained anymore</li>
Jan Möbius's avatar
Jan Möbius committed
563
564
565
</ul>


566
567
</tr>

Jan Möbius's avatar
Jan Möbius committed
568
<tr valign=top><td><b>3.3</b> (2015/01/16,Rev.1204)</td><td>
Jan Möbius's avatar
Jan Möbius committed
569
570
571
572

<b>Core</b>
<ul>
<li>change name of the types "True" and "False" to "TrueType" and "FalseType" to clarify, that these are types and avoid conflicts</li>
Jan Möbius's avatar
Jan Möbius committed
573
574
<li>Fixed two missing this pointers</li>
<li>Removed several unused variables</li>
Jan Möbius's avatar
Jan Möbius committed
575
<li>PolyConnectivity: Fixed constness of EntityRange begin() and end() methods.</li>
Jan Möbius's avatar
Jan Möbius committed
576
<li>VectorT: add specializations for 5/6 dimension vectors</li>
Jan Möbius's avatar
Jan Möbius committed
577
<li>VectorT: added const getter for data_vector()</li>
Jan Möbius's avatar
Jan Möbius committed
578
<li>VectorT: <b> Modified Vector constructors!</b> The constructors now check the size of the vector at compile time not run time. This might produce compiler errors but ensures that the vectors are initialized correctly.</li>