fsrc.close()
del fsrc
- # namespace hack
+ # namespace hack
vars = (
"BMO_OP_SLOT_ELEMENT_BUF",
"BMO_OP_SLOT_BOOL",
def poll(cls, context):
rd = context.scene.render
return rd.engine in cls.COMPAT_ENGINES
-
-
+
+
def use_cpu(context):
cscene = context.scene.cycles
device_type = context.user_preferences.system.compute_device_type
-
+
return (device_type == 'NONE' or cscene.device == 'CPU')
def poll(cls, context):
# node = context.texture_node
return False
- #return node and CyclesButtonsPanel.poll(context)
+ # return node and CyclesButtonsPanel.poll(context)
def draw(self, context):
layout = self.layout
import bpy
idname = self.idname()
as_string = op_as_string(idname)
- # XXX You never quite know what you get from bpy.types, with operators... Operator and OperatorProperties
- # are shadowing each other, and not in the same way for native ops and py ones! See T39158.
+ # XXX You never quite know what you get from bpy.types,
+ # with operators... Operator and OperatorProperties
+ # are shadowing each other, and not in the same way for
+ # native ops and py ones! See T39158.
# op_class = getattr(bpy.types, idname)
op_class = op_get_rna(idname)
descr = op_class.bl_rna.description
def draw_color(self, context, node):
return (1.0, 0.4, 0.216, 0.5)
+
# Mix-in class for all custom nodes in this tree type.
# Defines a poll function to enable instantiation.
-class MyCustomTreeNode :
+class MyCustomTreeNode:
@classmethod
def poll(cls, ntree):
return ntree.bl_idname == 'CustomTreeType'
+
# Derived from the Node base type.
class MyCustomNode(Node, MyCustomTreeNode):
# === Basics ===
import nodeitems_utils
from nodeitems_utils import NodeCategory, NodeItem
+
# our own base class with an appropriate poll function,
# so the categories only show up in our own tree type
class MyNodeCategory(NodeCategory):
# NB: settings values are stored as string expressions,
# for this reason they should be converted to strings using repr()
NodeItem("CustomNodeType", label="Node A", settings={
- "myStringProperty" : repr("Lorem ipsum dolor sit amet"),
- "myFloatProperty" : repr(1.0),
+ "myStringProperty": repr("Lorem ipsum dolor sit amet"),
+ "myFloatProperty": repr(1.0),
}),
NodeItem("CustomNodeType", label="Node B", settings={
- "myStringProperty" : repr("consectetur adipisicing elit"),
- "myFloatProperty" : repr(2.0),
+ "myStringProperty": repr("consectetur adipisicing elit"),
+ "myFloatProperty": repr(2.0),
}),
]),
]
ray_origin = view3d_utils.region_2d_to_origin_3d(region, rv3d, coord)
ray_target = ray_origin + (view_vector * ray_max)
-
def visible_objects_and_duplis():
"""Loop over (object, matrix) pairs (mesh only)"""
col.label(text="Column Two:")
col.prop(scene, "frame_start")
col.prop(scene, "frame_end")
-
+
# Big render button
layout.label(text="Big Button:")
row = layout.row()
row.scale_y = 3.0
row.operator("render.render")
-
+
# Different sizes in a row
layout.label(text="Different button sizes:")
row = layout.row(align=True)
row.operator("render.render")
-
+
sub = row.row()
sub.scale_x = 2.0
sub.operator("render.render")
-
+
row.operator("render.render")
* brush coord/pressure/etc.
* It's more an events design issue, which doesn't split coordinate/pressure/angle
* changing events. We should avoid this after events system re-design */
- if(!stroke->brush_init) {
+ if (!stroke->brush_init) {
copy_v2_v2(stroke->initial_mouse, mouse);
copy_v2_v2(ups->last_rake, mouse);
copy_v2_v2(ups->tex_mouse, mouse);
if (lnors) {
drawDMNormal_userData data;
- MLoop *mloops = dm->getLoopArray(dm);
- MVert *mverts = dm->getVertArray(dm);
+ const MLoop *mloops = dm->getLoopArray(dm);
+ const MVert *mverts = dm->getVertArray(dm);
int i, totloops = dm->getNumLoops(dm);
data.bm = em->bm;
glBegin(GL_LINES);
for (i = 0; i < totloops; i++, mloops++, lnors++) {
float no[3];
- float *co = mverts[mloops->v].co;
+ const float *co = mverts[mloops->v].co;
if (!data.uniform_scale) {
mul_v3_m3v3(no, data.tmat, (float *)lnors);
mul_m3_v3(data.imat, no);
}
else {
- copy_v3_v3(no,(float *)lnors);
+ copy_v3_v3(no, (float *)lnors);
}
mul_v3_fl(no, data.normalsize);
add_v3_v3(no, co);
while (i--) zero_v3(&values[i * 3]);
}
else {
- while (i--) normal_short_to_float_v3(&values[i * 3], (const short*)(*vec)[i]);
+ while (i--) normal_short_to_float_v3(&values[i * 3], (const short *)(*vec)[i]);
}
}
def is_blend(filename):
ext = splitext(filename)[1]
- return (ext in {".blend",})
+ return (ext in {".blend", })
return list(sorted(file_list(mainpath, is_blend)))
print("\nfile contains BOM, remove first 3 bytes: %r\n" % path)
# templates don't have a header but should be pep8
- for d in ("presets", "templates", "examples"):
+ for d in ("presets", "templates_py", "examples"):
if ("%s%s%s" % (os.sep, d, os.sep)) in path:
return 1