cgcookie / retopoflow Goto Github PK
View Code? Open in Web Editor NEWA suite of retopology tools for Blender
A suite of retopology tools for Blender
undo snapshots do not copy/restore the sel_gedges set
If a strip is part of a patch then it crashes upon trying to delete the selected edge.
Traceback (most recent call last):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2213, in modal
ret = self.ui.modal(context, event)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 3791, in modal
nmode = FSM[self.mode](eventd)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 3388, in modal_main
self.polystrips.disconnect_gedge(self.act_gedge)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 1191, in disconnect_gedge
gedge.disconnect()
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 601, in disconnect
self.gvert0.disconnect_gedge(self)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 135, in disconnect_gedge
self.update_gedges()
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 191, in update_gedges
self.update()
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 256, in update
if gedge: gedge.update()
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 938, in update
gpatch.update();
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 1121, in update
lc0 = list(self.ge0.iter_segments())
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 984, in iter_segments
cur0,cur1 = gv0.get_corners_of(self)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 356, in get_corners_of
assert False, "GEdge is not connected"
AssertionError: GEdge is not connected
Let's make the theme a bit brighter to help with the visibility in areas of the mesh with specular highlights.
sel_gvert should probably be the set sel_gverts
select cornered gvert or two gedges that meet at a corner
Contours still has a good few function calls that can be changed out for our common functions in lib.
Polystrips can quickly become quite slow, particularly on slower machines and complex models.
If there's anything we can do to optimize it then we should ๐
Speed is probably one of the more common points of critical feedback I've heard.
remove instances of from my_lib import *
-reduces readability
-imports things indiscriminately of need
Contours used an older method of setting the add-on preferences. We now have a common utility that makes it much simpler.
All calls for:
settings = context.user_preferences.addons[AL.FolderName].preferences
Should be replaced with:
settings = common_utilities.get_settings()
When using a tablet, if Use Pressure is enabled, then the start of the stroke is always small. No matter how large the initial pressure push.
Always draw panel and display error message upon invoke if requirements not satisfied
The simple fill areas should fill with partially transparent faces to improve the visibility. Currently only the wireframes are drawn.
If a GEdges fully exist to make a GPatch, selecting two adjacent GEdges will cause simple fill to create another GVert.
Not able to narrow this down yet, but sometimes when selecting elements other gverts will remain highlighted.
The Contours widget needs to be re-designed and re-themed. The new design has been done by Pawel L. but the functionality is waiting on the new Wiggly Widgets work by Antony R in Blender master.
Need to add the ability for users to turn off pressure sensitivity. It's not always useful and some users will want to use a tablet but not use pressure.
If a bezier curve object with name "BezierCurve" is present in scene upon starting Polystrips then it fails.
Traceback (most recent call last):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2200, in invoke
self.ui = PolystripsUI(context, event)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2348, in __init__
self.create_polystrips_from_bezier(bpy.data.objects['BezierCurve'])
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 3678, in create_polystrips_from_bezier
gv0 = pregv if pregv else self.create_gvert(mx, bp0.co, 0.2)
AttributeError: 'PolystripsUI' object has no attribute 'create_gvert'
If you Shift+Click extrude a gvert across the clipping plane it does not work. It gets tossed completely without an error.
To help keep files condensed I suggest we split off the add-on preferences into it's own file.
Traceback (most recent call last):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 1310, in modal
self.hover_loop_mode(context, settings, event)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 893, in hover_loop_mode
h_target = c_cut.active_element(context,event.mouse_region_x,event.mouse_region_y)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/contour_classes.py", line 2459, in active_element
intersect = intersect_point_line(mouse_loc, a, b)
ValueError: intersect_point_line: sequence size is 2, expected 3
need to use relative paths with import
The hard-coded keymaps are really troublesome right now, particularly for selection. They aren't flexible and are easily missed if we forget to update the header.
According to @ideasman42, it should be possible to define an actual modal keymap in Python, like this:
This still needs confirmed, but it seems that the Active and Selected Gverts status is reversed.
If no gedges are selected then an error message should be displayed.
We've talked about this one before, and so far as I know there's no good solution at the moment but it's something we should kind in mind to investigate.
On thin models there's often a problem with polystrips flipping to the opposite side of the mesh from that which it's drawn on. This can be really troublesome for certain models.
This generally happens after having multiple gedges selected and then changing selection to just one gedge.
The sel_gedges likely isn't getting cleared.
We should auto-detect which mouse the user has specified for selection and use that in both Contours and Polystrips for selection.
When selecting multiple strips for filling only the active strip is highlighted.
Active should draw with theme_colors_active
color, selected should draw with theme_colors_selection
color.
this mistake was made early on in dev (much of the framework uses this) and needs to get fixed.
Currently selection is split across gverts, gedges, and gpatches. Per discussion, we've decided to unify this such that all elements belong to the same selection set.
If you tweak a patch and then try and adjust the segments of an adjacent gedge it breaks. Everything but the tweaked patch disappears.
Console output:
Traceback (most recent call last):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2214, in draw_callback
return self.ui.draw_callback(context)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2505, in draw_callback
self.draw_callback_themed(context)
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/__init__.py", line 2550, in draw_callback_themed
for (p0,p1,p2,p3) in gpatch.iter_segments(only_visible=True):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 1296, in iter_segments
if not all(self.visible[idx] for idx in lidxs):
File "/Users/jonathanwilliamson/Dropbox (Personal)/blenderDev/addons/cgCookie/scripts/addons/retopoFlow/polystrips.py", line 1296, in <genexpr>
if not all(self.visible[idx] for idx in lidxs):
KeyError: (11, 1)```
![screen shot 2015-01-03 at 10 28 39 pm](https://cloud.githubusercontent.com/assets/1648631/5604776/f6086094-9397-11e4-92e6-fb3b9bb5724c.png)
![screen shot 2015-01-03 at 10 29 26 pm](https://cloud.githubusercontent.com/assets/1648631/5604777/fd6338aa-9397-11e4-8952-9c873d9e1fac.png)
Note: the behavior is slightly different when increasing/decreasing segments.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.