forked from bartvdbraak/blender
Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3668
This commit is contained in:
parent
c6bbe6c5aa
commit
4da2acae3a
@ -210,10 +210,10 @@ option(WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON)
|
||||
|
||||
option(WITH_PYTHON "Enable Embedded Python API (only disable for development)" ON)
|
||||
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default" ON)
|
||||
mark_as_advanced(WITH_PYTHON) # dont want people disabling this unless they really know what they are doing.
|
||||
mark_as_advanced(WITH_PYTHON) # don't want people disabling this unless they really know what they are doing.
|
||||
mark_as_advanced(WITH_PYTHON_SECURITY) # some distributions see this as a security issue, rather than have them patch it, make a build option.
|
||||
|
||||
option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency, only enable for development)." OFF)
|
||||
option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some efficiency, only enable for development)." OFF)
|
||||
mark_as_advanced(WITH_PYTHON_SAFETY)
|
||||
option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development), installs to PYTHON_SITE_PACKAGES (or CMAKE_INSTALL_PREFIX if WITH_INSTALL_PORTABLE is enabled)." OFF)
|
||||
if(APPLE)
|
||||
@ -225,8 +225,8 @@ if(${CMAKE_VERSION} VERSION_LESS 2.8.8)
|
||||
# add_library OBJECT arg unsupported
|
||||
set(WITH_BUILDINFO OFF)
|
||||
endif()
|
||||
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducable builds (empty string disables this option)")
|
||||
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducable builds (empty string disables this option)")
|
||||
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducible builds (empty string disables this option)")
|
||||
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducible builds (empty string disables this option)")
|
||||
set(CPACK_OVERRIDE_PACKAGENAME "" CACHE STRING "Use instead of the standard packagename (empty string disables this option)")
|
||||
mark_as_advanced(CPACK_OVERRIDE_PACKAGENAME)
|
||||
mark_as_advanced(BUILDINFO_OVERRIDE_DATE)
|
||||
@ -891,7 +891,7 @@ if(WITH_X11)
|
||||
endif()
|
||||
|
||||
if(WITH_X11_XF86VMODE)
|
||||
# XXX, why dont cmake make this available?
|
||||
# XXX, why doesn't cmake make this available?
|
||||
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
|
||||
mark_as_advanced(X11_Xxf86vmode_LIB)
|
||||
if(X11_Xxf86vmode_LIB)
|
||||
@ -988,7 +988,7 @@ endif()
|
||||
if(SUPPORT_SSE2_BUILD)
|
||||
set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}")
|
||||
add_definitions(-D__SSE2__)
|
||||
if(NOT SUPPORT_SSE_BUILD) # dont double up
|
||||
if(NOT SUPPORT_SSE_BUILD) # don't double up
|
||||
add_definitions(-D__MMX__)
|
||||
endif()
|
||||
endif()
|
||||
@ -1001,7 +1001,7 @@ if(MSVC)
|
||||
|
||||
# OSX-Note: as we do cross-compiling with specific set architecture,
|
||||
# endianess-detection and auto-setting is counterproductive
|
||||
# so we just set endianess according CMAKE_OSX_ARCHITECTURES
|
||||
# so we just set endianness according CMAKE_OSX_ARCHITECTURES
|
||||
|
||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
|
||||
add_definitions(-D__LITTLE_ENDIAN__)
|
||||
|
@ -383,7 +383,7 @@ def usage():
|
||||
print("Options:")
|
||||
print("\t--dna-keep-blend: doesn't delete the produced blend file DNA export to html")
|
||||
print("\t--dna-debug: sets the logging level to DEBUG (lots of additional info)")
|
||||
print("\t--dna-versioned saves version informations in the html and blend filenames")
|
||||
print("\t--dna-versioned saves version information in the html and blend filenames")
|
||||
print("\t--dna-overwrite-css overwrite dna.css, useful when modifying css in the script")
|
||||
print("Examples:")
|
||||
print("\tdefault: % blender2.5 --background -noaudio --python BlendFileDnaExporter_25.py")
|
||||
|
@ -8,7 +8,7 @@ where "blender2.5" is your blender executable or a symlink to it.
|
||||
This creates a temporary dna.blend to be inspected and it produces two new files:
|
||||
|
||||
* dna.html: the list of all the structures saved in a blend file with the blender2.5
|
||||
executable you have used. If you enable build informations when you build blender,
|
||||
executable you have used. If you enable build information when you build blender,
|
||||
the dna.html file will also show which svn revision the html refers to.
|
||||
* dna.css: the css for the html above
|
||||
|
||||
@ -20,7 +20,7 @@ Usage:
|
||||
Options:
|
||||
--dna-keep-blend: doesn't delete the produced blend file DNA export to html
|
||||
--dna-debug: sets the logging level to DEBUG (lots of additional info)
|
||||
--dna-versioned saves version informations in the html and blend filenames
|
||||
--dna-versioned saves version information in the html and blend filenames
|
||||
--dna-overwrite-css overwrite dna.css, useful when modifying css in the script
|
||||
Examples:
|
||||
default: % blender2.5 --background -noaudio --python BlendFileDnaExporter_25.py
|
||||
|
@ -204,7 +204,7 @@ Nowadays, little-endian is the most commonly used.
|
||||
<a name="example-endianess"></a>
|
||||
<div class="box">
|
||||
<p onclick="location.href='#example-endianess'" class="box-title">
|
||||
Endianess Example
|
||||
Endianness Example
|
||||
</p>
|
||||
<p>
|
||||
Writing the integer <code class="evidence">0x4A3B2C1Dh</code>, will be ordered:
|
||||
@ -826,7 +826,7 @@ Note
|
||||
</p>
|
||||
<p>
|
||||
A file-block containing a list refers to the DNA structure and has a count larger
|
||||
than 1. For example Vertexes and Faces are stored in this way.
|
||||
than 1. For example Vertices and Faces are stored in this way.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -5,7 +5,7 @@ NOTE: This file does not cover memutil and smart pointers and reference counted
|
||||
garbage collection, which are contained in the memutil module.
|
||||
|
||||
Blender takes care of dynamic memory allocation using a set of own functions
|
||||
which are recognizeable through their MEM_ prefix. All memory allocation and
|
||||
which are recognizable through their MEM_ prefix. All memory allocation and
|
||||
deallocation in blender is done through these functions.
|
||||
|
||||
The following functions are available through MEM_guardedalloc.h:
|
||||
|
@ -35,7 +35,7 @@ Contents
|
||||
4.4 specials
|
||||
15. KEYEVT
|
||||
16. LINK and INLINK
|
||||
4.5 uiButton control fuctions
|
||||
4.5 uiButton control functions
|
||||
|
||||
|
||||
----------------1. General notes
|
||||
@ -130,7 +130,7 @@ It walks through the lists in a rather complex manner:
|
||||
/* so we create a 2nd loop for it */
|
||||
- while first block is a menu
|
||||
- if block is a menu and not initialized:
|
||||
- initalize 'saveunder'
|
||||
- initialize 'saveunder'
|
||||
- draw it
|
||||
- get event from queue
|
||||
- call uiDoBlock (handles buttons for single block)
|
||||
@ -217,7 +217,7 @@ void uiBlockSetButmFunc(uiBlock *block, void (*menufunc)(void *arg, int event),
|
||||
void uiAutoBlock(uiBlock *block, float minx, float miny, float sizex, float sizey, UI_BLOCK_ROWS)
|
||||
|
||||
Sets the buttons in this block to automatically align, and fit within boundaries.
|
||||
Internally it allows multiple colums or rows as well. Only 'row order' has been implemented.
|
||||
Internally it allows multiple columns or rows as well. Only 'row order' has been implemented.
|
||||
The uiDefBut definitions don't need coordinates as input here, but instead:
|
||||
- first value (x1) to indicate row number
|
||||
- width and height values (if filled in) will be used to define a relative width/height.
|
||||
@ -253,7 +253,7 @@ In Blender a button can do four things:
|
||||
Internally, each button or menu item is a 'uiButton', with a generic API and handling:
|
||||
ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
|
||||
|
||||
Beacause a lot of obscure generic (re-use) happens here, translation calls have been made
|
||||
Because a lot of obscure generic (re-use) happens here, translation calls have been made
|
||||
for each most button types individually.
|
||||
|
||||
|
||||
@ -442,7 +442,7 @@ uiDefIconBut(block, INLINK, 0, ICON_INLINK, x1, y1, w, h, void *poin, short from
|
||||
|
||||
|
||||
|
||||
------------- 4.5 uiButton control fuctions
|
||||
------------- 4.5 uiButton control functions
|
||||
|
||||
|
||||
void uiButSetFunc(uiBut *but, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2)
|
||||
|
@ -26,5 +26,5 @@ col += mathutils.Color((0.25, 0.0, 0.0))
|
||||
# can printed as integers
|
||||
print("Color: %d, %d, %d" % (col * 255.0)[:])
|
||||
|
||||
# This example prints the color as hexidecimal
|
||||
print("Hexidecimal: %.2x%.2x%.2x" % (col * 255.0)[:])
|
||||
# This example prints the color as hexadecimal
|
||||
print("Hexadecimal: %.2x%.2x%.2x" % (col * 255.0)[:])
|
||||
|
@ -15,7 +15,7 @@ quat_a = mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(90.0))
|
||||
quat_b = mathutils.Quaternion((0.0, 0.0, 1.0), math.radians(45.0))
|
||||
quat_out = quat_a * quat_b
|
||||
|
||||
# print the quat, euler degrees for mear mortals and (axis, angle)
|
||||
# print the quat, euler degrees for mere mortals and (axis, angle)
|
||||
print("Final Rotation:")
|
||||
print(quat_out)
|
||||
print("%.2f, %.2f, %.2f" % tuple(math.degrees(a) for a in quat_out.to_euler()))
|
||||
|
@ -69,7 +69,7 @@ offers a set of extensive examples, including advanced features.
|
||||
|
||||
.. function:: glBegin(mode):
|
||||
|
||||
Delimit the vertices of a primitive or a group of like primatives
|
||||
Delimit the vertices of a primitive or a group of like primitives
|
||||
|
||||
.. seealso:: `OpenGL Docs <https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml>`__
|
||||
|
||||
|
@ -145,8 +145,8 @@ that happens to redraw but is more flexible and integrates better with Blenders
|
||||
|
||||
**Ok, Ok! I still want to draw from Python**
|
||||
|
||||
If you insist - yes its possible, but scripts that use this hack wont be considered
|
||||
for inclusion in Blender and any issues with using it wont be considered bugs,
|
||||
If you insist - yes its possible, but scripts that use this hack won't be considered
|
||||
for inclusion in Blender and any issues with using it won't be considered bugs,
|
||||
this is also not guaranteed to work in future releases.
|
||||
|
||||
.. code-block:: python
|
||||
@ -265,7 +265,7 @@ All 3 data types can be used for exporting,
|
||||
the choice mostly depends on whether the target format supports ngons or not.
|
||||
|
||||
- Polygons are the most direct & efficient way to export providing they convert into the output format easily enough.
|
||||
- Tessfaces work well for exporting to formats which dont support ngons,
|
||||
- Tessfaces work well for exporting to formats which don't support ngons,
|
||||
in fact this is the only place where their use is encouraged.
|
||||
- BMesh-Faces can work for exporting too but may not be necessary if polygons can be used
|
||||
since using bmesh gives some overhead because its not the native storage format in object mode.
|
||||
@ -551,7 +551,7 @@ to avoid getting stuck too deep in encoding problems - here are some suggestions
|
||||
|
||||
.. note::
|
||||
|
||||
Sometimes it's preferrable to avoid string encoding issues by using bytes instead of Python strings,
|
||||
Sometimes it's preferable to avoid string encoding issues by using bytes instead of Python strings,
|
||||
when reading some input its less trouble to read it as binary data
|
||||
though you will still need to decide how to treat any strings you want to use with Blender,
|
||||
some importers do this.
|
||||
|
@ -209,7 +209,7 @@ Bundled Python & Extensions
|
||||
===========================
|
||||
|
||||
The Blender releases distributed from blender.org include a complete Python installation on all platforms,
|
||||
this has the disadvantage that any extensions you have installed in your systems Python wont be found by Blender.
|
||||
this has the disadvantage that any extensions you have installed in your systems Python won't be found by Blender.
|
||||
|
||||
There are 2 ways around this:
|
||||
|
||||
|
@ -303,7 +303,7 @@ def main():
|
||||
elif tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_MESH:
|
||||
tp_str = ":class:`bpy.types.Mesh`"
|
||||
else:
|
||||
print("Cant find", vars_dict_reverse[tp_sub])
|
||||
print("Can't find", vars_dict_reverse[tp_sub])
|
||||
assert(0)
|
||||
|
||||
elif tp == BMO_OP_SLOT_ELEMENT_BUF:
|
||||
@ -340,10 +340,10 @@ def main():
|
||||
elif tp_sub == BMO_OP_SLOT_SUBTYPE_MAP_INTERNAL:
|
||||
tp_str += "unknown internal data, not compatible with python"
|
||||
else:
|
||||
print("Cant find", vars_dict_reverse[tp_sub])
|
||||
print("Can't find", vars_dict_reverse[tp_sub])
|
||||
assert(0)
|
||||
else:
|
||||
print("Cant find", vars_dict_reverse[tp])
|
||||
print("Can't find", vars_dict_reverse[tp])
|
||||
assert(0)
|
||||
|
||||
args_wash.append((name, tp_str, comment))
|
||||
|
@ -113,7 +113,7 @@ def api_dump():
|
||||
)
|
||||
del props
|
||||
|
||||
# python props, tricky since we dont know much about them.
|
||||
# python props, tricky since we don't know much about them.
|
||||
for prop_id, attr in struct_info.get_py_properties():
|
||||
|
||||
dump_class[prop_id] = (
|
||||
@ -289,7 +289,7 @@ def api_changelog(api_from, api_to, api_out):
|
||||
if props_old:
|
||||
write_title("Removed", "^")
|
||||
for prop_id in props_old:
|
||||
fw("* **%s**\n" % prop_id) # cant link to remvoed docs
|
||||
fw("* **%s**\n" % prop_id) # can't link to removed docs
|
||||
fw("\n")
|
||||
|
||||
if props_moved:
|
||||
@ -351,7 +351,7 @@ def main():
|
||||
"--api_out", dest="api_out", metavar='FILE',
|
||||
help="Output sphinx changelog")
|
||||
|
||||
args = parser.parse_args(argv) # In this example we wont use the args
|
||||
args = parser.parse_args(argv) # In this example we won't use the args
|
||||
|
||||
if not argv:
|
||||
print("No args given!")
|
||||
|
@ -491,7 +491,7 @@ if ARGS.sphinx_build_pdf:
|
||||
|
||||
# --------------------------------API DUMP--------------------------------------
|
||||
|
||||
# lame, python wont give some access
|
||||
# lame, python won't give some access
|
||||
ClassMethodDescriptorType = type(dict.__dict__['fromkeys'])
|
||||
MethodDescriptorType = type(dict.get)
|
||||
GetSetDescriptorType = type(int.real)
|
||||
@ -690,7 +690,7 @@ def pyfunc2sphinx(ident, fw, module_name, type_name, identifier, py_func, is_cla
|
||||
if not is_class:
|
||||
func_type = "function"
|
||||
|
||||
# ther rest are class methods
|
||||
# the rest are class methods
|
||||
elif arg_str.startswith("(self, ") or arg_str == "(self)":
|
||||
arg_str = "()" if (arg_str == "(self)") else ("(" + arg_str[7:])
|
||||
func_type = "method"
|
||||
@ -824,7 +824,7 @@ def pymodule2sphinx(basepath, module_name, module, title):
|
||||
fw(".. module:: %s\n\n" % module_name)
|
||||
|
||||
if module.__doc__:
|
||||
# Note, may contain sphinx syntax, dont mangle!
|
||||
# Note, may contain sphinx syntax, don't mangle!
|
||||
fw(module.__doc__.strip())
|
||||
fw("\n\n")
|
||||
|
||||
@ -1120,7 +1120,7 @@ def pycontext2sphinx(basepath):
|
||||
def write_contex_cls():
|
||||
|
||||
fw(title_string("Global Context", "-"))
|
||||
fw("These properties are avilable in any contexts.\n\n")
|
||||
fw("These properties are available in any contexts.\n\n")
|
||||
|
||||
# very silly. could make these global and only access once.
|
||||
# structs, funcs, ops, props = rna_info.BuildRNAInfo()
|
||||
@ -1144,7 +1144,7 @@ def pycontext2sphinx(basepath):
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
# special exception, cant use genric code here for enums
|
||||
# special exception, can't use generic code here for enums
|
||||
if prop.type == "enum":
|
||||
enum_text = pyrna_enum2sphinx(prop)
|
||||
if enum_text:
|
||||
@ -1266,7 +1266,7 @@ def pyrna2sphinx(basepath):
|
||||
if prop.name or prop.description:
|
||||
fw(ident + " " + ", ".join(val for val in (prop.name, prop.description) if val) + "\n\n")
|
||||
|
||||
# special exception, cant use genric code here for enums
|
||||
# special exception, can't use generic code here for enums
|
||||
if enum_text:
|
||||
write_indented_lines(ident + " ", fw, enum_text)
|
||||
fw("\n")
|
||||
@ -1365,7 +1365,7 @@ def pyrna2sphinx(basepath):
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
# special exception, cant use genric code here for enums
|
||||
# special exception, can't use generic code here for enums
|
||||
if prop.type == "enum":
|
||||
enum_text = pyrna_enum2sphinx(prop)
|
||||
if enum_text:
|
||||
@ -1398,7 +1398,7 @@ def pyrna2sphinx(basepath):
|
||||
elif func.return_values: # multiple return values
|
||||
fw(" :return (%s):\n" % ", ".join(prop.identifier for prop in func.return_values))
|
||||
for prop in func.return_values:
|
||||
# TODO, pyrna_enum2sphinx for multiple return values... actually dont
|
||||
# TODO, pyrna_enum2sphinx for multiple return values... actually don't
|
||||
# think we even use this but still!!!
|
||||
type_descr = prop.get_type_description(
|
||||
as_ret=True, class_fmt=":class:`%s`", collection_id=_BPY_PROP_COLLECTION_ID)
|
||||
|
@ -58,7 +58,7 @@ SPHINX_WORKDIR="$(mktemp --directory --suffix=.sphinx)"
|
||||
# Generate reStructuredText (blender/python only)
|
||||
|
||||
if $DO_EXE_BLENDER ; then
|
||||
# dont delete existing docs, now partial updates are used for quick builds.
|
||||
# don't delete existing docs, now partial updates are used for quick builds.
|
||||
$BLENDER_BIN \
|
||||
--background \
|
||||
-noaudio \
|
||||
|
@ -881,7 +881,7 @@ class pyBluePrintCirclesShader(StrokeShader):
|
||||
# times as possible.
|
||||
#
|
||||
# This works because the phases and directions are only
|
||||
# dependant on the stroke length, and the chance that
|
||||
# dependent on the stroke length, and the chance that
|
||||
# stroke.resample() above produces strokes of the same length
|
||||
# is quite high.
|
||||
#
|
||||
|
@ -352,7 +352,7 @@ def enable(module_name, *, default_set=False, persistent=False, handle_error=Non
|
||||
mod.__time__ = os.path.getmtime(mod.__file__)
|
||||
mod.__addon_enabled__ = False
|
||||
except Exception as ex:
|
||||
# if the addon doesn't exist, dont print full traceback
|
||||
# if the addon doesn't exist, don't print full traceback
|
||||
if type(ex) is ImportError and ex.name == module_name:
|
||||
print("addon not found:", repr(module_name))
|
||||
else:
|
||||
|
@ -34,7 +34,7 @@ IS_TESTING = False
|
||||
|
||||
def drepr(string):
|
||||
# is there a less crappy way to do this in python?, re.escape also escapes
|
||||
# single quotes strings so cant use it.
|
||||
# single quotes strings so can't use it.
|
||||
return '"%s"' % repr(string)[1:-1].replace("\"", "\\\"").replace("\\'", "'")
|
||||
|
||||
|
||||
|
@ -248,7 +248,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
|
||||
# Now here is the *ugly* hack!
|
||||
# Unfortunately, all classes we want to access are not available from bpy.types (OperatorProperties subclasses
|
||||
# are not here, as they have the same name as matching Operator ones :( ). So we use __subclasses__() calls
|
||||
# to walk through all rna hierachy.
|
||||
# to walk through all rna hierarchy.
|
||||
# But unregistered classes remain listed by relevant __subclasses__() calls (be it a Py or BPY/RNA bug),
|
||||
# and obviously the matching RNA struct exists no more, so trying to access their data (even the identifier)
|
||||
# quickly leads to segfault!
|
||||
@ -498,7 +498,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
def extract_strings_split(node):
|
||||
"""
|
||||
Returns a list args as returned by 'extract_strings()', but split into groups based on separate_nodes, this way
|
||||
expressions like ("A" if test else "B") wont be merged but "A" + "B" will.
|
||||
expressions like ("A" if test else "B") won't be merged but "A" + "B" will.
|
||||
"""
|
||||
estr_ls = []
|
||||
nds_ls = []
|
||||
|
@ -262,7 +262,7 @@ PYGETTEXT_KEYWORDS = (() +
|
||||
|
||||
# Check printf mismatches between msgid and msgstr.
|
||||
CHECK_PRINTF_FORMAT = (
|
||||
r"(?!<%)(?:%%)*%" # Begining, with handling for crazy things like '%%%%%s'
|
||||
r"(?!<%)(?:%%)*%" # Beginning, with handling for crazy things like '%%%%%s'
|
||||
r"[-+#0]?" # Flags (note: do not add the ' ' (space) flag here, generates too much false positives!)
|
||||
r"(?:\*|[0-9]+)?" # Width
|
||||
r"(?:\.(?:\*|[0-9]+))?" # Precision
|
||||
|
@ -457,7 +457,7 @@ class I18nMessages:
|
||||
def check(self, fix=False):
|
||||
"""
|
||||
Check consistency between messages and their keys!
|
||||
Check messages using format stuff are consistant between msgid and msgstr!
|
||||
Check messages using format stuff are consistent between msgid and msgstr!
|
||||
If fix is True, tries to fix the issues.
|
||||
Return a list of found errors (empty if everything went OK!).
|
||||
"""
|
||||
|
@ -28,7 +28,7 @@
|
||||
# Windows or OsX.
|
||||
# This uses ctypes, as there is no py3 binding for fribidi currently.
|
||||
# This implies you only need the compiled C library to run it.
|
||||
# Finally, note that it handles some formating/escape codes (like
|
||||
# Finally, note that it handles some formatting/escape codes (like
|
||||
# \", %s, %x12, %.4f, etc.), protecting them from ugly (evil) fribidi,
|
||||
# which seems completely unaware of such things (as unicode is...).
|
||||
|
||||
@ -79,7 +79,7 @@ MENU_DETECT_REGEX = re.compile("%x\\d+\\|")
|
||||
##### Kernel processing funcs. #####
|
||||
def protect_format_seq(msg):
|
||||
"""
|
||||
Find some specific escaping/formating sequences (like \", %s, etc.,
|
||||
Find some specific escaping/formatting sequences (like \", %s, etc.,
|
||||
and protect them from any modification!
|
||||
"""
|
||||
# LRM = "\u200E"
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
# This module can get render info without running from inside blender.
|
||||
#
|
||||
# This struct wont change according to Ton.
|
||||
# This struct won't change according to Ton.
|
||||
# Note that the size differs on 32/64bit
|
||||
#
|
||||
# typedef struct BHead {
|
||||
|
@ -301,7 +301,7 @@ def resolve_ncase(path):
|
||||
if f_iter_nocase:
|
||||
return _os.path.join(dirpath, f_iter_nocase) + suffix, True
|
||||
else:
|
||||
# cant find the right one, just return the path as is.
|
||||
# can't find the right one, just return the path as is.
|
||||
return path, False
|
||||
|
||||
ncase_path, found = _ncase_path_found(path)
|
||||
|
@ -32,7 +32,7 @@ __all__ = (
|
||||
|
||||
def mesh_linked_uv_islands(mesh):
|
||||
"""
|
||||
Splits the mesh into connected polygons, use this for seperating cubes from
|
||||
Splits the mesh into connected polygons, use this for separating cubes from
|
||||
other mesh elements within 1 mesh datablock.
|
||||
|
||||
:arg mesh: the mesh used to group with.
|
||||
@ -92,7 +92,7 @@ def mesh_linked_uv_islands(mesh):
|
||||
|
||||
def mesh_linked_tessfaces(mesh):
|
||||
"""
|
||||
Splits the mesh into connected faces, use this for seperating cubes from
|
||||
Splits the mesh into connected faces, use this for separating cubes from
|
||||
other mesh elements within 1 mesh datablock.
|
||||
|
||||
:arg mesh: the mesh used to group with.
|
||||
@ -182,7 +182,7 @@ def edge_loops_from_tessfaces(mesh, tessfaces=None, seams=()):
|
||||
Edge loops defined by faces
|
||||
|
||||
Takes me.tessfaces or a list of faces and returns the edge loops
|
||||
These edge loops are the edges that sit between quads, so they dont touch
|
||||
These edge loops are the edges that sit between quads, so they don't touch
|
||||
1 quad, note: not connected will make 2 edge loops,
|
||||
both only containing 2 edges.
|
||||
|
||||
@ -252,7 +252,7 @@ def edge_loops_from_tessfaces(mesh, tessfaces=None, seams=()):
|
||||
i = ed_adj.index(context_loop[-2])
|
||||
context_loop.append(ed_adj[not i])
|
||||
|
||||
# Dont look at this again
|
||||
# Don't look at this again
|
||||
del ed_adj[:]
|
||||
|
||||
return edge_loops
|
||||
@ -377,7 +377,7 @@ def ngon_tessellate(from_data, indices, fix_loops=True):
|
||||
|
||||
else:
|
||||
"""
|
||||
Seperate this loop into multiple loops be finding edges that are
|
||||
Separate this loop into multiple loops be finding edges that are
|
||||
used twice. This is used by lightwave LWO files a lot
|
||||
"""
|
||||
|
||||
|
@ -37,7 +37,7 @@ changes have been made:
|
||||
- limit list of modules to prefix in case of "from w"
|
||||
- sorted modules
|
||||
- added sphinx documentation
|
||||
- complete() returns a blank list of the module isnt found
|
||||
- complete() returns a blank list of the module isn't found
|
||||
"""
|
||||
|
||||
|
||||
|
@ -68,7 +68,7 @@ def get_console(console_id):
|
||||
# check if clearing the namespace is needed to avoid a memory leak.
|
||||
# the window manager is normally loaded with new blend files
|
||||
# so this is a reasonable way to deal with namespace clearing.
|
||||
# bpy.data hashing is reset by undo so cant be used.
|
||||
# bpy.data hashing is reset by undo so can't be used.
|
||||
hash_prev = getattr(get_console, "consoles_namespace_hash", 0)
|
||||
|
||||
if hash_prev != hash_next:
|
||||
|
@ -83,7 +83,7 @@ def float_as_string(f):
|
||||
|
||||
|
||||
def get_py_class_from_rna(rna_type):
|
||||
""" Get's the Python type for a class which isn't necessarily added to ``bpy.types``.
|
||||
""" Gets the Python type for a class which isn't necessarily added to ``bpy.types``.
|
||||
"""
|
||||
identifier = rna_type.identifier
|
||||
py_class = getattr(bpy.types, identifier, None)
|
||||
|
@ -32,7 +32,7 @@ def build_property_typemap(skip_classes, skip_typemap):
|
||||
if issubclass(cls, skip_classes):
|
||||
continue
|
||||
|
||||
# # to support skip-save we cant get all props
|
||||
# # to support skip-save we can't get all props
|
||||
# properties = cls.bl_rna.properties.keys()
|
||||
properties = []
|
||||
for prop_id, prop in cls.bl_rna.properties.items():
|
||||
@ -149,7 +149,7 @@ def rna2xml(fw=print_ln,
|
||||
subvalue_rna = value.path_resolve(prop, False)
|
||||
if type(subvalue_rna).__name__ == "bpy_prop_array":
|
||||
# check if this is a 0-1 color (rgb, rgba)
|
||||
# in that case write as a hexidecimal
|
||||
# in that case write as a hexadecimal
|
||||
prop_rna = value.bl_rna.properties[prop]
|
||||
if (prop_rna.subtype == 'COLOR_GAMMA' and
|
||||
prop_rna.hard_min == 0.0 and
|
||||
@ -274,7 +274,7 @@ def xml2rna(root_xml,
|
||||
tp_name = 'STR'
|
||||
elif hasattr(subvalue, "__len__"):
|
||||
if value_xml.startswith("#"):
|
||||
# read hexidecimal value as float array
|
||||
# read hexadecimal value as float array
|
||||
value_xml_split = value_xml[1:]
|
||||
value_xml_coerce = [int(value_xml_split[i:i + 2], 16) /
|
||||
255 for i in range(0, len(value_xml_split), 2)]
|
||||
|
@ -473,7 +473,7 @@ class ShapeTransfer(Operator):
|
||||
objects = [ob for ob in context.selected_editable_objects
|
||||
if ob != ob_act]
|
||||
|
||||
if 1: # swap from/to, means we cant copy to many at once.
|
||||
if 1: # swap from/to, means we can't copy to many at once.
|
||||
if len(objects) != 1:
|
||||
self.report({'ERROR'},
|
||||
("Expected one other selected "
|
||||
|
@ -52,7 +52,7 @@ def extend(obj, operator, EXTEND_MODE):
|
||||
|
||||
# our own local walker
|
||||
def walk_face_init(faces, f_act):
|
||||
# first tag all faces True (so we dont uvmap them)
|
||||
# first tag all faces True (so we don't uvmap them)
|
||||
for f in bm.faces:
|
||||
f.tag = True
|
||||
# then tag faces arg False
|
||||
|
@ -450,7 +450,7 @@ def lightmap_uvpack(meshes,
|
||||
max_int_dimension = int(((side_len / float_to_int_factor)) / PREF_BOX_DIV)
|
||||
ok = True
|
||||
else:
|
||||
max_int_dimension = 0.0 # wont be used
|
||||
max_int_dimension = 0.0 # won't be used
|
||||
ok = False
|
||||
|
||||
# RECURSIVE pretty face grouping
|
||||
|
@ -271,7 +271,7 @@ def optiRotateUvIsland(faces):
|
||||
# orient them vertically (could be an option)
|
||||
minx, miny, maxx, maxy = boundsIsland(faces)
|
||||
w, h = maxx - minx, maxy - miny
|
||||
# use epsilon so we dont randomly rotate (almost) perfect squares.
|
||||
# use epsilon so we don't randomly rotate (almost) perfect squares.
|
||||
if h + 0.00001 < w:
|
||||
from math import pi
|
||||
angle = pi / 2.0
|
||||
@ -357,7 +357,7 @@ def mergeUvIslands(islandList):
|
||||
BREAK = True
|
||||
break
|
||||
|
||||
# Now we have 2 islands, if the efficiency of the islands lowers theres an
|
||||
# Now we have 2 islands, if the efficiency of the islands lowers there's an
|
||||
# increasing likely hood that we can fit merge into the bigger UV island.
|
||||
# this ensures a tight fit.
|
||||
|
||||
@ -625,7 +625,7 @@ def packIslands(islandList):
|
||||
h = SMALL_NUM
|
||||
|
||||
"""Save the offset to be applied later,
|
||||
we could apply to the UVs now and allign them to the bottom left hand area
|
||||
we could apply to the UVs now and align them to the bottom left hand area
|
||||
of the UV coords like the box packer imagines they are
|
||||
but, its quicker just to remember their offset and
|
||||
apply the packing and offset in 1 pass """
|
||||
@ -873,7 +873,7 @@ def main(context,
|
||||
|
||||
# This while only gathers projection vecs, faces are assigned later on.
|
||||
while 1:
|
||||
# If theres none there then start with the largest face
|
||||
# If there's none there then start with the largest face
|
||||
|
||||
# add all the faces that are close.
|
||||
for fIdx in range(len(tempMeshFaces) - 1, -1, -1):
|
||||
|
@ -98,7 +98,7 @@ def operator_path_is_undo(context, data_path):
|
||||
# note that if we have data paths that use strings this could fail
|
||||
# luckily we don't do this!
|
||||
#
|
||||
# When we cant find the data owner assume no undo is needed.
|
||||
# When we can't find the data owner assume no undo is needed.
|
||||
data_path_head = data_path.rpartition(".")[0]
|
||||
|
||||
if not data_path_head:
|
||||
|
@ -944,7 +944,7 @@ class CLIP_PT_stabilization(CLIP_PT_reconstruction_panel, Panel):
|
||||
sub.menu('CLIP_MT_stabilize_2d_specials', text="",
|
||||
icon='DOWNARROW_HLT')
|
||||
|
||||
# Usually we don't hide things from iterface, but here every pixel of
|
||||
# Usually we don't hide things from interface, but here every pixel of
|
||||
# vertical space is precious.
|
||||
if stab.use_stabilize_rotation:
|
||||
box.label(text="Tracks For Rotation / Scale")
|
||||
|
@ -1294,7 +1294,7 @@ class INFO_MT_add(Menu):
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
# note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
|
||||
# note, don't use 'EXEC_SCREEN' or operators won't get the 'v3d' context.
|
||||
|
||||
# Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents
|
||||
# "align_view" to work on first call (see [#32719]).
|
||||
|
@ -95,7 +95,7 @@ def main():
|
||||
help="Render an image to the specified path",
|
||||
)
|
||||
|
||||
args = parser.parse_args(argv) # In this example we wont use the args
|
||||
args = parser.parse_args(argv) # In this example we won't use the args
|
||||
|
||||
if not argv:
|
||||
parser.print_help()
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
|
||||
/**
|
||||
* Returns true when either Blender is compiled with HDF5 support and
|
||||
* the archive was succesfully opened (valid() will also return true),
|
||||
* the archive was successfully opened (valid() will also return true),
|
||||
* or when Blender was built without HDF5 support but a HDF5 file was
|
||||
* detected (valid() will return false).
|
||||
*/
|
||||
|
@ -154,7 +154,7 @@ void AbcCurveWriter::do_write()
|
||||
if (nurbs->knotsu != NULL) {
|
||||
const size_t num_knots = KNOTSU(nurbs);
|
||||
|
||||
/* Add an extra knot at the beggining and end of the array since most apps
|
||||
/* Add an extra knot at the beginning and end of the array since most apps
|
||||
* require/expect them. */
|
||||
knots.resize(num_knots + 2);
|
||||
|
||||
|
@ -103,7 +103,7 @@ static void get_knots(std::vector<float> &knots, const int num_knots, float *nu_
|
||||
return;
|
||||
}
|
||||
|
||||
/* Add an extra knot at the beggining and end of the array since most apps
|
||||
/* Add an extra knot at the beginning and end of the array since most apps
|
||||
* require/expect them. */
|
||||
knots.reserve(num_knots + 2);
|
||||
|
||||
@ -167,7 +167,7 @@ void AbcNurbsWriter::do_write()
|
||||
sample.setNu(nu->pntsu);
|
||||
sample.setNv(nu->pntsv);
|
||||
|
||||
/* TODO(kevin): to accomodate other software we should duplicate control
|
||||
/* TODO(kevin): to accommodate other software we should duplicate control
|
||||
* points to indicate that a NURBS is cyclic. */
|
||||
OCompoundProperty user_props = m_nurbs_schema[count].getUserProperties();
|
||||
|
||||
|
@ -167,7 +167,7 @@ typedef enum {
|
||||
} AbcAxisSwapMode;
|
||||
|
||||
/* Create a rotation matrix for each axis from euler angles.
|
||||
* Euler angles are swaped to change coordinate system. */
|
||||
* Euler angles are swapped to change coordinate system. */
|
||||
void create_swapped_rotation_matrix(
|
||||
float rot_x_mat[3][3], float rot_y_mat[3][3],
|
||||
float rot_z_mat[3][3], const float euler[3],
|
||||
@ -197,7 +197,7 @@ public:
|
||||
/* *************************** */
|
||||
|
||||
/**
|
||||
* Utility class whose purpose is to more easily log related informations. An
|
||||
* Utility class whose purpose is to more easily log related information. An
|
||||
* instance of the SimpleLogger can be created in any context, and will hold a
|
||||
* copy of all the strings passed to its output stream.
|
||||
*
|
||||
|
@ -293,7 +293,7 @@ static void export_endjob(void *customdata)
|
||||
|
||||
if (!data->settings.logger.empty()) {
|
||||
std::cerr << data->settings.logger;
|
||||
WM_report(RPT_ERROR, "Errors occured during the export, look in the console to know more...");
|
||||
WM_report(RPT_ERROR, "Errors occurred during the export, look in the console to know more...");
|
||||
}
|
||||
|
||||
G.is_rendering = false;
|
||||
@ -318,7 +318,7 @@ bool ABC_export(
|
||||
* ExportJobData contains an ExportSettings containing a SimpleLogger.
|
||||
*
|
||||
* Since ExportJobData is a C-style struct dynamically allocated with
|
||||
* MEM_mallocN (see above), its construtor is never called, therefore the
|
||||
* MEM_mallocN (see above), its constructor is never called, therefore the
|
||||
* ExportSettings constructor is not called which implies that the
|
||||
* SimpleLogger one is not called either. SimpleLogger in turn does not call
|
||||
* the constructor of its data members which ultimately means that its
|
||||
@ -797,7 +797,7 @@ static void import_endjob(void *user_data)
|
||||
for (iter = data->readers.begin(); iter != data->readers.end(); ++iter) {
|
||||
Object *ob = (*iter)->object();
|
||||
|
||||
/* It's possible that cancellation occured between the creation of
|
||||
/* It's possible that cancellation occurred between the creation of
|
||||
* the reader and the creation of the Blender object. */
|
||||
if (ob == NULL) continue;
|
||||
|
||||
|
@ -85,7 +85,7 @@ public:
|
||||
/**
|
||||
* This method will be called if an error in the loading process occurred and the loader cannot
|
||||
* continue to load. The writer should undo all operations that have been performed.
|
||||
* \param errorMessage A message containing informations about the error that occurred.
|
||||
* \param errorMessage A message containing information about the error that occurred.
|
||||
*/
|
||||
void cancel(const COLLADAFW::String& errorMessage);
|
||||
|
||||
|
@ -709,7 +709,7 @@ int ANIM_scene_get_keyingset_index(Scene *scene, KeyingSet *ks)
|
||||
}
|
||||
|
||||
/* Get Keying Set to use for Auto-Keyframing some transforms */
|
||||
KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformKSName)
|
||||
KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *transformKSName)
|
||||
{
|
||||
/* get KeyingSet to use
|
||||
* - use the active KeyingSet if defined (and user wants to use it for all autokeying),
|
||||
@ -720,7 +720,7 @@ KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformK
|
||||
else if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL))
|
||||
return ANIM_builtin_keyingset_get_named(NULL, ANIM_KS_AVAILABLE_ID);
|
||||
else
|
||||
return ANIM_builtin_keyingset_get_named(NULL, tranformKSName);
|
||||
return ANIM_builtin_keyingset_get_named(NULL, transformKSName);
|
||||
}
|
||||
|
||||
/* Menu of All Keying Sets ----------------------------- */
|
||||
|
@ -979,7 +979,7 @@ int load(istream& in, ViewMap *vm, ProgressBar *pb)
|
||||
READ(flags);
|
||||
Options::setFlags(flags);
|
||||
|
||||
// Read the size of the five ViewMap's lists (with some extra informations for the ViewVertices)
|
||||
// Read the size of the five ViewMap's lists (with some extra information for the ViewVertices)
|
||||
// and instantiate them (with default costructors)
|
||||
unsigned vs_s, fe_s, fe_rle1, fe_rle2, sv_s, ve_s, vv_s, vv_rle1, vv_rle2;
|
||||
READ(vs_s);
|
||||
@ -1118,7 +1118,7 @@ int save(ostream& out, ViewMap *vm, ProgressBar *pb)
|
||||
unsigned char flags = Options::getFlags();
|
||||
WRITE(flags);
|
||||
|
||||
// Write the size of the five lists (with some extra informations for the ViewVertices)
|
||||
// Write the size of the five lists (with some extra information for the ViewVertices)
|
||||
unsigned size;
|
||||
size = vm->ViewShapes().size();
|
||||
WRITE(size);
|
||||
|
@ -67,7 +67,7 @@ typedef struct DDSData {
|
||||
*/
|
||||
|
||||
/* ibuf->ftype flag, main image types */
|
||||
/* Warning: Keep explicit value assignements here, this file is included in areas where not all format defines
|
||||
/* Warning: Keep explicit value assignments here, this file is included in areas where not all format defines
|
||||
* are set (e.g. intern/dds only get WITH_DDS, even if TIFF, HDR etc are also defined). See T46524. */
|
||||
enum eImbTypes {
|
||||
IMB_FTYPE_PNG = 1,
|
||||
@ -254,7 +254,7 @@ typedef struct ImBuf {
|
||||
#define IB_tilecache (1 << 11)
|
||||
#define IB_alphamode_premul (1 << 12) /* indicates whether image on disk have premul alpha */
|
||||
#define IB_alphamode_detect (1 << 13) /* if this flag is set, alpha mode would be guessed from file */
|
||||
#define IB_ignore_alpha (1 << 14) /* ignore alpha on load and substitude it with 1.0f */
|
||||
#define IB_ignore_alpha (1 << 14) /* ignore alpha on load and substitute it with 1.0f */
|
||||
#define IB_thumbnail (1 << 15)
|
||||
#define IB_multiview (1 << 16)
|
||||
|
||||
|
@ -1269,7 +1269,7 @@ static ImBuf *anim_getnew(struct anim *anim)
|
||||
#ifdef WITH_AVI
|
||||
case ANIM_AVI:
|
||||
if (startavi(anim)) {
|
||||
printf("couldnt start avi\n");
|
||||
printf("couldn't start avi\n");
|
||||
return (NULL);
|
||||
}
|
||||
ibuf = IMB_allocImBuf(anim->x, anim->y, 24, 0);
|
||||
|
@ -1394,7 +1394,7 @@ uint DirectDrawSurface::mipmapSize(uint mipmap) const
|
||||
}
|
||||
else if (header.pf.flags & DDPF_RGB || (header.pf.flags & DDPF_LUMINANCE))
|
||||
{
|
||||
uint pitch = computePitch(w, header.pf.bitcount, 8); // Asuming 8 bit alignment, which is the same D3DX expects.
|
||||
uint pitch = computePitch(w, header.pf.bitcount, 8); // Assuming 8 bit alignment, which is the same D3DX expects.
|
||||
|
||||
return pitch * h * d;
|
||||
}
|
||||
|
@ -380,7 +380,7 @@ static void do_moviecache_put(MovieCache *cache, void *userkey, ImBuf *ibuf, boo
|
||||
if (need_lock)
|
||||
BLI_mutex_unlock(&limitor_lock);
|
||||
|
||||
/* cache limiter can't remove unused keys which points to destoryed values */
|
||||
/* cache limiter can't remove unused keys which points to destroyed values */
|
||||
check_unused_keys(cache);
|
||||
|
||||
if (cache->points) {
|
||||
|
@ -1021,7 +1021,7 @@ void IMB_exr_write_channels(void *handle)
|
||||
}
|
||||
|
||||
for (echan = (ExrChannel *)data->channels.first; echan; echan = echan->next) {
|
||||
/* Writting starts from last scanline, stride negative. */
|
||||
/* Writing starts from last scanline, stride negative. */
|
||||
if (echan->use_half_float) {
|
||||
float *rect = echan->rect;
|
||||
half *cur = current_rect_half;
|
||||
|
@ -367,7 +367,7 @@ static void complete_partial_load(struct ImBuf *ibuf, unsigned int *rect)
|
||||
memset(rect, 0, size);
|
||||
}
|
||||
else {
|
||||
/* shouldnt happen */
|
||||
/* shouldn't happen */
|
||||
printf("decodetarga: incomplete file, all pixels written\n");
|
||||
}
|
||||
}
|
||||
|
@ -362,7 +362,7 @@ static ImBuf *thumb_create_ex(
|
||||
}
|
||||
else {
|
||||
if (ELEM(source, THB_SOURCE_IMAGE, THB_SOURCE_BLEND, THB_SOURCE_FONT)) {
|
||||
/* only load if we didnt give an image */
|
||||
/* only load if we didn't give an image */
|
||||
if (img == NULL) {
|
||||
switch (source) {
|
||||
case THB_SOURCE_IMAGE:
|
||||
|
@ -551,7 +551,7 @@ static DerivedMesh *arrayModifier_doArray(
|
||||
DM_copy_loop_data(dm, result, 0, 0, chunk_nloops);
|
||||
DM_copy_poly_data(dm, result, 0, 0, chunk_npolys);
|
||||
|
||||
/* Subsurf for eg wont have mesh data in the custom data arrays.
|
||||
/* Subsurf for eg won't have mesh data in the custom data arrays.
|
||||
* now add mvert/medge/mpoly layers. */
|
||||
|
||||
if (!CustomData_has_layer(&dm->vertData, CD_MVERT)) {
|
||||
|
@ -67,7 +67,7 @@ typedef struct LaplacianSystem {
|
||||
float (*co)[3]; /* Original vertex coordinates */
|
||||
float (*no)[3]; /* Original vertex normal */
|
||||
float (*delta)[3]; /* Differential Coordinates */
|
||||
unsigned int (*tris)[3]; /* Copy of MLoopTri (tesselation triangle) v1-v3 */
|
||||
unsigned int (*tris)[3]; /* Copy of MLoopTri (tessellation triangle) v1-v3 */
|
||||
int *index_anchors; /* Static vertex index list */
|
||||
int *unit_verts; /* Unit vectors of projected edges onto the plane orthogonal to n */
|
||||
int *ringf_indices; /* Indices of faces per vertex */
|
||||
@ -209,7 +209,7 @@ static void createVertRingMap(
|
||||
/**
|
||||
* This method computes the Laplacian Matrix and Differential Coordinates for all vertex in the mesh.
|
||||
* The Linear system is LV = d
|
||||
* Where L is Laplacian Matrix, V as the vertexes in Mesh, d is the differential coordinates
|
||||
* Where L is Laplacian Matrix, V as the vertices in Mesh, d is the differential coordinates
|
||||
* The Laplacian Matrix is computes as a
|
||||
* Lij = sum(Wij) (if i == j)
|
||||
* Lij = Wij (if i != j)
|
||||
@ -219,7 +219,7 @@ static void createVertRingMap(
|
||||
* di = Vi * sum(Wij) - sum(Wij * Vj)
|
||||
* Where :
|
||||
* di is the Differential Coordinate i
|
||||
* sum (Wij) is the sum of all weights between vertex Vi and its vertexes neighbors (Vj)
|
||||
* sum (Wij) is the sum of all weights between vertex Vi and its vertices neighbors (Vj)
|
||||
* sum (Wij * Vj) is the sum of the product between vertex neighbor Vj and weight Wij for all neighborhood.
|
||||
*
|
||||
* This Laplacian Matrix is described in the paper:
|
||||
|
@ -60,8 +60,8 @@ struct BLaplacianSystem {
|
||||
int numLoops; /* Number of edges*/
|
||||
int numPolys; /* Number of faces*/
|
||||
int numVerts; /* Number of verts*/
|
||||
short *numNeFa; /* Number of neighboors faces around vertice*/
|
||||
short *numNeEd; /* Number of neighboors Edges around vertice*/
|
||||
short *numNeFa; /* Number of neighbors faces around vertice*/
|
||||
short *numNeEd; /* Number of neighbors Edges around vertice*/
|
||||
short *zerola; /* Is zero area or length*/
|
||||
|
||||
/* Pointers to data*/
|
||||
@ -268,7 +268,7 @@ static void init_laplacian_matrix(LaplacianSystem *sys)
|
||||
for (i = 0; i < sys->numEdges; i++) {
|
||||
idv1 = sys->medges[i].v1;
|
||||
idv2 = sys->medges[i].v2;
|
||||
/* if is boundary, apply scale-dependent umbrella operator only with neighboors in boundary */
|
||||
/* if is boundary, apply scale-dependent umbrella operator only with neighbors in boundary */
|
||||
if (sys->numNeEd[idv1] != sys->numNeFa[idv1] && sys->numNeEd[idv2] != sys->numNeFa[idv2]) {
|
||||
sys->vlengths[idv1] += sys->eweights[i];
|
||||
sys->vlengths[idv2] += sys->eweights[i];
|
||||
|
@ -144,7 +144,7 @@ static DerivedMesh *doMirrorOnAxis(
|
||||
DM_copy_poly_data(dm, result, 0, 0, maxPolys);
|
||||
|
||||
|
||||
/* Subsurf for eg wont have mesh data in the custom data arrays.
|
||||
/* Subsurf for eg won't have mesh data in the custom data arrays.
|
||||
* now add mvert/medge/mpoly layers. */
|
||||
|
||||
if (!CustomData_has_layer(&dm->vertData, CD_MVERT)) {
|
||||
|
@ -57,7 +57,7 @@
|
||||
/* used for gathering edge connectivity */
|
||||
typedef struct ScrewVertConnect {
|
||||
float dist; /* distance from the center axis */
|
||||
float co[3]; /* loaction relative to the transformed axis */
|
||||
float co[3]; /* location relative to the transformed axis */
|
||||
float no[3]; /* calc normal of the vertex */
|
||||
unsigned int v[2]; /* 2 verts on either side of this one */
|
||||
MEdge *e[2]; /* edges on either side, a bit of a waste since each edge ref's 2 edges */
|
||||
@ -297,7 +297,7 @@ static DerivedMesh *applyModifier(
|
||||
|
||||
/* angle */
|
||||
|
||||
#if 0 /* cant incluide this, not predictable enough, though quite fun. */
|
||||
#if 0 /* can't include this, not predictable enough, though quite fun. */
|
||||
if (ltmd->flag & MOD_SCREW_OBJECT_ANGLE) {
|
||||
float mtx3_tx[3][3];
|
||||
copy_m3_m4(mtx3_tx, mtx_tx);
|
||||
@ -673,7 +673,7 @@ static DerivedMesh *applyModifier(
|
||||
if (tmpf1[ltmd->axis] < vc_tmp->co[ltmd->axis]) { /* best is above */
|
||||
ed_loop_flip = 1;
|
||||
}
|
||||
else { /* best is below or even... in even case we cant know whet to do. */
|
||||
else { /* best is below or even... in even case we can't know what to do. */
|
||||
ed_loop_flip = 0;
|
||||
}
|
||||
|
||||
@ -809,7 +809,7 @@ static DerivedMesh *applyModifier(
|
||||
copy_v3_v3(vc->no, vc->co);
|
||||
}
|
||||
|
||||
/* we wont be looping on this data again so copy normals here */
|
||||
/* we won't be looping on this data again so copy normals here */
|
||||
if ((angle < 0.0f) != do_flip)
|
||||
negate_v3(vc->no);
|
||||
|
||||
@ -897,7 +897,7 @@ static DerivedMesh *applyModifier(
|
||||
}
|
||||
|
||||
if (close) {
|
||||
/* last loop of edges, previous loop dosnt account for the last set of edges */
|
||||
/* last loop of edges, previous loop doesn't account for the last set of edges */
|
||||
const unsigned int varray_stride = (step_tot - 1) * totvert;
|
||||
|
||||
for (i = 0; i < totvert; i++) {
|
||||
|
@ -50,7 +50,7 @@
|
||||
|
||||
#define BEND_EPS 0.000001f
|
||||
|
||||
/* Re-maps the indicies for X Y Z by shifting them up and wrapping, such that
|
||||
/* Re-maps the indices for X Y Z by shifting them up and wrapping, such that
|
||||
* X = Y, Y = Z, Z = X (for X axis), and X = Z, Y = X, Z = Y (for Y axis). This
|
||||
* exists because the deformations (excluding bend) are based on the Z axis.
|
||||
* Having this helps avoid long, drawn out switches. */
|
||||
@ -199,7 +199,7 @@ static void SimpleDeformModifier_do(
|
||||
/* This is historically the lock axis, _not_ the deform axis as the name would imply */
|
||||
const int deform_axis = smd->deform_axis;
|
||||
int lock_axis = smd->axis;
|
||||
if (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) { /* Bend mode shouln't have any lock axis */
|
||||
if (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) { /* Bend mode shouldn't have any lock axis */
|
||||
lock_axis = 0;
|
||||
}
|
||||
else {
|
||||
@ -263,7 +263,7 @@ static void SimpleDeformModifier_do(
|
||||
}
|
||||
|
||||
|
||||
/* SMD values are normalized to the BV, calculate the absolut values */
|
||||
/* SMD values are normalized to the BV, calculate the absolute values */
|
||||
smd_limit[1] = lower + (upper - lower) * smd->limit[1];
|
||||
smd_limit[0] = lower + (upper - lower) * smd->limit[0];
|
||||
|
||||
|
@ -813,7 +813,7 @@ static DerivedMesh *applyModifier(
|
||||
mp->flag = mpoly[fidx].flag;
|
||||
|
||||
/* notice we use 'mp->totloop' which is later overwritten,
|
||||
* we could lookup the original face but theres no point since this is a copy
|
||||
* we could lookup the original face but there's no point since this is a copy
|
||||
* and will have the same value, just take care when changing order of assignment */
|
||||
k1 = mpoly[fidx].loopstart + (((edge_order[eidx] - 1) + mp->totloop) % mp->totloop); /* prev loop */
|
||||
k2 = mpoly[fidx].loopstart + (edge_order[eidx]);
|
||||
|
@ -1035,7 +1035,7 @@ static bool surfacedeformBind(
|
||||
}
|
||||
else if (data.success == MOD_SDEF_BIND_RESULT_GENERIC_ERR) {
|
||||
/* I know this message is vague, but I could not think of a way
|
||||
* to explain this whith a reasonably sized message.
|
||||
* to explain this with a reasonably sized message.
|
||||
* Though it shouldn't really matter all that much,
|
||||
* because this is very unlikely to occur */
|
||||
modifier_setError((ModifierData *)smd, "Target contains invalid polygons");
|
||||
|
@ -81,7 +81,7 @@ typedef struct Vert2GeomData {
|
||||
float *dist[3];
|
||||
} Vert2GeomData;
|
||||
|
||||
/* Data which is localized to each computed chunk (i.e. thread-safe, and with continous subset of index range). */
|
||||
/* Data which is localized to each computed chunk (i.e. thread-safe, and with continuous subset of index range). */
|
||||
typedef struct Vert2GeomDataChunk {
|
||||
/* Read-only data */
|
||||
float last_hit_co[3][3];
|
||||
|
@ -143,7 +143,7 @@ void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, bNodeStack *ns)
|
||||
memset(gs, 0, sizeof(*gs));
|
||||
|
||||
if (ns == NULL) {
|
||||
/* node_get_stack() will generate NULL bNodeStack pointers for unknown/unsuported types of sockets... */
|
||||
/* node_get_stack() will generate NULL bNodeStack pointers for unknown/unsupported types of sockets... */
|
||||
zero_v4(gs->vec);
|
||||
gs->link = NULL;
|
||||
gs->type = GPU_NONE;
|
||||
|
@ -510,7 +510,7 @@ static int bpy_slot_from_py(
|
||||
}
|
||||
|
||||
/**
|
||||
* Use for getting return values from an operator thats already executed.
|
||||
* Use for getting return values from an operator that's already executed.
|
||||
*
|
||||
* \note Don't throw any exceptions and should always return a valid (PyObject *).
|
||||
*/
|
||||
|
@ -2453,7 +2453,7 @@ PyDoc_STRVAR(bpy_bmelemseq_index_update_doc,
|
||||
" .. note::\n"
|
||||
"\n"
|
||||
" Running this on sequences besides :class:`BMesh.verts`, :class:`BMesh.edges`, :class:`BMesh.faces`\n"
|
||||
" works but wont result in each element having a valid index, insted its order in the sequence will be set.\n"
|
||||
" works but won't result in each element having a valid index, insted its order in the sequence will be set.\n"
|
||||
);
|
||||
static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self)
|
||||
{
|
||||
@ -4050,7 +4050,7 @@ int BPy_BMElem_CheckHType(PyTypeObject *type, const char htype)
|
||||
/**
|
||||
* Use for error strings only, not thread safe,
|
||||
*
|
||||
* \return a sting like '(BMVert/BMEdge/BMFace/BMLoop)'
|
||||
* \return a string like '(BMVert/BMEdge/BMFace/BMLoop)'
|
||||
*/
|
||||
char *BPy_BMElem_StringFromHType_ex(const char htype, char ret[32])
|
||||
{
|
||||
|
@ -478,7 +478,7 @@ PyObject *BPy_BMLoopColor_CreatePyObject(struct MLoopCol *data)
|
||||
* This type could eventually be used to access lattice weights.
|
||||
*
|
||||
* \note: Many of blender-api's dict-like-wrappers act like ordered dicts,
|
||||
* This is intentional _not_ ordered, the weights can be in any order and it wont matter,
|
||||
* This is intentionally _not_ ordered, the weights can be in any order and it won't matter,
|
||||
* the order should not be used in the api in any meaningful way (as with a python dict)
|
||||
* only expose as mapping, not a sequence.
|
||||
*/
|
||||
|
@ -124,7 +124,7 @@ static PyObject *pyop_poll(PyObject *UNUSED(self), PyObject *args)
|
||||
CTX_py_dict_set(C, (void *)context_dict);
|
||||
Py_XINCREF(context_dict); /* so we done loose it */
|
||||
|
||||
/* main purpose of thsi function */
|
||||
/* main purpose of this function */
|
||||
ret = WM_operator_poll_context((bContext *)C, ot, context) ? Py_True : Py_False;
|
||||
|
||||
/* restore with original context dict, probably NULL but need this for nested operator calls */
|
||||
|
@ -405,7 +405,7 @@ int EXPP_VectorsAreEqual(const float *vecA, const float *vecB, int size, int flo
|
||||
}
|
||||
|
||||
#ifndef MATH_STANDALONE
|
||||
/* dynstr as python string utility funcions, frees 'ds'! */
|
||||
/* dynstr as python string utility functions, frees 'ds'! */
|
||||
PyObject *mathutils_dynstr_to_py(struct DynStr *ds)
|
||||
{
|
||||
const int ds_len = BLI_dynstr_get_len(ds); /* space for \0 */
|
||||
|
@ -170,7 +170,7 @@ Py_hash_t mathutils_array_hash(const float *float_array, size_t array_len);
|
||||
int column_vector_multiplication(float rvec[4], VectorObject *vec, MatrixObject *mat);
|
||||
|
||||
#ifndef MATH_STANDALONE
|
||||
/* dynstr as python string utility funcions */
|
||||
/* dynstr as python string utility functions */
|
||||
PyObject *mathutils_dynstr_to_py(struct DynStr *ds);
|
||||
#endif
|
||||
|
||||
|
@ -161,7 +161,7 @@ PyDoc_STRVAR(Euler_to_matrix_doc,
|
||||
"\n"
|
||||
" Return a matrix representation of the euler.\n"
|
||||
"\n"
|
||||
" :return: A 3x3 roation matrix representation of the euler.\n"
|
||||
" :return: A 3x3 rotation matrix representation of the euler.\n"
|
||||
" :rtype: :class:`Matrix`\n"
|
||||
);
|
||||
static PyObject *Euler_to_matrix(EulerObject *self)
|
||||
|
@ -2592,7 +2592,7 @@ static int Matrix_translation_set(MatrixObject *self, PyObject *value, void *UNU
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(Matrix_row_doc,
|
||||
"Access the matix by rows (default), (read-only).\n\n:type: Matrix Access"
|
||||
"Access the matrix by rows (default), (read-only).\n\n:type: Matrix Access"
|
||||
);
|
||||
static PyObject *Matrix_row_get(MatrixObject *self, void *UNUSED(closure))
|
||||
{
|
||||
@ -2600,7 +2600,7 @@ static PyObject *Matrix_row_get(MatrixObject *self, void *UNUSED(closure))
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(Matrix_col_doc,
|
||||
"Access the matix by colums, 3x3 and 4x4 only, (read-only).\n\n:type: Matrix Access"
|
||||
"Access the matrix by columns, 3x3 and 4x4 only, (read-only).\n\n:type: Matrix Access"
|
||||
);
|
||||
static PyObject *Matrix_col_get(MatrixObject *self, void *UNUSED(closure))
|
||||
{
|
||||
@ -2770,7 +2770,7 @@ PyDoc_STRVAR(matrix_doc,
|
||||
" matrices from 2x2 up to 4x4.\n"
|
||||
"\n"
|
||||
" :param rows: Sequence of rows.\n"
|
||||
" When ommitted, a 4x4 identity matrix is constructed.\n"
|
||||
" When omitted, a 4x4 identity matrix is constructed.\n"
|
||||
" :type rows: 2d number sequence\n"
|
||||
);
|
||||
PyTypeObject matrix_Type = {
|
||||
|
@ -579,7 +579,7 @@ PyDoc_STRVAR(py_bvhtree_overlap_doc,
|
||||
"\n"
|
||||
" Find overlapping indices between 2 trees.\n"
|
||||
"\n"
|
||||
" :arg other_tree: Other tree to preform overlap test on.\n"
|
||||
" :arg other_tree: Other tree to perform overlap test on.\n"
|
||||
" :type other_tree: :class:`BVHTree`\n"
|
||||
" :return: Returns a list of unique index pairs,"
|
||||
" the first index referencing this tree, the second referencing the **other_tree**.\n"
|
||||
|
Loading…
Reference in New Issue
Block a user