Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-01-18 01:08:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-18 01:08:25 +0400
commit0f28c1c27aec41dd22e31aac2c02cdfae785dd1b (patch)
tree1c41b37d29a56390d810846cd7fe8f1218e40576 /source/blender/blenkernel
parent9be40c026df54fee796c4073ebd4734c55ed5807 (diff)
parent408f7963c5cfd65792d826390b01896282de8e97 (diff)
svn merge ^/trunk/blender -r43461:43472
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_mesh.h37
-rw-r--r--source/blender/blenkernel/BKE_text.h12
-rw-r--r--source/blender/blenkernel/intern/paint.c5
-rw-r--r--source/blender/blenkernel/intern/scene.c4
-rw-r--r--source/blender/blenkernel/intern/text.c2
5 files changed, 52 insertions, 8 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 22cd822bf93..06e4787c741 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -53,7 +53,10 @@ struct CustomData;
struct DerivedMesh;
struct Scene;
struct MLoopUV;
-
+struct UvVertMap;
+struct UvMapVert;
+struct UvElementMap;
+struct UvElement;
#ifdef __cplusplus
extern "C" {
#endif
@@ -180,6 +183,38 @@ typedef struct UvMapVert {
unsigned char tfindex, separate, flag;
} UvMapVert;
+typedef struct UvElementMap {
+ /* address UvElements by their vertex */
+ struct UvElement **vert;
+ /* UvElement Store */
+ struct UvElement *buf;
+ /* Total number of UVs in the layer. Useful to know */
+ int totalUVs;
+ /* Number of Islands in the mesh */
+ int totalIslands;
+ /* Stores the starting index in buf where each island begins */
+ int *islandIndices;
+} UvElementMap;
+
+typedef struct UvElement {
+ /* Next UvElement corresponding to same vertex */
+ struct UvElement *next;
+ /* Face the element belongs to */
+ struct BMFace *face;
+ /* Index in the editFace of the uv */
+ unsigned char tfindex;
+ /* Whether this element is the first of coincident elements */
+ unsigned char separate;
+ /* general use flag */
+ unsigned char flag;
+ /* If generating element map with island sorting, this stores the island index */
+ unsigned short island;
+} UvElement;
+
+/* invalid island index is max short. If any one has the patience
+ * to make that many islands, he can bite me :p */
+#define INVALID_ISLAND 0xFFFF
+
UvVertMap *make_uv_vert_map(struct MPoly *mpoly, struct MLoop *mloop, struct MLoopUV *mloopuv, unsigned int totpoly, unsigned int totvert, int selected, float *limit);
UvMapVert *get_uv_map_vert(UvVertMap *vmap, unsigned int v);
void free_uv_vert_map(UvVertMap *vmap);
diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index ffea8e0c8e2..f0c054560c4 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -46,8 +46,8 @@ void free_text (struct Text *text);
void txt_set_undostate (int u);
int txt_get_undostate (void);
struct Text* add_empty_text (const char *name);
-int txt_extended_ascii_as_utf8(char **str);
-int reopen_text (struct Text *text);
+int txt_extended_ascii_as_utf8(char **str);
+int reopen_text (struct Text *text);
struct Text* add_text (const char *file, const char *relpath);
struct Text* copy_text (struct Text *ta);
void unlink_text (struct Main *bmain, struct Text *text);
@@ -60,8 +60,8 @@ void txt_order_cursors (struct Text *text);
int txt_find_string (struct Text *text, const char *findstr, int wrap, int match_case);
int txt_has_sel (struct Text *text);
int txt_get_span (struct TextLine *from, struct TextLine *to);
-int txt_utf8_offset_to_index(char *str, int offset);
-int txt_utf8_index_to_offset(char *str, int index);
+int txt_utf8_offset_to_index(char *str, int offset);
+int txt_utf8_index_to_offset(char *str, int index);
void txt_move_up (struct Text *text, short sel);
void txt_move_down (struct Text *text, short sel);
void txt_move_left (struct Text *text, short sel);
@@ -162,8 +162,8 @@ int text_check_whitespace(char ch);
* by 4 character length ID + the text
* block itself + the 4 character length
* ID (repeat) and opcode (repeat)) */
-#define UNDO_DBLOCK 027 /* Delete block */
-#define UNDO_IBLOCK 030 /* Insert block */
+#define UNDO_DBLOCK 027 /* Delete block */
+#define UNDO_IBLOCK 030 /* Insert block */
/* Misc */
#define UNDO_SWAP 031 /* Swap cursors */
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index fe848f3d76c..2b3f792f777 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -66,6 +66,11 @@ Paint *paint_get_active(Scene *sce)
return &ts->wpaint->paint;
case OB_MODE_TEXTURE_PAINT:
return &ts->imapaint.paint;
+ case OB_MODE_EDIT:
+ if(ts->use_uv_sculpt)
+ return &ts->uvsculpt->paint;
+ else
+ return &ts->imapaint.paint;
}
}
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 6d37c9ca04c..281631168cd 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -297,6 +297,10 @@ void free_scene(Scene *sce)
free_paint(&sce->toolsettings->sculpt->paint);
MEM_freeN(sce->toolsettings->sculpt);
}
+ if(sce->toolsettings->uvsculpt) {
+ free_paint(&sce->toolsettings->uvsculpt->paint);
+ MEM_freeN(sce->toolsettings->uvsculpt);
+ }
free_paint(&sce->toolsettings->imapaint.paint);
MEM_freeN(sce->toolsettings);
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index bc86a53c35e..40d439169a3 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -226,7 +226,7 @@ int txt_extended_ascii_as_utf8(char **str)
while ((*str)[i]) {
if((bad_char= BLI_utf8_invalid_byte(*str+i, length)) == -1)
- break;
+ break;
added++;
i+= bad_char + 1;