Cleanup: remove redundant doxygen \file argument
[blender.git] / source / blender / bmesh / intern / bmesh_log.h
index 958ff34..2b296b2 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef __BMESH_LOG_H__
 #define __BMESH_LOG_H__
 
-/* The BMLog is an interface for storing undo/redo steps as a BMesh is
- * modified. It only stores changes to the BMesh, not full copies.
- *
- * Currently it supports the following types of changes:
- * 
- * - Adding and removing vertices
- * - Adding and removing faces
- * - Moving vertices
- * - Setting vertex paint-mask values
- * - Setting vertex hflags
+/** \file \ingroup bmesh
  */
 
 struct BMFace;
@@ -59,6 +46,9 @@ void BM_log_mesh_elems_reorder(BMesh *bm, BMLog *log);
 /* Start a new log entry and update the log entry list */
 BMLogEntry *BM_log_entry_add(BMLog *log);
 
+/* Mark all used ids as unused for this node */
+void BM_log_cleanup_entry(BMLogEntry *entry);
+
 /* Remove an entry from the log */
 void BM_log_entry_drop(BMLogEntry *entry);
 
@@ -69,16 +59,19 @@ void BM_log_undo(BMesh *bm, BMLog *log);
 void BM_log_redo(BMesh *bm, BMLog *log);
 
 /* Log a vertex before it is modified */
-void BM_log_vert_before_modified(BMesh *bm, BMLog *log, struct BMVert *v);
+void BM_log_vert_before_modified(BMLog *log, struct BMVert *v, const int cd_vert_mask_offset);
 
 /* Log a new vertex as added to the BMesh */
-void BM_log_vert_added(BMesh *bm, BMLog *log, struct BMVert *v);
+void BM_log_vert_added(BMLog *log, struct BMVert *v, const int cd_vert_mask_offset);
+
+/* Log a face before it is modified */
+void BM_log_face_modified(BMLog *log, struct BMFace *f);
 
 /* Log a new face as added to the BMesh */
 void BM_log_face_added(BMLog *log, struct BMFace *f);
 
 /* Log a vertex as removed from the BMesh */
-void BM_log_vert_removed(BMesh *bm, BMLog *log, struct BMVert *v);
+void BM_log_vert_removed(BMLog *log, struct BMVert *v, const int cd_vert_mask_offset);
 
 /* Log a face as removed from the BMesh */
 void BM_log_face_removed(BMLog *log, struct BMFace *f);
@@ -92,9 +85,17 @@ void BM_log_before_all_removed(BMesh *bm, BMLog *log);
 /* Get the logged coordinates of a vertex */
 const float *BM_log_original_vert_co(BMLog *log, BMVert *v);
 
+/* Get the logged normal of a vertex */
+const short *BM_log_original_vert_no(BMLog *log, BMVert *v);
+
 /* Get the logged mask of a vertex */
 float BM_log_original_mask(BMLog *log, BMVert *v);
 
+/* Get the logged data of a vertex (avoid multiple lookups) */
+void BM_log_original_vert_data(
+        BMLog *log, BMVert *v,
+        const float **r_co, const short **r_no);
+
 /* For internal use only (unit testing) */
 BMLogEntry *BM_log_current_entry(BMLog *log);
 struct RangeTreeUInt *BM_log_unused_ids(BMLog *log);