Forces sculpt mode with Cookie Cutter interface
- ...
-
The following functions can be rewritten in a subclass:
self.can_start(context)
- returns
True
if Custom Sculpt Mode's ui and data structures can be initialized, elseFalse
- by default, this function checks the following, where
ob
isbpy.context.active_object
:return ob is not None and ob.type == "MESH" and bpy.context.mode == "OBJECT"
- must be rewritten with the
@classmethod
decorator
- returns
self.ui_setup_post()
- called after ui elements have been declared
- create your own ui panels and elements
- add/edit buttons, frames, properties, etc. in the existing structure:
self.info_panel self.inst_paragraphs self.tools_panel self.commit_button self.cancel_button
- hide existing ui elements with the following code (replace
self.info_panel
with any ui element above):self.info_panel.visible = False
self.start_post()
- called after ui and data structures have been initialized
self.add_point_pre(loc)
- called before new point added at current mouse position
loc
argument will be 2D Vector with new point's location- use to evaluate the existing points using the
self.b_pts
list or check custom conditions for adding new point - returns
True
if point can be added, elseFalse
self.add_point_post(new_point)
- called after new point added at current mouse position
new_point
argument will D3Point object with the following attributes:new_point.label
= label string for pointnew_point.location
= 3D location Vector for pointnew_point.surface_normal
= 3D surface normal Vector of the object at this point's locationnew_point.view_direction
= 3D view direction Vector of the viewport at the time this point was placed
self.move_point_post(moved_point)
- called after grabbed point has been placed
moved_point
argument will D3Point object with the following attributes:new_point.label
= label string for pointnew_point.location
= 3D location Vector for pointnew_point.surface_normal
= 3D surface normal Vector of the object at this point's locationnew_point.view_direction
= 3D view direction Vector of the viewport at the time this point was placed
self.end_commit()
- called when Points Picker is committed
- by default, this function switches to object mode
- must end with the following line of code:
self.end_commit_post()
self.end_commit_post()
- called when Points Picker is committed