diff options
Diffstat (limited to 'source/blender/editors/uvedit/uvedit_intern.h')
-rw-r--r-- | source/blender/editors/uvedit/uvedit_intern.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h index ef25159a3af..58bdd8c3265 100644 --- a/source/blender/editors/uvedit/uvedit_intern.h +++ b/source/blender/editors/uvedit/uvedit_intern.h @@ -34,6 +34,7 @@ struct EditFace; struct EditMesh; +struct MTexPoly; struct Image; struct MTFace; struct Object; @@ -41,33 +42,46 @@ struct Scene; struct SpaceImage; struct UvElementMap; struct wmOperatorType; +struct BMEditMesh; +struct BMFace; +struct BMLoop; +struct BMEdge; +struct BMVert; /* id can be from 0 to 3 */ #define TF_PIN_MASK(id) (TF_PIN1 << id) #define TF_SEL_MASK(id) (TF_SEL1 << id) +/* visibility and selection */ +int uvedit_face_visible_nolocal(struct Scene *scene, struct BMFace *efa); + /* geometric utilities */ void uv_center(float uv[][2], float cent[2], int quad); float uv_area(float uv[][2], int quad); void uv_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy); +float poly_uv_area(float uv[][2], int len); +void poly_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy, int len); +void poly_uv_center(struct BMEditMesh *em, struct BMFace *f, float cent[2]); + /* find nearest */ typedef struct NearestHit { - struct EditFace *efa; - struct MTFace *tf; - - int vert, uv; - int edge, vert2; + struct BMFace *efa; + struct MTexPoly *tf; + struct BMLoop *l, *nextl; + struct MLoopUV *luv, *nextluv; + int lindex; //index of loop within face + int vert1, vert2; //index in mesh of edge vertices } NearestHit; -void uv_find_nearest_vert(struct Scene *scene, struct Image *ima, struct EditMesh *em, float co[2], float penalty[2], struct NearestHit *hit); -void uv_find_nearest_edge(struct Scene *scene, struct Image *ima, struct EditMesh *em, float co[2], struct NearestHit *hit); +void uv_find_nearest_vert(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, float co[2], float penalty[2], struct NearestHit *hit); +void uv_find_nearest_edge(struct Scene *scene, struct Image *ima, struct BMEditMesh *em, float co[2], struct NearestHit *hit); /* utility tool functions */ -struct UvElement *ED_get_uv_element(struct UvElementMap *map, struct EditFace *efa, int index); +struct UvElement *ED_get_uv_element(struct UvElementMap *map, struct BMFace *efa, int index); void uvedit_live_unwrap_update(struct SpaceImage *sima, struct Scene *scene, struct Object *obedit); /* smart stitch */ |